sábado, 31 de octubre de 2015

Wi-Fi: un poco de teoría

Estándar y certificación
El estándar IEEE 802.11 define las pautas de funcionamiento y el intercambio de datos en tecnologías de redes de área local inalámbrica (WLAN), a nivel de capa física (PHY) y enlace de datos (MAC). La Wi-Fi Alliance, es una organización sin ánimo de lucro que promueve y certifica los productos que soportan el estándar de las redes inalámbricas. A menudo, se usan por igual los términos WLAN y Wi-Fi.

 
Topología
  • Infraestructura: los clientes de tecnología inalámbrica (portátiles, smartphones, tablets, etc.) se conectan a un punto de acceso.
  • AdHoc: los clientes se conectan entre sí sin ningún punto de acceso.

Bandas
Existen varias bandas de frecuencia en las que operan las redes inalámbricas (y éstas a su vez, emplean varios canales), pero las más usadas son:
  • 2.4 GHz: Es el mayormente aceptado a nivel mundial, tiene mayor alcance, posee 3 canales no solapados, y tiene muchos "competidores" que operan al mismo nivel de frecuencia, como puede ser Bluetooth, microondas, etc, lo que puede provocar más interferencias. Los estándares 802.11b/g/n operan en esta banda. Los canales disponibles dependerán también de nuestra ubicación geográfica:

  • 3.6 GHz: Es usada únicamente en USA y es empleado por el estándar 802.11y.
 
  • 4.9/5.0 GHz: Tiene un menor alcance (a mayor frecuencia, menor alcance), está compuesto por 24 canales no solapados, y posee menos interferencias, ya que hay un menor número de dispositivos que operan en esta frecuencia. Los estándares 802.11a/h/j/n operan en esta banda.


Tipos de paquetes
Los tres tipos de paquetes que podemos encontrar en el estándar IEEE 802.11 son: Management (Gestión), Control y Data (Datos). A su vez, existen subtipos para cada uno de ellos, los cuales, veremos a continuación:
  • Management: paquetes empleados para llevar a cabo la conexión. Teniendo en cuenta que el esquema básico de conexión es el siguiente:


              Los subtipos asociados que más nos pueden interesar son: Beacon frame, Probe request, Probe response, Authentication request, Authentication response, Deauthentication frame, Association request, Association response, Disassociation frame, Reassociation request y Reassociation response.

  • Control: paquetes usados para evitar fallos en la transmisión de datos. Los más destacados son ACK (Acknowledgement), RTS (Request To Send) y CTS (Clear To Send).

  • Data: para envío de datos.


He considerado que ésta es una primera aproximación de la teoría, de forma general, que nos puede interesar a la hora de monitorizar una red inalámbrica o el "espacio aéreo", y/o para lanzar ataques dirigidos a una red en concreto.

Referencias
IEEE 802.11: Wireless LANs
Introducción a Wi-Fi (802.11 o WiFi)
Modos de funcionamiento Wi-Fi (802.11 o WiFi)
IEEE 802.11 Wi-Fi Standards
Hacking Wifi - Parte 1 - Introducción y beacon frames
Understanding 802.11 frame types
WiFi Hacking Basics pt. 3

sábado, 24 de octubre de 2015

APIPA

Automatic Private IP Addressing (APIPA) es el sistema que usan los equipos para configurarse de forma automática una dirección de red IPv4 del tipo 169.254.0.0/16, que pertenece al bloque de direcciones de enlace-local, definido en el RFC3330.

Una vez escoge la dirección IP, envía un "ARP request" para saber si esa dirección ya está cogida. Si obtiene una respuesta de otra máquina, probará con otra IP, y así, hasta que se asigne una que no esté en uso.

Suele verse mucho al establecer una conexión a una red WiFi, donde no se ha obtenido una configuración de red válida, ya sea por ausencia de un servidor de DHCP, o por pérdida de la conexión. Esta configuración solo permite la comunicación en una red de área local.

domingo, 27 de septiembre de 2015

The Dark Net


Este es el libro del autor Jamie Bartlett, director del centro de análisis de redes sociales, Demos, y un blogger para la web The Telegraph. En él, redacta sus experiencias tras haberse sumergido en la parte más oscura de la red y haber vivido de primera mano varios acontecimientos que le llevan a conocer otras subculturas que yacen en internet.

Después de haber visto su entrevista en London Real, detallo algunos de los temas que menciona en su libro:
  • El MI5 y cómo el ISIS incorpora las nuevas tecnologías para asegurar que se cumplan sus ideologías: uso de Twitter, desarrollo de apps propias, empleo de varios navegadores, utilización de software libre para cifrado, etc.
  • Encontrarse cara a cara con un neo-nazi, después de estar investigándolo varios días, y seguir foros y webs donde dicho sujeto se hacía notar. Una vez que lo conoce en persona, no tiene nada que ver con lo que proyecta con sus comentarios y argumentos en la red.
  • Cómo se adentra en Silk Road, una plataforma para el mercado negro de drogas, armas, servicios de hacking, y muchas cosas más, para comprar algo de marijuana, y relatar dicha experiencia en su libro. Esta plataforma opera mediante la red Tor y permite realizar el pago por medio de Bitcoin. Sus conclusiones son que, a pesar de lo ilegal y malas vibraciones que produce, lo mejor es el servicio de atención al usuario
  • Su experiencia al visitar páginas de pornografía de webcams, entrevistar a algunas de las personas que realizaban dichas actividades, y "casi" participar en una de ellas.
  • Sus visitas y estudio de los perfiles de las personas que colaboraban en webs, blogs y foros de comunidades muy unidas de personas suicidas y bulímicas.
  • La historia de cómo un hombre se metió poco a poco en la pornografía infantil, llegando a un punto que lo consideraba normal, hasta que finalmente se encontró a la policía en la puerta de su casa. Esto es algo que va a ser difícil de erradicar, ya que, tristemente, hay mucho material disponible y es muy fácil de acceder a él.

Un buen enfoque a un mundo que el autor ha vivido en primera persona, donde da bastantes detalles de lo que nos podemos encontrar. Este libro nos da una posibilidad de ser más conscientes de lo que existe en la red oscura, y que no todo gira entorno a las redes sociales, las páginas de noticias y los blogs más famosos.

"La verdad está ahí fuera"

domingo, 17 de mayo de 2015

El peritaje informático

Un campo de la informática que parece estar cobrando cada vez más importancia, el peritaje informático, se vuelve necesario para dar resolución o arrojar algo de luz a los diversos casos y conflictos que se puedan producir, teniendo siempre en cuenta las leyes y la normativa vigente. Aquí entra en juego el perito informático.

Uno de los cracks indiscutibles del panorama nacional es sin duda Lorenzo Martínez, (al que tuve el placer de ver en la Hackron 2015), y he querido poner una de sus ponencias aquí:


ya que hace referencia a varios conceptos, no técnicos, que hay que tener en cuenta a la hora de realizar un peritaje, y que tuve el placer de aprender, hace un par de años, en el curso "Peritaje judicial en Informática - una visión práctica", impartido por Eduard Elias i Vila, y organizado por el COITIC. A continuación, me gustaría señalar algunos de esos conceptos:
  • Hay que tener en cuenta distintas consideraciones dependiendo si va por la vía judicial (te llama el juez) o extrajudicial (directamente la parte).
  • La redacción del informe pericial debe ser totalmente entendible por alguien "no-técnico". Presuponemos que el juez no tiene ni idea de tecnología, o al menos es un usuario básico, y es quien se apoyará en nuestro trabajo para tomar una decisión.
  • La cadena de custodia.
  • Una de las partes puede solicitar un contra-peritaje, para corroborar tu trabajo.

Sin duda, es un área que tiene muchos detalles y conceptos que tendremos que dominar, y donde la experiencia va sumando puntos para ir cogiendo rodaje en esto.

Fuente: SecurityByDefault - Memorias de un perito informático forense - vol.1 en TASSI 2015.

martes, 15 de julio de 2014

Configuración de red con netsh

Viendo lo fácil que es establecer la configuración de red de un equipo en Linux, quise mirar cómo se podría hacer lo mismo en Windows. Al final es un poco más engorroso (o eso me parece a mí), y la sintaxis de los comandos es un poco más compleja.

Aquí entra en juego nuestro amigo netsh, la utilidad de línea de comandos del sistema operativo de Microsoft para trabajar con las opciones de red. En mi caso, como estoy con el portátil de la oficina a casa y de la casa a la oficina, y tengo que estar cambiando las configuraciones de red de mi equipo a cada rato, quise hacer esto un poco más rápido.

Lo básico, es establecer la dirección IPv4, la máscara de red, la puerta de enlace, y los DNS primario y secundario. Ésto, con netsh, sería de la siguiente manera:

#Para listar las conexiones de red
netsh interface show interface

#Establecemos la dirección IP, la máscara de red y la puerta de enlace por defecto
netsh interface ip set address "Conexión de área local" static 192.168.2.10 255.255.255.0 192.168.2.1 1

#Si queremos establecer otra dirección IP para el equipo
netsh interface ip add address "Conexión de área local" 10.168.2.128 255.255.255.0

#Establecemos el DNS primario
netsh interface ip set dnsservers "Conexión de área local" static 8.8.8.8 primary

#Establecemos el DNS secundario
netsh interface ip add dnsservers "Conexión de área local" 8.8.4.4 index=2

Podríamos crearnos un script, para ejecutar todos los comandos en lote. Las consideraciones a tener en cuenta serían que hay que ejecutar este script con la línea de comandos en modo Administrador, y a la hora de generar el script (un .bat por ejemplo), mejor seguir este truco, ya que no se traga bien las tildes y demás caracteres "extraños".

Espero que os haya servido de ayuda ;)

Referencias:

viernes, 4 de abril de 2014

ARP

Address Resolution Protocol. No voy a entrar en detalle a explicar el protocolo. Para ello, os dejo las siguientes referencias, que son bastantes claras y sin muchos rodeos:



Ya en IPv6 no tenemos ARP, sino su equivalente, NDP (Neighbor Discovery Protocol).

Lo que sí me gustaría destacar de ARP es lo siguiente:

  1) Consiste simplemente en mensajes de solicitud-respuesta (request-reply). El request siempre es en modo broadcast, preguntando por la MAC address del host destino.



El reply es en modo unicast, donde el host destino responde con su MAC address al host origen.



  2) Los sistemas guardan una caché ARP para no estar enviando requests todo el rato. Para las entradas de tipo dinámico, una vez expira el periodo de timeout predeterminado, el sistema eliminaría dicha entrada, la cual solo se volvería a añadir en el caso de recibir el reply correspondiente.



  3) ARP es un protocolo sin estado. Independientemente de si se ha enviado un request o no, si se recibe un reply, se actualiza dicha entrada en la caché. Tampoco existe autenticación alguna, así que cualquiera podría enviar replies "spoofeados", conocido como gratuitous ARP.


Básicamente, de estas características se aprovecha el ARP spoofing, que luego se puede usar para sniffing, man-in-the-middle, DoS o mac flooding. Dicho ésto, os pongo los siguientes enlaces:



Como ya hemos dicho, en IPv6 tenemos NDP, y por lo tanto, su ataque equivalente:


Existen propuestas para mitigar estos ataques, como puede ser el cifrado de la comunicación ARP, trabajar con entradas estáticas, la existencia de un servidor ARP central en lugar de mantener una caché en cada host; o mantener una correlación de solicitudes y respuestas, o monitorización de tramas ARP mediante SNMP en los switches, pero creo que ninguna se ha implementado a gran escala debido a los costos añadidos que tiene.

También tenemos herramientas como:

  • PatriotNG - permite la monitorización de cambios en la caché ARP (en entornos Windows).

jueves, 13 de marzo de 2014

A la caza de malware con Sysinternals

En el vídeo de arriba, Mark Russinovich, miembro técnico de la división Cloud y Enterprise de Microsoft, además de claramente reconocido experto en sistemas Windows, nos cuenta las novedades de algunas de las herramientas que conforman la suite de Sysinternals, y cómo le han servido a él para encontrar y eliminar malware en distintos casos a los que se ha enfrentado. Todos estos casos los desmenuza y los explica uno a uno en su blog, donde además tiene otros artículos muy interesantes de cómo ha resuelto problemas de funcionamiento de equipos Windows y explicaciones bastante detalladas de la arquitectura de un sistema Windows.

A modo de resumen, he querido destacar los puntos que indica el autor a tener en cuenta a la hora de embarcarnos en la tarea de hacer frente al malware (extraído del vídeo) y que además Mark hace mención en sus diapositivas

Pasos a seguir para limpiar malware

  • Desconectar el equipo de la red. Puede darse el caso en el que un "bicho" hace que se descarguen n "bichos" más, y así, perder la pista de lo que estabas investigando en un principio. 
  • Identificar procesos y drivers maliciosos. 
  • Termniar procesos identificados como para "eliminar". Una curiosidad que tiene que ver con este punto, es tener cuidado con los procesos "colegas". Ésta es la terminología que usa el autor para referirse a un conjunto de procesos que se ayudan entre ellos, de forma que si matamos a uno de ellos, los otros se encargan de lanzar uno nuevo como contramedida. Para evitar esto, nos recomienda que usemos la función de "Suspender" antes de "matar". 
  • Identificar y eliminar entradas maliciosas en "autoarranque/inicio automático". 
  • Borrar archivos malware del sistema de ficheros. 
  • Reinciamos y repetimos hasta ver que no se repiten los patrones encontrados anteriormente.

¿Y qué estamos buscando?

Básicamente buscamos procesos que cumplan los siguientes criterios, pero antes que nada, me gustaría destacar la diferenciación que hace el autor entre procesos e hilos:

  • Un proceso en Windows es un contenedor que almacena la imagen de un archivo ejecutable. Está representado por un objeto proceso de kernel y Windows emplea ese objeto y sus estructuras de datos asociadas para almacenar y realizar un seguimiento de la ejecución de dicha imagen. 
  • Un proceso incluye uno o más hilos que realmente ejecutan el código, y están representados por objetos hilo de kernel. Técnicamente, los que corren son los hilos, y no los procesos. 

Fuente: https://blogs.technet.com/b/markrussinovich/archive/2009/07/08/3261309.aspx 


Dicho ésto, enumeramos esos criterios que hay que tener en cuenta para "la caza" en los procesos analizados:
  • No tienen icono. 
  • No tienen descripción o nombre de compañía. 
  • Imágenes de procesos Microsoft no firmados. 
  • Ubicados en el directorio Windows (%SytemRoot%) o en el perfil del usuario (%userprofile%)
  • Están "empaquetados". Respecto a este punto, hay una serie de artículos en SecurityByDefault muy interesantes de Abraham Pasamar acerca de qué son los crypters, cómo funcionan y qué técnicas usan para llevar a cabo la evasión de antivirus. Y en concreto, en el primero de ellos, en la introuducción, menciona lo siguiente:

Crypters vs. packers 

Hay que puntualizar que en algunos entornos se habla indistintamente de 'crypters' y 'packers', pero en realidad son cosas distintas. El objetivo de un packer es 'empaquetar' o 'comprimir' el archivo ejecutable. Sería como usar un ZIP pero sin perder la estructura de un archivo ejecutable PE (Portable Executable). El objetivo del 'crypter' es 'cifrar' el ejecutable. Sería como usar PGP o TrueCrypt, pero sin perder la estructura PE. 

Fuente: http://www.securitybydefault.com/2013/07/introduccion-los-crypters.html

Éstos son los procesos a los que se refiere Mark, tanto empaquetados como cifrados, o ambos.

  • Incluyen URLs extrañas en sus Strings. 
  • Tienen conexiones TCP/IP abiertas a ubicaciones no esperadas. 
  • Incluyen DLLs o servicios sospechosos. 

No siempre un proceso que tenga estas características corresponde a malware, pero sí en la mayoría de los casos. Espero que os haya parecido interesante y hasta la próxima!!!

lunes, 8 de julio de 2013

domingo, 7 de julio de 2013

CCleaner al terminar

Para los usuarios de Windows que no conozcáis la herramienta CCleaner, que sepáis que sirve para realizar una limpieza del sistema, eliminando archivos temporales, accesos directos rotos, borrado del historial de navegación, caché de navegadores, etc. También podemos realizar una limpieza del registro, desinstalar programas y escoger los que queremos que se ejecuten al iniciar nuestro sistema operativo, pero en este post me enfocaré únicamente en la parte de borrado de ficheros.

Yo siempre ejecuto la aplicación cuando voy a cerrar sesión, o apagar el equipo, así que he querido automatizar un poco este paso. La cuestión sería que el programa se ejecutase en modo comando (para no abrir la interfaz gráfica) cuando nosotros cerremos la sesión o apaguemos el equipo. CCleaner permite escoger la opción de que éste se ejecute al iniciar el sistema, pero a mí me resulta más práctico cuando vamos a apagar el equipo.

Para ello, lanzamos el siguiente comando:

gpedit.msc (modificación de directivas de grupo)



Una vez tenemos abierta la ventana MMC correspondiente, nos vamos a la opción que más se adecúe a nuestras necesidades, o sea, si queremos establecer la configuración a nivel de equipo o a nivel de usuario. Yo en mi caso, he querido ponerlo a nivel de usuario. Por lo tanto, nos iríamos a "Configuración de usuario -> Configuración de Windows -> Secuencia de comandos (inicio de sesión/cierre de sesión) -> Cerrar sesión". Una vez se nos abra la ventana, agregamos el ejecutable del CCleaner con el parámetro /AUTO, para que corra de forma automática y en modo silencioso, con las opciones que hayamos configurado.




Con esto ya estaría todo listo. Para asegurarnos que se aplican los cambios, podemos ejecutar:

gpupdate /force

Para comprobar que efectivamente funciona lo que hemos programado, podemos hacer las siguientes pruebas:

1) Revisar la caché DNS antes y después de haber cerrado sesión. Por su puesto, en la configuración (en la pestaña "Windows") debemos de tener marcada la opción de "Caché DNS" para que realice la limpieza debidamente.


Caché DNS antes de la limpieza
Caché DNS antes de la limpieza

Caché DNS después de la limpieza
Caché DNS después de la limpieza

2) Revisar la papelera de reciclaje antes y después de cerrar sesión. Si enviamos uno o más archivos a la papelera, y después reiniciamos sesión en el sistema, y comprobamos que no están, es que ha vaciado la papelera correctamente. Debemos asegurarnos que tenemos marcada la opción de "Vaciar papelera".



3) Revisar cualquiera de las carpetas (cookies, historial, caché, etc.) de los navegadores que hayamos usado, antes y después cerrar sesión, asegurándonos que habían ficheros antes de llevar a cabo la limpieza. Para ello, simplemente podemos navegar por nuestras webs favoritas y luego comprobar que hay archivos temporales, cookies, etc.


Análisis de CCleaner antes de cerrar sesión
Análisis de CCleaner después de reiniciar la sesión

Hasta los chicos de Windows Técnico o SecurityByDefault han hablado de la herramienta ;)

Salu2!!