cool-retro-term, un emulador de terminal retro

Si quieres sentirte como un informático de finales de los 90, como Scoot McNairy en Halt and Catch Fire, alguien que clava su mirada tras el espeso vidrio de sus lentes en el reflejo del fósforo verde de su viejo monitor, ya no tendrás que hacerte con un pesado CRT y adaptarlo para conectarlo a tu computadora...

Filippo Scognamiglio aka Swordfish90 ha publicado en Github cool-retro-term, un emulador de terminal que imita la apariencia de las viejas pantallas de tubo catódico. Funciona bajo Linux u OSX y es bastante personalizable (tiene muchos profiles distintos) y ligera. Requiere Qt 5.2 o superior y es un port de qtermwidget (Konsole) del mismo autor.

En la página del proyecto tenéis las instrucciones para casi todas las distros (Debian, Fedora, Ubuntu, OpenSuse) o para compilarlo directamente. En mi caso, tener instalado en Manjaro (Arch) es tan fácil como:

sudo pacman -S qt5-base qt5-declarative qt5-quickcontrols qt5-graphicaleffects
sudo pacman -S cool-retro-term

cool-retro-term



Proyecto: https://github.com/Swordfish90/cool-retro-term

Tutorial para enmascarar y registrar nuestra IP pública (VPN/TOR) desde el inicio en Linux

Anonimizar y cambiar la IP periódicamente suele ser un requisito indispensable a la hora de realizar cualquier pentest, bien para mantener la privacidad (sobretodo si se están realizando pruebas digamos... no consentidas) o bien para evitar y/o evadir las listas negras de los IPS (sistemas de prevención de intrusiones). Por ello es buena idea crear un servicio que en el arranque de nuestra máquina inicie automáticamente TOR (o el cliente de otra red anónima) y la VPN que normalmente utilicemos. De esta manera lo más importante es que se evitarán las situaciones en las que, normalmente por olvido, se lanzan herramientas antes de enmascarar la IP real del atacante, exponiendo de forma inmediata su geolocalización.

A continuación veremos cómo crear un sencillo servicio en Linux (Kali en el ej.) que en el inicio del sistema levante tor, sobretodo para lanzar algunos comandos con proxychains y navegar a través de privoxy, y un cliente vpn (vpnbook en nuestro ejemplo) para no salir nunca directamente con la IP de nuestro ISP. Además, irá guardando cada cierto tiempo la IP en un fichero de log, algo muy útil por si nos lo piden para el informe o timeline del test de intrusión. Y por último, se comprobará que la IP con la que navegamos está enmascarada y, en caso de no estarlo, parará de inmediato los interfaces de red. Vamos a ello:

Primero descargamos los ficheros de configuración .ovpn en el directorio /etc/openvpn/profiles. Aquí, dependiendo de la VPN o VPNs utilizadas dejaremos tantos ficheros como configuraciones y peers disponga el proveedor, normalmente ubicados en diferentes países. En el ejemplo sólo usaremos cuatro de Europa, pero se pueden añadir muchos más incluso de distintos proveedores de VPN:

root@kali:/etc/openvpn/profiles# wget -qO- -O tmp.zip http://www.vpnbook.com/free-openvpn-account/VPNBook.com-OpenVPN-Euro1.zip && unzip tmp.zip && rm tmp.zip
Archive:  tmp.zip
  inflating: vpnbook-euro1-tcp80.ovpn 
  inflating: vpnbook-euro1-tcp443.ovpn 
  inflating: vpnbook-euro1-udp53.ovpn 
  inflating: vpnbook-euro1-udp25000.ovpn 


Después crearemos un fichero pass.txt que contenga el usuario y la contraseña de la VPN, en el caso de vpnbook está disponible y ni siquiera es necesario registrarse:

root@kali:/etc/openvpn/profiles# echo -e "vpnbook\nnu4uTEc" > pass.txtvpnbook (usuario)nnu4uTEc (contraseña)

El siguiente paso será reemplazar en todos los ficheros .ovpn la línea 'auth-user-pass' por 'auth-user-pass pass.txt' para que utilice el fichero recientemente creado:

root@kali:/etc/openvpn/profiles# sed -i -- 's/auth-user-pass/auth-user-pass pass.txt/g' *.ovpn

Incognito Lock: el cerrojo que se cierra automáticamente al iniciar la navegación privada en Chrome

Mike, el jefe de la Useless Duck Company, ha creado otro gadget "extraño" pero esta vez bastante útil ya que mucha gente parece estar interesada en comprarlo...

Se trata del Incognito Lock o Cerrojo de Incógnito que básicamente es una cerradura de puerta que está conectada a un ordenador. El cerrojo funciona cerrándose automáticamente cada vez que el usuario inicia una sesión de navegación privada en Chrome (aka modo porno).

El artilugio no es más que una placa Arduino conectada al PC y con un servomotor. Cada vez que el sistema operativo detecta que el usuario ha iniciado una sesión de navegación privada de Chrome "alerta" a la placa Arduino, que a su vez envía un mensaje al servomotor para que se mueva y cierre la puerta. Porque todos necesitamos privacidad al navegar por Internet de forma anónima, ¿verdad?

Mike dice acerca de su producto que soluciona el problema a algunos maridos: "¡Seamos realistas chicos! A veces, cuando estás en el equipo, estás haciendo algo que no quieres que tu esposa vea ... como la compra de sus regalos de Navidad. [...] Pero ¿y si aparece de repente en la habitación mientras estabas haciendo las compras ...? "

Vamos... siendo sinceros podemos decir que es el sueño del onanista despistado... lol!

Tenéis el código en https://github.com/nicholmikey/Incognito-Lock

Os dejo un pequeño vídeo y grandes dosis de humor:

Fuente: This Door Lock Automatically Closes When You Switch to Private Browsing

100 grupos de hackers famosos

Como ya sabéis, hace poco el enigmático grupo denominado 'The Shadow Brokers' se hizo con muchas (ciber)herramientas de la NSA supuestamente del otrora grupo 'Equation Group'. Se vuelve hablar mucho de grupos de hackers pero no se trata de una moda reciente: existen desde el primer minuto del nacimiento underground.

Gente que se asocia y trabaja hackeando sistemas con un objetivo común, temporal o permanente, con buenas o malas intenciones... Hay tantos grupos como colores, algunos cuyos miembros se cuentan con los dedos de una mano y otros formados por decenas o quizás cientos de personas anónimas repartidas por todo el mundo.

Cada uno tiene su propia historia. Es imposible saber de todas, sobretodo la de aquellos cuya labor no ha transcendido, ya porque no fue lo suficientemente relevante o porque se su actividad se mantiene en la sombra (y quizás nunca se descubra).

Pero al menos si nos parece interesante tener un recopilatorio de aquellos que nos atrevemos a denominar "famosos" porque sus hazañas se conocen y han saltado a los medios de comunicación. Así que aquí os dejamos una lista en estricto orden alfabético de, nada más y nada menos, 100 grupos de hackers de ayer y hoy y para todos los gustos, un imprescindible para entretenerse en verano siguiendo cada enlace y alimentando nuestra cultura hacker ;)
  1. !Hispahack
  2. 414s
  3. A-Team
  4. Ajax Security Team / Flying Kitten
  5. Anonymous  
  6. Apòstols 
  7. APT28
  8. Armada Collective
  9. Axiom
  10. Bureau 121
  11. Chaos Computer Club

Toolkits ofensivos en PowerShell

PowerShell es muy potente porque permite ejecutar .Net y código dinámico desde otro sistema (también en Internet) y ejecutarlo en memoria sin tocar el disco. Eso hace que usarlo sea uno de los métodos preferidos para ganar y mantener el acceso a sistemas Windows. Sin embargo la versión 5 ya mejora la seguridad y cuando se ejecuta en Windows 10 las capacidades de ataque disminuyen.

No obstante, todavía Powershell sigue siendo un arma muy útil en cuanto no se suele bloquear su uso (como se hace por ej. con cmd.exe), no se monitoriza y muchos productos de seguridad de puesto de usuario ni siquiera revisan su actividad. Además existen algunos toolkits de ataque en Powershell que facilitan mucho la vida a los pentesters (buenos y malos):

PowerSploit

Descripción: Un Framework de Post-Exploitation en powershell usado por muchas herramientas de ataque.
Uso: Recon, escalado de privilegios, robo de credentiales, persistencia.
Autores: Matt Graeber (@Mattifestation) & Chris Campbell (@obscuresec)
Cmdlets populares:
  • Invoke-DllInjection.ps1
  • Invoke-Shellcode.ps1
  • Invoke-WmiCommand.ps1
  • Get-GPPPassword.ps1
  • Get-Keystrokes.ps1
  • Get-TimedScreenshot.ps1
  • Get-VaultCredential.ps1
  • Invoke-CredentialInjection.ps1
  • Invoke-Mimikatz.ps1
  • Invoke-NinjaCopy.ps1
  • Invoke-TokenManipulation.ps1
  • Out-Minidump.ps1
  • VolumeShadowCopyTools.ps1
  • Invoke-ReflectivePEInjection.ps1

Invoke-Mimikatz

Características: Ejecución de Mimikatz desde PowerShell, robo de credendiales e inyección, creación de tickets Kerberos y más
Uso: robo y reutilización de credenciales, Persistencia
Autor: Joseph Bialek (@clymb3r)

PowerView

Descripción: Herramienta de enumeración del DA escrita puramente en PowerShell. Ahora forma parte de PowerSploit.
Uso: Recon
Autor: Will Harmjoy (@HarmJ0y)
Cmdlets populares:
  • Get-NetUser
  • Get-NetGroup
  • Get-NetGroupMember
  • Get-NetLocalGroup
  • Get-NetSession
  • Invoke-UserHunter
  • Get-NetOU
  • Find-GPOLocation
  • Get-NetGPOGroup
  • Get-ObjectACL
  • Add-ObjectACL
  • Invoke-ACLScanner
  • Set-ADObject
  • Invoke-DowngradeAccount
  • Get-NetForest
  • Get-NetForestTrust
  • Get-NetForestDomain
  • Get-NetDomainTrust
  • Get-MapDomainTrust

RetroScope: herramienta forense para recuperar las últimas imágenes de un dispositivo Android

Imagina que un criminal tiene una conversación en Telegram con uno de sus contactos para facilitarle la dirección de recogida de cierta mercancía. Justo antes de enviar el mensaje que está escribiendo con la dirección, se da cuenta de que la policía le sigue y no lo manda, incluso borra todos los logs y cierra la sesión. Al rato la policía entra y confisca su smartphone y una hora después incauta la mercancía... ¿Cómo es posible que la policía supiera la dirección si no llegó a mandar el mensaje con la información?

Seguro que habéis pensado que el smartphone estaba troyanizado antes y las fuerzas de seguridad usaban un keylogger, pero no es el caso...

La policía usó la herramienta RetroScope, volcó la memoria del dispositivo y fue capaz de reconstruir las imágenes anteriores de forma similar a como se hizo en el siguiente video:


¿Impresionante verdad? La herramienta fue publicada por investigadores de la universidad Purdue de Indiana el pasado USENIX Security Symposium del 10-12 de agosto y usa el framework de renderizado de Android para recuperar las últimas imágenes de la memoria volátil con el comando redraw. Durante las demos fueron capaces de recuperar de 3 a 11 últimas imágenes de 15 aplicaciones diferentes. Sin duda un nuevo paradigma en la investigación forense de dispositivos móviles.

Proyecto: https://github.com/ProjectRetroScope/RetroScope

¡Guerra de hackers! publican algunas herramientas que usa la NSA y ponen en venta el resto

Erase una vez un grupo de hackers que viene operando desde mediados de los 90 en más de 30 países, uno al que llaman Equation Group porque sus integrantes usan múltiples algoritmos de cifrado, estrategias de ofuscación y métodos increíblemente sofisticados en sus operaciones (incluso la capacidad infectar el firmware de discos duros).

Su infraestructura de C&C contempla más de 100 servidores y 300 dominios "por proxy" para ocultar la información del registrador y muchos les relacionan directamente con la mismísima NSA ya que se cree que realizan trabajos de hacking contra gobiernos y desarrollan herramientas de ciberespionaje para Estados Unidos.

Pues bien, el 13 de agosto entró en escena otro misterioso grupo denominado The Shadow Brokers que asegura haber comprometido los sistemas de varios hackers de Equation extrayendo datos que incluyen varias de sus herramientas de hacking y ciberespionaje. En el primer leak publicaban dos enlaces para descargar ficheros cifrados con PGP:

- El primero “eqgrp-free-file.tar.xz.gpg” (mirror en Github) es una "muestra gratuita" para probar su hazaña con 300MB de herramientas, scripts y exploits bajo los pseudónimos BANANAUSURPER, BLATSTING, BUZZDIRECTION...

- El segundo “eqgrp-auction-file.tar.xz.gpg”, todavía disponible en MEGA pero por descifrar, tiene como *absurdo* precio 1 millón de bitcoins, 1/15 del total de BTC en el mundo, lol! ...


Pero, ¿se trata realmente de las herramientas de Equation Group / NSA? Pues viendo el primer archivo todo apunta que sí...

UACME y dí adiós al mensaje “¿Desea permitir que este programa realice cambios en el equipo?”

El Control de Cuentas de Usuario (UAC) en Windows es un componente de seguridad que permite a los usuarios realizar algunas tareas sin tener que cambiar de usuario, cerrar sesión, o utilizar "Ejecutar como".

Las cuentas de usuario que son miembros del grupo Administradores locales ejecutan la mayoría de las aplicaciones como un usuario estándar. Es decir, al separar las funciones de usuario y administrador, UAC permite usar por defecto privilegios estándar y sólo "elevarlos" cuando sea necesario.

Cuando un administrador inicia sesión en un equipo que ejecuta Windows, al usuario se le asignan dos tokens de acceso independientes. Los tokens de acceso, que contienen la pertenencia a grupos de un usuario y los datos de autorización y control de acceso, son utilizados por el sistema operativo para controlar cuáles son los recursos y tareas a los que tiene acceso.

Anteriormente el modelo de control de acceso en los sistemas Windows anteriores no requería ningún token de acceso administrativo. Como resultado, se podía instalar software malicioso sin notificar a los usuarios (instalación "silenciosa"). O peor, si el usuario era administrador, el software malicioso podía llegar a infectar archivos del kernel convirtiéndolo en casi imposible de eliminar. Sin embargo la alerta o prompt "mágico" de UAC da al usuario la oportunidad de detener la amenaza antes de que llegue a materializarse.


Pero el malware siempre va un paso adelante y desarrolla continuamente nuevos métodos para evadir UAC y poder propagarse por el sistema de la víctima sin que se percate. Para ver las técnicas más populares la herramienta de facto es sin duda UACME, escrita en C y de código abierto que, a día de publicación de esta entrada, implementa 23 métodos distintos de los cuales, los cuatro últimos, todavía no han sido corregidos y funcionan desde Windows 7 a 10rs1 14393:

20 - Método híbrido, abusa de la Microsoft Management Console y un incorrecto esquema de carga de dlls
21 - Método híbrido, abusa de SxS DotLocal con sysprep
22 - Método híbrido, abusa de SxS DotLocal con el consentimiento para ganar privilegios de sistema
23 - Método híbrido, abusa del Package Manager y DISM

Su ejecución es tan sencilla como llamar al programa correspondiente a la arquitectura del sistema (32 o 64 bits) con el parámetro del método a probar y opcionalmente otro programa a lanzar después del bypass. Por ej.:

    akagi32.exe 1
    akagi64.exe 3
    akagi32 1 c:\windows\system32\calc.exe
    akagi64 3 c:\windows\system32\charmap.exe


No obstante y avisados estáis, es recomendable ejecutarlo en un entorno de pruebas ya que algunos métodos persisten incluso después de reiniciar y requieren su corrección manual.

Proyecto: https://github.com/hfiref0x/UACME

MAT: una herramienta para borrar metadatos en múltiples formatos

Cuando haces una foto tú cámara añade por defecto al fichero resultante los datos del modelo del dispositivo y dónde y cuándo se tomó dicha foto; en la mayoría de los documentos ofimáticos (pdf u office) se incluye automáticamente información del autor y la compañía correspondientes... Son los típicos ejemplos de lo que (y ya sabes de lo que estamos hablando) se denomina comúnmente metadatos.

Toda esta información que dejamos (casi siempre de forma inconsciente) en numerosos archivos incluso en Internet, puede exponer nuestra privacidad y es auténtico "oro" para muchos con no demasiadas buenas intenciones. Por eso si vas a subir un archivo y quieres mantener cierto nivel de anonimato puede ser es buena idea limpiar los metadatos antes.

Para ello hoy hablamos de MAT (Metadata Anonymisation Toolkit), una herramienta escrita en Python para limpiar metadatos que fue desarrollada durante el Google Summer of Code de 2011 bajo el paraguas del proyecto Tor y que se incluye por defecto en Tails y en los repositorios de Debian.
Y quizás su característica más interesante es que, a diferencia de otras herramientas como exiftool, es capaz de tratar un gran número de formatos:
  •     Portable Network Graphics (.png)
  •     JPEG (.jpg, .jpeg, …)
  •     TIFF (.tif, tiff, …)
  •     Open Documents (.odt, .odx, .ods, …)
  •     Office OpenXml (.docx, .pptx, .xlsx, …)
  •     Portable Document Fileformat (.pdf)
  •     Tape ARchives (.tar, .tar.bz2, …)
  •     MPEG AUdio (.mp3, .mp2, .mp1, …)
  •     Ogg Vorbis (.ogg, …)
  •     Free Lossless Audio Codec (.flac)
  •     Torrent (.torrent)

Proyecto: https://mat.boum.org/

Dónde obtener MAT:
Referencias:
pd. No obstante si quieres ser totalmente anónimo usa formatos que no contengan metadatos, o mejor, usa texto plano. Aún así ten en cuenta que existen múltiples técnicas de fingerprinting y seguimiento. ¡Se cuidadoso!

Cómo identificar el proceso que está usando un puerto TCP determinado

Seguro que ya os ha pasado, al iniciar un servicio (o una shell }:-)) falla porque hay otro proceso que ya levantó anteriormente el mismo puerto TCP...

Para encontrar rápidamente que proceso está usando el puerto en cuestión lo más fácil y recurrente es usar el comando "netstat" y bueno... vi una breve entrada en la wiki de SAP y siempre está bien tener una chuleta a mano en el blog... :-P

LINUX:
> netstat -nepal|grep 8080
tcp 0 0 :::8080 :::* LISTEN 10404 18906159 7952/java

En este primer ejemplo (Linux) vemos que el proceso con PID 7952 (java) está usando el puerto TCP 8080.

WINDOWS:
> netstat -nao|findstr 8080
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 3696
TCP []:8080 []:0 LISTENING 3696

En este ejemplo en Windows, encontramos que el proceso con PID 3696 es el que tiene ocupado el puerto (8080).

También es posible usar en Windows "netstat -ab" que mostrará todos los procesos asociados al puerto. La opción "a" lista todas las conexiones y la opción "b" muestra el ejecutable correspondiente.

AIX:
> netstat -Aan | grep 8000 | grep LISTEN
f1000e000130bbb8 tcp4       0      0  *.8000                *.*                   LISTEN
> rmsock f1000e000130bbb8 tcpcb
The socket 0xf1000e000130b808 is being held by proccess 13893704 (icman).
> ps -ef | grep 13893704
  vmcadm 13893704  9175156   0   Dec 22      -  0:17 icman -attach pf=/usr/sap/VMC/SYS/profile/VMC_DVEBMGS00_is4039

SOLARIS:
> ps -ef| awk '{print $2}'| xargs -I '{}' sh -c 'echo Verifying PID {}; pfiles {} 2>/dev/null|grep "port: 3900"|grep -v grep'
(...)
Verifying PID 3150
Verifying PID 4848
Verifying PID 4891
Verifying PID 7900
   sockname: AF_INET 0.0.0.0  port: 3900
Verifying PID 4831
Verifying PID 23568
Verifying PID 7928
Verifying PID 9662
(...)
> ps -ef|grep 7900|grep -v grep
  qpkadm  7900  7840   0   Jun 21 ?           1:38 ms.sapQPK_DVEBMGS00 pf=/usr/sap/QPK/SYS/profile/QPK_DVEBMGS00_fs4400

El primer comando mostrará la lista con el PID de todos los procesos activos en el sistema. El número de puerto debe ser indicado con el comando "grep".

El PID que está usando el puerto será el inmediatamente anterior a la línea que termina en "port: " ("port: 3900" en el ejemplo anterior).

El segundo comando mostrará la informacion del proceso en sí mismo.

Fuente: https://wiki.scn.sap.com/wiki/display/SI/How+to+find+the+process+binding+a+TCP+port