Estándar de ejecución de pentesting versión 1.0

No sé vosotros, pero yo según voy auditando labs o entornos reales voy añadiendo contínuamente a mis procedimientos de pentesting nuevas técnicas y herramientas. Pienso que cada auditor tiene que tener su propio "librillo" basado en su experiencia que determinará de una u otra forma cómo se harán las pruebas en los sistemas auditados. Pero hay que tener en cuenta que la ejecución en número y forma de estas pruebas pueden derivar en la detección de vulnerabilidades o, lo que es peor, en la NO detección o falsos negativos. Por eso, a parte de tener cada uno su propia guía personalizada según las herramientas con las que mejor se desenvuelve, es fundamental sobretodo en ambientes profesionales seguir un procedimiento de mínimos con un checklist de comprobaciones de "obligatoria" ejecución, básicamente para no dejarnos nada.

Sin embargo a parte de OSSTMM, OWASP (éste último sobretodo para auditoría web) o incluso el proceso "Kill Chain" traído de ambientes militares, no hay todavía demasiados procedimientos o metodologías de pentesting que se puedan oficializar en el mundo empresarial.

Precisamente a principios de 2009 un grupo de investigadores y profesionales discutieron sobre el valor (o la falta de) pruebas de intrusión en la industria y crearon "Penetration Testing Execution Standard".

"Penetration Testing Execution Standard" es un nuevo estándar diseñado para ofrecer tanto a las empresas como a los proveedores de servicios de seguridad un lenguaje y un ámbito comunes para realizar pruebas de intrusión (yo prefiero decir "intrusión" a "penetración" pero al fin y al cabo se trata de evaluaciones de seguridad).

El estándar consta de siete secciones principales. Estas cubren todo lo relacionado con un test de intrusión - desde la comunicación inicial y el razonamiento detrás de un pentest, a través de la recopilación de inteligencia y las fases de modelado de amenazas donde los auditores están trabajando entre bastidores para comprender mejor la organización que están testando, pasando por la investigación de vulnerabilidades, la explotación y post-explotación, donde la experiencia técnica de los auditores entran en juego y se combinan con la comprensión del negocio, y finalmente al reporting, que captura todo el proceso, de manera que tenga sentido para el cliente y le proporcione más valor.

Esta versión se puede considerar una versión 1.0 donde se asientan los elementos del core de la norma, y ha sido probada durante más de un año en la industria. Ya se está trabajando en una versión 2.0 para proporcionar un trabajo más granular en términos de "niveles" - como en los niveles de intensidad en los cuales cada uno de los elementos de un pentest se pueden realizar. Como ningún pentest es igual a otro, y las pruebas van desde la más mundana aplicación web o prueba de red, hasta un compromiso completo tipo red team, dichos niveles permitirán a una organización definir cuánta sofisticación esperan que exhiba su adversario y permitir al auditor intensificar las áreas donde la organización lo necesite más. Algunos de los trabajos iniciales sobre "niveles" se pueden ver en la sección de recolección de inteligencia.

AttifyOS: una distro para pentesting de dispositivos del IoT

Si no quieres gastar tiempo instalando y configurando un montón de herramientas necesarias para auditar dispositivos del Internet de las Cosas (IoT) puedes usar Attify OS de Aditya Gupta (adi0x90), una distribución que ya contiene las herramientas que tendría a mano cualquier pentester dedicado a tal labor.


Las herramientas que incluye son:

Embedded
  • Binwalk
  • Attify Badge tool
  • Baudrate.py
  • Openocd
  • Flashrom
  • Spiflash.py
Firmware y Software
  • Binwalk
  • Firmware-Mod-Kit (FMK)
  • Firmware Analysis Toolkit (FAT)
  • radare2
  • IDA Demo
  • Dex2Jar
  • JADx
  • ROPGadget
Radio
  • GQRX
  • GNURadio
  • Ubertooth-Utils
  • HackRF
  • KillerBee / Attify ZigBee Framework
Credenciales:

oit : attify123

Enlaces de descarga:

Proyecto:

CIRCLean: usa la Raspberry Pi para "sanear" los dispositivos USB no confiables

El malware usa frecuentemente dispositivos de almacenamiento USB para infectar a sus víctimas, de hecho el abuso de pendrives USB es un vector común de infección (véase por ejemplo que el 66% de los pendrives perdidos pueden contener malware).

CIRCLean es una solución independiente que utiliza una Raspberry Pi para analizar y copiar automáticamente los documentos de un dispositivo USB no confiable a otro confiable, basándose fundamentalmente en las siguientes reglas:
  • Copia directa de:
    • Archivos de texto sin formato (tipo mime: text *)
    • Archivos de audio (tipo mime: audio/*)
    • Archivos de vídeo (tipo mime: video/*)
    • Archivos de ejemplo (tipo mime: example/*)
    • Archivos multipart (tipo mime: multipart/*)
    • Archivos xml, después de convertirse a archivos de texto
    • Archivos de flujo de octetos (Octet-stream)
  • Copia después de verificación:
    • Los archivos de imágenes después de verificar que no son bombas zip (tipo mime: image/*)
    • Archivos PDF, después de marcar como peligrosos si contienen contenido malicioso msword|vnd.openxmlformats-officedocument.|vnd.ms-|vnd.oasis.opendocument*, después de analizar con oletools/olefile y marcar como peligroso si falla el análisis.
  • Copiado pero marcado como peligroso (DANGEROUS_filename_DANGEROUS)
    • Archivos de mensajes (tipo mime: menssage/*)
    • Archivos de modelos (tipo mime: model/*)
    • X-dosexec (ejecutable)
  • Archivos comprimidos (zip|x-rar|x-bzip2|x-lzip|x-lzma|x-lzop|x-xz|x-compress|x-gzip|x-tar|*compressed):
    • Los archivos se descomprimen, con el proceso de descompresión detenido después de 2 niveles de archivos para evitar las bombas zip.
    • Las reglas anteriores se aplican de forma recursiva a los archivos desempaquetados.
CIRCLean funciona actualmente con dispositivos USB que tienen sistemas de archivos FAT32, NTFS o ext2/3/4 (los sistemas de archivos ext* sólo pueden usarse como dispositivos de origen, no como dispositivos de destino). Actualmente, exFAT no es compatible debido a la falta de soporte para este formato en pmount. La gran mayoría de los pendrives USB serán FAT32 o NTFS.

Utilidad para generar macros maliciosas (MMG)

Mr.Un1k0d3r del RingZer0 Team nos trae MMG (Malicious Macro Generator) una sencilla pero útil herramienta en Python diseñada para generar macros ofuscadas que también incluyen un mecanismo de escape de AV/Sandboxes. Las técnicas de evasión que implementa actualmente son:

- Comprobación de dominio: la macro chequea la variable de entorno USERDOMAIN y compara el valor con uno predefinido. Si coinciden el payload se ejecuta.
- Comprobación de disco: la macro comprueba el espacio total en disco total. Las máquinas virtuales y las máquinas para pruebas utilizan discos pequeños la mayoría del tiempo.
- Comprobación de memoria: la macro revisa el tamaño de memoria total. Las VMs y las máquinas para pruebas utilizan menos recursos.
- Comprobación del tiempo de actividad: la macro está supervisando el tiempo de actividad del sistema. Los sandboxes devolverán un tiempo de actividad corto.
- Comprobación de procesos: la macro comprueba si se está ejecutando un proceso específico (ejemplo outlook.exe)
- Ofuscación: el script python también generará código ofuscado para evitar la detección heurística


Requiere sólo Python 2.7 y su uso es bastante sencillo. Sólo tenemos que indicar el fichero de configuración en formato json y el nombre de la macro:

Siete documentales de hackers que no debes perderte

Cuando George V. Hulme, un escritor internacionalmente reconocido que lleva más de 20 años hablando sobre tecnología y seguridad de la información, publica un artículo sobre siete documentales de hacking que no deberíamos perdernos, no podemos hacer otra cosa que compartirlos también con vosotros y apuntarlos como documentales de visionado obligatorio para este (lo que queda de) verano. Ahí os lo dejamos, en estricto orden cronológico:

1.- La Historia Secreta del Hacking (2001): gira alrededor de la vida de tres famosos hackers, John Draper (Capitán Crunch), Kevin Mitnick y Steve Wozniak. El documental es una interesante inmersión en el phreaking de teléfonos, el hacking y la ingeniería social durante los años 90, con una vista en los 70.

Enlace (doblado Español): https://www.youtube.com/watch?v=PqMci8R0wsw

2.- Freedom Downtime (2001): un vistazo interesante (de apoyo) a los tiempos del hacker Kevin Mitnick, la comunidad de hackers más ampliamente, y el movimiento Libre de Kevin. Un documental divertido e informativo si no estás familiarizado con este período de tiempo en la historia del hacking.

Enlace (Inglés): https://www.youtube.com/watch?v=77ILA5Cso3w

3.- Código 2600 (2011): este documental tiene una visión (bastante sombría) del creciente papel que están teniendo Internet y las redes sociales en nuestras vidas, especialmente cuando se trata de privacidad y ciberseguridad, y lo que la edad de la información ha significado para la sociedad.

Enlace (Inglés):
https://www.youtube.com/watch?v=SQ5H01axlLs

4.- DefCon: El documental (2013): DefCon es la conferencia anual de hacking celebrada en Las Vegas. Este documental explora la conferencia durante cuatro días en 2014. Es una mirada visual bastante rara de la DefCon porque los organizadores tienen una estricta política de "no-cámaras". Pero para esta película, se hizo una excepción, y el resultado de la experiencia de la DefCon, su personal y asistentes resultó valer la pena.

Enlace (Subtítulos en Español):
https://www.youtube.com/watch?v=PRHK82VNq74

5.- Ciudadano (2014): aunque no es una película de hacking o sobre la cultura del hacking, es como un viaje que vale la pena ver para cualquier persona interesada en una comprensión de Edward Snowden (Citizenfour). Filmada por Laura Poitras, el documental es una crónica de la opinión de Snowden sobre su divulgación de miles de documentos clasificados de la NSA, según lo dicho a través de sus entrevistas con el reportero Glenn Greenwald.

Enlace (inglés): https://www.youtube.com/watch?v=VbHwmnhYdow

6.- El Hijo de Internet: la historia de Aaron Swartz (2014): trata de la trágica historia del experto en informática y activista online Aaron Swartz. Mientras que Swartz co-fundó Reddit, creó RSS y ha sido elogiado a menudo como genio de la informática, lo que llamaba la atención de las fuerzas de la ley eran sus opiniones sobre el acceso de la información. Según las autoridades, Swartz supuestamente descargó una gran cantidad de artículos de revistas académicas en 2010 y 2011. Fue acusado de varios delitos por acceso no autorizado a los sistemas informáticos del MIT y se suicidó durante, lo que muchos describían, una excesiva acusación federal.

Enlace (Subtítulos en Español):
https://www.youtube.com/watch?v=7jhdj0vKbYo

7.- Zero Days (2016): este documental pinta un retrato serio de cuán vulnerable es el mundo físico a los ataques cibernéticos. Los detalles de Zero Days son precisamente los fallos de seguridad que se conocen públicamente antes de que sean conocidos por el fabricante de software (o antes de que se publique un parche), lo precario que es hoy el mundo altamente conectado y cada vez más conducido por software.

Enlace (inglés):
https://www.youtube.com/watch?v=AcgUGujn_nY

Portia: automatiza el escalado de privilegios durante un pentest

Portia es un género de araña saltadora que se alimenta de otras arañas y es conocida por su comportamiento de caza inteligente y su capacidad de resolución de problemas que por lo general sólo se encuentra en animales más grandes.

Por esa razón, Keith Lee (@keith55) de Spiderlabs eligió ese nombre para una herramienta que presentó en la Defcon 25 y que tiene como objetivo automatizar una serie de técnicas comúnmente realizadas en pruebas internas de intrusión de red después de que una cuenta con privilegios bajos haya sido comprometida
  • Escalado de privilegios
  • Movimiento lateral
  • Módulos convenientes
Portia permite proporcionar un nombre de usuario y una contraseña que haya capturada y crackeada previamente, así como en rangos IP, subredes o listas de direcciones IP. La herramienta encuentra su camino alrededor de la red e intenta obtener acceso a los hosts, encuentra y descarga las contraseñas/hashes y las reutiliza para comprometer otros hosts en la red. En resumen, la herramienta ayuda con los movimientos laterales en la red y la automatización de la escalada de privilegios, así como encontrar datos sensibles que residen en los hosts.

Dependencias

apt-get update
apt-get install -y autoconf automake autopoint libtool pkg-config freetds-dev
pip install pysmb tabulate termcolor xmltodict pyasn1 pycrypto pyOpenSSL dnspython netaddr python-nmap
cd /opt
git clone https://github.com/CoreSecurity/impacket
python setup.py install
cd /opt
git clone https://github.com/libyal/libesedb.git && cd libesedb
./synclibs.sh
./autogen.sh
cd /opt
git clone https://github.com/csababarta/ntdsxtract && cd ntdsxtract
python setup.py install
pip install git+https://github.com/pymssql/pymssql.git
cd /opt
git clone https://github.com/volatilityfoundation/volatility && cd volatility
python setup.py install
cd /opt
git clone https://github.com/SpiderLabs/portia

Consiguen escribir malware en... ¡ADN!

Hasta la fecha siempre se ha pensado que modificar el ADN de forma maliciosa ha tenido como objetivo la creación de un arma biológica en forma de toxina o enfermedad infecciosa, pero modificar el ADN para comprometer la computadora que lo está secuenciando es un nuevo vector de ataque que podrían aprovechar los hackers en los próximos años...

Pensarlo por un momento, ahora parece ciencia ficción pero en un futuro próximo la secuenciación genética se hará mucho más cotidiana y un atacante podría aprovecharlo usando muestras falsas de sangre u otras para obtener acceso a equipos universitarios, robar (o modificar) información de laboratorios forenses de la policía o infectar archivos genéticos compartidos por científicos.

Un grupo de investigadores de la Universidad de Washington se dio cuenta de ésto y demostrarán la semana que viene en la conferencia Usenix de Vancouver que, por primera vez, es posible codificar malware en hebras físicas de ADN, de modo que cuando un secuenciador de genes lo analice los datos resultantes se conviertan en un exploit que tome el control del software y la computadora subyacentes. Es lo que ya han denominado la primera "explotación de un sistema informático basada en el ADN".

Básicamente, el ADN está compuesto por nucleóticos que son cuatro moléculas orgánicas Adenina, Timina, Citosina y Guanina, es decir, ATCG respectivamente. Esas 4 letras se van secuenciando en distinto órden y frecuencia a lo largo de distintos genes en las cadenas que se van entrelazando formando las famosas dobles hélices. A grandes rasgos, cuando se secuencia el ADN lo que se está haciendo es trasladar esas secuencias "ATCG" de nucleótidos a formato digital en un formato llamado FASTQ. El fichero en ese formato ocupa varios gigas de texto por lo que normalmente se suele comprimir, en el caso que nos trae mediante el programa fqzcomp. Hackeando ese software de compresión mediante un exploit de desbordamiento de búfer sería posible ejecutar comandos arbitrariamente... y eso fue precisamente el objetivo de los investigadores.

No obstante la dificultad para la realizar el ataque fue máxima e incluso podríamos decir que llegaron a hacer algo de "trampas" porque en lugar de explotar una vulnerabilidad existente en el programa fqzcomp, modificaron el código abierto del programa para insertar su propio fallo permitiendo el desbordamiento del búfer. De todas formas, se trata de la primera prueba de concepto y tenemos que tener siempre en cuenta que los ataques podrían evolucionar y aprovecharse de nuevas vulnerabilidades existentes. De hecho, el equipo de investigadores encontró hasta tres 'buffer overflows' en programas de secuenciación de ADN diferentes.

Por otro lado, los investigadores consiguieron comprar muestras de ADN por sólo $89 pero en seguida se dieron cuenta de que no era nada fácil codificar el malware en ellas. En primer lugar, el ADN tiene algunas limitaciones fisicas: para que la muestra permaneciera estable tenían que mantener una cierta relación de Gs y Cs con As y Ts, porque la estabilidad natural del ADN depende de una proporción regular de pares A-T y G-C. Por dicha razón tuvieron que rescribir el exploit varias veces para que pudiera "encajar" en el ADN real. En segundo lugar, los secuenciadores de ADN trabajan mezclando ADN con sustancias químicas que se enlazan de forma diferente a las unidades básicas de código del ADN -las bases químicas A, T, G y C- y cada una emite un color de luz diferente capturado en una foto de las moléculas de ADN. Para acelerar el procesamiento, las imágenes de millones de bases se dividen en miles de fragmentos y se analizan en paralelo. Así que todos los datos que comprendieron su ataque tuvieron que encajar en sólo unos pocos cientos de esas bases, para aumentar la probabilidad de que se mantendría intacta durante el procesamiento paralelo del secuenciador.

En cualquier caso, superados estos escollos el equipo de investigadores fue capaz de ejecutar comandos en la máquina secuenciando el ADN...

Las empresas que fabrican ADN sintético están ya en alerta y, tal como sugieren los investigadores, pronto se tendrá que empezar a revisar las secuencias de ADN por posibles amenazas informáticas. Pronto también empezaremos a escuchar mucho más el término de ... biohackers.

Paper: http://dnasec.cs.washington.edu/dnasec.pdf

Fuentes:
- Scientists Hack a Computer Using DNA
- DNA Hacking: Malicious Code Written Into A DNA Strand Can Hack A Computer
- Biohackers Encoded Malware in a Strand of DNA

[Pentesterlab write-up] Web For Pentester II - Randomness Issues & MongoDB injection

Teníamos pendiente terminar el segundo laboratorio de Web For Pentesters de Pentesterlab y para ello nos quedaban dos bloques: uno en el que encontraremos distintos problemas derivados por una mala implementación de funciones de aleatorización (Randomness Issues), y el otro en el que tendremos la oportunidad de inyectar en una base de datos NoSQL (MongoDB injection). ¡Vamos a ello!


RANDOMNESS ISSUES

Ejercicio 1:

En el primer ejercicio las instrucciones nos indican que podemos autenticarnos con las credenciales del usuario “hacker”, que dicho usuario ha sido generado en segundo lugar y nos facilitan el código fuente para que obtengamos la contraseña del primer usuario creado, el usuario “admin”:


Como veis el seed es 0 (Random.new(0)) por lo que la contraseña generada siempre será la misma. Entonces sólo tenemos ejecutar el código facilitado y obtendremos la contraseña:

irb(main):001:0> s = Random.new(0)
=> #<Random:0x00559bb31ceab8>
irb(main):002:0> pass = 6.times.map { ('a'..'z').to_a[s.rand(('a'..'z').to_a.size)]}.join
=> "mpvadd"

Hackazon: una aplicación web vulnerable de e-commerce para practicar

Hackazon es un máquina intencionadamente vulnerable que simula ser una tienda online y que incorpora las últimas tecnologías que se usan actualmente: un interfaz AJAX, un workflow realista de e-commerce e incluso un API RESTful para una aplicación móvil


Aunque Dan Kuykendall aka @dan_kuyendall de NT OBJECTives (ahora Rapid7) la presentó ya hace casi 3 años, en el 2014 en la APP Sec USA de OWASP, sigue siendo una interesante opción a la hora de montar un laboratorio de prácticas.

Hackazon es de código abierto y permite además configurar cada área de la aplicación con el fin de cambiar el panorama de vulnerabilidades y así evitar "pruebas conocidas de vulnerabilidades" o cualquier otra forma de "engaño".

Dado que la aplicación incluye interfaces RESTful que potencian la funcionalidad AJAX y clientes móviles (JSON, XML, GwT y AMF), los usuarios necesitarán las últimas herramientas y técnicas para descubrir todas las vulnerabilidades. Hackazon también requiere probar detalladamente los flujos de trabajo, como carritos de compras, que se utilizan comúnmente en aplicaciones empresariales.

Instalación (entorno WAMP)
  •     Descarga el código
  •     Configura el DOCUMENT_ROOT a /web. Asegúrate de que está activado el soporte de htaccess y REWRITE.
  •     Copia /assets/config/db.sample.php a /assets/config/db.php
  •     Cambia la configuración para la BD en /assets/config/db.php
  •     Abre http://yoursitename/install
* La imagen de Docker está todavía en desarrollo: https://community.rapid7.com/thread/9554

Características
Detalles técnicos

Wiki: https://github.com/rapid7/hackazon/wiki

Manual de usuario (pdf): https://community.rapid7.com/servlet/JiveServlet/downloadBody/3452-102-3-8267/Hackazon_User%27s_Guide.pdf

Solucion al reto 21 "acid pirate"

Cuando el camino es arduo y "las piernas pesan", siempre hay alguien empujando. Lejos quedó la (falsa) figura del hacker solitario, hoy en día relacionarse es fundamental y, por ende, las colaboraciones son fundamentales.

Por eso, nos alegramos tanto cuando nos llegó un correo como el que hace unos días recibimos desde Guatemala: César Calderón (@_Stuxnet) se dio cuenta que hace tiempo que no publicábamos ningún reto y aportaba uno nuevo, el 21 (acid pirate).

¡Gracias, somos Comunidad!

Ganadores

En esta ocasión podríamos decir que prácticamente hubo un empate técnico para la primera posición. Primero recibimos el flag final del reto por parte de Eloy (informaticaeloy), pero el primer writeup por correo electrónico fue de Adrián Fernández. Así que ambos comparten el primer puesto.

Finalmente el podio (que podéis ver también en nuestro hall de la fama) quedó así:

Eloy (informaticaeloy)
Adrián Fernández 
Mauricio Trujillo
José Mejuto (JoshyFun)
MRCl0wn
Y4r4G (Team Whoami)
elvecinodeabajo

Solucionario

Cada uno de los que aparecen en el listado enviaron un writeup perfectamente válido, pero quizás el de Eloy fue le más completo, ya que detalla incluso algunos pasos que luego tuvo que rectificar para la consecución de la resolución del reto. Os dejamos con él: