Conocer scripting en bash es de gran ayuda en el día a día, no sólo para un pentester, sino para todo aquel que tenga que trabajar con una consola de bash.
No voy a hacer valoraciones respecto a bash frente a otros lenguajes de scripting o programación. Pero como estamos en bash, voy a hablar un poco sobre como crear algunos scripts.


Bash, está bajo el paradigma de programación estructurada, por lo tanto veremos algunos ejemplos de condicionales, bucles y como jugar con variables, principalmente, para automatizar tareas repetitivas y manuales.

Aclaremos primero que el siguiente es un ejemplo y la intención no es realizar un ataque o análisis exhaustivo, sólo nos servirá de ejemplo. Supongamos que tenemos que hacer un análisis a una empresa pequeña local llamada Google, el alcance estará reducido a sus productos Youtube, Blogspot y Drive, por lo tanto debemos conocer su direcciones IPs.


Primero, armamos un listado en un fichero de texto con los nombres de dominio de nuestro alcance.


Ahora, utilizaremos algo de scripting para hacer un whois a cada uno de dominios que colocamos en el listado de la siguiente manera

for NombreDeVariable in $(cat NombreDeArchivo); do Acción $NombreDeVariable; done 


Lo que realizamos en éste ejemplo es correr un cat sobre el listado con los dominios de manera iterativa gracias al for, luego del ; colocamos do para indicar al script que debe realizar las acciones mencionadas a continuación. En este caso utilizamos un simple whois y lo guardamos en un archivo de texto. Por último terminamos el bloque de acciones con otro ; y por último done.


Si queremos extraer las direcciones ip, podemos utilizar algo de grep, cut y sort como hemos visto en el post anterior Pentesting con Bash Cap II.


De esas direcciones IPs, veamos cuáles poseen el puerto 80 abierto. Para eso podríamos volver a utilizar el bucle for, pero ésta vez utilizando nc con los parámetro n para que no resuelva dominio, v de verbose y w para establecer un timeout.

De éste ejemplo, podríamos extraer sólo las conexiones exitosas para utilizarlas con el fin de identificar el tipo de webserver, tecnología, versión, etc. Pero lo veremos más adelante en la fase de reconocimiento.

Hasta aquí, hemos visto cómo se pueden concatenar más de una acción en una misma línea de manera que nos queda un pequeño script. Para el siguiente ejemplo vamos a utilizar un editor de texto y nuestro código será un poco más elaborado.

Vamos a realizar un ping sweep en el cual podamos establecer a gusto los tres primeros octetos y el rango que deseamos analizar del último, además, sólo queremos ver los host que están activos.

El código es el siguiente:

Veamos en detalle qué es lo que hace nuestro código.

echo: Imprime en pantalla lo que le indiquemos, es el equivalente a print en otros lenguajes.

read: Se encarga de leer y guardar en una variable el contenido ingresado por teclado.

while: Es un bucle o iteración que se ve sujeta a una condición

$x: El signo pesos ($) se utiliza para las variables.

Una vez aclarados los aspectos más importantes del código, adentrémonos en su funcionamiento. Una vez que las variables son ingresadas por teclado (en éste caso ip, min y max) el bucle while itera mientras el contenido de $min sea menor o igual a $max.

El while se comporta de manera similar a un condicional if, sólo que repite una acción mientras la condición que le hemos declarado se cumpla. Mientras que la condición se cumpla, el código ejecutará el las instrucciones (do) que siguen.

El ping -n es para que realice una sola petición por icmp (en linux el ping no está configurado como en windows para que sólo realice cuatro peticiones, sino que las realiza hasta que el usuario finalice la acción).

El ping es realizado a la IP y rango que hemos definido en las variables. La variable “$ip” almacena los tres primeros octetos (por ejemplo 192.168.10), mientras que la variable “$min” en la primer iteración posee el valor que le asignamos al comienzo.

La utilización de egrep con los strings ping y recibidos es para en pantalla sólo sean impresos los host que recibieron el ping exitosamente.

Para que la iteración continúa hasta que la condición sea falsa, debemos hacer incrementar el valor de la variable “$min”, en éste caso el incremento lo hacemos de uno en uno realizando una adhesión al valor anterior.

Una vez guardado nuestro script y asignado los permisos de ejecución ya podemos probar si funciona correctamente:


Para más bash scripting, podés visitar éste link http://www.sniferl4bs.com/2016/12/bash-scripting-for-pen-testers-x-2.html

Saludos.

@balderramaeric
Leer Mas
A continuación tenemos un listado de las entradas que abordamos en el blog referente a Shodan, en el mismo se irán adicionando si se crean nuevos o damos continuidad a las mismas.

https://www.redeszone.net/app/uploads/2016/08/Logo-Shodan.png


Como les comente en la entrada anterior se tendran entradas de este estilo de vez en cuando, algo cortas y simples para organizar un poco lo que tenemos en el blog y este al alcance de todo aquel que desea aprender o tener como referencias las entradas.



“Haz de tu vida un sueño, y de tu sueño una realidad” - Antoine de Saint Exupéry

Regards,
Snifer
Leer Mas
Llego jueves, al fin! fue feriado y me dí el tiempo para escribir en el blog y comentar la razón de la poca actividad del mismo, además de un par de cambios referente a la frecuencia de publicaciones en el mismo si quieres saber o conocer mas de ello te invito a que termines de leer la entrada.



¿Cambio de rumbos personales?

Si tengo un gran cambio, y el mismo se verá y ya se ve en el lado profesional, debido a un cambio de trabajo, tengo la suerte o la dicha no se como decirlo de vivir y disfrutar del Hacking en mi día a día, como me lo dijeron ahora es: "Jugar en la Libertadores, y dejar de lado el futbol Nacional", es el momento adecuado para superarme y crecer ampliar mis horizontes. Deje mi anterior trabajo con el corazón partido, por todas las vivencias y la experiencia que obtuve en los 4 años que estuve allí gracias por todo.


¿Cambios en el blog?

Y bueno que cambios  se vienen en el blog? seguro más de uno se preguntará o en su defecto ya se dierón cuenta, debido a que las entradas ya no fuerón diarias,  y el mismo será asi ya que tendremos solo 3 entradas a la semana, la razón es que el tiempo no alcanzará a dedicarle al blog, además de que ando poniendome juicioso con la certificación, adicionando a ello que quiero mejorar las entradas y no publicar chapuzas como se dice, tratar de brindar contenido de calidad aun cuando sea un Hacking 101, o presentar alguna herramienta de seguridad, quiero dedicar  y ganar un poco al tiempo para mi mejora profesional, darle algo mas de forma a los podcast y quien sabe seguir con los videos, pero ya entra en caja de la siguiente manera las entradas en el blog. 

  • Una vez al mes compartir algun libro o reseña de alguno. 
  • Semanalmente los podcast y  cuando se me de realizar mas los publicare directamente y solo saldra en un post todos los grabados, por ello a seguirme en Youtube o Ivoox para que no se pierdan nada.
  • Cada semana tendremos una entrada siguiendo alguna serie que ya tenemos en el blog, pero les comento que tendremos algo de Análisis de aplicaciones Android, siguiendo las etapas correspondientes y jugando un poco con ello, algo de Web, y además siguiendo con Hacking 101 viendo herramientas o mencionando algo que se venga.
  • Una vez al mes de ser posible tendremos las revisiones de las distribuciones en los Podcast que por cierto en la próxima semana sale el proyecto.
  • Deseo seguir con los Hangouts de Dame una Shell.
  • Dias de publicacion serán Lunes, Miercoles y Viernes. o eso estimo, asi que atentos!

Y en resumen quiero y deseo aprovechar el tiempo con mi familia, (mi esposa) que gracias al impulso que ella me dió me anime a dar el salto, y seguir con mi senda y camino profesional, gracias por tu apoyo, confianza, fuerza, y garras Lizbeth.


Si aun no lo saben, y se preguntan donde ando es en DreamLab, comienza un nuevo reto y a dar el 110% y más...



Gracias por tomarte el tiempo de leer esta entrada y seguir visitando el blog en los próximos dias.

"El hombre se descubre cuando se mide con un obstáculo" - Antoine de Saint Exupéry.

Regards,
Snifer
Leer Mas
Shodan, se define a sí mismo como un buscador de dispositivos conectados a Internet. Si bien lo es, en su definición general, me gustaría agregar (sobre todo para los que no lo conocen o usaron), que también se pueden identificar servicios y puertos en los que corren, además de poder analizar cierta metadata, encabezados y banners entre otras cosas.


Básicamente, shodan se divide de la siguiente manera:


Versión web

Hola que tal Shodan Soy un Curioso
Mira mamá uso otro buscasdor se llama Shodan
Mi nuevo amigo Shodan me enseña a ser mas Cuidadoso


Api

Shodan me prepara para ser el ultimo Samurai


Versión CLI, que es la que profundizaremos en este post. Utilizaré kali como sistema operativo, pero pueden usar el que deseen (debe tener python).

Para utilizar la versión CLI, necesitamos instalar una librería de python, para ello ejecutamos “pip install shodan” para instalar la librería.


Si no poseen pip y no quieren instalarlo, pueden usar como alternativa “easy_install shodan



Con correr un “shodan --help” ya debería funcionar. Sin embargo, en una de las máquinas en que realicé la instalación, me produjo el siguiente error:


Esto se produce porque le falta permisos. Por favor, no ejecuten un “chmod 777” para ésto (si no conocen aún sobre permisos en linux, te recomiendo que lo investigues), con un “chmod +x” y el path donde se encuentra es suficiente.


Ahora si, “shodan -h” o “--help” y ya debería funcionar.


 Si ejecutamos ahora una consulta, nos va a devolver un error.


Esto se da porque debemos setear la api_key. Para obtener la key, debemos loguearnos en el sitio: Shodan.io - Login


Deben loguearse con user y pass, en el caso de que no posean, es posible crear una clickeando en el botón de arriba a la derecha Create an Account y colocando algunos pocos datos.


Una vez logueados, buscamos la Api Key, un string de 33 caracteres o bien, leer el código QR que aparece abajo que les dará el mismo string.


Cuando tengamos la api key, volvemos a la consola y ejecutamos “shodan init tu_api_key"


Si hasta acá salió todo bien, podemos comenzar a probar las opciones que nos brinda en CLI de shodan.

Como ya vimos, con “-h” podemos visualizar la ayuda.


Veamos algunos ejemplos:

1- Queremos obtener info de un host.

Podemos utilizar el parámetro host de la siguiente manera: “shodan host DirecciónIP”

2- Queremos saber cuántos webserver hay en la red con Apache Tomcat 1.1.
Podemos usar el parámetro count de la siguiente manera: “shodan count tomcat 1.1”


Ya que vimos algunas cosas básicas, hagamos algo un poco más elaborado y divertido. Obtengamos un listado de webservers IIS con versión 6.1.

Para éste caso, podemos usar el la opción download, de la siguiente manera: “shodan download Nombre ‘StringParaBuscar’


Para lograr visualizar de manera entendible el archivo que en este caso se llama IIEv6 con extensión .json.gz, podemos usar la opción parse: “shodan parse --fields Campos NombreDelArchivo


Otros campos para parsear, pueden verlos en el json o en la documentación que se encuentra en Documentación de Shodan.

Se pueden realizar muchas cosas más, todo depende de la imaginación, necesidad y capacidad de cada uno. Los output pueden concatenarse con algo de shell scripting para por ejemplo correr un script de nmap sobre determinadas ip que resulten interesantes.

Por último, dejo algunos links de referencia, aunque como ya saben, pueden preguntar por aquí que veremos la forma de darles una mano.


Saludos.
@balderramaeric
Leer Mas
Esta entrada que sera medianamente corta y dejare el bichito de la curiosidad para que cada uno de ustedes proceda a conocer mas la herramienta y la tenga en su  kit de pentesting, debido a que la use en una prueba de seguridad y que mejor que tenerlo registrado en el blog y compartilo.


¿Qué es weevely?

Weevely, es una herramienta creada en Python que permite generar WebShell en .PHP, con el potencial de un Backdoor ya que con el mismo llegamos a tener una Shell, es como si realizariamos un conexión con Netcat, ya depende de nuestro uso y la idea que tengamos para llegar a obtener un root en el servidor. El mismo se encuentra disponible en Kali por defecto, no estoy seguro si en otras distribuciones se encuentra, para instalar basta con un apt-get install weevely o dirigiendonos a su repositorio oficial en GITHUB.

Una vez ejecutamos weevely en la terminal llegamos a tener los diferentes argumentos, para interactuar con la herramienta el mismo se muestra a continuación.


EL primer paso que tenemos que realizar es el de generar el backdoor por lo tanto debemos de ejecutar, el siguiente comando donde "sniferl4bs" es la contraseña para la conexión con el backdoor, seguido del fichero a ser creado.


root@Snifer:~# weevely generate CONTRASEÑA backdoor.php 


Si ven en la anterior captura tenemos el mensaje respectivo de la generación del Backdoor y además la contraseña, con el objetivo de ver el contenido del fichero generado se identifica que esta encodeado como se muestra a continuación.



La subida del fichero generado php ya depende de cada uno, ya que esto podria ser realizado por medio de un bypass a un upload o previamente la subida de una shell y tengamos en mente realizar la subida del backdoor. Una vez que contamos con el backdoor en el servidor basta con tener la ubicación y proceder a ejecutar de la siguiente manera.


root@Snifer:~# weevely URL Contraseña 

Notarán que para la conexión solo necesitamos la URL y la contraseña anteponiendo weevely al mismo.  y la primera pantalla que nos brinda la herrmianta es la IP del objetivo y la Sesion que fue creada en el directorio .weevely, en el caso de tener algun problema posterior y la sesión no vuelve a ejecutar debemos de proceder a eliminar el directorio temporal y con ello funcionara sin ningun inconveniente.

 

A partir de este punto y contar con la shell, depende de lo que deseemos realizar cabe en este punto resaltar que ni bien se accede tenemos un listado de las opciones de la herramienta, y con el comando :help las podemos listar, a continuación un ejemplo de system_info. 


Evidentemente tenemos, una versión actualizada de Weevely el cual es weevely3 en una próxima entrada lo veremos a mayor detalle,  a continuación dejo el Github y otra herramienta mas que se suma.

"Si soñar poco es peligroso, la cura no es soñar menos, sino soñar más, soñar todo el tiempo." - Marcel Proust

Regards,
Snifer
Leer Mas
Esta entrada la tenia pendiente desde hace bastantes días atras, no recuerdo exactamente quien fue la persona que me sugirio que arme una entrada con algunos plugins addons que tengo en el navegador para Pentesting, debido a que ando migrando de PC del trabajo me dispuse a sacar el listado de los plugins y de esta manera compartir con ustedes.


Es mas que necesario indicar que estos 8 plugins son los que uso, y el orden de los mismos no es que tengan una ponderación específica, mas todo lo contrario es por el uso general que realizo de ellos, y ojo que no uso XSS.ME o SQL.ME que automatizan barridos del mismo modo.

#1
HACKBAR

HackBar mas TamperData son los dos Plugins que tengo que tener para emular tener un BurpSuite, la razón principal es que el Segundo intercepto obtengo datos y con HackBar manipulo y envio los datos ya sea encodeandolos, modificando datos para ver si se salta algun control, vale aclrar que con esto es posible hacer XSS, SQLI interactuar con API's.

URL:https://addons.mozilla.org/en-us/firefox/addon/hackbar/

#2
TAMPERDATA


Tamper data es mi primera herramienta, utilidad que hago uso antes de lanzarme por BurpSuite para ir haciendo una toma de contacto con la página web, ver que datos son enviados, recibidos algo que tengo
URL: https://addons.mozilla.org/en-us/firefox/addon/tamper-data/

 #3
 WINDSCRIBE


El plugin de la actual VPN que uso Windscribe, el cual me permite hacer uso en el navegador
URL: https://addons.mozilla.org/en-us/firefox/addon/windscribe/


 #4

 WAPPALYZER
El uso del plugin es identificar la tecnologia de desarrollo de la aplicación como tambien el servidor,  y detalles adicionales haciendo un fingerprinting preliminar y rápido.
URL: https://addons.mozilla.org/en-us/firefox/addon/wappalyzer
 #5
FOXYPROXY

Este plugin es el que viene de Cajón debido a que hago bastante uso de el y es la combinación tanto para mi estimada herramienta BurpSuite como tambien para ZAP, el fin de la misma es que con un click se pueda configurar el proxy en el navegador.
URL:https://addons.mozilla.org/en-us/firefox/addon/foxyproxy-standard
 
#6
USER AGENT SWITCHER

En los procesos de pentesting, siempre es necesario manipular y jugar con los useragents y ver como actua la página web, si identifica por ejemplo que la petición se realiza desde un móvil o un User agent desconocido.
URL:https://addons.mozilla.org/en-us/firefox/addon/user-agent-switcher


#7
WEBDEVELOPER
Bueno el uso principal de Web Developer, es modificar  las cookies, la aplicación quitar, mover o adicionar valores a la página web.
URL:https://addons.mozilla.org/en-us/firefox/addon/web-developer

#8
LIVE HTTP HEADER

Este otro plugin del mismo modo permite manipular, registrar las cabeceras para usar de alguna u otra manera específica.
URL:https://addons.mozilla.org/en-us/firefox/addon/live-http-headers

Estos son los 8 plugins que vienen de cajon en mi uso diario en los procesos de Pentesting a nivel web, y ustedes cuales mas usan? Espero sus comentarios y me digan si hacen uso de otros.


Si al construir se escuchara el consejo de todo el mundo, el techo nunca se llegaría a poner - Proverbio Mongol


Regards,
Snifer
Leer Mas
Al fin viernes! y se avecina el fin de semana por lo consiguiente tenemos un descanso considerando ello en esta entrada les presentare dos retos un CTF en toda regla con el fin de obtener banderas de diferentes temáticas y un entorno de testeo específico el cual el objetivo es acceder y romper la maquina obteniendo acceso a flag.txt.

Pwnerrank

El primero es Pwnerrank, en el cual basta con crear la cuenta respectiva e ir navegando por las diferentes categorias que se tienen, las mismas se encuentran en la siguiente captura.


Veran que tenemos de todo un poco, diferentes temáticas y en cada uno de ellos diferentes Niveles, estos dias durante la noche me puse a jugar resolviendo un par de retos, los cuales en los próximos días especificamente Domingo iran saliendo las soluciones de los mismos, espero que se animen a resolverlos aún mas si estan iniciando y desean aprender es una excelente forma, para aprender y desafiarse.

HackTheBox

HacktheBox es un entorno de testing y explotación de diferentes entornos, lo cual tiene como objetivo el preparanos y entrenar en un entorno real, la conexión al mismo se realiza por medio de una VPN que se encuentran los datos respectivos como hacerlo, además de ello y es algo a tomar en cuenta que se tiene la alerta o notificación de conectarnos desde un entorno en producción ya que es muy probable que algun usuario acceda a tu equipo siendo esto algo a tomar en cuenta y tenerlo en cuenta. El primer reto es obtener el código de acceso ;), para lograr crear una cuenta solo es necesario pensar y pensar.

Me tomo como 15 minutos encontrar la lógica de acceso.

Contando ya con los credenciales respectivos y accediendo tenemos un total de 18 máquinas disponibles para realizar las pruebas si observan la siguiente cáptura, se tiene distintos Sistemas Operativos, incluyendo un grado de dificultad para resolver, vale aclarar que tenemos que obtener en cada uno dos flags, una con usuario normal y la segunda que es con privilegios administrativos.


Como veran se tiene dos entornos de prueba, HackTheBox es el que daré mas caña estos días ya que estos entornos serán mi manera de entrenarme para la certificación.

Estimados, no pienso dar ningun spoiler de como acceder a HackTheBox! romperia la escencia del reto y el objetivo de aprendizaje, si otros lo hacen allá ellos pero mejor seguir las reglas.

"Un hombre orgulloso rara vez es agradecido, porque piensa que todo se lo merece." - Henry Ward Beecher

Regards,
Snifer
Leer Mas
Esta nueva entrada de BurpSuite es para mostrarles el uso de un nuevo plugin como lo dice el titulo y es el de usar Dirbuster, dentro de nuestra herramienta favorita (mi herramienta favorita) para análisis web. 




Como es costumbre cada mes o cada semana según el tiempo que dispongo para la realización de retos de Vulnhub o algun CTF, y si es web siempre trato de hacer uso de BurpSuite, por lo cual revisando algunos plugins y contenido me recorde de la integración de Dirbuster con Burpsuite por lo cual en esta entrada veremos dicha configuración y su uso. 

Instalación de Burp-Dirbuster

El plugín se llama Burp-Dirbuster por lo consiguiente tenemos que acceder al repositorio en Github y realizar la descarga respectiva, una vez lo tenemos solo basta realizar la instalación del mismo, el proceso de instalación se explica en la entrada BurpSuite XXV - Configuración de Plugins en BurpSuite en la siguiente captura, se tiene el proceso de configuración del mismo.


Una vez termina y si no tenemos ningun problema respecto a la versión de JAVA o requerimientos adicionales tendremos el siguiente resultado.


Configuración de Burp-Dirbuster

El siguiente paso es, configurar y conocer las opciones que tenemos en el plugin de Dirbuster asi que pasamos a comentar cada uno de ellos.

  1.  El primer campo es el host el objetivo a analizar en este caso puede ser una IP o en su defecto una dirección URL, siempre anteponiendo el protocolo si es HTTP o HTTPS.
  2. Browse: Es el directorio donde se tiene los wordlist, casi siempre o la mayoria de las veces prefiero hacer uso de los que tiene por defecto Dirb o Dirbuster que estan en /usr/share/(dirb/dirbuster)/wordlist.
  3. Brute Extension: En este campo lo que tenemos a disposición es agregar la extensión a ser revisada, analizada siendo esta .bak, .html, .asp, según la necesidad de la prueba.

Ejecución de Burp-Dirbuster

Ahora para la ejecución del mismo, una vez registramos todos los valores se procede a realizar la ejecución en el boton Start, el mismo procedera a realizar el barrido desde el directorio que nosotros determinamos  y como ven en la siguiente captura nos brinda la información respectiva en el status code, teniendo estos valores como referencia para determinar si el mismo esta o no disponible.


 Para conocer a mas detalle los Status Code pueden verlo en el siguiente enlace: Lista de Status Code HTTP

Como veran, al hacer uso del plugin desde BurpSuite nos permite enfocarnos en una sola herramienta, interactuando desde ella con Dirbuster, pero aquí no termina el uso de la herramienta ya que al ejecutar el plugin a la par se hace el crawling, permitiendo de esta manera descubrir nuevos directorios y acelar el proceso del mismo, a continuación se tiene las capturas respectivas del Spider que trabajo a la par y tambien los directorios identificados.



Espero sigan la serie de entradas que cada vez se alarga más y es una de las serie que mas me gusta realizar y ver como va creciendo es una alegria enorme.


"Sé tú mismo el cambio que deseas ver en el mundo." - Mahatma Gandhi

Regards,
Snifer
Leer Mas