8.16.2019

UnderDocs Digital Magazine #1 - Edición de Agosto 2019

El Staff de Underc0de a generado la primera edición de Underd0c una revista digital que tendrá como fin aportar temas sobre Software Libre, Hacking Web, Mobile, infraestructura,  Programación y otros temas que nos irán sorprendiendo cada mes.



Los temas que se tratan en esta primera entrega son los siguientes:
  • INTELIGENCIA ARTIFICAL: REDES SOCIALES Y REALIDAD
  • BYPASS CSRF MEDIANTE XSS
  • BYPASS SPF
  • GENERACIÓN DE UN EXPLOIT
  • PYTORCH – REDES NEURONALES EN PYTHON DE FORMA FÁCIL 20
  • INTRODUCCIÓN AL INTERPRETE DE COMANDOS LINUX
  • ¿CÓMO INICIARSE EN LA PROGRAMACIÓN?
  • JUPYTER NOTEBOOK PARA PRINCIPIANTES
  • NODEJS EN PEQUEÑAS DOSIS
  • PYTHON FOR KIDS PARA LOS MÁS Y NO TAN PEQUEÑOS
  • WEB SCRAPING CON PYTHON Y BEATIFULSOAP
  • REVIRTIENDO CUALQUIER CONTROLADOR
  • DISQUETE: ICONO UNIVERSAL DE GUARDADO
  • OFF TOPIC
  • UNDERTOOLS DIY
La descarga la tenemos en el siguiente enlace:

"Leer es equivalente a pensar con la cabeza de otra persona en lugar de con la propia." Arthur Schopenhauer.

Regards,
Snifer
Compartir:

8.06.2019

Sliver Framework C2 - Ataque fuera de Lan y primeros pasos


El día de hoy empezamos con una nueva serie de entradas de framework pensados para una post explotación y tener un Command Center, el que veremos en esta entrada es Sliver realizando un ataque fuera de LAN con ayuda de Serveo. 



El motivo principal de esta nueva serie es conocer otras alternativas a Empire ya que @xorrior dio a conocer la semana pasada que Empire Framework no tendrá mas soporte.
Esta sonando por la parroquia que Luis  Cybervaca reanimará Empire con algunos cambios, ya que el es el creador del Mod de Hackplayers.

Que es Sliver


Un framework C2 que puede ejecutar tanto el servidor, cliente y los implantes en Mac, Windows y Linux, esta desarrollado en Golang. Los implantes son conocidos como Slivers que son los que permiten tener la conexión desde el servidor.

Instalación de Sliver


Para el proceso de instalación basta con seguir el proceso en la Wiki propia del proyecto o utilizar directamente el binario compilado.

Repositorio de Github <Sliver>

¿Que es Serveo?


Serveo nos brinda un servidor SSH que tiene el objetivo el reenvío de puertos remotos, permitiendo conectarnos y generar una URL pública que cualquiera puede conectarse a un servidor local siendo este un resumen de lo que nos permite hacer serveo si quieren conocer mas de el mismo pueden acceder al sitio serveo.net a continuación un ejemplo.

snifer@Kvothe$ ssh -R loquesea:80:localhost:80 serveo.net                                                                                       
Forwarding HTTP traffic from https://loquesea.serveo.net                                                                                                              
Press g to start a GUI session and ctrl-c to quit.  

El resultado es el siguiente cualquier solicitud al sitio la veremos y los recursos que son consumidos.


¿Serveo es una alternativa a ngrok?

Ya con todo esto podemos iniciar con Sliver y explicar un poco la funcionalidad de Sliver.


Al ejecutar un help tenemos las siguientes opciones como siempre help [comando] nos dara un mejor detalle de cada una de ellas.

Commands:                                                                                                                                                      
=========                                                                                                                                                               
  clear  clear the screen                                                                                                                                               
  exit   exit the shell                                                                                                                                                 
  help   use 'help [command]' for command help                                                                                                                          
                                                                                                                                                                        
Generic:                                                                                                                                                                
========                                                                                                                                                                
  background        Background an active session                                                                                                                        
  canaries          List previously generated canaries                                                                                                                  
  dns               Start a DNS listener                                                                                                                                
  generate          Generate a sliver binary                                                                                                                            
  generate-egg      Generate an egg shellcode (sliver stager)                                                                                                           
  generate-profile  Generate Sliver from a profile                                                                                                                      
  http              Start an HTTP listener                                                                                                                              
  https             Start an HTTPS listener                                                                                                                             
  jobs              Job control                                                                                                                                         
  mtls              Start an mTLS listener                                                                                                                              
  new-profile       Save a new sliver profile                                                                                                                           
  profiles          List existing profiles                                                                                                                              
  regenerate        Regenerate target sliver                                                                                                                            
  sessions          Session management                                                                                                                                  
  slivers           List old Sliver builds                                                                                                                              
  use               Switch the active sliver                                                                                                                            
  websites          Host a static file on a website (used with HTTP C2)        

La opción de Multiplayer nos permite contar con "Agentes" que llegan a interactuar con los Slivers directamente a traves desde nuestro Servidor, esta configuración la veremos proximamente.

Multiplayer:                                                                                                                                                            
============
  kick-player  Kick a player from the server
  multiplayer  Enable multiplayer mode
  new-player   Create a new player config file
  players      List players

Las opciones que tenemos con el Sliver (equipo infectado) en esta entrada veremos lo principal.

Sliver:
=======
  cat                Dump file to stdout
  cd                 Change directory
  download           Download a file
  execute-shellcode  Executes the given shellcode in the sliver process
  getgid             Get Sliver process GID
  getpid             Get Sliver pid
  getuid             Get Sliver process UID
  info               Get info about sliver
  kill               Kill a remote sliver process
  ls                 List current directory
  mkdir              Make a directory
  msf                Execute an MSF payload in the current process
  msf-inject         Inject an MSF payload into a process
  ping               Test connection to Sliver (does not use ICMP)
  procdump           Dump process memory
  ps                 List remote processes
  pwd                Print working directory
  rm                 Remove a file or directory
  shell              Start an interactive shell
  upload             Upload a file
  whoami             Get Sliver user execution context

Contamos con opciones únicas para Windows las cuales son las siguientes.

Sliver - Windows:                                                                                                                                                       
=================                                                                                                                                                       
  elevate           Spawns a new sliver session as an elevated process (UAC bypass/Windows Only)                                                                        
  execute-assembly  Loads and executes a .NET assembly in a child process (Windows Only)                                                                                
  getsystem         Spawns a new sliver session as the NT AUTHORITY\SYSTEM user (Windows Only)                                                                          
  impersonate       Run a new process in the context of the designated user (Windows Only)                                                                              
  migrate           Migrate into a remote process     

Listeners


Con Sliver tenemos la opcion de ejecutar 4 diferentes listeners DNS, HTTP, HTTPS y MTLS que son los que se ponen en la escucha en los puertos respectivos.

La ejecución de cada uno basta con el nombre como se muestra a continuación iniciamos un listener por http puerto 80.


Generando un Sliver


La generación de un sliver es el binario que debemos de hacer que se ejecute en nuestros objetivos para conocer un detalle de las diferentes opciones debemos de ejecutar help generate. 

En este caso generamos algunos binarios para Windows de 32 y 64 bits para Linux y MAC.





Como vemos en la captura anterior le indicamos que no realice ningun proceso de ofuscación sobre el binario que es la flag --skip-symbols.

--http: El listener para el cual generaremos.
--save: Donde se generara el binario.
-a: La arquitectura por defecto este genere para 64 bits.
--os: El ultimo parámetro determinamos el sistema operativo.

Si ejecutamos slivers visualizamos los sliver generados.


Basta con mandar los binarios generados y esperar que llegue la Shell.

Configuración del dominio personalizado con Serveo

El ataque fuera de LAN sera posible generando el dominio que indicamos anteriormente en Serveo en este caso la levanto con sniferl4bs, el resultado cuando empezamos a recibir las conexiones de nuestros slivers. 


Para visualizar los Slivers con sessions listamos los que se encuentren. 


Cuando llega un nuevo Sliver el mensaje que recibimos es el siguiente. 


Si deseamos interactuar con alguno basta con use <numero del Slive> para salir del Slive que estemos interactuando tenemos que ejecutar background


Es posible visualizar información del Sliver con info.



Con PS vemos todos los procesos relacionados al sliver que estamos interactuando en este caso vemos el nombre del Sliver como tambien un antivirus?


A todo esto mas de uno se debe de preguntar si los antivirus detectan, se hicieron pruebas con Avast, AVG, TrendMicro y Windows Defender y ninguno de estos salto ya que la generación de los binarios se realizo sin ofuscación, en próximas entradas veremos con otros antivirus. 




Recuerden que antes de probar con algun antivirus deben de quitar la opción que envie muestras.


Estas llegan a ser algunas opciones que tenemos dentro de Sliver, como primera toma de contacto sirve para realizar nuestras propias pruebas e ir conociendo en la siguiente entrada veremos el uso de MSF, los multiplayers, utilizar esta shell inicial para obtener otros accesos.

"La libertad y el poder conllevan responsabilidad." - Sri Pandit Jawaharlal Nehru

Regards,
Snifer
Compartir:

8.02.2019

Pentesting Active Directory & Pentesting Active Directory Forests

Es viernes y el blog vuelve con una entrada? algo raro pasa aquí. Si estas del otro lado del charco es Sabado por la mañana.


Como dice el titulo, traemos dos videos de la Rooted del 2018 y 2019 ambos pertenecen a Carlos Garcia aka @Ciyinet en el cual expuso Pentesting en Active Directory una charla donde explica como empezar un 101 para los que recién empiezan o quieren conocer como tomar el control de un AD.

  1. Enumeración Local
  2. Enumeración de Dominio

Nos menciona sobre vectores de explotación para tomar el control de un AD mencionando cuales son los mas comunes o pocos vistos actualmente, durante este ultimo año vi que aun se tiene el SYSVOL y últimamente un SilverTicket y CVE-2019-1040.

  • SYSVOL
  • MS14-068
  • Kerberoast 
  • SMB
  • Mimikatz

Ademas de ver un poco y conocer PowerView y el perro aka BloodHound.


La presentación la tienen disponible en: Pentesting Active Directory - Rooted 2018.

La de este año nos habla sobre dominios de confianza como las charlas que brinda explicando para que cada uno entienda y comprenda desde el momento 0 que escuchar su charla.



La charla llegue a verla un poco, mañana con cuaderno en mano tomo noto del resto de la ponencia, la  presentación por si alguno quiere ver las herramientas que utiliza e información adicional del siguiente enlace. Pentesting Active Directory Forests


Como cada semana trataremos de volver con videos los viernes, el podcast en el blog día Lunes y si sale otro entre semana estaremos centralizandolo en una sola entrada, el review del OSCP, Stack BoF, una entrada con las opciones que se tiene a Empire que recién dieron a conocer que dejaran de dar soporte. Como siempre el blog esta abierto para cualquier persona que desee compartir conocimiento.



"Lo que nunca empieza, nunca termina " - Patricio Osorio

Regards,
Snifer
Compartir:

6.15.2019

Script en Python para detectar Badchars - Find Badchars (Buffer Overflow)

Este script fue realizado junto a @RizelTane, debido a que en mi momento de locura quise automatizar el proceso de detección de badchars, con el fin de estar seguro que la identificación era correcta, considerando ello se tuvo este pequeño, el cual fue adicionado a #Bashert para automatizar un poco el trabajo de la certificación.


Evidentemente esto es posible hacerlo desde Inmmunity Debugger con apoyo de Mona, pero quise tener algo a mano y estar seguro que funcione, ya que para ese entonces en el primer intento que tuve andaba nervioso, por que nunca antes toque un BoF como el de la certificación (aprendí a realizarlo), después de andar practicando todo el flujo es sumamente sencillo y entendible que por cierto en el blog contamos con una serie de entradas en proceso donde se explica un Stack Buffer Overflow, la cual si te animas a dar el OSCP puedes tomarlo como referencia.

Archivo.in y badchars_all

El script hace uso de dos ficheros los cuales son archivo.in y badchars_all realizando una comparativa para determinar cuales son los caracteres malos.


Fichero archivo.in

Es el resultado que tenemos de Immunity cuando enviamos el payload con el listado de los badchars y tenemos el output, el cual lo debemos de pasar al fichero para realizar la detección de los caracteres malos.

Este fichero es el output que obtenemos cuando se envía al servicio vulnerable, tenemos que ir iterando y verificando la salida, con el script continuamente.

Fichero badchars_all



El fichero badchars_all es el segundo que es usado por el script, este no es necesario realizar ninguna modificación, como veran lleva los badchars que realizaremos la comparación para determinar cuales no deben de ingresar en nuestra shellcode.


Ejecución de find_badchars.py

Para la ejecución del script necesitamos contar con Python3 y coloroma tenemos el resultado de la comparativa que realiza el script.


Vale aclarar que necesitamos realizar las corridas necesarias para identificar todos los badchars, ya que el script tiene puntos a mejorar y realizar la tarea mas limpia, pero por ahora esto fue lo que utilice para la certificación  en próximas entradas veremos, la detección de Badchars desde el mismo Inmmunity y avanzaremos con la serie de entradas.
Sigo trabajando para intentar aprender, para intentar hacer lo que no sé. Detesto repetir cosas que ya he hecho. - Eduardo Chillida.

Regards,
Snifer
Compartir:

6.11.2019

GTFOBins y LOLBAS - Binarios en Windows y Linux para post Explotación

Las dos páginas que compartimos hoy en el blog hacen referencia a aquellas "utilidades" en entornos Windows y Linux que pueden ser usadas de manera arbitraria, es decir no siguiendo el flujo que fueron concebidas seguro ya vieron mas de una vez el uso de Certutil.exe o bien whois por mencionar algunos para descarga de ficheros.



El primero es GTFOBins, que tiene una lista de binarios de Unix para ser utilizada es una lista actualizada de binarios de Unix que un atacante puede explotar para evitar las restricciones que tenga nuestro objetivo.


Lolbas es su semejante pero para Windows en este repositorio tenemos el uso para ejecutar, compilar descargar con ejecutables propios del sistema operativo lo interesante de este sitio es que tenemos en la descripción en que sistema operativo se encuentra disponible el binario.




Como veran son dos paginas de referencia,  cuando realizamos un proceso de pentesting, conoces sitios que tienen la misma funcionalidad o recopilación?

Intentar, intentar, intentar y seguir intentando es la regla que debe seguir para convertirse en un experto en cualquier cosa. - William Clemente Stone

Regards,
Snifer
Compartir:

6.07.2019

CFP 8.8 Bolivia - Envia tu investigación, Proyecto

El 13 y 14  de Septiembre se tendrá nuevamente el evento de Seguridad Informática 8.8 Bolivia en la ciudad de La Paz.



Este evento es realizado en Bolivia, Chile, Perú, México el CFP Call for Papers fue lanzado hace 1 mes y algo, algo tarde?.

La invitación esta abierta, si tienes un trabajo de investigación, alguna herramienta, proyecto que quieras compartir con la comunidad en Bolivia, o si te encuentras en algún país vecino, envía tu propuesta de Charla. 


Según indican por Twitter debe de enviarse la propuesta al mail.



Uno debe de vez en cuando intentar cosas que están más allá de su capacidad. - Auguste Renoir

Regards,
Snifer
Compartir:

5.31.2019

OSCP Certified! - Se logro la meta!!!

Uffff vuelvo a escribir después de mucho tiempo lo se, pero hoy recibí el mail en el que me confirman que soy OSCP.




El Sabado 25 de Mayo empece las 24 horas de "Try Harder", en el cual logre realizar el examen, para posteriormente documentar teniendo un tiempo de 24 horas y mandar el reporte,  estos días estuve pendiente, ansioso esperando recibir este correo.



Ese mensaje que soñé desde el 2015 certificarme como OSCP, tuve algunas caídas y en cada una de ellas tuve que levantarme y seguir adelante, luchar contra lo bueno, y lo malo que me trajo la vida, pensando en lo que se lucho para esta certificación hace que sonría y mire al futuro. Ahora que? Continuar con el aprendizaje ir mejorando y lo que mas me gusta hacer, compartir lo poco que se con la comunidad, las entradas volverán al blog, el Podcast como es costumbre tendremos una entrada con el Review de la certificación.



El cambio y volver a lo esencial tuvo su motivo... #BackToRoot!


Solo me queda dar gracias, a mi familia que siempre estuvo apoyándome sin perder la fe en mi incluso cuando la perdí y a Dios por permitirme hacerlo, sin dejar de lado a los amigos que no los mencionó por no olvidarme de ninguno.


Recuerda tu rompecabezas no le sobran piezas para ser feliz...

Regards,
Snifer
Compartir:

3.20.2019

Exploiting 101: Que son los Badchars? Generando Badchars desde Python y Mona

Hoy estaremos con los badchars, teniendo una breve introducción de que son y como generarlos, desde Python y con Inmmunity Debugger utlizando el script !mona, si deseas instalar la herramienta y lo que necesitaremos posteriormente puedes ver la entrada anterior Montando un entorno para iniciar en el Exploiting


¿Que son los Badchars?


Los badchars son caracteres inválidos o “malos” los cuales el programa a explotar no los acepta, por lo consiguiente el atacante cuando genere su shellcode la misma no sirve, ya que estos caracteres no fueron identificados y hace que el programa se rompa. Tranquilo al final de la entrada tenemos un breve ejemplo.
Puedes tener el listado de los badchars a mano en un fichero de texto y listo nos olvidamos de los mismos, tambien podemos generarlos y tener a nuestro disposición con un par de comandos desde el mismo Inmunity Debugger con !mona o desde Python ambos lo veremos a continuación.

Listado de Badchars


Un punto a considerar es que el 0 - Null no es utilizado ya que este llegar a ser un badchar de cajon "\x00" en todas las pruebas que estuve realizando en ninguna fue un valor admitido.

badchars = ("\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
"\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"
"\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
"\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
"\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
"\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
"\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff")

Generando Badchars desde Inmunity con Mona


Tenemos como primera opción utilizar Mona desde Inmunity para que nos genere todos los badchars que necesitamos para el proceso en el cual posteriormente podemos realizar la detección de los mismos este proceso se explicara en la siguiente entrada totalmente aparte para luego realizar el proceso completo en una sola entrada.

Para tener los badchars nos dirigimos a la parte inferior de Inmunity y ejecutamos:

!mona bytearray

Badchars desde Mona (Inmmunity Debugger)

El resultado del comando tras ser ejecutado es el siguiente, si no configuramos previamente donde queremos que se almacene el log lo tendremos en el mismo directorio donde se encuentra Inmunity Instalado.

================================================================================
  Output generated by mona.py v2.0, rev 583 - Immunity Debugger
  Corelan Team - https://www.corelan.be
================================================================================
  OS : 7, release 6.1.7601
  Process being debugged : SLmail (pid 340)
  Current mona arguments: bytearray
================================================================================
  2019-03-04 09:04:37
================================================================================
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
"\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f"
"\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f"
"\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
"\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
"\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
"\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"

Generando Badchars desde Python


Desde python tambien llegamos a generar los badchars permitiendonos tenerlo a mano y desde la terminal de manera rápida.

import sys
for x in range(0,256):
        sys.stdout.write ("\\x" + '{:02x}'.format(x))

El resultado al ejecutar desde python es el siguiente:

Obteniendo Badchars desde Python

Breve Ejemplo.


Mandamos un array con todos los badchars y en inmmunity en el Stack tenemos la siguiente secuencia.

 Como un breve ejemplo enviamos lo siguiente:

\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\



Identificamos que se tiene 01 02 03 04 05 06 07 08 09 29

El que deberia de seguir en dicha secuencia es 0a pero como no lo tenemos presente este llega  a ser nuestro primer badchar (valor no aceptado) retiramos  del array y se vuelve a enviar.


Este proceso llega a ser un poco moroso para la creación de exploits si fallas en identificar es muy probable que no llegues a obtener el resultado esperado, al decir moroso me refiero cuando uno esta empezado a dar sus primeros pinos hay maneras rápidas de identificar por ejemplo con ayuda de !mona o scripts externos, pero las entradas el objetivo inicial es aprender a mano y luego explicar la automatización.

En proximas entradas iremos ya con la parte práctica, alguna duda en los comentarios.

Es difícil mostrarte confiable cuando la gente tiene que esperarte. - Wes Fessler

Regards,
Snifer
Compartir:

3.11.2019

Exploiting 101: Montando un entorno para iniciar en el Exploiting.

Esta nueva serie de entradas que vienen de la mano del exploiting 101 tendremos un inicio lento con lo que es un Stack Buffer OverFlow, e iremos de a poco avanzando con cosas mas elaboradas, ya que este lado será mi bitacora de inicio en este mundo y en las entradas que tengan relación con el OSCP estara el tag de #RoadToOSCP, para el que quiera tener una referencia.



Para este entorno de prueba necesitamos contar con algunas maquinas virtuales entre ellas tendremos:

  1. Windows XP SP1 - Descarga Mega Password: yisustuto
  2. Windows 7 y superiores: Para ello necesitaremos únicamente descargar la maquina virtual desde el servicio gratuito que nos brinda Microsoft, con un tiempo de prueba https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
  3. Maquina Linux: (No interesa el sabor que elijas solo necesistamos contar con Metasploit y Python)

El desarrollo de los scripts para esta parte de exploiting lo haremos con librerias propias de Python en primera instancia luego veremos a detalle algunos frameworks en específico para migrar los códigos iniciales siendo esto gradual.


Software a tener por ahora instalado en las maquinas virtuales.

1. Inmunity Debugger - Página Oficial para Descargar
2. Mona - Descarga desde el Github
3. Software a Explotar  (Puedes descargarlo para tener todo listo)


Primero tenemos que tener instalados los sistemas operativos a utilizar para las pruebas iniciales que lleguemos a realizar contaremos con  una vez tengamos la máquina virtual es suficiente importar la misma o realizar la instalación en el caso de Windows XP.


Importando Máquina Virtual Windows 7

Instalación de Windows XP

El siguiente paso es descargar Immunity Debugger, Mona además del primer software vulnerable que utilizaremos en el Windows 7 de 32 bits, en las siguientes entradas.

Descarga de Inmmunity Debugger
La instalación de Inmmunity es de una manera tradicional siguiente siguiente siguiente, dar el permiso de instalación de Python2.7 y tendremos listo el entorno la forma de validar la veremos con la configuración de Mona. 

Software a tener instalado

El siguiente paso es la instalación de Mona una vez lo descargamos copiamos el script en el directorio de Inmmunity Debugger PyCommands no hacemos ningún otro proceso adicional. 

Instalación de Mona
Para el que no sepa Mona es un script creado por Corelan para la ayuda de escritura de exploits el mismo esta desarrollado en Python y como veran la instalación es simple.

Validamos la instalación de Mona accediendo a Inmmunity y en la parte inferior !mona una vez realizo tenemos que tener el siguiente mensaje. 

Verificación de instalación de Mona

Contando con este pequeño entorno ya estamos listos para nuestra primera toma de contacto para el tema de exploiting y como hacer la explotación de un Stack Buffer OverFlow, que será nuestro primer objetivo,

"El principio es la mitad del todo" - Pitágoras de Samos


Regards,
Snifer
Compartir:

2.13.2019

Exploiting Inside Pokémon Red - I Un poco de historia para iniciar

Hola soy StateX y desde que cerré mi blog he estado años sin armar una entrada.Así que, ahora que tengo ganas de escribir, compartiré con vosotros algo raro pero que me moría de ganas por saber como funcionaba.


No sé tu nivel de conocimiento sobre la historia de los videojuegos, pero empezaré: detallando el hardware de Gameboy, la historia de cómo se creó Pokémon y terminaremos con un desmontaje de un cartucho de Pokémon Rojo y la compilación de varios fallos y exploits.

Si nunca has jugado... no puedo creerlo pero ... si nunca has jugado con una Gameboy, puedes jugar a Tetris haciendo clic en el siguiente enlace:


Cool right?. Este videojuego fue una revolución para la época y ahora que sabéis lo que fue la GameBoy para los chavales de mi época y los puntos que vamos a tratar en las siguientes entradas, os dejo un poco de información del hardware que usaba la pequeña de Nintendo:



CPU - LR25902 de 8 bits a 4.194304 MHz.
Velocidad del reloj: 4.194304MHz
RAM de trabajo - 8K Byte (Sharp)
RAM de video - 8K Byte (Sharp también)
Tamaño de la pantalla - 2.6 "Resolución - 160x144 (azulejos 20x18)
Máx. - Máx. 40 por pantalla, 10 por línea
tamaño Sprites - 8x8 o 8x16 píxelesPaletas - 1x4 BG, 2x3OBJ
Colores- 4 grayshades
Horiz Sync - 9198 KHz
Vert Sync -59,73 Hz
Sonido- 4 canales con sonido estéreo Potencia - DC6V 0.7W



Sed Buenos ;)

Compartir:

2.11.2019

Android Reversing 101: Instalación y Configuración de Herramientas II

Hola a todos , seguimos con los post de Android Reversing . En esta ocasion no sera tan largo esta entrada pues solo nos falta algunos detalles para comenzar a resolver algunos retos y tomar mas practica en este mundillo. Sin embargo antes de comenzar te agradeceria que leas el anterior post , actualize unas herramientas y es imprenscindible para seguir con este tutorial.

Ya tenemos casi todas las herramientas básicas para comenzar y no quiero decir que mas adelante no necesitemos otras,  pero al culminar esta entrada tendremos lo basico para comenzar.  Dicho esto solo nos faltaria saber como extraer un apk android desde el Play Store para poder analizar desde una fuente confiable y tambien obtener un entorno donde realizar las pruebas a las aplicaciones.

Debo decir que en este o futuros post no analizaremos aplicaciones comerciales de Play Store, pues para practicar y aprender muchas personas crearon crackmes que podrian ser hasta mas complicados que una aplicacion comercial.

A comenzar  


Estamos listos para comenzar y la mision del dia de hoy es conseguir un aplicacion y poder testearla , para hacer esto tenemos dos opciones usar un emulador android o usar nuestro propia dispositivo android que podremos conectarla por medio de ADB . Pero que es un emulador android o ADB ? .

Que es un emulador Android ?

Un emulador de Android nos permite simular un dispositivo, permitiendo de esta manera trabajar desde la computadora, permitiendo crear un entorno de testeo para el desarrollo de prototipos de aplicaciones.

Que es ADB en android ?

ADB es el acronismo de "Android Debugging Bridge" o en español "Puente de depuración de Android". Es una Herramienta que viene junto con el SDK de android y nos permite acceder y controlar un dispositivo android desde una PC.

Emulator NoxPlayer

Durante esta serie de entradas utilizaremos el Emulador NoxPlayer con la principal ventaja que es gratuito, la descarga del mismo ser realiza desde su página oficial. La instalacion es muy sencilla además de configurarlo a nuestra necesidad.





Se puede configurar el tamaño que deseemos. El siguiente paso es realizar el registro de una cuenta en la Play Store, que nos permitira realizar la descarga de las aplicaciones disponibles en el market y utilizar en el emulador.



Para este proceso necesitamos tenerlo en modo root, guardamos y reiniciamos .




Es posible contar con una carpeta compartida con nuestra PC, una vez marcado se tiene el directorio /data/app/, veremos en este ejemplo donde se encuentra y como proceder para extraer el mismo y si tenemos la necesidad de hacer un análisis estático.



Una vez accedemos al directorio marcamos la aplicación que deseamos extraer.




Movemos el APK en el directorio /mnt/shared/App que es el directorio compartido con el host anfitrión.






Usando ADB Android

Se realizo una actualización de la entrada anterior, en el cual explico como configurar y tener ADB, esta en la sección Instalando SDK Platfom Tools,  este proceso es cuando realizemos algun trabajo con un dispositivo fisico no virtualizandolo (emulando) a pesar de que se puede realizar la misma conexión con el entorno virtualizado, considerando que tenemos listo el entorno con ADB solo debemos de conectar el dispositivo al ordenador, y habilitar en el móvil el modo desarrollador y activar la depuracion usb.

El proceso se realizada de la siguiente manera:

Ajustes > Sistema > Acerca del telefono  pulsando 10 veces sobre número de compilación, con esto ya estariamos en modo desarrollador.
Despues se debe ingresar  Ajustes > Sistema > Opciones de desarrollador y activa la “Depuración USB“.

Por cierto no olvidar descargar antes los drivers del móvil para que el mismo sea reconocido por el ordenador.


Hemos digitado nuestro primer comando de ADB , adb devices que nos lista los Dispositivos/Emuladores conectados a nuestra computadora , si tal vez no nos sale de esta manera o similar el proceso es habilitar y desahibilitar la depuración USB, además de autorizar y dar los permisos respectivos.

A continuación detallo los comandos mas usados con ADB.

  • adb devices: Imprime una lista de todos los emuladores/dispositivos conectados
  • adb push: Copia un archivo desde el ordenador al emulador/dispositivo.
  • adb pull: Nos permite extraer un archivo del teléfono y pasarlo al ordenador.
  • adb shell: Se obtiene una shell de comandos para interactuar con el emulador/dispositivo.
  • adb install: Permite realizar la instalación de un APK al emulador/dispositivo
  • adb uninstall: Permite desinstalar aplicaciones del emulador/dispositivo.

Ahora que tenemos una idea de los comandos, necesitamos obtener el apk de aplicacion de play store asi que desde mi computadora entremos desde nuestro navegador a la web de play store y buscamos con el nombre a la app que tenemos en nuestro dispositivo móvil.




En la url tenemos el nombre de la aplicación lo cual nos permite identificar para realizar la busqueda en el dispositivo móvil.



Al ejecutar el comando adb shell pm path [nombre_aplicacion] vemos que imprime la ruta de la aplicación, la cual nos permitira descargar


Ejecutando adb pull [ruta_aplicacion] copiara en la ruta que estamos situados el APK, en este caso es C:\Users\AbelJM\Desktop 


Cabe aclarar que el uso de estos dos metodos para obtener el archivo apk es a gusto de cada uno, por que tambien es posible utilizar servicios ONLINE como ser APK Mirror, por mencionar.

Por ultimo solo queda despedirme espero que les haya gustado esta entrada y en la próxima ya estaremos analizando y haciendo cosas divertidas . nos vemos.

AbelJM   
Compartir: