Articles Taggés ‘hacking’

Tentative de Hack … quand les kikoolols attaquent!!!

11 octobre 2009

Bijour …

Un truc assez amusant dernièrement, une tentative de hack de mon site … la deuxième attaque « importante » que mon site subit, la première avait fait planter ma base de donnée … prelude (couplé à MySQL) avait reporté les 100 000 alertes de ModSecurity (sûrement l’utilisation d’un soft genre Acunetix ou …) causant un DoS sur 2 jours le temps que la base de données sur mon RPS à 4Meg/s d’écriture de disque puisse écrire les données ^^ ou comment s’auto-détruire à cause de ses propres systèmes de sécurité en « période d’attaque » xD.

Depuis j’avais installé le mod_evasive pour blacklister les IP en cas d’accès répété dans des délais très court au service HTTP, et OSSEC qui a la capacité de bannir des IP en cas d’erreurs répétées sur différent services (ssh, http,…), histoire de limiter le spam dans ma base de données.

Et donc sur ce coup-ci, l’attaque a durée très peu de temps (environ 10 secondes) :
prelude-scan

Avant de se terminer par un sympatique ban ip :

ddos

Au passage je ferais remarquer à 82.246.200.104 (un freenaute) que mon blog utilise la dernière version de WordPress qui peut être facilement téléchargeable sur le net pour ensuite trouver des failles dans le site en local et pirater le site en question sans avoir à le scanner, donnant la possibilité pour le propriétaire de site web en question de découvrir la tentative d’attaque et éviter d’avoir son IP Fixe °(^.^)° publié sous le tag « kikoololz featured with scanner ».

Sinon, je recommande OSSEC comme IPS pour la protection de sites web, c’est assez sympa, on peut à la fois le coupler avec prelude-manager pour centraliser et visualiser l’ensemble des tentatives d’attaques sur une seule page web, envoyer un mail à l’admin (voir plusieurs en définissant des domaines d’expertises) et blacklister les attaques (même petites ^^ je me suis déjà fait ban de mon serveur en tentant une simple SQL Inj. dans l’url du blog … oui j’ai rien d’autre à faire).

Voilà pour ce sublime week-end …

Détournement de données ^^.

9 novembre 2008

Bijour à tous …

En ces temps trouble en matière de sécurité informatique en France, voilà de quoi vous amuser sur votre réseaux local. (à noter que cette technique existe depuis la nuit des temps … c’est juste pour écrire un petit article)

Rapidement, cette technique existe depuis longtemps très longtemps, et repose sur un petit problème du protocole ARP :

Lorsque votre ordi se connecte à un autre ordi, il applique le masque de ss-réseaux sur l’IP, et suivant les cas, envoi le paquet :

  • directement à l’ordi en se basant sur l’adresse MAC, si il est dans le même ss-réseaux.
  • à la passerelle, qui recommencera le même procédé jusqu’à arriver dans le même ss-réseaux pour transférer les données.

Ce mécanisme repose donc sur un point important … l’adresse MAC, sachant qu’en IPv4 le routage et le transport des données sont deux choses différentes, on peut penser transférer des paquets à la bonne personne, alors que ça n’est pas le cas.

Pourquoi ?? Avant l’envoi des données, il faut connaitre l’adresse MAC d’une IP, et pour cela on envoi un superbe paquet contenant un message du genre : who-has 192.168.1.1, et l’ordi en question est censé répondre 192.168.1.1 is-at 00:11:22:33:44:55 … vous avez bien entendu compris qu’un seul ordi est censé répondre, mais si un autre ordi répondait, il serait apte à récupérer les données destiné à quelqu’un d’autre … horreur!!

Comment profiter de cette « faille » ?

… sous linux, c’est très simple (et sous windows encore plus ^^) :

Sous linux, on peut utiliser le logiciel ettercap ou arpspoof, qui se chargera de balancer des is-at sur le réseaux.

Mais avant ça, il faut mettre en marche l’ip_forwarding (sinon, les paquets vont s’arrêter à notre ordi et la victime sera déconnecté du net … utile pour faire passer les gosses à table, avec ça on deco de wow en 2 secs xD)

Il faut donc faire un echo 1 > /proc/sys/net/ipv4/ip_forward en root puis utiliser une des deux commandes suivante :

  • Ettercap : ettercap -Tq -i interface -M arp:remote /ip_victime/ //
  • Arpspoof : arpspoof -i interface -t ip_victime ip_a_détourner

Sous windows, il existe cain de oxid.it, qui est un très bon logiciel pour ce genre de chose ^^.

Après quelque secondes, vous devriez être capable de voir le traffic provenant de ip_victime … j’ai bien dit provenant, donc, si ip_victime se connecte à un site web, vous ne verrez que le GET / … de le requête et pas le retour du serveur vers ip_victime.

Ce cas nommé « half-routing » n’est vrai que pour arpspoof, car cain et ettercap s’occupent de faire la manipulation inverse c-à-d envoyer des paquets ARP à la passerelle ou à l’ip par laquelle la victime passe, pour récupérer les données à destination de ip_victime (on parle alors de full-routing).

Où peut-on profiter de cette « faille » ?

A partir du moment où l’on est dans le ss-réseaux des ordi à détourner à savoir :

  • Les réseaux wifi
  • Les sous-réseaux relié par hubs, routeurs, …

Qu’est-il possible de faire après le détournement des données ??

En faisant tourner un sniffer, il est possible de récupérer toutes les données (mots de passe, certificats, pages web, discussion via msn, détournement de DNS pour du phishing, …)

Des sniffers connu :

  • wireshark (peut potentiellement tous récupérer)
  • dsniff (spécialisé dans la récupération des mots de passe en tous genre)
  • la suite de snarf (mailsnarf, msgsnarf, urlsnarf) (permet de récupérer les données propre aux mails, messageries instantannée, et service web).

Pour détourner des noms de domaines (cf. un de mes autres articles ^^).

Certain logiciels, peuvent même par exemple récupérer les discussions msn et les modifier à la volées (malheureusement, je ne me souvient plus du nom du soft :p).

Comment se protéger ?

Comme je l’ai dit dans mon intro, le problème repose sur le fait que le routage (l’utilisation des mac) et le transport (l’utilisation d’ip) est dissocié, pour remédier à ce problème, on peut faire plusieurs chose :

  • Monter un réseaux en IPv6 (comme l’ip est la « description du routage », ça devient plus dur ^^).
  • Assigner à chaque MAC une ip fixe en dur.
  • Passer en IPSec.
  • Utiliser des logiciels du type arpwatch ou ettercap (qui permet aussi de détecter les attaques sur le réseaux), qui peuvent rapporter des changements d’adresse IP/MAC impromptu …

Donc voilà une raison de plus de protéger son réseau wifi … en plus du problème que connait le wpa ^^.

Détournement de DNS en local ou comment faire un audit de ses DNS.

1 novembre 2008

Allez hop …

On parle hacking maintenant :p (j’adore le titre … ça fait pas trop long ^^).

En vrai, je vais rapidement présenter un tools qui existe depuis bientôt 3 ans … (ça date :p … mais c’est sympa à utiliser ;) ). Cette outil permet de « détourner » des domaines (en local seulement …), pour soit : tester la sécurité de son réseaux, soit pour emmerder les collègues de bureau qui squattent facebook toutes la journées en redirigeant facebook sur l’intranet de la boite ^^.

Le tools se nomme DNSA, il est possible de le trouver en deux versions (la normal et la new generation).

Présentation (rapide … très très rapide) du problème :

  • Le protocole utilisé tourne sur de l’UDP … (besoin d’un dessin ?).
  • Le protocole se base sur un ID codé sur 16bit (65535) … rapide à brute forcer.
  • Lorsque le serveur DNS n’a pas l’info demandé il se comporte en client … il demande à son tour l’information à un niveau plus haut.
  • Mise en cache des informations pendant un certain temps … possibilité de cache poisoning.
  • Et plein d’autre chose ^^.

L’outil : (ne fonctionne qu’en local bien entendu :p n’imaginer pas pouvoir faire du phishing avec :p)

DNSA dans sa version normal a 3 modes :

  • DNS ID SPOOFING : permet de rediriger les requêtes d’un domaine sur une ip en particulier.
    • ./dnsa -1 -D microsoft.com -S IP_DU_SERVEUR -s IP_VICTIME -i INTERFACE_RESEAUX
    • Ici redirection du domaine de microsoft.com sur l’ip_du_serveur pour l’ip_victime.
  • DNS ID SNIFFING : permet de capturer les requêtes DNS.
    • ./dnsa -2 -s IP_VICTIME -w DNS_IP_VICTIME.txt
    • Ici on stocke les informations récupérer de la victime.
  • DNS CACHE POISONNING : permet de pourrir le cache ^^
    • ./dnsa -3 -D mon-domaine.org -S VERITABLE_IP_DU_SERVEUR -s IP_A_POURRIR -a www.microsoft.com -b IP_SECONDAIRE -i INTERFACE
    • Permet de détourner microsoft.com sur mon-domaine.org.

A mon humble avis … seul le premier est utile … pour les deux autres, un bon vieux ARP Poisoning fournit plus d’info croustillante. C’est surement pour cette raison que la version ng (new generation) ne fournit que du DNS ID Poisonning …

Ben voila … si lundi, vous voyez vos collègues squatter des domaines peu fréquentable vous penserez à moi ;) et vous saurez quoi faire ^^.

Un projet de scanneur de vulnérabilités web open source

6 août 2008

Bonjour à tous …

Un petit article pour aujourd’hui : la présentation d’un de mes projets C++/QT4.

Pour le moment ça se nomme 2GWVS pour Grigis Gaetan’s Web Vulnerability Scanner (‘tain le nom ça déchire déjà!!), j’ai dit pour le moment parce que je sais pas trop quel nom donner au projet.

But du projet

Le but du projet est de créer un logiciel dans le genre d’Acunetix (pour ceux qui connaissent), qui liste l’ensemble des urls du site web, puis récupère les variables des urls et les changes pour permettre des tests, pour détecter d’eventuel vulnérabilité au SQL Injection, XSS, …

Simple exemple, imaginons l’url suivante : http://monsitepiratable/index.php?var1=id&var2=texte_lol

Le logiciel va découper les paramètres ce qui va donner var1=id et var2=texte_lol, ensuite le logiciel change le id ou le texte_lol par des codes qui pourrait mettre en valeur une vulnérabilité dans le genre injection SQL, XSS ou …

Fonctionnalités

Pour le moment le logiciel ne permet que :

  1. Le crawl complet d’un site avec la possibilité de choisir le type de crawl (par regExp ou xml pour les sites Xhtml).
  2. La possibilité d’utiliser un proxy pour le crawl (genre ratproxy) et un autre pour l’execution des « payloads » lors du scanne des vulnérabilité.
  3. La possibilité de changer son user-agent (hum hum utile?).
  4. La possibilité de charger un base de données de payloads (xd) système en cours de dév.
  5. La possibilité de scanner seulement un type de page (text/plain, text/html, …).
  6. La détection (foireuse) d’url rewriting qui peut gener les tests de vulnérabilité

Pour que le logiciel soit fonctionnel il faudrait :

  1. Revoir le système de gestion des urls crawlées (vive le franglais!), pour permettre d’executer les payloads.
  2. Imaginer un sytème d’éxecution de payloads
  3. (SECONDAIRE) revoir le code … car pour le moment, je code façon « kilométrique » … le code est crade.
  4. Améliorer l’interface, car pour le moment c’est très bof.
  5. Supporté les requetes de type POST.
  6. et plein d’autre chose.

Pourquoi un scanneur de vulnérabilités web open-source ?

Parce qu’il n’en existe pas réellement, la plupart son juste des logiciels qui regarde les numéros de version d’application genre phpbb et cherche dans leurs base de données si ce numéro de version est vulnérable, donc pour le petit webmaster qui crée sont site web, ce genre d’application est inutile.

D’autant plus que selon certaines études, 70% des sites web sur le net seraient vulnérable à diverses failles, le but de ce logiciel serait donc de permettre aux webmestres de vérifier la vulnérabilité de leurs site web au failles de type SQL Injection, XSS, failles php, … et ceci gratuitement ^^.

Location du projet

Donc voilà … si vous êtes intéressé le site du projet, le svn.

Bien entendu, si vous voulez participer, vous êtes le bienvenu.

Le petit screen pour la route ^^ :

Détecter des failles dans vos sites web très facilement avec ratproxy

3 juillet 2008

Bonjour à tous …

Alors voila … je vais vous parler très rapidement de l’application ratproxy, qui est une application un peu différentes des scanners de sécurité du style acunetix, ou des proxy « facilitant les pentest » du genre (WebScarab, Paros, Burp ou ProxMon).

Celui-ci s’utilise comme un proxy (comme sont nom l’indique ;) ), et lorsque vous naviguez sur des sites, il regarde le contenu de la page web et imagine des failles possible, ce qui le rend très utile, car il ne regarde les failles que dans les pages que vous regardez, donc pas d’utilisation abusif de bande passante comme un scanner, des possibilités d’obtenir un rapide rapport de la session de surf (à générer depuis la console pour le moment), ce qui est très intéressant c’est qu’il analyse pas mal le javascript (XSS et …), possibilité de détecter des problèmes dans des applications Web2.0, du CSRF et autre …

Donc voilà … pour les webmasters qui ne veulent pas perdre trop de bande passante dans des tests de sécurités : lien de downloads (version béta!) (sortie il y a 6 heures!! noté que php-engineering is on the edge!!).

Pour compiler le logiciel, un simple make dans le dossier de l’appli suffit.

Ensuite faite :

./ratproxy -w session.log -x -t -s -c -g

qui vous permettra de générer un fichier session.log qui loggera les xss (-x) transversal directory (-t) les requetes post (-s) les cookie (-c) et -g les CSRF

Puis configurer firefox pour utiliser le proxy localhost:8080, puis pour récupérer un rapport :

./ratproxy-report.sh session.log >report.html

et voilà … il vous faudra ensuite lire le fichier avec firefox ^^ et vous aurez accès à pas mal d’info sympa sur votre site web.

Pourquoi scanner votre site web?? Tous simplement parce que 70% des sites web possède des failles … mon stage au MIV l’aura prouvé ^^.

Allez bonne après-midi!!

Utilisation de socat avec Tor

27 juin 2008

Bonjour à tous …

Alors voilà, dans mes éternelles idées stupide, j’ai voulu rediriger des ports de mon ordi sur d’autres ordis via le réseaux tor

L’intérêt ?? L’anonymité bien sûr xD. (et d’autre chose bien plus suptile, mais bon :) ).

Imaginons (simple exemple (très inutile)), que l’on veuille ce connecter au superbe site php-engineering.info (donc au port 80), en passant par une addresse local, qui redirigera via le proxy tor au site du domaine php-engineering.info.

Les outils :

socat et tor (a installer si ça n’est pas déjà fait).

La commande de socat à exécuter :

socat TCP4-LISTEN:1337,fork SOCKS4A:localhost:www.php-engineering.info:80,socksport=9050

(avec tor sur le port 9050 bien sûr ^^).

Ensuite, prenez votre navigateur favoris et allez à l’adresse http://127.0.0.1:1337, et là comme par magie vous tombez sur le site de php-engineering.info. Oui mais la vous allez dire : qu’est-ce que tu nous sort là … on a des proxy qui nous permettent de faire ça … (via privoxy ou autres astuces).

Oui, mais là l’astuce c’est que l’on peut utiliser notre navigateur, mais aussi d’autre logiciel qui ne peuvent pas utiliser des proxies (qui a dit nmap??).

Donc voilà … vous voulez jouer à ETQW sur un serveur via un proxy tor … vous avez la solution ;) .

BT3 dans les bacs … les hackeurs vont se régaler

26 juin 2008

Rebijour à tous …

Autre grosse nouvelle du jour d’il y a quelque jour ;) .

La sortie de BackTrack 3 en version final disponible en LiveCD/USB ou image VmWare de la distribution basé sur SlackWare dédié au piratage pentest

Les matos/logiciels embarqués :

Kernel : 2.6.21.5 (support du Dual Core … ça va chauffer lors du cracking ;) )

L’ensemble des drivers nécessaire pour le Wifi (dont certain comme Atheros) (le piratage pentest des réseaux wifi oblige …).

Niveau hacking pentesting :

Les tools de « décryptage/brute force » dont la série de gestion des Rainbow Table (pour craquer des gros mot de passe « à la volée » ou presque 30 secondes pour un mdp Windows de 14 caractères ….).

A noter aussi l’ajout de spoonWep un outil qui crack les réseaux wep en moins de 5 minutes des clés de 10 caractères … on se sent nu là xD

Génération de payloads : metasploit mis à jour … qui a besoin de ça … on les code nous-même nos shellcode ^^.

Les outils de scan : a noté que SAINT offre une licence d’un an aux utilisateurs pour scanner des range d’ip … aller savoir pourquoi … (pas mal de pays se dote d’une cyber-army … alors autant balancé tous le monde dans la mélée xD).

Forensics tools : Niveau recherche et mise en relation d’information, l’auteur de maltego a fait une version très spéciale …

Pour télécharger bt3

Bon hack pentest ;)

Se protéger contre la failles CSRF

6 juin 2008

Bonjour,

Avec la technologie ajax, les failles CSRF commencent à fleurirent sur internet. Mais qu’est-ce que la faille CSRF ?

Un petit tour sur Wikipedia suffit, ça signifie : Cross-Site Request Forgeries, en fait, il s’agit d’une technique très simple de hacking, qui consiste à rediriger une personne (de préférence un administrateur), sur son site avec des requêtes (en GET ou en POST cf. Protocole HTTP) susceptible de porter atteinte au contenu du site web.

Exemple :

Soit le Pigeon P, administrateur d’un site web dans lequel l’url suivante : http://p-site/post.php?titre=titre&art=article permet l’ajout d’un article avec le titre et le contenu de l’article (exemple stupide).

Imaginons, que P fréquente souvent un forum F, et qu’un Hacker H le sache, il suffit à H de mettre le code suivant comme avatar : http://p-site/post.php?titre=Owned&art=hacked, générant donc sur le forum F, le code suivant : <img src= »http://p-site/post.php?titre=Owned&art=hacked » />, lorsque P regardera le post du hacker H, son navigateur cherchera l’image du lien, et executera l’ajout de l’article (si P était encore authentifié sur son site bien sûr …).

Vous aurez donc très vite compris l’interêt de ce déconnecter d’un site web, d’un forum ou d’un blog tous de suite après avoir effectué vos actions courante …

Bien entendu ce protéger de ce genre d’attaque peut être mieux que de ce déconnecter à chaque fois, d’autant plus que parfois, ça arrive, on oublie de ce déconnecter.

Une technique de protection pour une requête de type POST peut-être la suivante :

$url_de_votre_site= »http://www.php-engineering.info/ »;
  1. if($_SERVER['REQUEST_METHOD']=="POST" AND
  2. !preg_match("#^".$url_de_votre_site."#i",$_SERVER['HTTP_REFERER']))
  3. {
  4. echo "Tentative de CSRF sur un formulaire";
  5. exit;
  6. }
  7. ?&gt;

Une technique de protection pour une requête de type GET peut-être la suivante :

$url_de_votre_site= »http://www.php-engineering.info/ »;
  1.  
  2. //les fichiers auquels on ne peut accéder directement via un autre site
  3. $tab_fichier_interdit[]="edit.php";
  4. $tab_fichier_interdit[]="supprime.php";
  5.  
  6. if($_SERVER['REQUEST_METHOD']=="GET" AND
  7. !preg_match("#^".$url_de_votre_site."#i",$_SERVER['HTTP_REFERER']))
  8. {
  9. $f=substr($_SERVER['REQUEST_URI'],0,strrpos($_SERVER['REQUEST_URI'],"?"));
  10. //on enlève ce qui est après le ?
  11. $f=substr($f,strrpos($f,"/")+1,strlen($f));
  12. //on isole le nom du fichier
  13.  
  14. //et on regarde si c'est un fichier qui ne doit pas être accéder
  15. //directement depuis un autre site web
  16. if(in_array($f,$tab_fichier_interdit))
  17. {
  18. echo "Tentative de CSRF sur une url";
  19. exit;
  20. }
  21. }

Bon, bien sûr, il existe d’autre technique, comme mettre un captcha.

Mais pourquoi ai-je critiqué l’ajax ?

Tous simplement, parce que la plupart du temps les développeurs ajax, préfère utiliser du get que du post … aller savoir pourquoi (avec scriptaculous, que ce soit en GET ou en POST c’est presque la même chose).

A noter que par exemple gmail n’utilise que du get dans son système de mail … il paraitrait que des hackers se sont pas mal amusé avec, et qu’il existerait encore des failles … penser à vous déconnecter.