Mostrando entradas con la etiqueta Pentesting. Mostrar todas las entradas
Mostrando entradas con la etiqueta Pentesting. Mostrar todas las entradas
Game of Thrones Hacking CTF

Game of Thrones Hacking CTF

OscarAkaElvis 1 Comment
Hola a todos, vengo a presentaros otra iniciativa para promover el hacking. ¿Qué mejor manera que jugando? Se trata de un reto de hacking que además viene ambientado en el mundo de fantasía de Juego de Tronos.

Banner

Se trata de una máquina virtual compatible con Vmware y Virtualbox. Tras importarla y levantarla, deberemos "destripar" este servidor que ofrece múltiples servicios y posibilidades. Al viejo estilo de capturar la bandera (CTF Capture de Flag), se trata de ir hackeando poco a poco los servicios de esta máquina e ir encontrando las diferentes banderas hasta completar el reto.

Se deberá ir "viajando" por los siete reinos conquistando sus banderas uno a uno. Además de esto, está el contenido extra que son algunas banderas secretas y la batalla final. Son un total de 11 contando todas las banderas.

Prompt de login de la vm del reto
El nivel del reto es medio-alto. Algunas banderas pueden resultar más o menos sencillas y otras no tanto. Podría ser peor! podría ser puramente alto o muy alto!! así que si te gusta la seguridad informática anímate sea cual sea tu nivel e inténtalo. Ten por seguro que algo aprenderás además de divertirte y pasar un buen rato.

Esta es la url del reto, en ella podemos encontrar algunas instrucciones y los links de descarga:

https://github.com/OscarAkaElvis/game-of-thrones-hacking-ctf

El reto está íntegramente en inglés, todo hay que decirlo. Cualquier duda podéis consultarla con el autor (un servidor) en los mails de contacto que se indican en la página.

Buena suerte a los participantes y que los dioses nuevos y los antiguos os protejan!!!

Más herramientas para tu arsenal pentest en Android

Ya os hemos hablado en otras ocasiones sobre herramientas en Android enfocadas al pentesting que hay en la actualidad. Entre ellas existen auténticas "suites" completas como Bugtroid (enlace PlayStore) presentada en este post, o incluso os enseñamos el Pwn Phone en este otro post. 

Por supuesto tenemos la más famosa de todas, dSploit, cuyo desarrollo se perdió pero surgieron magníficos forks como cSploit (enlace GitHub) que añade nuevas funcionalidades, y zANTI.

También aprovecho para recordar uno de los mejores capturadores de paquetes de red: Intercepter-NG, que incluye un mini-Wireshark y permite ataques MITM, SSL stripping y captura de cookies.

Mientras actualizaba mi arsenal de herramientas para pentesting desde Android he descubierto un par más que desconocía hasta ahora. Se trata de dos aplicaciones enfocadas a realizar ataques de SQLi.

SQLMapChick: (Play Store, GitHub)
Esta App consiste básicamente en un GUI de nuestro querido y conocido SQLMap. Su funcionamiento es muy sencillo al hacer uso de botones para elegir las opciones que quieres incluir en el comando a ejecutar.



DroidSQLi
Esta App puede descargarse desde la web del autor directamente en un APK. No he conseguido averiguar si está disponible su código fuente de forma pública pero la incluyo porque la encontré gracias a un enlace que vi pasar por Twitter hace tiempo.
En el mismo enlace anterior podéis encontrar un video-tutorial (inglés) de uso de la herramienta con un ejemplo práctico.

Bonus
Nipper: Escáner web para analizar de manera general un CMS (WordPress, Drupal,...), y listar los plugins instalados con sus versiones y vulnerabilidades asociadas. 

Mac Address Ghost: Utilidad para cambiar la MAC de tu Android.

Saludos!

g0jira: herramienta para pwnear WordPress

¡Saludos!

      Pese a que todavía no está terminado -quedan muchos bugs que subsanar, muchas funcionalidades que añadir, e implementar más exploits (por ahora sólo llevo 60, y todos en plugins antiguos, ninguna en el core)- quería dejar por aquí un ejemplo de las cosas que ya permite hacer g0jira. ( https://github.com/0verl0ad/g0jira )

     ¿Qué es g0jira? Es un -intento de- framework/herramienta/llámalo X  para escanear y explotar vulnerabilidades conocidas en WordPress y sus plugins. WPScan es sin duda una herramienta completa y que cumple bien sus funciones, pero odio depender de las herramientas de terceros cuando se trata de cosas sencillas de implementar. Es por ello que empecé a codear esta herramienta.

    Podríamos dividirla en 3 partes: enumeración, explotación y herramientas. En la parte de enumeración podemos realizar un escaneo de plugins instalados (por defecto viene con un diccionario de más de 14.000 plugins, pero la herramienta permite construir uno nuevo del tamaño deseado), la versión del WordPress (obtenida desde 4 fuentes diferentes: meta generator, readme.html, RSS, y los links de los css y js), o realizar una búsqueda de un determinado plugin entre un listado de dominios (ideal si encuentras un 0-day :) ), listar los usuarios registrados.

   En la otra parte tendríamos el modo "exploit", desde el que lanzar los exploits; y la sección de herramientas, desde la cuales poder generar payloads, ofuscar webshells, etc. Ambas están en continua expansión, y me gustaría mucho que la gente colaborara aportando más :).

  Vamos a proceder a mostrar un pequeño ejemplo de cómo funciona (utilizando lo que hasta ahora está implementado) g0jira, utilizando como escenario WordPressA Lab (descargar desde aqui http://wordpressa.quantika14.com/ ) . Procedamos:

En primer lugar vamos a enumerar los plugins instalados, acotando la búsqueda a 1500 plugins ordenados por popularidad:

perl gojira.pl --enum=dic_populares.txt --url=http://localhost/wordpress --max=1500





    Como podemos observa se han detectado bastantes plugins. En aquellos donde se ha podido extraer la versión ésta se muestra y además cual es la versión más reciente del plugin. En caso de que no coincdan se muestra un enlace al changelog para ver qué ha sido modificado. Además se muestra un link de descarga del plugin en esa versión para poder buscar vulnerabilidades en local por si queremos.

    Nos vamos a centrar en "WordPress Shopping Cart". Probemos si tenemos algún exploit en g0jira para ese plugin y esa versión (o alguna superior). Para ello:

perl gojira.pl --exploit

Seguimos las instrucciones que aparecen en el menú y seleccionamos la opción "3", y escribimos "Shopping Cart" para buscar exploits relacionados:




   Podemos ver que hay un exploit para esta versión. Se trata de un Arbitrary File Upload, o sea, que vamos a poder subir una webshell. En este punto podemos comprobar si en las herramientas que vienen con g0jira encontramos alguna que nos interese. Para ello abrimos una pestaña nueva . y tecleamos:

perl gojira.pl --tools

Seleccionamos la opción para listar todas las herramientas disponibles (opción 1) y vemos que hay dos que nos interesan: HideShell (si queremos utilizar una webshell grande prefabricada, como una c99 que tengamos) y Shell2Me (para crear una webshell pequeña y manejarla desde consola).  En nuestro caso vamos a ejecutar Shell2Me para generar una webshell nueva con nombre esto-no-es-una-shell.php

     Tras generarla (y sin cerrar esa pestaña, puesto que después vamos a controlarla desde ahí) volvemos a la otra pestaña donde teníamos el menú de los exploits.  Y ejecutamos el exploit AFU-0002 (opción 2 y después escribir el codigo del exploit). Nos pediran los datos necesarios (URL, lugar de la shell, nombre que queremos que tenga una vez subida) y después se ejecutará: de tener éxito nos devolverá la ruta donde se encuentra nuestra shell.



  Ahora copiamos la ruta donde está, vamos a la pestaña donde teníamos abierta shell2me y se la pasamos para empezar a controlarla como si de un terminal se tratase:


Un "id" para comprobar que todo marcha bien :)


   Espero que quien lea este post le dé una oportunidad e intente añadir más exploits/herramientas para que entre todos tengamos un g0jira más completo :).


Byt3z!

Pásate al hacking móvil



Hola a tod@s
 
Pwn Phone el smartphone para hackers, creado por la empresa Pwnie, este teléfono está diseñado para pruebas de penetración.

Se trata de un modelo basado en el Nexus 5, y cuenta con un procesador Qualcomm Snapdragon 800 de cuatro núcleos a 2.3 GHz, 2 GB de RAM y 32 GB de almacenamiento interno.

Estamos hablando de un martphone totalmente personalizado, ya que cuenta con una versión modificada de Android KitKat, con gran cantidad de aplicaciones de hacking preinstaladas. Además, posee un USB de tamaño estándar, como el de cualquier PC, al que se pueden conectar diferentes dispositivos (por ejemplo antenas o adaptadores bluetooth) para aumentar la potencia y el alcance de la señal del teléfono.

Entre las 103 herramientas de ataque y monitorización de redes que vienen de serie con este smartphone, podríamos destacar EvilAP, que permite crear un punto de acceso WiFi. Otras herramientas destacables son Nmap, Strings Watch, este último mencionado para quien no lo conozca es un potente sniffer, mi querido Metasploit, dSploit, Dismet, Airodump... y muchas más.

Además, el Pwn Phone está previsto de un botón que al pulsarse borra todos los datos del terminal, en el caso de que nos descubran haciendo algo que no debemos, pero ese no será nuestro caso... ¿no? 

El precio es bastante elevado, cuesta 1.295 dólares, y tiene una versión en forma de tablet (basada en nexus 7) denominada Pwn Pad, con un precio de 1.095 dólares.

Para más información visitad la web del fabricante.

No seáis malos. 

Herramienta de pentesting para escalar Privilegios en Windows: PowerUP



Buenas a tod@s antes de nada quería agradecerle a @n0ipr0cs la gran oportunidad que me ha brindado de poder escribir en este gran blog como es Estación-Informatica y permitirme entrar en este gran "mundillo" de la (in)Seguridad Informática.

Bien una vez dicho esto, hoy vengo a presentaros una herramienta de pentesting llamada PowerUp bajo licencia GNU, herramienta de PowerShell para ayudar con la elevación local de privilegios en los sistemas Windows. Dicha herramienta nos permite encontrar métodos y servicios vulnerables y poder abusar de estos,  así como "secuestro" de DLL, configuraciones de registro vulnerables y sobre todo y más importante las posibilades de escalabilidad de privilegios dentro del sistema, la herramienta ha sido desarrollada por @harmj0y , el código de la herramienta esta aquí.

Bien vamos a explicar los distintos métodos de los cuales se compone esta herramienta:
Para probar la herramienta necesitamos el código, el cual se encuentra aquí:


Lo primero que necesitaremos hacer es copiar todo el código en nuestro PowerShell, de la siguiente manera:  

  1. Para los que no sepan como lanzar PowerShell o Instalarlo etc, aqui hay un manual de cómo utilizarlo, solo necesitareis leer de la pg 12 a la 13 para poder seguir esto, aunque os recomiendo que saquéis tiempo para leerlo entero ;-)  
  2. Bien una vez llegados a este punto en el que tengáis el PowerShell lanzado , solo tendremos que copiar todo el código en la consola de PowerShell  tal que así:  
  3. Una vez introducido todo el código de la herramienta podemos empezar a ver los distintos métodos en los que se compone: 


Service Enumeration:

  • Get-ServiceUnquoted: está función encuentra todos los servicios no cotizados, que también tienen un espacio (es decir, el modulo trusted_service_path.rb MSF). Si tienen algun servicio que hace referencia a algo como C:\Herramientas\Herramientas Personalizadas\estacioninformatica.exe, y tiene acceso de escritura al directorio base C:\Herramientas\, dejando caer un ejecutable a C:\Herramientas\herramientas.exe lo podrás ejecutar en ese programa, en vez del servicio original. Esto es debido a la ambigüedad de algunas funciones de la API de windows a las que hace referencia.
  • Get-ServiceEXEPerms: esta función busca todos los servicios en los que el usuario actual tiene permisos de escritura. Si se sustituye uno de estos ejecutables nos permitira secuestrar un servicio actual
  • Get-ServicePerms: esta función enumera todos los servicios disponibles para abrir el servicio
     para su modificación. Podremos cambiar la ruta binaria como por ejemplo
     "net user password backdoor/add" y posteriormente reiniciar el servicio.
     

    Service Abuse:

  • Invoke-ServiceUserAdd: esta función detiene un servicio, lo modifica, lo inicia, lo detiene y a continuación restaura la ruta original exe, es decir, permite abusar de todo lo que se encuentra en "Get-ServicePerms". Podremos detener un servicio, modificarlo para crear un usuario y añadirlo al grupo de administradores locales y reiniciamos el servicio, y se restaura la ruta binaria del servicio original
  • Write-UserAddServiceBinary: esta función toma un precompilado C# ejecutable, servicio y parches binarios con el nombre del servicio, nombre de usuario, contraseña, nombre del grupo para agregar, a continuación,  el binario a la ubicación especificada, es decir, nos permite secuestrar servicios de "Get-ServiceUnquoted", necesitaremos un servicio de C# precompilado y los parches binarios con el nombre del servicio, le metemos el usuario/contraseña y grupo y cuando se ejecute, el binario creara el usuario con los parámetros establecidos.
  • Write-ServiceEXE: esta función invoca "WtireServicePSBinary" reemplaza el binario para el servicio "VulnSVC" por uno que añade un usuario local con contraseña y el grupo administrador, es decir, se puede utilizar para abusar de binarios vulnerables que se encuentren en "GET-ServiceEXEPerms". Respaldaremos el exe para un servicio establecido, después utilizaremos "Write-UserAddServiceBinary" para reemplazar el ejecutable con uno que crea y agrega un administrador local.
  • Restore-ServiceEXE: esta función restaura la copia de seguridad original del archivo por la ruta del servicio manipulado, la cual devolverá true si se realizo correctamente o false en caso contrario. Con Restore-ServiceEXE podremos restaurr el ejecutable original

DLL Hijacking:

  • Invoke-FindDLLHijack: esta función comprueba todos los módulos cargados para cada proceso, y devuelve lugares donde no existe un modulo cargado en la ruta de la base ejecutable, es decir, busca servicios con posibles oportunidades de secuestro dll, si una carpeta de la norma %PATH% tiene permisos de escritura por el usuario actual pe: \Python27, podremos colocar un archivo DLL malicioso en determinados lugares para escalar privilegios.

  • Invoke-FindPathDLLHijack:  esta función comprueba si el PATH actual contiene cualquier directorio con permisos del usuario actual. Si existe, se puede escribir, entonces comprueba la versión de Windows y envía un servicio hijackable para la versión de windows correspondiente.

Registry Checks:

  • Get-RegAlwaysInstallElevated: esta función comprueba si la clave del registro  " AlwaysInstallElevated" está habilitada, es decir,  verificara el registro de windows para la clave AlwaysInstallElevated, si se encuentra habilitada, los instaladores MSI siempre se ejecutaran con privilegios elevados. hay un modulo de Metasploit llamado:  " always_install_elevated.rb" que explota este mismo comportamiento, "Write-UserAddMSI" que escribirá un archivo instalador MSI que cuando se ejecuta, pide una cuenta de usuario para añadir al grupo de administradores locales.
  • Get-RegAutoLogon: esta función comprueba las credenciales de sesión automática en el registro "DefaultUserName/DefaultPassword", es decir, comprobara si se ajusta la clave del registro "AutoAdminLogon", y procederá a sacar las credenciales en texto plano.

Misc. Checks:

  • Get-UnattendedInstallFiles: esta función comprueba ubicaciones de instalaciones desatendidas para obtener un archivo con credenciales de despliegue, es decir, comprobara la existencia de varios archivos desatendidos sobrantes, que suelen tener las credenciales administrativas en texto plano.

Helpers:

  • Invoke-AllChecks: esta función ejecuta todas las funciones que comprueban todas las opciones de escalar privilegios del sistema, es decir, chequeara todo y nos mostrara un informe con las opciones de escalar disponibles.
  • Write-UserAddMSI: esta función escribe un instalador MSI precompilado que solicita usuario/grupo. Esta función se puede utilizar para abusar Get-RegAlwaysInstallElevated.
  • Invoke-ServiceStart: esta función inicia un servicio especificado, permitiendo marcarlo como deshabilitado.
  • Invoke-ServiceStop: esta función para un servicio especificado, el cual nos devolverá verdadero si la función tuvo éxito o falso en caso contrario.
  • Invoke-ServiceEnable: invoca un servicio y lo habilita.
  • Invoke-ServiceDisable: esta función deshabilita/desactiva  un servicio especificado 
  •  Get-ServiceDetails: obtiene información detallada acerca de un servicio


Como podéis observar nos brinda grandes oportunidades y si le damos juego con la herramienta Pyinstaller podremos hacer grandes cosas, bien esta primera entrada es una introducción para poder centrarnos posteriormente detalladamente en cada funcionalidad de dicha herramienta con casos prácticos. Espero que os guste la herramienta y  trasteéis con ella. 
 

Aquí os dejo un libro y un artículo interesantes:

Bien antes de acabar volver a agradecer a @n0ipr0cs esta oportunidad muchas gracias ;-)

Un saludo desde el CPD (^_-)