30 de octubre de 2009
Kill a Zombie Day
27 de octubre de 2009
Spider Windows
¡Hola!, Hoy os presento una herramienta interesante, todos conocemos spiders web que buscan y rastrean información valiéndose del motor de Google, Yahoo, Bing, etc. La herramienta de hoy hace algo similar pero en la máquina que le digamos, que puede ser local o estar en la misma red. Se llama Spider Windows y es muy sencilla:
Hay una alternativa Linux que incluye funcionalidades forenses detectando archivos borrados también, está incluida dentro de la distribución de Helix y se llama Spider Linux. Habrá que tenerla en cuenta también en el análisis de incidentes.
Salu2
24 de octubre de 2009
Sello Europeo de Privacidad
- Auditoría del producto por expertos TI.
- Informe de conformidad con los criterios de evaluación del catálogo de criterios europeos.
- Aceptación del producto bajo el sello de privacidad europeo.
22 de octubre de 2009
Secure Survey
Tras un pequeño vistazo a algunos medios digitales he podido encontrarme las siguientes cosas, corresponden al código con que se realizan las peticiones y se almacenan los votos:
onsubmit="javascript:{if ( hasCookie('haVotado') ) {alert('Tu voto ya ha sido registrado'); return false;}
else {return true};}"
En este caso si el método ‘has cookie’ devuelve “true” votas, sino no. Delega el voto en un control sobre la cookie. En este otro caso:
OAS_version = 10;
OAS_rn = '001234567890'; OAS_rns = '1234567890';
OAS_rn = new String (Math.random()); OAS_rns = OAS_rn.substring (2, 11);
function OAS_NORMAL(pos) {
document.write('
'!' + pos + OAS_query + '" TARGET=_top>');
Se hace la petición al servidor de aplicaciones (OAS = Oracle Application Server) a partir de una cadena que se almacena en
Luego parece que esta encuesta también es manipulable, conociendo el mecanismo que genera las peticiones y con un http Fuzzer (como el que incorpora Acunetix) podemos generar votos automáticamente.
Indagando un poco más he encontrado encuestas que incluían CAPTCHA, pero este mecanismo tampoco es infalible como vimos aquí, luego, ¿Qué nos queda? Incluso para dar un servicio de apariencia tan sencilla como este es necesario un conjunto de medidas de seguridad donde por sí sola ninguna nos puede proporcionar confianza de que el voto no ha sido manipulado / generado automáticamente, no obstante en conjunto el riesgo se “mitiga”. Algunas de las que a mí se me ocurren son:
- No incluir en código JavaScript los métodos de comprobación de origen, es visible.
- No verificar el origen a partir de información depositada en el cliente, esta información puede ser manipulada.
- Incluir CAPTCHA.
- Incluir un mecanismo para verificar el origen por token (secreto) + IP + credenciales que identifiquen al equipo, para garantizar la integridad del origen de la petición (podemos utilizar hash también). Estas comprobaciones se harán en el servidor.
Bueno, en un entorno ideal se podría utilizar incluso la firma digital de los usuarios (¿DNI electrónico?) para realizar una encuesta. Claro está que para saber que opina la gente con respecto al partidazo del Atleti no aplica, pero para un referendum,,, quizás si.
Esto es todo por hoy, cuidado donde votáis y cual es el origen de vuestras encuestas :)
Salu2!
17 de octubre de 2009
Forensic Analysis of a Network Scan
3.- What is the attacker’s IP address?
Se acabó la literature, tenemos que averiguar la dirección IP del atacante, para ello (y dado que no es un fichero grande) examinaremos todas las IP origen y destino con Wireshark. Rápidamente podemos observar que aparecen las siguientes IP source:
192.168.0.9, 192.168.09.9, 192.168.0.254, 192.168.0.199, 192.168.0.1
Y las siguientes IP de destino (IP.dst):
192.168.0.9, 192.168.0.99
En la siguiente captura hacemos filtrado para asegurarnos que no hay otras IP.dst:
De forma curiosa, la regla no filtra aquellos destinos inalcanzables (¡pero eso es una pista!), ahora bien, ¿Cómo sabemos la IP del atacante a partir de esta información? Deberemos examinar los paquetes, no obstante algo huele a chamusquina cuando el 99% del tráfico procede de 192.168.0.9 y tiene de destino 192.168.0.99. No obstante nos aseguramos comprobando el tráfico que sale de 192.168.0.99 y eliminando el que tiene de destino 192.168.0.9 (genera demasiado ruido), obteniendo que no hay tráfico de estas características. Lo cual quiere decir que no hay respuesta de 192.168.0.99 hacia otros destinos distintos de 192.168.0.9, en este caso la ausencia de evidencia es la evidencia de que el atacante (¿supuesto atacante?) proviene de 192.168.0.9, probablemente por que el resto de destinos no existían (¿IP spoofing?).
4.- What is the destination IP address?
Como hemos hecho nuestro trabajo bien en la anterior cuestión, sabemos que la IP que estaba respondiendo a todas las peticiones era la 192.168.0.9. Parece que vamos bien ;-)
5.- We scanned de honeypot using five different methods. Can you identify the five different scanning methods, and describe how each of five works?
Comienza a subir la dificultad del análisis, nos piden averiguar las distintas tácticas de escaneo utilizadas. Vayamos por partes, nada más comenzar la captura se observa un ping hacia 192.168.0.99, justo después (Time 10.346091) comienzan a hacerse peticiones de tipo SYN desde el puerto origen 52198 hacia puertos fuera del rango reservado, el host escaneado responde con trazas [RST, ACK], lo que significa que se ha llegado al puerto pero no hay nadie escuchando, este podría ser nuestro primer tipo de escaneo:
Correspondiente a un nmap –sS (TCP SYN Scan) 192.168.0.99, el cliente debería responder con un ACK pero no lo hace, se queda a medio camino (half-open scanning).
En el Time 148007 se vuelve a producir un ping hacia 192.168.0.99, en ese momento se arranca otro tipo de escaneo, el wireshark nos cambia los colores, lo que ayuda ya que es muy llamativo:
Parece que se están tratando de hacer fingerprinting del sistema operativo, es decir, detectar que tipo de máquina hay detrás, en este caso el escaneo se concentra en los puertos habituales de servicios Windows. Por ahora parece que no tiene suerte nuestro atacante :) sin embargo poco tiempo después, línea de tiempo 150563 comienzan a aparecer paquetes ACK duplicados (el Wireshark los pinta de un negro terrorífico), que tienen su cumbre en el 150626, donde se comienza a recibir [SYN-ACK] en servicios habituales de Windows, lo que parece un nmap –sX (Xmas scan) bastante exitoso:
Ahora bien, justo después (se puede apreciar en la imagen anterior) el atacante trata de establecer conexiones al puerto SSH, pero con todos los flags TCP sin determinar, esto significa que estamos delante de un “Null Scan”, también llamado nmap –sN, si pinchamos en cualquier paquete veremos esta información dentro de los flags del protocolo de control de transmisiones:
Terminamos con un último ataque, se llama decoy scanning y sirve para que el host remoto no sepa identificar (a priori) quien es el host destino, decoy significa señuelo en inglés y lo que hace es realizar la misma petición desde varias IP inexistentes como las que vimos en 3), está muy bien para pasar desapercibidos aunque obviamente no tiene sentido en un entorno como el que estamos viendo:
Puede reproducirse con nmap y la opción –D. Y con esto hemos repasado los escaneos que se han realizado, como vemos es importante conocer los tipos de escáneres que permiten las herramientas, para ello podemos acudir por ejemplo a las técnicas que explican en la página del escáner más famoso.
6) Which scanning tool was used to scan our honeypot? How were you able to determine this?
Bien, en el punto anterior vimos que opciones de nmap había que habilitar para cada ataque, pero eso no significa ni mucho menos que haya sido esta herramienta, ¿verdad? Necesitaremos utilizar un NIDS para analiza las trazas y verificar si detecta algún ataque y por parte de qué, para ello no hay nada como Snort, que nos devolverá algo parecido a esto:
[**] [111:10:1] spp_stream4: STEALTH ACTIVITY (nmap XMAS scan) detection [**] - 22539
[**] [111:9:1] spp_stream4: STEALTH ACTIVITY (NULL scan) detection [**] - 3996
[**] [111:12:1] spp_stream4: NMAP FINGERPRINT (stateful) detection [**] - 9
[**] [1:628:1] SCAN nmap TCP [**] - 9
Luego ahí tenemos a nuestro principal sospechoso.
7) What is the purpose of port scanning?
Bueno, la razón de realizar un escáner de puertos es bastante sencilla. Identificar todos los servicios y puertos abiertos que el host “víctima” está ofreciendo. O dicho de otro modo, identificar los posibles puntos de entrada a su sistema. Es una definición algo tosca pero nos vale :)
8) What ports are open on our honeypot?
Tal y como vimos en 5) los mecanismos para establecer una conexión TCP/IP incluyen el famoso saludo “a 3 bandas” o 3-way handshake, de tal forma que cuando hay un puerto abierto y dependiendo del ataque lo podemos identificar de varias formas. A grandes rasgos para no extender la entrada en demasiado he recolectado todos los paquetes emitidos por 192.168.0.99 con [SYN,ACK], es decir donde hay servicios, con ello he identificado los puertos:
- 22 / SSH
- 53 / DNS
- 80 / HTTP
- 443 /HTTPS
- 111 / SUNRPC
- 32768 / FILENET
9) Bonus Question: What operating system was the attacker using?
Esta cuestión puede parecer a priori la más difícil de responder, obtener el sistema operativo origen a partir de unas trazas TCP/IP podría ser un problema si no fuese por herramientas como p0f, Ettercap o Network Miner, las mismas utilizan técnicas de fingerprinting pasivo a raíz de los valores TTL, el tamaño de la ventana, type of service, (TOS) etc. Se puede profundizar en estas técnicas aquí. Yo he escogido Network Miner, la cual nos podría haber facilitado el trabajo desde el principio (pero entonces no habría sido tan divertido ;-) ) ya que es una herramienta de análisis forense en red. Ella nos muestra que tanto host atacante como host atacado eran Linux:
Y esto es todo por hoy, el análisis forense es magnífico para repasar y profundizar en los habituales conocimientos de redes, sistemas operativos, etc.
Buen fin de semana :)
NdA: Estoy teniendo bastantes problemas para escalar las imágenes sin perder detalle, así que se ven bastante pequeñas, siento el inconveniente.
15 de octubre de 2009
Top 500 Worst Passwords of all time
NO | Top 1-100 | Top 101–200 | Top 201–300 | Top 301–400 | Top 401–500 |
1 | 123456 | porsche | firebird | prince | rosebud |
2 | password | guitar | butter | beach | jaguar |
3 | 12345678 | chelsea | united | amateur | great |
4 | 1234 | black | turtle | 7777777 | cool |
5 | pussy | diamond | steelers | muffin | cooper |
6 | 12345 | nascar | tiffany | redsox | 1313 |
7 | dragon | jackson | zxcvbn | star | scorpio |
8 | qwerty | cameron | tomcat | testing | mountain |
9 | 696969 | 654321 | golf | shannon | madison |
10 | mustang | computer | bond007 | murphy | 987654 |
11 | letmein | amanda | bear | frank | brazil |
12 | baseball | wizard | tiger | hannah | lauren |
13 | master | xxxxxxxx | doctor | dave | japan |
14 | michael | money | gateway | eagle1 | naked |
15 | football | phoenix | gators | 11111 | squirt |
16 | shadow | mickey | angel | mother | stars |
17 | monkey | bailey | junior | nathan | apple |
18 | abc123 | knight | thx1138 | raiders | alexis |
19 | pass | iceman | porno | steve | aaaa |
20 | fuckme | tigers | badboy | forever | bonnie |
21 | 6969 | purple | debbie | angela | peaches |
22 | jordan | andrea | spider | viper | jasmine |
23 | harley | horny | melissa | ou812 | kevin |
24 | ranger | dakota | booger | jake | matt |
25 | iwantu | aaaaaa | 1212 | lovers | qwertyui |
26 | jennifer | player | flyers | suckit | danielle |
27 | hunter | sunshine | fish | gregory | beaver |
28 | fuck | morgan | porn | buddy | 4321 |
29 | 2000 | starwars | matrix | whatever | 4128 |
30 | test | boomer | teens | young | runner |
31 | batman | cowboys | scooby | nicholas | swimming |
32 | trustno1 | edward | jason | lucky | dolphin |
33 | thomas | charles | walter | helpme | gordon |
34 | tigger | girls | cumshot | jackie | casper |
35 | robert | booboo | boston | monica | stupid |
36 | access | coffee | braves | midnight | shit |
37 | love | xxxxxx | yankee | college | saturn |
38 | buster | bulldog | lover | baby | gemini |
39 | 1234567 | ncc1701 | barney | cunt | apples |
40 | soccer | rabbit | victor | brian | august |
41 | hockey | peanut | tucker | mark | 3333 |
42 | killer | john | princess | startrek | canada |
43 | george | johnny | mercedes | sierra | blazer |
44 | sexy | gandalf | 5150 | leather | cumming |
45 | andrew | spanky | doggie | 232323 | hunting |
46 | charlie | winter | zzzzzz | 4444 | kitty |
47 | superman | brandy | gunner | beavis | rainbow |
48 | asshole | compaq | horney | bigcock | 112233 |
49 | fuckyou | carlos | bubba | happy | arthur |
50 | dallas | tennis | 2112 | sophie | cream |
51 | jessica | james | fred | ladies | calvin |
52 | panties | mike | johnson | naughty | shaved |
53 | pepper | brandon | xxxxx | giants | surfer |
54 | 1111 | fender | tits | booty | samson |
55 | austin | anthony | member | blonde | kelly |
56 | william | blowme | boobs | fucked | paul |
57 | daniel | ferrari | donald | golden | mine |
58 | golfer | cookie | bigdaddy | 0 | king |
59 | summer | chicken | bronco | fire | racing |
60 | heather | maverick | penis | sandra | 5555 |
61 | hammer | chicago | voyager | pookie | eagle |
62 | yankees | joseph | rangers | packers | hentai |
63 | joshua | diablo | birdie | einstein | newyork |
64 | maggie | sexsex | trouble | dolphins | little |
65 | biteme | hardcore | white | 0 | redwings |
66 | enter | 666666 | topgun | chevy | smith |
67 | ashley | willie | bigtits | winston | sticky |
68 | thunder | welcome | bitches | warrior | cocacola |
69 | cowboy | chris | green | sammy | animal |
70 | silver | panther | super | slut | broncos |
71 | richard | yamaha | qazwsx | 8675309 | private |
72 | fucker | justin | magic | zxcvbnm | skippy |
73 | orange | banana | lakers | nipples | marvin |
74 | merlin | driver | rachel | power | blondes |
75 | michelle | marine | slayer | victoria | enjoy |
76 | corvette | angels | scott | asdfgh | girl |
77 | bigdog | fishing | 2222 | vagina | apollo |
78 | cheese | david | asdf | toyota | parker |
79 | matthew | maddog | video | travis | qwert |
80 | 121212 | hooters | london | hotdog | time |
81 | patrick | wilson | 7777 | paris | sydney |
82 | martin | butthead | marlboro | rock | women |
83 | freedom | dennis | srinivas | xxxx | voodoo |
84 | ginger | fucking | internet | extreme | magnum |
85 | blowjob | captain | action | redskins | juice |
86 | nicole | bigdick | carter | erotic | abgrtyu |
87 | sparky | chester | jasper | dirty | 777777 |
88 | yellow | smokey | monster | ford | dreams |
89 | camaro | xavier | teresa | freddy | maxwell |
90 | secret | steven | jeremy | arsenal | music |
91 | dick | viking | 11111111 | access14 | rush2112 |
92 | falcon | snoopy | bill | wolf | russia |
93 | taylor | blue | crystal | nipple | scorpion |
94 | 111111 | eagles | peter | iloveyou | rebecca |
95 | 131313 | winner | pussies | alex | tester |
96 | 123123 | samantha | cock | florida | mistress |
97 | bitch | house | beer | eric | phantom |
98 | hello | miller | rocket | legend | billy |
99 | scooter | flower | theman | movie | 6666 |
100 | please | jack | oliver | success | albert |