
Analyse et automatisation de phishing d'identifiants
Slides de la présentation à CircleCityCon 2017
Testé sur Ubuntu Server 16.04 sans interface graphique
usage: bucklegripper.py [-h] [-u URL] [-s SOURCE] [-r READFILE] [-a USERAGENT]
Visite une page suspectée de phishing, en fait une capture d'écran et la pille
pour trouver des archives de phishing
arguments optionnels :
-h, --help affiche ce message d'aide et quitte
-u URL, --url URL URL à visiter
-s SOURCE, --source SOURCE
Applique une source à l'origine de cette URL
-r READFILE, --readfile READFILE
Lit un fichier contenant des URLs, une par ligne
-a USERAGENT, --useragent USERAGENT
User-Agent personnalisé
Exemple de lecture d'une seule URL
$ python bucklegripper.py -s openphish -u http://www.govwebsearch.com/apc/opc/pdp/safe/optusnet.com.au/Login.html
.: BUCKLEGRIPPER v0.1 https://github.com/hadojae/DATA/ :.
[+] Traitement de http://www.govwebsearch.com/apc/opc/pdp/safe/optusnet.com.au/Login.html
[+] Capture d'écran de http://www.govwebsearch.com/apc/opc/pdp/safe/optusnet.com.au/Login.html sauvegardée sous 20170503-032950-openphish-www.govwebsearch.com.png
[+] Fichier Zip trouvé à http://www.govwebsearch.com/apc/opc/pdp/safe/optusnet.com.au.zip
[+] http://www.govwebsearch.com/apc/opc/pdp/safe/optusnet.com.au.zip sauvegardé sous 20170503-032950-openphish-www.govwebsearch.com-optusnet.com.au.zip
[+] Opendir trouvé à http://www.govwebsearch.com/apc/opc/pdp/safe/optusnet.com.au/
[+] Fichier php trouvé : http://www.govwebsearch.com/apc/opc/pdp/safe/optusnet.com.au/post.php
[+] Opendir trouvé à http://www.govwebsearch.com/apc/opc/pdp/safe/
[+] http://www.govwebsearch.com/apc/opc/pdp/safe/optusnet.com.au.zip sauvegardé sous 20170503-032951-openphish-www.govwebsearch.com-optusnet.com.au.zip
[+] Opendir trouvé à http://www.govwebsearch.com/apc/opc/pdp/
[+] Opendir trouvé à http://www.govwebsearch.com/apc/opc/
[+] Opendir trouvé à http://www.govwebsearch.com/apc/
Exemple de lecture d'un fichier contenant des URLs séparées par des lignes
$ python bucklegripper.py -s openphish -r ../../test_urls.txt
.: BUCKLEGRIPPER v0.1 https://github.com/hadojae/DATA/ :.
[+] Début du traitement de ../../test_urls.txt
[+] Traitement de http://onjasela.net/DB/fr/
[+] Capture d'écran de http://onjasela.net/DB/fr/ sauvegardée sous 20170503-010034-openphish-onjasela.net.png
[+] Traitement de http://suesschool.com/yahoologin/yahoologin/clients/login.php
[+] Capture d'écran de http://suesschool.com/yahoologin/yahoologin/clients/login.php sauvegardée sous 20170503-010053-openphish-suesschool.com.png
[+] Opendir trouvé à http://suesschool.com/yahoologin/yahoologin/clients/
[+] Fichier php trouvé : http://suesschool.com/yahoologin/yahoologin/clients/login.php
[+] Fichier php trouvé : http://suesschool.com/yahoologin/yahoologin/clients/data.php
[+] Fichier php trouvé : http://suesschool.com/yahoologin/yahoologin/clients/block.php
[+] Opendir trouvé à http://suesschool.com/yahoologin/yahoologin/
[+] Fichier php trouvé : http://suesschool.com/yahoologin/yahoologin/login.php
[+] Fichier php trouvé : http://suesschool.com/yahoologin/yahoologin/data.php
[+] Fichier php trouvé : http://suesschool.com/yahoologin/yahoologin/block.php
[+] Fichier Zip trouvé à http://suesschool.com/yahoologin.zip
[+] http://suesschool.com/yahoologin.zip sauvegardé sous 20170503-010125-openphish-suesschool.com-yahoologin.zip
[+] Opendir trouvé à http://suesschool.com/yahoologin/
[+] Traitement de http://communitypartnersjc.org/wp-admin/js/index
[+] Capture d'écran de http://communitypartnersjc.org/wp-admin/js/index sauvegardée sous 20170503-010138-openphish-communitypartnersjc.org.png
[+] Traitement de http://ytrdesh.com/info/
[+] Capture d'écran de http://ytrdesh.com/info/ sauvegardée sous 20170503-010148-openphish-ytrdesh.com.png
...suite...
usage: bullyblinder.py [-h] -u URL [-a USERAGENT] -i INTERFACE
Visite une page suspectée de phishing et tente de remplir un formulaire tout en capturant un pcap
arguments optionnels :
-h, --help affiche ce message d'aide et quitte
-u URL, --url URL URL à visiter
-a USERAGENT, --useragent USERAGENT
User-Agent personnalisé à utiliser
-i INTERFACE, --interface INTERFACE
Interface sur laquelle tshark doit écouter
Exemple d'utilisation
$ python bullyblinder.py -i eth0 -u http://www.justpropertydevelopers.com/scanned
.: BULLYBLINDER v0.1 https://github.com/hadojae/DATA/ :.
[+] Préparation du pcap : 20170503-033243-www.justpropertydevelopers.com.pcap
[+] Traitement de http://www.justpropertydevelopers.com/scanned
[+] Soumission du POST
[+] Contrôle : <HiddenControl(hidCflag=1)>, Type de contrôle : hidden, Nom du contrôle : hidCflag, ID du contrôle : hidCflag
[+] Contrôle : <SelectControl(<None>=[])>, Type de contrôle : select, Nom du contrôle : None, ID du contrôle : None
[+] Contrôle : <SelectControl(<None>=[*0])>, Type de contrôle : select, Nom du contrôle : None, ID du contrôle : None
[+] Contrôle : <SelectControl(<None>=[*1])>, Type de contrôle : select, Nom du contrôle : None, ID du contrôle : None
[+] Contrôle : <SelectControl(<None>=[*2])>, Type de contrôle : select, Nom du contrôle : None, ID du contrôle : None
[+] Contrôle : <SelectControl(<None>=[*3])>, Type de contrôle : select, Nom du contrôle : None, ID du contrôle : None
[+] Contrôle : <SelectControl(<None>=[*4])>, Type de contrôle : select, Nom du contrôle : None, ID du contrôle : None
[+] Contrôle : <TextControl([email protected])>, Type de contrôle : email, Nom du contrôle : Email, ID du contrôle : Email
[+] Contrôle : <PasswordControl(Passwd=696969)>, Type de contrôle : password, Nom du contrôle : Passwd, ID du contrôle : Passwd
[+] Contrôle : <SubmitControl(signIn=Sign in to view attachment) (readonly)>, Type de contrôle : submit, Nom du contrôle : signIn, ID du contrôle : signIn
[+] Contrôle : <CheckboxControl(PersistentCookie=[yes])>, Type de contrôle : checkbox, Nom du contrôle : PersistentCookie, ID du contrôle : PersistentCookie
[+] Contrôle : <HiddenControl(rmShown=1) (readonly)>, Type de contrôle : hidden, Nom du contrôle : rmShown, ID du contrôle : None
[-] Aucun formulaire trouvé, vérification des redirections et de l’obfuscation.
[+] js window.location ou document.location trouvé, traitement de la redirection
[+] https://drive.google.com/#my-drive semble être un site web légitime.
[+] Terminé ! 1 formulaire soumis
[+] Chaîne de requêtes URL :
http://justpropertydevelopers.com/scan/docg/doc/filewords/index.php
--http://justpropertydevelopers.com/scan/docg/doc/filewords/index.php
Exemple d'utilisation
$ ./slickshoes.sh ~/PDFs/
http://4cgemstones.com/polaiowpwwww/GD/index.php
http://80bpm.net/invoice-17524-Apr-26-2017-US-048591/
http://acheirapido.com.br/arquivos/pdf/
http://adams-kuwait.com/REview/office
http://rfaprojects.co.uk/invoice-80633-Apr-24-2017-US-665952/
http://sacm.net/SCANNED/ZN3747CGMSCWC/
https://geloscubinho.com.br/cgi/pdf/index.php
http://afriquecalabashsafaris.com/layouts/GD/index.php
http://akukoomole.com/AdobeLogin/index.php
...suite...
*PINCHERSOFPERIL et BULLYBUSTER sont en cours de développement
Les scripts DATA sont un travail en constante évolution. Les retours, problèmes et ajouts sont les bienvenus.
De vrais paquets Python seront créés une fois que suffisamment de tests et de fonctionnalités auront été ajoutés et que davantage de bugs auront été corrigés.
Assurez-vous d’utiliser les dernières versions de Firefox, Selenium et Mechanize. Selenium et Mechanize peuvent être mis à niveau via pip.
sudo apt-get update && sudo apt-get install firefox
sudo pip install mechanize --upgrade
sudo pip install selenium --upgrade
La version actuelle de geckodriver testée est la v0.19.1.
Si vous rencontrez des problèmes d’écriture de pcap, utilisez cette commande pour corriger les permissions de dumpcap, observé sur certains VPS.
sudo chgrp VOTRE_UTILISATEUR /usr/bin/dumpcap
sudo chmod 750 /usr/bin/dumpcap
sudo setcap cap_net_raw,cap_net_admin+eip /usr/bin/dumpcap
Assurez-vous de désactiver les fonctionnalités de la carte réseau lors de la capture du trafic. Exécutez cette commande en tant que root. Les erreurs de checksum causeront toutes sortes de cauchemars.
# for i in rx tx sg tso ufo gso gro lro; do ethtool -K eth0 $i off; done