Primero, tengo algunas preguntas acerca de Reverse shell.
REVERSE SHELL
Estoy tratando de entender la técnica del caparazón inverso.
Mi razonamiento es el siguiente (me alegraría si pudiera señalar algún error al respecto)
1) La shell inversa es diferente (diría lo contrario) de una shell normal, ya que en este caso particular el servidor remoto abre una conexión (la shell normal o directa implica que el cliente establece una conexión con el servidor)
2) La carcasa inversa puede omitir los controles del firewall, ya que es básicamente una conexión saliente. Se supone que los cortafuegos protegen contra las conexiones entrantes. (Probablemente esto podría ser cuestionable)
ATAQUE
3) Además, ¿es factible el siguiente escenario? (Quiero decir, ¿puedo inyectar el comando a través de un software proxy como ZAP?)
Escenario: un sitio es vulnerable a los datos de entrada del usuario. Los usuarios insertan datos a través de un campo de texto.
SO: GNU / Linux. Servidor: Apache / 2.2.15 X-Powered By: PHP / 5.3.5
Supongamos que a través de un software proxy (como ZAP) después de algunas comprobaciones, puede tenga en cuenta que hay un campo que coincide con el campo de entrada del usuario disponible a través de la interfaz de usuario.
El campo se llama: user_val
.
Dado eso, puedo intentar inyectar un separador de comando simple ";" que prácticamente es como si configuraras: user_val=;
Luego me doy cuenta de que hay algunos archivos incrustados en la página web que devuelve la aplicación.
Wow, la aplicación es vulnerable.
La aplicación es vulnerable, por lo que es posible interactuar directamente con el sistema de archivos del servidor. Ahora ... el problema nudoso (para mí) 4) ¿Es correcto el siguiente comando? (Usando ZAP trato de encender una cáscara inversa)
netcat -v -e '/bin/bash' -l -p 40552
-v (detallado), - e (cuando se establece una conexión, ejecuta el shell Bash), -l (parámetro para escuchar una conexión) -p (permite asignar un puerto para escuchar, aquí el puerto 40552), el puerto elegido debe estar libre.
5) Entonces, al utilizar ZAP, ¿la inyección es correcta ?:
user_val=; netcat -v -e '/bin/bash' -l -p 40552
Muchas gracias (me disculpo por el largo post)