RSS |

Blog de Omar

Just another WordPress weblog

Advertisement

Presentación ISACA Student Group – PUCP 2016

Señores, sin  mucho más que decir, les adjunto la presentación del evento “ISACA Student Group – PUCP 2016”.

banner

 

Descarga la presentación: [AQUÍ]

Popularity: 2% [?]

Post Relacionados

Estúpido y sensual EXCEL: Me robo tu información con una encuesta

portada

 

Realizar hacking es más fácil de lo que parece o al menos eso es lo que trato de hacer parecer con este blog y hago lo propio cada vez que dicto capacitaciones en diversas empresas. Lo cierto es que lo único que necesitamos muchas veces es tan sólo un momento de lucidez, un momento de espiración, un poco de alcohol y dejar que las ideas fluyan a la buena o a la mala (cuando el cliente nos mete presión peor que Diego Godín cuando defiende a su selección) .

Después de una semana de agonía donde vi caer una vez mas a la selección peruana por las clasificatorias Rusia 2018, he decidido escribir sobre unas de las técnicas que suelo utilizar cuando nos solicitan realizar pruebas de Ingeniería Social, sólo necesitamos mezclar algunas técnicas del tipo spear phishing y obtendremos resultados muy interesantes. Vamos a utilizar un programa que todos suelen utilizar, el estúpido y sensual EXCEL.

¿Cómo lo vamos hacer?

  1. Primero, la idea es  utilizar Ingeniería Social para esto, hay que hacer que nuestro archivo Excel llegue a las manos de nuestra amigo víctima y que sea lo suficientemente creíble para que pueda ser abierta (aquí esta el ingenio y el verdadero trabajo).
  2. Una vez que nuestro causa víctima haya abierto el archivo, todo cae por su peso, producto de la ingenuidad, de la estupidez confianza que tienen las personas para ejecutar MACROS en los archivos Excel. Hay que admitirlo, a las personas les gusta Excel, al diablo con las Bases de Datos Oracle, MySQL, etc; la mejora base de datos para el común de los mortales un archivo XLS.
  3. El archivo Excel contiene una pequeña encuesta pero detrás de esto se ejecuta una MACRO muy linda, la macro hace lo siguiente:
    1. Crea unos archivos tipo LOGS en el directorio D:\ del computador, estos archivos sólo los utilizo como evidencia de que se puede ejecutar cualquier comando.
    2. La MACRO ejecuta comandos FTP y realiza una conexión a un servidor externo en Internet y envía archivos hacia un lugar lejano, muy lejano.
    3. Finalmente, la MACRO buscar archivos con una extensión específica, para la prueba de concepto (POC) sólo busca archivos PDF en el directorio D:\ ¿quieren algo más sofisticado? pues esfuércense un poquito.

  4. Finalmente, aparece un mensaje de agradecimiento indicando que han enviado los datos solicitados para la encuesta. A veces hasta te nuestro súper amigo víctima envía un correo indicando que ya respondió la encuesta y que merece un ascenso por ser tan proactivo.

Les dejo una imagen de la encuesta que se me ocurrió para el evento de ISACA del año 2015, cuando dabas CLIC en el botoncito “Enviar Encuesta” has sido OWNEADO.

2

 

Dejen volar su imaginación: algunas variantes interesantes

1. Que tal si …. obtenemos las contraseñas de las redes Wireless que almacenan los computadores.

Se me ocurre que en vez de ejecutar un simple IPCONFIG como en el ejemplo anterior, ejecutamos un comando para obtener las contraseñas en texto claro de las redes inalámbricas almacenadas en el computadores de nuestra víctima.

3

 

Y ya está, no necesitamos hacer mucho esfuerzo para obtener la contraseña de la red inalámbrica, además,  imaginemos un hacker un poco más interesado y preocupado en poder obtener información seguro que ya realizó algo de wardriving previo al envío del archivo Excel. Aquí puedes aprender como realizar wardriving de manera rápida y sencilla [AQUÍ].

 

2. Que tal si…. ejecutamos comandos interesantes

Y finalmente, se me ocurren ejecutar comandos interesantes para obtener información del computador de una organización y que puede servirnos para ir escalando privilegios en otros computadores de la organización, a continuación alguno de los comandos que podríamos utilizar:

  1. Net user: Para obtener los usuarios locales del sistema operativo o para agregar usuarios.
  2. Net localgroup Administradores [Administrators]: Para obtener los usuarios que pertenecen al grupo de Administradores
  3. Arp –a: Para obtener el listado de direcciones IP con las que ha estado en comunicación el computador.
  4. Netsh advfirewall firewall show rule name=all: Para obtener las reglas del firewall del computador.
  5. dir /s/b  D:\*.pdf: Para buscar archivos PDF en el directorio D:\ del computador de manera recurrente.
  6. Lo que sea fruto de tu imaginación.

4

 

¿Cómo prevenimos este tipo de ataques?

  1. Si nos encontramos en un dominio, es decir, nuestra computadora se encuentra attachada a un Active Directory, podemos configurar una GPO que deshabilite la ejecución de Macros.

    5
    Nota: Debes deshabilitar las macros para programa de Office, es decir, deshabilitar para Microsoft Word, Microsoft Excel, Microsoft Power Point, etc. Los excel son los mas peligrosos por lo general porque son los mas comunes.

    Nota2: Hay forma de sacarle la vuelta a la aplicación a la aplicación de la política del AD, toca guardar el archivo Excel en la Trusted Location, que son directorios donde la GPO no aplica. Absurdo por todos lados.

    7

  2. En general, no me da ninguna confianza ejecutar ningún archivo que contiene una MACRO. El mensaje de advertencia es tan grande que desanima a cualquiera abrir un archivo de este tipo. No lo abras!!

6

 

Listo señores, el resto de lo que pueden hacer con Excel se los dejo a su imaginación. Nos vemos y happy hacking!! wq!

 

************************************************************

Popularity: 7% [?]

Post Relacionados

Hookworm: Un backdoor silencioso con PHP – Parte 02

Como lo prometido es deuda, estoy tratando de escribir más seguido en el blog. Dejando de lado el tedioso proceso de documentación de los proyectos que estoy realizando, dejando de lado el calor infernal que nos asfixia en Lima durante este verano y dejando de lado la pereza dominical que me invade cada fin de semana que me estoy atreviendo a escribir un nuevo post en el blog.

Antes de comenzar, es casi un requisito leer el post anterior donde habíamos revisado algunas técnicas backdoors que ahora vamos a utilizar: [Backdoors en Linux – Parte 01]

Google Hacking y backdoors

Hay algunos backdoors que son fácilmente de ubicar a través de algunas técnicas de Google Hacking, por lo general estos archivos son utilizados porque son empaquetados y están listos para ser utilizados. Los más comunes son los famosos C99.PHP, C100.PHP, R57.PHP y todas sus variantes. De hecho es muy fácil encontrar servidores que han sido vulnerados y cuyos sysadmins aun no han advertido del hacking ocurrido sobre sus servidores.

image

 

image

 

Ok y si son tan buenos backdoors que todos utilizan, ¿cuál es el problema? de hecho si hay problema, cuando se instalan estos backdoors las solicitudes a estas páginas se realizan a través del método GET y son muy evidentes cuando se revisan los logs, es decir, un administrador de sistemas puede notar algún movimiento extraño al llamar a un archivo que normalmente no forma parte de la aplicación. De hecho hay dos (02) maneras básicas para poder detectar posibles backdoors que podría utilizar un administrador de sistemas:

  1. A través de la evaluación de los logs del servidor: Esto se podría hacer manualmente, es decir buscar archivos clásicos utilizados como backdoors, [AQUÍ] una lista de los más utilizados. Existen herramientas que automatizan la revisión de los archivos de eventos en busca de palabras típicas de un evento de hacking.

    image

    Una herramienta muy interesante para analizar logs de un servidor APACHE se llama LORG y encuentra todo tipo de ataques realizados al servidor. Pueden encontrar mayor información del proyecto LORG en el siguiente enlace: [AQUÍ]. Yo lo instalé para probarlo y ver si detectaba un backdoor muy conocido como el C99.PHP y no lo identificó, realicé algunos ataques manuales de Inyección de Código SQL y funcionó muy bien, aquí si detecto el ataque, les dejo algunas gráficas para que vean como funciona.

    image

  2. A través de scripts que revisan los archivos tipo PHP en busca de funciones “maliciosas” en el servidor, es decir, funciones que no deberían ser utilizadas normalmente, por ejemplo, funciones: EVAL, SYSTEM, EXEC, etc etc. Al final lo que hace este script es buscar funciones dentro de los archivos y nos muestra un resumen de los archivos que ha encontrado con información de posibles puertas traseras.

    Existen varias herramientas que hacen esta revisión:

    - Neopi [Enlace AQUÍ]: De manera personal debo decir que este script realizado en Python no me gusto mucho, me mostraba muchos falsos positivos a pesar de que utilicé los diferentes mecanismos de detección, a pesar de eso pueden probarlo y sacar sus propias conclusiones.

    - PHP SHELL Detector [Enlace AQUÍ]: Este es mucho más simple de utilizar, basta copiar los archivos en el directorio raiz de nuestro apache y ejecutarlo desde el browser. Me gustó porque detectó los backdoors que había colocado en mi servidor de prueba. Lo recomiendo totalmente, aquí les dejo unos printscreen de los resultados obtenidos, en la imagen se puede observar como detectó un archivo PHP ofuscado y el clásico C99.PHP.

    image

    image

  3. Otro mecanismo para detectar los backdoors es buscar de manera manual funciones maliciosas. ¿De manera manual? Pues, es como si tuviéramos que buscar un string en unos archivos que están en determinada carpeta.

image

 

 

Hookworm: Un backdoor muy silencioso

Todas las técnicas arriba mostradas para detectar puertas traseras son las más básicas y seguro funcionan muy bien pero si queremos esconder algún backdoor hay muchas formas interesantes de poder hacerlo y obviamente sin que alguien pueda advertir de su presencia. Voy a detallar los pasos para tener un backdoor en el servidor, aunque primero voy a detallar un escenario para que se comprenda mejor:

Escenario:

Un atacante tiene acceso a través de SSH a un servidor Linux ya que obtuvo la contraseña, un patrón de contraseña utilizado por el administrador de servidores para todos los servidores de la organización. El atacante sabe que el acceso a través de SSH solo es posible desde la red LAN de la empresa y que sólo el puerto TCP/80 del servicio Apache se encuentra expuesto a Internet. Además, cabe la posibilidad que el administrador de servidores restrinja el acceso al puerto SSH a ciertas direcciones IP por lo que es imperativo dejar un backdoor que cumpla con tres (03) características: que le permita acceder con privilegios del usuario ROOT,  sea accedido desde Internet y que además sea lo mas sigiloso posible para pasar desapercibido.

Pasos a realizar:

1. Crear y compilar un archivo escrito en C para obtener un ejecutable. Configurar el SETUID para que se pueda ejecutar con permisos de ROOT.

2. Modificar un archivo el servidor web, de preferencia un archivo PHP que ya existe y añadir la siguiente línea:

image
3. Si reparan en el archivo PHP creado en el paso 02, lo que realmente hace es recibir la variable enviado a través de la cabecera HTTP, en este caso las cookies. Estas cookies recibidas son ejecutadas en el sistema operativo para acceder a cierta información. Lo único que nos falta es poder ejecutar comandos con privilegios de ROOT. Es aquí donde entra el paso 01, con el archivo escrito C y configurado el SETUID podemos obtener estos permisos. Nada complicado por si lo notan, sólo que sigiloso ya que no son enviadas a través de GET o POST.

A. Entonces creamos el archivo en C y lo compilamos para tener un ejecutable. Esto ya lo hicimos en un anterior POST donde está mejor explicado, puedes leer el detalle [AQUÍ]

 

B. Desde un navegador web en donde podamos modificar las cabeceras HTTP y colocar un valor en el cookie. Podríamos haber utilizado BURP SUITE o el TAMPER. Yo he utilizado el Burp Suite que se me hace más fácil de utilizar.

image

 

C. Ahora si ejecutamos comandos de manera conjunta con el backdoor que hemos dejado podemos pasar a convertirnos en ROOT y ser felices tan sólo una vez mas.

image

 

Finalmente, podríamos reemplazar la función SHELL_EXEC (  ) con la función EVAL(  ) de PHP para que pueda pasar más desapercibido todavía. Esto lo haremos en el video para no alargar mas el POST. Hasta pronto.

image

Pd: Este POST comenzó a escribirse el domingo 28 de Febrero de 2016 y terminó de escribirse el 09 de Marzo, me estoy haciendo viejo para escribir en el blog Triste. Saludos.

Popularity: 5% [?]

Post Relacionados

  • No Related Posts
Puertas Traseras: Backdorizando un Linux–Parte 01

1Después de mucho tiempo me tomo algo de tiempo para escribir, sin más preámbulo voy a escribir sobre puertas traseras en sistemas operativos basados en Linux. Las puertas traseras o backdoors son mecanismos de acceso que se instalan o configuran en un servidor para poder tener un acceso  rápído y facil al después de haber tenido acceso al mismo. Hace algún tiempo escribí sobre backdoors en sistemas Operativos Windows, aquí puedes ver los posts:

  • Making Metasploit Backdoors – Parte 1 [AQUÍ]
  • Making Metasploit Backdoors – Parte 2 [AQUÍ]

Algunas premisas:

Antes de que inicies a leer este POST, debes tener en cuenta lo siguiente sobre los backdoors:

  1. Un backdoor se puede instalar cuando el sistema ya ha sido vulnerado (obvio pero lo digo por si acaso).
  2. Si alguna vez te dejaron un computador Linux por unos momentos, este post es para PARA TI.
  3. Un backdoor puede ser instalado si es que tenemos un acceso físico al computador. Por ejemplo: “Te dejo la compu un momento, voy al baño”, es aquí donde puedes aprovechar, es tu momento.
  4. La idea de un backdoor es pase lo mas desapercibido posible, es decir, que el sysadmin no sospeche que podemos acceder a su computador/servidor cuando nosotros querramos.

Bueno, sin más preámbulo iniciemos con los métodos para backdoorizar un sistema Linux.

 

Los archivos utilizados en este POST lo pueden descargar desde: [AQUÍ]

Método 01: Setuid Backdoors

Un poco de teoría

Todos hemos escuchado hablar de los permisos en Linux, verdad? obvio que sí pero de pronto algunos nunca escucharon de los permisos GETUID, SETUID y STICKY. Pues este mecanismo de backdoor está asociado a SETUID.

¿Entonces en que consiste el SETUID?

El SETUID es un bit que permite a las aplicaciones ejecutarse con los permisos de su propietario. El concepto puede sonar muy abstracto pero si ponemos un ejemplo es más facil entender, vamos a crear un archivo llamado TEST.C y lo compilamos.

image

 

Ahora vamos a ejecutar el archivo TEST con un usuario distinto al de ROOT y veremos que los comandos CAT /ETC/SHADOW y LS /ROOT no se ejecutarán debido a que no cuentan con los permisos requeridos. Sin embargo, si le asignamos el bit SETUID se logran ejecutar los comandos debido a que ahora cuentan con los permisos de su propietario, es decir, de ROOT.

image

 

Le asignamos el bit SETUID y vemos que se puede ejecutar los comandos.

image

 

Este es sólo un resumen  rápido del bit SETUID pero si aún te quedan dudas de como funciona puedes revisar los siguientes enlaces:

Ahora sí el BACKDOOR

Bueno, ahora que ya vimos algo de la teoría necesaria, vamos a plantar el backdoor en el servidor utilizando SETUID. Vamos a crear un pequeño programa en C en donde se ejecutar una shell con los permisos de ROOT al invocarlo, es decir, cada vez que un usuario diferente a ROOT ejecute este archivo vamos a obtener una SHELL con los permisos de ROOT. Lo que toca es colocar (o esconder) este ejecutable en un lugar en donde nadie pueda sospechar que exista y asi podremos tener una shell para acceder como ROOT cuando quisieramos.

 

image

 

Algunos son mas ingeniosos, es decir, imaginemos que tenemos un Sysadmin algo curioso y encuentra un ejecutable con un nombre extraño y lo ejecuta, caramba!! habremos sido descubiertos y tendremos que buscar una buena excusa para argumentar porque dejamos un backdoor. Debido a eso podemos ser un poco más ingeniosos y hacer parecer nuestro ejecutable malicioso un ejecutable conocido e inofensivo. Miran el siguiente ejemplo:

 

image

 

 

Método 02: Backdoors en Archivos .deb

Los archivos con extensión DEB son los paquetes utilizados por distribuciones Linux basados en Debian. Digamos que es algo así como un .EXE en Windows (algo así). Cuando los archivos .DEB son instalados ejecutan unos comandos de postinstalación, basicamente para borrar algunos archivos temporales creados durante la instalación, pues lo que vamos hacer es editar esos comandos que se ejecutan POST instalación para beneficiarnos. A continuación los pasos para colocar un backdoor en un archivo .DEB:

 

  1. Vamos a utilizar un archivo .DEB que sepamos que el sysadmin va a instalar, digamos que tenemos acceso al repositorio de instaladores que normalmente usa el sysadmin y vamos a colocarle un backdoor.
  2. Vamos a utilizar el archivo sudo.c que creamos en el ejemplo anterior para colocarlo dentro de la nueva estructura del archivo .DEB. Aquí vamos:

 

  • Descargarmos un paquete, en este caso el freesweep.deb pero puede ser cualquiera. Fijense que le hemos puesto la opción –download-only para que no se instale sino que sólo se descargue.
  • Creamos una carpeta de trabajo llamada /tmp/prueba/work y sobre esa carpeta vamos a trabajar y modificar el archivo .DEB

image

 

  • Ahora toca crear el archivo POSTINST que se ejecuta después de instalar el paquete .DEB, en el archivo POSTINST hemos añadido una línea para que nuestro backdoor funcione.

image

 

  • Finalmente, el sysadmin instala el paquete y la instalación generará el archivo /usr/share/menu/freesweep.old en el servidor. Este archivo luego puede ser utilizado por un usuario de menos privilegios para obtener una shell con permisos del usuario ROOT.

image

Algunos detalles:

El segundo método utilizado es algo tedioso si es que vemos que el resultado es el mismo que el primer método, obtener un ejecutable que nos permite acceder como ROOT; además hay ciertas desventajas:

  • El ejecutable malicioso llamado SUDO tendría que haber sido compilado en el mismo servidor o en un servidor con la misma infraestructura (lo que nos quita algo de tiempo)
  • Tardamos mucho en el segundo método, por lo que el primer método por ser más rápido seria a todas luces mucho mas conveniente. Sin embargo, que tal si colocamos un ejecutable que intente conectarse remotamente a través de NETCAT o a través de una conexión reversa. Ese mecanismo es ya conocido y está en portal web de Offensive Security así que no pienso repetirlo en el blog pero sí en el video de manera rápida.

 

Conclusiones:

  1. Nunca le dejes tu computador desbloqueado a nadie, menos con privilegios de ROOT.
  2. Si tu computador Linux ya ha sido vulnerado lo más probable es que te hayan dejado algún backdoor y no te des cuenta. Y si tienes algún ROOTKIT pues….. mejor dile adiós a tu sistema operativo.
  3. Trataré (no prometo nada) escribir más seguido.

 

*****************************************************

Popularity: 7% [?]

Post Relacionados

Routers, Facebook y otras hierbas

Si hay algo que no logro comprender todavía en esta vida es esa estúpida pregunta que me suelen hacer cada vez que menciono el “humilde” oficio al que me dedico, las preguntas varían tanto como entre tomar una Coca-Cola y una Pepsi con los ojos cerrados y es que las estadísticas indican que tod@s siempre terminarán haciéndome tarde o temprano (más temprano que tarde) la misma cojuda pregunta: “¿entonces…. me puedes hackear un facebook?” o algunos más osados todavía me preguntan: “¿me puedes enseñar a hackear un facebook….?”

Digamos que las conversaciones suelen ser bastante escuetas y cada vez que me hacen la trillada pregunta: “¿y a que te dedicas?” ya empiezo a sospechar en que terminará la conversación, por lo general suelo decir soy Ing. de Sistemas para ahorrar palabras y explicaciones insulsas pero nunca faltan los  preguntones, los curiosos, los escarbadores que insisten para saber el detalle de mis actividades cotidianas y como ya les conté, casi siempre termina en la misma pregunta de siempre, es decir, tratando de ultrajar sin piedad el Facebook de una insospechada víctima.

Aquí alguna de mis colecciones que pronto espero colocar en una sección de fotos del Facebook llamada “El Muro de la Fama”.

 

27 28

2014-11-23_09-36-38

2014-11-23_09-39-09

2014-11-23_09-39-28

2014-11-23_09-52-10

 

Sólo tengo una curiosidad adicional, ¿el escenario se repetirá para todas los profesiones?, o sea….. nadie va por la vida pidiéndole a un Ing. Civil que le construya un edificio de cinco pisos cada vez que menciona su profesión, tampoco recuerdo haber escuchado  que desafíen a un actor que estalle en llanto de un momento a otro para recién creerle que es un actor profesional, pffff bobadas everywhere. Ahora si iniciemos con la seguridad.

 

Hackeando Routers hasta llegar al Facebook

Como siempre este blog tiene como objetivo dos (02) cosas, primero aprender a protegernos y segundo conocer las técnicas que utilizan los “delincuentes informáticos” para realizar ataques, como ya se habrán dado cuenta ambas cosas están muy ligadas y no se puede hacer ninguna de las dos cosas por separado.

Hoy vamos aprender como se realizan los ataques masivos a routers, cómo se cambian la configuración de los mismos y como se roban masivamente contraseñas de la tan famosa red social “Facebook”, voy a dividir el post en varias secciones para que quede lo mejor explicado este asunto. Bueno, comenzamos de una vez.

 

1. NMap y la identificación de Routers

Nos vamos a centrar en este post en Routers del tipo Zyxel y para hacer esto necesitamos poder identificarlos y para eso vamos a utilizar la mejor herramienta de todas, NMap por supuesto.  Sólo un detalle adicional, vamos a utilizar NMap junto con Python, de pronto no todos los saben que existe un package que permite trabajar con NMap desde Python y esto es realmente alucinante porque permite realizar conexiones a Bases de Datos, automatizar la identificación de puertos, tabularlos, etc. Así que primero vamos a instalarlo y luego vamos a utilizarlo para escanear nuestro router doméstico.

1

 

Con el script que muestro abajo, lo que hacemos es escanear con NMap nuestro router local, es decir, el router que tiene como dirección IP 192.168.1.1. Ahora… es normal que la primera vez que alguien utilice Python con NMap se maree, especialmente porque el resultado parece no tener una estructura organizada como resultado pero se equivocan, primero miren la imagen del resultado y luego la imagen de la estructura que me he tomado la molestia de hacer para que sea de fácil entendimiento para todos mis lectores Smile.

 

2

 

3

Popularity: 34% [?]

Post Relacionados