Instalación de Metasploitable3 en Linux Mint/Ubuntu

Todos los que estamos relacionados en el mundo de Ethical Hacking y el Pentesting hemos usado Metasploitable la cual es una maquina virtual permite desarrollar ataques utilizando Metasploit Framework. La misma es utilizado para una diversidad de propósitos; como entrenamientos para la explotación de red, desarrollo de exploits, evaluación de software, entre otros propósitos. Metasploitable hasta la versión 2 era un disco duro la cual se instalaba fácilmente sobre VirtualBox o Vmware, sin embargo desde le 2012 que no se actualizaba y poco a poco venia perdiendo vigencia.

El año pasado la empresa Rapid7 creadores de la misma lanzaron la nueva versión  “Metasploitable3” la misma que hasta la fecha está basada en Windows lo cual cambia bastante toda la lógica llevada hasta el momento,  ya que su predecesor estaba basado en Linux.

Sin embargo esta nueva maquina tiene una serie de vulnerabilidad actuales muy interesantes que vale la pena revisar, a continuación veremos la forma de instalar la maquina, ya que la instalación de esta versión ha cambiado mucho.

Escenario :
S.O. Ubuntu Xenial 16.04
VirtualBox 5.2.4

1- Instalación de Prerrequisitos

Packer
wget https://releases.hashicorp.com/packer/1.1.3/packer_1.1.3_linux_amd64.zip?_ga=2.259436163.8806393.1516559508-2105737727.1516559508 -O packer_1.1.3_linux_amd64.zip
unzip packer_1.1.3_linux_amd64.zip
sudo mkdir /usr/local/packer
sudo mv packer /usr/local/packer/
nano ~/.profile
Al final del archivo agregar : export PATH=$PATH:/usr/local/packer
Luego el comando : source ~/.profile

Si todo salio bien al realizar el comando packer –version deberá responder de la siguiente forma.


Vagrant
wget https://releases.hashicorp.com/vagrant/2.0.1/vagrant_2.0.1_x86_64.deb?_ga=2.260144013.1615441003.1516560525-1954706866.1516560525 -O vagrant_2.0.1_x86_64.deb
sudo dpkg -i vagrant_2.0.1_x86_64.deb
vagrant plugin install vagrant-reload

Si todo salio bien deberíamos tener esta respuesta :
2.- Instalación de Metasploitable3

git clone https://github.com/rapid7/metasploitable3.git
cd metasploitable3/

Ahora comenzar con la construcción de la maquina virtual con el siguiente comando

packer build windows_2008_r2.json

Con ello, comenzara a descargar la ISO de Windows 2008 por tanto habrá que esperar a la descarga 😀
Luego comienza la construcción de la maquina virtual
Una vez finalizado el proceso nos mostrara lo siguiente :

Ahora proceder con el segundo paso de la construcción con el siguiente comando

vagrant box add windows_2008_r2_virtualbox.box –name=metasploitable3

Una vez culminado finalizamos la construcción  de la maquina con el comando que la importa hacia VirtualBox  :

vagrant up

Con ello tenemos finalizada la construcción de la maquina y la tendremos en la lista de maquina virtuales de virtual Box

Luego de identificarla corremos un nmap y vemos que tiene varios servicios para explorar.

3.- Guias
Finalmente les comparto algunas guías para que puedan practicar con Metasploitable3

http://www.hackingarticles.in/manual-penetration-testing-metasploitable-3/

http://ultimatepeter.com/metasploitable-3-meterpreter-port-forwarding/

http://www.hackingarticles.in/ftp-service-exploitation-metasploitable-3/

http://www.hackingarticles.in/penetration-testing-metasploitable-3-smb-tomcat/

http://www.hackingarticles.in/exploitation-metasploitable-3-using-glassfish-service/

http://www.hackingarticles.in/hack-metasploitable-3-using-mysql-service-exploitation/

Espero les sirva.
Saludos
Juan Oliva
@jroliva

 

 

 

 

 

 

 

 

Anuncios

Instalar Virtualbox Guest Additions en Kali Linux 2017.3

Este post es para mi para no olvidarme, espero le sirva a alguno 😀

Buscar la imagen adecuada
apt-cache search linux-image

instalar la imagen
apt-get install linux-image-4.14.0-kali3-amd64

Dependencia
apt-get install libelf-dev

Reiniciar
reboot

Instalar los hearders nuevos
apt-get install -y linux-headers-$(uname -r)

Luego montar el disco de Guest Additions

Una vez montado instalar
cp /media/cdrom0/VBoxLinuxAdditions.run /root
cd /root/
chmod a+x VBoxLinuxAdditions.run
./VBoxLinuxAdditions.run

 

 

Alta disponibilidad con Issabel PBX

En escenarios donde la continuidad del negocio es un factor clave, contar con alta disponibilidad para servicios que se consideran críticos dentro de una organización es clave. En este caso concreto, el presente documento presenta la receta para implementar alta disponibilidad para la plataforma de comunicaciones Issabel PBX.

El software que hemos usado para tener alta disponibilidad se llama Pacemaker así como corosync, los cuales reemplazan al muy conocido heartbeat, el cual se encuentra descontinuado para Centos 7 que es el sistema operativo base de Issabel.

Si bien es cierto la plataforma Issabel, es sumamente estable como para confiar toda la carga a un solo recurso, no es ajena a fallas de otro tipo como factores, eléctricos, climáticos, de hardware, etc. Es por ello en caso de que uno de las plataformas fallase por los factores ya mencionados, dejaría sin comunicaciones a la organización, por lo tanto, es crítico tener el servicio en alta redundancia de forma que si un servidor falla, otro asume el servicio de manera transparente.

Espero les sirva el documento :

Descargar : Paper Alta disponibilidad con Issabel PBX

 

 

Asegurando Issabel PBX – “La receta”

Existen ciertas cosas en la vida que valoro mucho y es el esfuerzo y la capacidad para poder trabajar en Equipo, ya que es muy difícil de conseguir, puesto que nuestra naturaleza humana nos lleva siempre a defender nuestros intereses personales, que muchas veces no son del bien común del equipo o en este caso de la comunidad que persigue un objetivo.

En eso puedo resumir de lo que pude apreciar luego de asistir al #BeFree17 en la ciudad de México, un equipo de diferentes países y continentes inclusive, trabajando como una comunidad para un objetivo común, difundiendo conocimiento y tratando de sacar adelante un proyecto.

Por otro lado también considero que el conocimiento debe ser libre, como parte de la constante creación de nuevas cosas e ideas, con todas estas cosas rondando en mi cabeza, es me puse a trabajar en este paper cuya base fue la presentación que realice el miércoles pasado.

Lo titulé : Asegurando Issabel PBX – “La Receta”  El objetivo del documento es guiar de una manera muy sencilla, con una serie de ingredientes bastante prácticos, en la mejora de algunos aspectos relacionados con la seguridad de la plataforma de comunicaciones Issabel PBX, tanto para servidores implementados en la nube, así como en instalaciones locales.

Como saben Issabel es una plataforma de comunicaciones Software Libre y código abierto basada en Asterisk (Digium the Asterisk Company) integra funcionalidades de PBX, correo electrónico, tareas de colaboración, así como vídeo llamadas.

Todas las instrucciones del presente material fueron realizadas con la versión que
corresponde al archivo ISO issabel4-USB-DVD-x86_64-20170621.iso.

El documento lo pueden descargar desde aquí :

Paper_Asegurando_Issabel_PBX-La_Receta

Espero les sirva

Juan Oliva

Capturando Credenciales con Responder.py

responderResponder.py , es una herramienta desarrollada por Trustwave SpiderLabs, la cual  puede responder a las consultas LLMNR y NBT-NS dando su propia dirección IP como destino para cualquier nombre de host solicitado.

Pero Cómo trabaja ?

Para entender como trabaja, es necesario conocer como funcionan las peticiones de recursos de red en una red Windows, ya que justamente, es posible abusar del comportamiento predeterminado de los servicios de resolución de nombres que usa Microsoft Windows con el objetivo de robar credenciales de autenticación.

Desmenuzando el comportamiento

Si un cliente de Windows no puede resolver un nombre de host utilizando el servicio DNS, este utilizará el protocolo de resolución de nombres de multidifusión o mejor llamado “LLMNR” para pedir a los equipos vecinos resolver las direcciones IPv4 e inclusive bajo IPv6.

Si la solicitud usando LLMNR falla, se utilizará el protocolo NetBios Name Service o NBT-NS el cual cumple el mismo objetivo que el anterior. 

Entonces, cuando un host utiliza LLMNR o NBT-NS para resolver una solicitud de un recurso de red, es posible que cualquier host de la red que conozca la dirección IP del host al que se le pregunte puede responder. Incluso si un host responde a una de estas solicitudes con información incorrecta, todavía se considerará como legítimo, en esa etapa en donde se sitúa la herramienta Responder.py para capturar credenciales.

Gráficamente sería lo siguiente:

responder

Responder.py no solo para LLMNR o NBT-NS

Responder.py por si fuera poco, además viene con varios servidores de autenticación falsos (HTTP/SMB/MSSQL/FTP/LDAP) que soportan NTLMv1/NTLMv2/LMv2, Extended Security NTLMSSP y autenticación HTTP básica.

Para qué sirve en un servicio de Pentesting ?

eh

 

 

 

 

 

Para los que nos dedicamos a esto, sabemos que la captura de credenciales mediante fuerza bruta es un proceso que difícilmente se puede realizar con buenos margenes de éxito debido al corto tiempo con el que se cuenta, en este caso Responder.py surge como una técnica muy buena para ello, poder realizar captura de credenciales y conseguir ingresar a estaciones y/o servidores además de realizar post explotación evidentemente.

P.O.C. Veamos una demo del funcionamiento.

Mas adelante veremos otros de escenarios de aplicacion de responder.py durante un pentesting.

Saludos
Juan Oliva

 

Install Janus WebRTC Gateway in Debian

janus-logo

Desde hace varios meses vengo trabajando algunas cosas con mi amigo de aventuras tecnológicas Alfredo Pastor @AlfredoPastorL  sobre la plataforma “Janus”  pero qué es? 

Por que no solo de Asterisk vive el hombre, se puede decir que  Janus es auto denominado por la empresa Meetecho como un “WebRTC Gateway” de múltiple propósito, proporciona funcionalidades de comunicación para el uso de WebRTC con un navegador, a través del intercambio mensajes JSON y retransmitir comunicación RTP / RTCP . es posible  desarrollar implementaciones de aplicaciones como pruebas de eco, web conference, grabadoras de medios, pasarelas SIP y similares.

En este caso vamos a ver  como instalarlo correctamente en una plataforma DEBIAN

1.- Instalación de dependencias

#apt-get install aptitude
#aptitude install libmicrohttpd-dev libjansson-dev libnice-dev libssl-dev libsrtp-dev libsofia-sip-ua-dev libglib2.0-dev libopus-dev libogg-dev libcurl4-openssl-dev pkg-config gengetopt libtool automake make git cmake

Luego removemos los paquetes de correspondientes a rtp srtp ya que vamos a instalar nuevas versiones desde fuentes.

#apt-get remove libsrtp0 libsrtp0-dev
#apt-get autoremove libsrtp0 libsrtp0-dev

2.- Instalación de SRTP

#cd /opt/
#wget https://github.com/cisco/libsrtp/archive/v1.5.4.tar.gz
tar xfv v1.5.4.tar.gz
#cd libsrtp-1.5.4
#./configure –prefix=/usr –enable-openssl
#make shared_library && make install

Janus

3.- Instalación de USRSCTP

#cd /opt/
#git clone https://github.com/sctplab/usrsctp
#cd usrsctp
#./bootstrap
#./configure –prefix=/usr/lib64 && make && make install

 

4.- Instalación de LIBWEBSOCKETS

#cd /opt/
#git clone https://github.com/warmcat/libwebsockets.git
#libwebsockets
#mkdir build && cd build/
#cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS=”-fpic” ..
#make && make install

selection_057

5.- Instalación de DXYGEN y GRAPHVIZ

#aptitude install doxygen graphviz

6.- Instalación de RABBITMQ

#cd /opt
#git clone https://github.com/alanxz/rabbitmq-c
#cd rabbitmq-c
#git submodule init
#git submodule update
#autoreconf -i
#./configure –prefix=/usr && make && make install

Janus

7.- Instalación de PAHO

#cd /opt
#git clone https://github.com/eclipse/paho.mqtt.c.git
#cd paho.mqtt.c
#make && make install

Janus

8.- Instalación de JANUS

#cd /opt
#git clone https://github.com/meetecho/janus-gateway.git
#cd janus-gateway
#sh autogen.sh
#./configure –prefix=/opt/janus
#make
#make install
#make configs
#./configure –disable-rabbitmq
#./configure –enable-docs

Janus

9.- Instalación del servidor Web

#apt-get install apache2

Ahora copiamos las paginas de ejemplo
#cp -R /opt/janus-gateway/html/ /var/www/
#cd /var/www/html/

10.- Pruebas

Si todo salio bien deberíamos poder levantar Janus de la siguiente forma :

#/opt/janus/bin/janus

JanusEso quiere decir que Janus está en funcionamiento, luego ingresaremos al servidor Web de la siguiente forma :   http://debian/ y veremos los siguiente

janusSi desean ver el manual en video Alfredo realizó todo el proceso incluido como funcionan los demos de Janus

En el siguiente post haremos una guia de como enlazar Janus con Asterisk

DESTRIPANDO 3CX PBX A.K.A. ELASTIX 5

selection_051

Ahora que ya termine de hacer varios informes de pentesting y con un respiro a cuestas por fiestas de fin de año, decidí darme un vuelta al mundo de la VOIP y ver lo que andaba pasando, después de lo que ocurrido con la venta de Elastix , era motivo de darle una mirada al “nuevo producto” por dentro y ver que tenía.

Ahora como no tengo ni una remota idea de como empezar, hacemos una búsqueda recursiva de la siguiente forma :  find / -name “3cxpbx”

Y nos arroja esto :

/etc/cron.d/3cxpbx
/etc/nginx/sites-enabled/3cxpbx
/etc/sudoers.d/3cxpbx
/usr/lib/3cxpbx
/usr/share/3cxpbx
/var/lib/3cxpbx

Bueno, ya tenemos un punto de partida, empecemos:

1.- Sistema Operativo

Esto debe ser lo mejor que tiene , el sistema está basado en un Debian 8

selection_048

2.- Servidor Web
Primero  no usa Apache si no NGINX lo cual en algún sentido es bueno por las ventajas que tiene, sin embargo ahora las preguntas de rigor

Donde está el directorio de publicación ? correrá PHP ??

En la búsqueda anterior salio la ruta “/etc/nginx/sites-enabled/3cxpbx”

veamos ( captura del fichero)

location /
index index.html;^M
root /var/lib/3cxpbx/Data/Http/wwwroot;
try_files $uri $uri/ @proxy;
}

location /MyPhone {^M
alias /var/lib/3cxpbx/Instance1/Data/Http/Interface/MyPhone;
try_files $uri $uri/ @proxy;
}

identificamos dos directorios la raiz seteada a “/var/lib/3cxpbx/Data/Http/wwwroot” y otra llamada /MyPhone seteada a “/var/lib/3cxpbx/Instance1/Data/Http/Interface/MyPhone”

Vamos al wwwroot y corremos :

touch prueba.html ; echo “ESTO ES UNA PRUEBA” > prueba.html

ingresamos a http://192.168.1.36:5000/prueba.html y nos permite visualizar el archivo.

Ahora vamos con el típico phpinfo.php y oh sorpresa no funciona 😦   es decir no tiene soporte para PHP

selection_041

3.- Base de datos
Luego de indagar sobre el servidor web, ahora ver que BD corre, donde lo saco? ,
revisando por la ruta donde al parecer reside, ubico en la ruta “/var/lib/3cxpbx/Bin” algunos archivos .ini al mismo estilo de Windows 😦

me llamo la atención este en particular : 3CXPhoneSystem.ini en donde ohh sorpresa!! encontré cadenas de conexión a base de datos Postgresql

confNIC = 127.0.0.1
DBPort = 5432
DBName = phonesystem
dbUser = phonesystem
ConfPort = 5485
dbPassword = EF11C93F-3E70-4D6E-A2C9-AC87944EC028

Evidentemente el servidor de BD solo permite conexiones locales, pero ya sabemos que tiene como BD.

4.- Motor de telefonía
Ahora lo mas importante,  tendrá ASTERISK como motor ?

Corremos el comando “asterisk -rx” y nada  entonces que tiene ?

Bueno haciendo unas capturas con Wireshark , la cosa esta se presenta como “3CXPhoneSytem”

selection_043

Y Elastix 5 😦

ahora veamos que servicio lo ejecuta en Linux , ya que quiero saber si tiene alguna interfase de comandos o un CLI al menos.

selection_044

Como vemos tenemos el programa “3CXPbxServer” ahora hacemos una búsqueda y encontramos:

selection_049

Como vemos es un binario que corre como root y además o sorpresa hay una serie de programas adicionales con el mismo nombre que solo dios sabe lo que hacen.

Ahora veamos si el binario ofrece una interfase de comandos :

selection_046

Nos pide ciertos parámetros , los averiguamos dentro los archivos ini  y nuevamente probamos:

selection_050

Definitivamente no hay respuesta.

5.- Conclusiones

Luego de esta revisión bastante rápida, las conclusiones son obvias, sobre todo para los que venimos y somos del mundo Asterisk.

  • La solución no tiene Asterisk , si no su propio desarrollo implementar SIP
  • Al no tener Asterisk no es posible usar AMI, AGI, PJSIP, ARI con lo cual resta mucho, sobre todo a gente como yo que desarrolla y personalizar mucho.
  • No corre PHP , al menos por defecto, si bien es cierto metiéndole mano se podría incluir en NGINX pero no es el caso.
  • No provee una interfase de consola o un CLI , es algo de lo que siempre me quejo de otras soluciones y esta entra a la lista ahora, por ahí vi unos logs pero no basta.
  • Lo único que veo de bueno a nivel de arquitectura es que usa Debian , aunque por hay vi algunos path como “C:\Program Files\3CX Phone System Cloud Server\” que aun se han olvidado sacar.

En resumen :  Elastix 5 o mejor dicho 3CX LINUX no va ser, ni será para mi una opción, basándome solo en algunos detalles claves de su arquitectura, ello sin mencionar las limitaciones (trunk , extensiones) a nivel de la aplicación que tiene, será motivo para ir viendo otras alternativas.

Nota final : Esta es una posición totalmente personal del escritor de este blog, no representa la opinión de ninguna empresa conexa.