sábado, 25 de marzo de 2017

Honeypots XVII. Dionaea con interface gráfico

Estimados amigos de Inseguros !!!

Dentro la ya clásica seria de honeypots, voy a documentar uno de los clásicos que tenía en borrador desde hace años con algunas chuletas, pero no como artículo.

El famoso Dionaea para cazar malware. El artículo original contenía los pasos para instalar de base, compilando, pero me ha surgido la necesidad de instalarlo en un ambiente nuevo y he descubierto algunas modificaciones que lo hacen tan sencillo como apt-get. Para darle un poco más de gracia vamos a instalar un visor y darle algún toque.


Espero que os guste, los clásicos no mueren !!!

Si quereis buena información de parte de un maestro, el señor Adastra en su blog The Hackerway hizo muy buenos artículos sobre Dionaea. Uno y Dos.

El proceso de instalación base sobre un Ubuntu es tan sencilla como este:

apt-get install software-properties-common
sudo add-apt-repository ppa:honeynet/nightly
sudo apt-get update
sudo apt-get install dionaea
sudo service dionaea start

Hasta aquí tenemos nuestro honeypot por defecto instalado con todos los servicios emulados al descubierto.

Puedes probar de esta manera netstat -tnlp | grep dionaea

En mi caso hago el nateo de todos los puertos desde el exterior menos el https que uso para otras cosas, y tiro un Nmap para ver como veo en el espejo del mundo exterior. Guapo guapo guapo !!!


Como se puede observar, canta el honeypot tanto en el smb como en el sqlserver.

Si dejamos esto así, pueden pasar varias cosas:

1.- que el atacante no haga nada.
2.- que el atacante tenga una jodido 0day para dionaea y nos de guerra.
3.- que el atacante nos tire un dos/ddos para que nuestros logs y capturas no sirvan para nada.

Primera solución, editamos vim /opt/dionaea/lib/dionaea/python/dionaea/smb/include/smbfields.py y cambiamos el grupo de trabajo y el nombre del equipo a nuestro gusto. cuanto mas "financial" y cosas así mejor no?


Tras un reinicio parece que le sienta bien. 


Qué podemos hacer con el sqlserver? estoy por quitarlo, porque por mucho anti-fingerprint que use, al final, la combinación de puertos también puede ser un indicador para un atacante manual y experimentado.

De todas formas, editando vim /opt/dionaea/lib/dionaea/python/dionaea/mssql/mssql.py y cambiando r.VersionToken.TokenType = 0x00 por  0xAA funciona.


Vamos a seguir con el componente gráfico para ir viendo cosas simpáticas.

El paso para la instalación del componente gráfico es el siguiente:

apt-get install python-pip python-netaddr unzip

pip install Django *****pip install Django==1.8.0****
pip install pygeoip
pip install django-pagination
pip install django-tables2
pip install django-compressor
pip install django-htmlmin


cd /opt/
wget https://github.com/benjiec/django-tables2-simplefilter/archive/master.zip -O django-tables2-simplefilter.zip
unzip django-tables2-simplefilter.zip
mv django-tables2-simplefilter-master/ django-tables2-simplefilter/
cd django-tables2-simplefilter/
python setup.py install

git clone https://github.com/bro/pysubnettree.git
cd pysubnettree/

python setup.py install

cd /opt/
wget http://nodejs.org/dist/v0.8.16/node-v0.8.16.tar.gz
tar xzvf node-v0.8.16.tar.gz
cd node-v0.8.16
./configure
make

make install

npm install -g less npm install -g promise

cd /opt/
wget https://github.com/RootingPuntoEs/DionaeaFR/archive/master.zip -O DionaeaFR.zip
unzip DionaeaFR.zip
mv DionaeaFR-master/ DionaeaFR

cd /opt/
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip GeoLiteCity.dat.gz
gunzip GeoIP.dat.gz
mv GeoIP.dat DionaeaFR/DionaeaFR/static
mv GeoLiteCity.dat DionaeaFR/DionaeaFR/static

cp /opt/DionaeaFR/DionaeaFR/settings.py.dist /opt/DionaeaFR/DionaeaFR/settings.py
vim /opt/DionaeaFR/DionaeaFR/settings.py

**aquí debes indicar la base de datos sqlite que usa Dioanaea, en mi caso es:
/opt/dionaea/var/dionaea/dionaea.sqlite**

mkdir /var/run/dionaeafr 
cd /opt/DionaeaFR/
python manage.py collectstatic "yes"

python manage.py runserver 0.0.0.0:8000

Las librerías y dependencias me han dado mucha guerra. Cosas de linux. Librerías que no guardan compatibilidad hacia abajo, señores programadores, cuando actualizo Django o Six tengo que reprogramar mi aplicación? Con las versiones actuales así te debe ir. Dentro de unos meses quizás no.

El resultado es el esperado.



Seguro que no es necesario porque lo primero que hiciste al instalar Dionaea es mirar el fichero de configuración, pero por si acaso, el fichero de logs lo tienes en /opt/dionaea/var/log/dionaea.log y si has cazado algún payload o malware, lo tendrás en /opt/dionaea/var/dionaea/binaries.

Seguro que tampoco es necesario decir que limites el extremo de origen al que se puede conectar al servidor django para que no cante aún más el honeypot. 

Puedes cambiar el puerto pero mejor natear con restricción en origen.

Espero que te sirva de apoyo este pequeño manual de instalación y uso de Dionaea y que detectes mucho malware y salves el mundo !!!

Gracias por leerme !!!