diff --git a/modules/vulnerabilities/unix/http/jenkins_cli/manifests/configure.pp b/modules/vulnerabilities/unix/http/jenkins_cli/manifests/configure.pp
index 0e4272f35..beacf3786 100644
--- a/modules/vulnerabilities/unix/http/jenkins_cli/manifests/configure.pp
+++ b/modules/vulnerabilities/unix/http/jenkins_cli/manifests/configure.pp
@@ -2,20 +2,28 @@
# Configuration and extras for Jenkins cli
#
class jenkins_cli::configure {
- $leaked_filenames = ['flagtest'] ##$secgen_parameters['leaked_filenames']
- $strings_to_leak = ['this is a list of strings that are secrets / flags','another secret'] ##$secgen_parameters['strings_to_leak']
+ $secgen_parameters = secgen_functions::get_parameters($::base64_inputs_file)
+ $leaked_filenames = $secgen_parameters['leaked_filenames']
+ $strings_to_leak = $secgen_parameters['strings_to_leak']
Exec { path => ['/bin', '/usr/bin', '/usr/local/bin', '/sbin', '/usr/sbin'] }
- $user = 'yong'#$secgen_parameters['leaked_username'][0]
+ $user = $secgen_parameters['leaked_username'][0]
$user_home = "/home/${user}"
+ # Create user
+ user { $user:
+ ensure => present,
+ home => $user_home,
+ managehome => true,
+ }
+
::secgen_functions::leak_files { 'jenkins-flag-leak':
storage_directory => $user_home,
leaked_filenames => $leaked_filenames,
strings_to_leak => $strings_to_leak,
- owner => 'root',
- mode => '0750',
+ owner => $user,
+ mode => '0644',
leaked_from => 'jenkins_cli',
}
}
diff --git a/modules/vulnerabilities/unix/http/jenkins_cli/manifests/install.pp b/modules/vulnerabilities/unix/http/jenkins_cli/manifests/install.pp
index afcf2ddf0..ea6cbd2b9 100644
--- a/modules/vulnerabilities/unix/http/jenkins_cli/manifests/install.pp
+++ b/modules/vulnerabilities/unix/http/jenkins_cli/manifests/install.pp
@@ -3,6 +3,11 @@
# https://github.com/rapid7/metasploit-framework/blob/master/documentation/modules/exploit/linux/http/jenkins_cli_deserialization.md
class jenkins_cli::install {
Exec { path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ] }
+
+ $secgen_parameters = secgen_functions::get_parameters($::base64_inputs_file)
+ $user = $secgen_parameters['leaked_username'][0]
+ $port = $secgen_parameters['port'][0]
+
$modulename = 'jenkins_cli'
$releasename = 'jenkins.war'
$splits = ["${releasename}.partaa",
@@ -33,9 +38,9 @@ class jenkins_cli::install {
command => "cat ${releasename}.parta* >/usr/local/bin/${releasename}",
}
-> file { '/etc/systemd/system/jenkins.service':
- source => 'puppet:///modules/jenkins_cli/jenkins.service',
- owner => 'root',
- mode => '0777',
+ content => template("${modulename}/jenkins.service.erb"),
+ owner => 'root',
+ mode => '0755',
}
-> service { 'jenkins':
ensure => running,
diff --git a/modules/vulnerabilities/unix/http/jenkins_cli/secgen_metadata.xml b/modules/vulnerabilities/unix/http/jenkins_cli/secgen_metadata.xml
index ad2aa3d79..6b44479bf 100644
--- a/modules/vulnerabilities/unix/http/jenkins_cli/secgen_metadata.xml
+++ b/modules/vulnerabilities/unix/http/jenkins_cli/secgen_metadata.xml
@@ -27,37 +27,31 @@
leaked_filenames
- 8080
+
-
-
+
-
+ flag
+
+
+
+
CVE-2017-1000353
9.8
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Jenkins
- MIT
+ AV:N/AC:L/Au:N/C:C/I:C/A:C
https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/linux/http/jenkins_cli_deserialization.rb
https://github.com/rapid7/metasploit-framework/blob/master/documentation/modules/exploit/linux/http/jenkins_cli_deserialization.md
-
-
- Navigate to IP:8080
- Check Metasploit DB
-
-
- openjdk-8
-
+ Jenkins
+ MIT
\ No newline at end of file
diff --git a/modules/vulnerabilities/unix/http/jenkins_cli/files/jenkins.service b/modules/vulnerabilities/unix/http/jenkins_cli/templates/jenkins.service.erb
similarity index 70%
rename from modules/vulnerabilities/unix/http/jenkins_cli/files/jenkins.service
rename to modules/vulnerabilities/unix/http/jenkins_cli/templates/jenkins.service.erb
index 27ea51d05..4cce9cbd7 100644
--- a/modules/vulnerabilities/unix/http/jenkins_cli/files/jenkins.service
+++ b/modules/vulnerabilities/unix/http/jenkins_cli/templates/jenkins.service.erb
@@ -4,8 +4,8 @@ After=network.target
[Service]
Type=simple
-User=root
-ExecStart=/bin/sh -c "java -Djenkins.install.runSetupWizard=false -jar /usr/local/bin/jenkins.war"
+User=<%= @leaked_username %>
+ExecStart=/bin/sh -c "java -Djenkins.install.runSetupWizard=false -jar /usr/local/bin/jenkins.war --httpPort=<% @port %>"
Restart=on-abort
RestartSec=1