Files
SecGen/modules/code_examples/distcc_exec/manifests/config.pp

45 lines
1.3 KiB
Puppet

class distcc_exec::config{
# this is how secgen
## $secgen_parameters = secgen_functions::get_parameters($::base64_inputs_file)
$leaked_filenames = ["flagsecret"] ##$secgen_parameters['leaked_filenames']
$strings_to_leak = ["flag message"] ##$secgen_parameters['strings_to_leak']
file { '/etc/default/distcc':
require => Package['distcc'],
ensure => present,
owner => 'root',
group => 'root',
mode => '0777',
content => template('distcc_exec/distcc.erb')
}
# distccd home directory
file { '/home/distccd/':
ensure => directory,
owner => 'distccd',
mode => '0750',
}
#exec usermod home directory for distccd
exec { 'change-home-dir':
path => ['/usr/bin/', '/usr/sbin'],
command => 'usermod -d /home/distccd distccd'
}
# newer versions of distcc have a directory of symlinks for whitelisting compilers
exec {"check_presence_compiler_list":
command => '/bin/ln -s /bin/sh /usr/lib/distcc/sh',
onlyif => '/usr/bin/test -d /usr/lib/distcc -a ! -e /usr/lib/distcc/sh',
}
::secgen_functions::leak_files { 'distcc_exec-file-leak':
storage_directory => "/home/distccd",
leaked_filenames => $leaked_filenames,
strings_to_leak => $strings_to_leak,
owner => 'distccd',
mode => '0600',
leaked_from => 'distcc_exec',
}
}