Sto facendo pratica con un pentest e mi sto bloccando cercando di ottenere una shell inversa interattiva da una macchina interna alla mia macchina attaccante.
Questo è quello che ho fatto finora:
Me (attaccante): 67.67.67.67 (qualche ip pubblico)
App Web (vittima): 68.68.68.68 (alcuni IP pubblici)
Macchina interna (server Web): 10.1.1.80
Informazioni sul server Web:
- CentOS
- Apache
- PHP
- mysql
Ho trovato una vulnerabilità di SQL Injection nell'applicazione Web in 68.68.68.68 e l'utilizzo di sqlmap con l'opzione --os-shell. Sono riuscito a ottenere una shell Web tramite questa applicazione come utente apache. Poi ho eseguito il comando 'ifconfig' che mi ha dato un ip interno 10.1.1.80.
Il mio obiettivo è ottenere una shell interattiva, quindi ho cercato di utilizzare una shell inversa per eseguire il tunneling dalla rete interna al mio computer di attacco pubblico. Credo che il problema che sto incontrando sia il firewall.
Questo è quello che so (usando la shell Web):
-
Impossibile visualizzare le regole del firewall
-
Posso caricare file tramite la shell Web, ma non posso scaricare o utilizzare HTTP / HTTPS direttamente dalla macchina interna tramite la shell Web in modo che la shell inversa http non funzioni.
-
Ho anche provato a eseguire "host google.com > /tmp/output.txt 'attraverso la shell Web che non fornisce alcun output che mi induce a credere che DNS non sia consentito neanche.
-
Ho anche provato l'ascolto della mia shell inversa su numerose porte popolari, il che mi fa pensare che il firewall stia eseguendo un'ispezione approfondita dei pacchetti, motivo per cui non consentirà il tunneling su queste porte.
-
L'unica cosa che ha funzionato è stato il ping della mia macchina hacker pubblica dalla macchina interna attraverso la webshell che mi fa pensare che potrei fare il tunnel di una shell inversa usando ICMP. Ho trovato uno strumento chiamato 'icmpsh', ma sfortunatamente il client che gira sulla macchina vittima è scritto solo in C per Windows. Ho pensato che avrei usato 'wine' per fare ciò sulla scatola interna di Linux, ma non posso installare nessun programma da internet e caricare vino attraverso il webshell ha portato a molti errori di dipendenza. Quindi il mio prossimo piano era scrivere la mia shell inversa ICMP in puro python ma usare SOCK_RAW richiede sudo.
La mia domanda è: pensi che l'ICMP sia il modo di scavare un guscio inverso o ci sia un protocollo diverso da usare o testare? Forse c'è una versione portatile di vino o equivalente che posso caricare?
PS: Questo è per la pratica quindi è possibile che l'installazione sia raggiungibile