Wiki de sobre cicles formatius de informàtica

•6 Octubre 2014 • Feu un comentari

Enguany des de l’INS Lacetània s’està promovent la creació d’una wiki on tothom hi pugui contribuir tot afegint continguts teorico-pràctics, activitats i pràctiques tant de cicles de grau mig com totes les titulacions de grau superior.

Us recordo que dintre d’aquests cicles apareixen mòduls sobre seguretat, per tant si ho treballen professors o alumnes que estiguin involucrats en aquestes assignatures pot ser un bon lloc on aprendre la matèria.

Si teniu curiositat us podeu adreçar a: La wiki de infla.cat

Anuncis

Tornem a arrencar motors

•4 Octubre 2014 • Feu un comentari

Després dels messos d’estiu, que he aprofitat per fer molta lectura, tornem a arrencar el bloc amb moltes ganes i bones expectatives.

Estigueu atents que començem!

Estic de vacances!!!

•15 Juliol 2014 • Feu un comentari

Doncs si, ja he començat el període de vacances.  Com cada estiu estava planificant fer moltes coses i donar una bona empenta al bloc, però ja sabem que passa amb les vacances, a saber: cursets, obres, gestions burocràtiques, familiar, amics d’aquells que no veus en tot l’any…

Amb tot no he pogut encara arrencar res de res i té pinta que en unes setmanes tampoc tingui activitat.  Així doncs passo a penjar un bonic cartellet.

TANCAT PER VACANCES MERESCUDES.

I apa, ja ens veurem a la tornada!

Postal des del paradís.

Sigueu feliços!

dTools: Una eina per a generar diccionaris a partir de dominis… per ara!

•20 Juny 2014 • Feu un comentari

Un cop em van dir que “un hacker era tan bo com ho era el seu diccionari”.  Tot i que no soc gens partidari d’aquesta frase s’ha de reconèixer que molts atacs acaben en èxit, o no, depenent del diccionari que utilitzis.  Els atacs contra WPA2, Hydra o Medusa, Jhon the Ripper i un llarg reguitzell de programes centrats en la tècnica de l’atac per diccionari son útil depenent de aquest element crític.  Per tant cal afinar-lo el millor possible per garantir les màximes possibilitats d’èxit.

Un primer pas és utilitzar diccionaris genèrics, d’una llengua donada, i creuar els dits per a que l’administrador o usuari utilitzin una paraula genèrica com a contrasenya.  Però en una auditoria seriosa és imprescindible utilitzar eines per a personalitzar aquests diccionaris.  Tot i que hi han algunes eines al respecte, no he trobat cap que fes el que jo necessitava: crear un diccionari a partir de les paraules del domini web del client auditat.

Per tant, davant la necessitat, he agafat per banda el Python (cada dia n’estic més content d’aquest llenguatge) i m’he posat a crear la meva pròpia eina, que en poca estona ha estat funcionant.  La idea és anar-la polint i ampliant, de fet ja tinc forces idees, però siusplau sigueu bons i si teniu idees o veieu error de codi, llengua, lògica, etc. comuniqueu-m’ho i ho arreglarem per a que tothom ho pugui gaudir.  Recordeu que aquest programa esta alliberat sota la llicència GPL-2.0.

El programa el podreu trobar al seu repositori de GitLab: dtools.

El seu us és d’allò més simple:

python dtools.py -d <domini> -o <output_file>

Per exemple:

Us de dtools.

Us de dtools.

El procés pot trigar força, ja que cada cop que troba una paraula verifica que no la tingui en el diccionari.   De totes formes, pàgines petites poden acabar generant diccionaris de 3000 paraules així que vigileu que l’hi demaneu.

A tall d’exemple, al executar-lo contra alquimiabinaria.cat he obtingut un diccionari de 53KB amb un total de 5359 paraules extretes directament del domini, després de processar els 436 enllaços diferents que hi ha trobat.

Resultat de dtools contra el domini alquimiabinaria.cat

Resultat de dtools contra el domini alquimiabinaria.cat

Tot i que aquest diccionari personalitzat no garanteix l’èxit del atac, incrementa les possibilitats al utilitzar les paraules emprades per el webmaster / empresa per a definir-se, per parlar del seu negoci, els seus productes, serveis, etc.  Això fa que ens apareguin paraules de caire tècnic  relacionades amb la seva activitat econòmica, paraules del seu entorn directe relacionades amb la seva localització o empreses amb que treballa i fins i tot paraules d’argot o dialecte relacionades directament amb les persones que integren aquella empresa.  Per tant, i a totes llums, augmenta en bona proporció les possibilitats d’èxit d’un atac per diccionari.

Ara treballaré per incloure-hi més opcions, algunes simples, d’altres més complexes i úniques i anar ampliant així les funcionalitats de l’eina.  Així que no us despisteu i aneu donant-hi un cop d’ull.

De nou demanar-vos la vostra col·laboració en el projecte, que el podem fer créixer entre tots, i de ben segur que acabarem tenint una eina molt versàtil i que ens serà de allò més útil en les nostres auditories!

Practicar amb XSS és un joc, gràcies a Google

•10 Juny 2014 • Feu un comentari

XSS Game de Google

Les vulnerabilitats XSS s’estan mantenint de forma preocupant en les primeres posicions del ranking de problemes greus a la xarxa.  Tant és així que Google ha realitzat un petit joc per a que puguem practicar i conscienciar-nos així sobre el seu funcionament, efectes i gran impacte que poden tenir.

XSS Game de Google

Es tracta d’un seguit de reptes que ens convidaran a fer hacking sobre unes web ja preparades i explotar les inseguretats d’aquestes, tot aplicant diferents tècniques i atacs XSS.  Però no estarem sols, ja que cada repte compta amb tres pistes, si les volem.

Hem de recordar també que Google està pagant uns 7.500$ per cada bug (error de seguretat) XSS que es descobreix en els seus productes.  Així doncs el Bug Hunting és també una bona activitat… potser el Sudoku dels Hackers!

I per cert, ja m’ho deixava… per quan acabeu, a part d’un bonic pastís com el meu, us enviarà a una petita web de Google on tindreu accés a un manual de XSS, eines, el programa de Bug Huntig, saló de la fama i alguna coseta més.

Us deixo amb l’entreteniment! Bona caça i no feu trampes!!!

El meu pastís de part de Google.

El meu pastís de part de Google.

Ep, que no he fet mutis!

•27 Mai 2014 • Feu un comentari

Ja porto una bona temporada sense escriure cap entrada al blog, però no és que abandoni sinó més aviat que estic immers en varis projectes.

Alguns d’ells son sobre seguretat informàtica, i espero tenir enllestits en unes setmanes,  son la creació d’unes petites i humils eines en Python que ens poten facilitar una miqueta  la vida com a pentersters o hackers.

D’altres, lluny del tema de la seguretat informàtica, son per exemple el desenvolupament de videojocs multiplataforma en Moai, o el robot amb Arduino (ara que ja tinc totes les peces).

Si a tot això hi afegim altres feines, final de curs i lectura de llibres de seguretat informàtica ja us podeu imaginar quant de temps lliure m’està quedant ultimament per escriure.

Reduir la superfície d’atac: Port Knocking

•9 Mai 2014 • Feu un comentari

Un dels pilars en la seguretat informàtica és exposar els mínims serveis cap a l’exterior, o com s’anomena tècnicament, reduir la superfície d’atac.  I és que és de sentit comú, com menys portes siguin accessible des de l’exterior més reduïdes seran les opcions que tindrà un atacant per entrar.  I per a fer-ho res millor que un bon firewall.

Tanmateix, un cop tancats els serveis prescindibles i afinat les regles de filtratge per a que els serveis estiguin tan sols disponibles per aquells que els han d’utilitzar ens trobem amb poca cosa més a perfeccionar.  ¿Com podem protegir un servei d’accés remot, per exemple, que n”ha de fer ús un grup de gent des de IPs indeterminades? Poca cosa hi ha per filtrar aquí.

Tot i que el propi servei pugui contribuir a la seguretat tot afegint controls d’autenticació (claus, certificats, etc) el port continua estant accessible des de fora i per tant susceptible a atacs de tot tipus. Amb la tècnica que veurem avui el port quedarà totalment inaccessible des de l’exterior, a menys que coneguem una seqüència d’accions!

Tot i que el Port Knocking no és precisament una tècnica nova, és curiós veure que s’està aplicant molt poc tot i el gran grau de seguretat que ofereix.  A més, el fet que s’utilitzi poc és un doble avantatge ja que els hackers no esperaran que funcionem d’aquesta manera.

La idea darrera del Port Knocking és simple i s’inspira en el comportament de les botigues d’estraperlo que van proliferar a Estats Units durant l’època de la llei seca.  La idea és que el port que vulguem protegir estigui per defecte tancat per el firewall i tan sols si un client realitza una seqüència de “tocs” a determinats ports i en determinat ordre obrirem el port protegit, però tan sols l’obrirem per a aquell client!  Fixeu-vos doncs que a priori el port sempre estarà tancat i tan sols aquells que coneguin la seqüència correcta podran tenir-hi accés, si a més hi afegim que aquesta seqüència pot arribar a ser dinàmica, que si no sabem que el port està protegit per port knocking no veurem cap comportament sospitós i que com deia és una tècnica no gaire estesa tenim com a resultat una forma molt eficient de protegir serveis sensibles com SSH que necessàriament han d’estar exposat a l’exterior.

Com funciona el port knocking?

Com funciona el port knocking?

Com ho fem a Linux? Doncs molt senzill, tant a client com a servidor instal·lem el programa knockd que ens permetrà tant fer la gestió de les regles de iptables, per obrir i tancar el port, com fer els “tocs” des del client per a que els servidor ens obri el port corresponent.  Però anem per passes:

Al servidor

1.- Instal·lem kncokd

sudo apt-get install knockd

2.- Creem res regles de iptables pertinets (recordeu que s’han de fer permanents guardant-les i després carregant-les al inici del sistema).  Per a fer les proves tan sols crearem una política per defecte que rebutji tota connexió entrant.

sudo iptables -P INPUT DROP

3.- Activar el dimoni kncokd i indicar-hi quina interfície ha d’utilitzar per escoltar.  Això ho farem editant l’arxiu /etc/default/knockd i modificant els valors:

START_KNOCKD=1

KNOCKD_OPTS=”-i eth0″

4.- Configurem el comportament del servidor knockd, cal remarcar que aquí especifiquem en un primer lloc la seqüència de “tocs” a ports que dispara l’acció, el temps màxim per a fer la seqüència,l’acció a realitzar és una comanda arbitrària que en el nostre cas serà afegir/eliminar regles de iptables i els tipus de paquets de la seqüència de “tocs”.  Per a fer-ho haurem de modificar l’arxiu /etc/knockd.conf

En aquest exemple afegirem dos comportaments, el primer obrirà el port del SSH (port 22) per a la IP que ens ha fet els ports.  El segon el tancarà.

 [obrirSSH]

sequence = 1000,8000,2000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn

[tancarSSH]
sequence = 2000,8000,1000
seq_timeout = 5
command = /sbin/iptables -D INPUT -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn

5.- Finalment iniciem el servei de knockd:

sudo /etc/init.d/knockd start

Des del client

El client tan sols hem d’instal·lar el mateix knockd i després emprar-lo per a fer els “tocs màgics”.

1.- Instal·ler knockd:

sudo apt-get install knockd

2.- Fem els tocs al servidor per a que ens obri el port 22 per a nosaltres.

kncok <ip_servidor> 1000 8000 2000

I ja tindríem el port 22 per al nostre ús exclusiu! Per tancar-lo el mateix però utilitzant la seqüència de tancada.

També remarcar que tenim disponibles clients per a Windows, i alguna solució per a Windows com a servidor també però que ho he tastat.

Com evadir-lo

El primer entrebanc que ens trobarem com atacants és el simple fet de detectar-lo.  Tinguem clar que inicialment tots els ports els trobarem darrera del firewall i per tant no tindrem cap mena de pista sobre l’existència del dimoni knockd.  Per tant això és part de la seguretat per ofuscament, i tan sols obtindrem pistes de la seva existència per vies “no tècniques”.

Un cop sabem que existeix el knockd el vector amb més possibilitats ‘èxit és interceptar la seqüència de tocs d’un client legítim.  Això amb un simple MitM ens funcionarà.  Però i si el servei està configurat per a utilitzar seqüències de tocs dinàmiques? La seqüència que haguem recuperat no tindrà valor de nou!!! Així doncs tan sols ens quedaria intentar fer spoofing de la sessió oberta per el client (amb un IP Spoofing per exemple) o recollir varies seqüències de tocs per intentar deduir la funció dinàmica que els genera.

¿Com atacaríem aquesta mesura de seguretat? Doncs el vector més directe seria utilitzar un MitM entre client i servidor, tot i que la dificultat podria ser exponencial si com he comentat al principi, la combinació de “tocs” fos dinàmica. En aquest últim escenari tan sols tenir accés al port protegit fent spoofing i mentre l’usuari legítim no el tanqués.

Per acabar

Com podeu comprovar es tracta d’una tècnica molt potent, flexible i fàcil de implementar.  Espero que us sigui útil.