Intentando hacer un túnel de un shell inverso fuera de una red interna

4

Estoy practicando la realización de un pentest y me quedo atascado tratando de obtener una shell inversa interactiva desde una máquina interna a mi máquina atacante.

Esto es lo que he hecho hasta ahora:

Yo (atacante): 67.67.67.67 (algunos ip públicos)
Aplicación web (víctima): 68.68.68.68 (algunos ip públicos)
Máquina interna (servidor web): 10.1.1.80

Información del servidor web:

  • Centos
  • Apache
  • PHP
  • mysql

Encontré una vulnerabilidad de Inyección SQL en la aplicación web en 68.68.68.68 y al usar sqlmap con la opción --os-shell pude obtener un shell web a través de esta aplicación como usuario de apache. Luego ejecuté el comando 'ifconfig' que me dio una ip interna 10.1.1.80.

Mi objetivo es obtener una shell interactiva, así que he estado tratando de usar una shell inversa para hacer un túnel fuera de la red interna hacia mi máquina atacante pública. Creo que el problema con el que me estoy topando es el firewall.

Esto es lo que sé (usando el shell web):

  • No se pueden ver las reglas del firewall

  • Puedo cargar archivos a través del shell web, pero no puedo descargar o usar HTTP / HTTPS directamente desde la máquina interna a través del shell web, por lo que http shell no funcionaría.

  • También intenté ejecutar 'host google.com > /tmp/output.txt 'a través del shell web que no da salida y me lleva a creer que DNS tampoco está permitido.

  • También he intentado escuchar mi shell inversa en numerosos puertos populares, lo que me hace pensar que el firewall está realizando una inspección profunda de paquetes, por lo que no permitirá que se canalice a través de estos puertos.

  • Lo único que funcionó es que pude hacer ping a mi máquina atacante pública desde la máquina interna a través del webshell, lo que me hace pensar que podría canalizar una shell inversa usando ICMP. Encontré una herramienta llamada 'icmpsh' pero desafortunadamente el cliente que se ejecuta en la máquina víctima está escrito en C para Windows solamente. Pensé que usaría 'vino' para hacer esto en la caja interna de Linux, pero no puedo instalar ningún programa desde Internet y cargar vino a través del webshell provocó muchos errores de dependencia. Así que mi próximo plan era escribir mi propia shell inversa ICMP en python puro, pero usar SOCK_RAW requiere sudo.

Mi pregunta es: ¿crees que ICMP es la forma de canalizar un shell inverso o hay un protocolo diferente que podría estar usando o probando? ¿Quizás haya una versión portátil de vino o equivalente que pueda cargar?

PS: Esto es para la práctica, por lo que se puede configurar para que sea alcanzable

    
pregunta user0809452345 16.10.2017 - 22:11
fuente

1 respuesta

2

He resuelto mi problema.

TL; DR: TCP 53 estaba disponible para el tráfico entrante / saliente

Al verificar qué protocolos se permitían a través del firewall, estaba revisando el DNS usando 'host google.com' y 'host -T google.com' y 'dig @ 8.8.8.8 google.com' y cuando no lo hice recibir la respuesta esperada asumí que esto significaba que DNS no estaba permitido. Después de volver a la máquina un par de días más tarde, decidí configurar 'nc -nvlp port #' en mi máquina atacante e intentar conectarme desde la máquina víctima usando varios puertos y por mucho tiempo fue capaz de conectarse a través del puerto 53. Así que desde allí configuro mi carga útil, obtuve mi shell y luego aumenté los privilegios.

Por lo tanto, la lección que aprendí fue no basarse en los resultados de una sola herramienta o método. Intenta más de un método.

Como idea adicional, si alguien tiene alguna idea de por qué mis comandos 'cavar' y 'host' no funcionaron aunque aceptara tráfico en 53, sería genial. Supongo que permitía el tráfico sobre 53 simplemente no DNS específicamente?

Gracias por las sugerencias

    
respondido por el user0809452345 22.10.2017 - 04:10
fuente

Lea otras preguntas en las etiquetas