dimanche 16 août 2009

tuto Xplico internet decodeur

xplico

Comme on me l'avait demandé, je réalise un tuto sur xplico, la première partie présente l'installation d'xplico et son web ui, la seconde partie montre son utilisation en live sur du Wep (video + texte); la troisième partie montre son utilisation réelle c'est à dire en forensics sur un fichier pcap (video + texte), et la partie 4 en cli.

Alors, Xplico permet quoi ? il permet d'avoir une vision "humaine" du contenu de votre pcap, si vous prenez wireshark, vous voyez trucs muche tcp icmp etc, vous pouvez extraire l'intégralité via follow tcp stream, mais pour une visualisation rapide du contenu cela n'est pas l'idéal.

C'est là qu'intervient xplico, il va permettre de voir directement les images videos etc.

Let's go on installe le cool tool, je pars sur une base ubuntu, mais pour les autres ca montre bien les dépendances et ne devrait pas poser de problèmes majeurs.


sudo su
#libpcap est nécessaire, mais on va foutre des trucs en plus pour les scripts.

apt-get install sqlite tcpdump tshark
libx11-dev libxt-dev libxi-dev apache2 php5 php5-sqlite build-essential perl zlib1g-dev libpcap-dev libsqlite0-dev libmysqlclient15-dev python2.5-minimal python2.5 python-all

#sqlite car il nous faut la version 2 d'sqlite + la lib-dev
#(nommé sqlite dans les dépots ubuntu)
#apache2 ca c'est pour la web ui (interface web) pas
#obigé php5-sqilte idem
#tcpdump tshark pour les scripts et de toute manière
#libpcap nécessaire (tshark peut ne pas etre utilisé ou rempacé
#par wireshark qui le contient)
#zlib1g ca c'est pour geoip
#libx* pour pcl6 (option)


cd /tmp
wget http://downloads.sourceforge.net/project/xplico/xplico/version%200.5.2/xplico-0.5.2.tgz

tar zxvf xplico-0.5.2.tgz
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.5.tar.gz
tar zxvf GeoIP-1.4.5.tar.gz
cd GeoIP-1.4.5
./configure
make
make install
rm -f *.tar.gz
cd /tmp/xplico
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gzip -d GeoLiteCity.dat.gz
rm -f *dat.gz
make
cd ..
wget http://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/ghostpdl/ghostpdl-8.70.tar.bz2
tar jxvf ghostpdl-8.70.tar.bz2
#de ghostpcl on a juste besoin de pcl6 c'est necessaire pour "network printer job"
rm -f *.bz2
cd ghostpdl-8.70
make
#ca ca prend du temps...
cd ..
cp /tmp/ghostpdl-8.70/main/obj/pcl6 /tmp/xplico/
rm -rf
ghostpdl-8.70
cd /tmp/xplico
make install

#Ça c'était la part 1 de l'installation, maintenant on installe la web ui
#(interface web)

cd /var/www
wget http://downloads.sourceforge.net/project/xplico/xplico/version%200.5.2/xplico_interface-0.5.2.tgz
tar zxvf xplico_interface-0.5.2.tgz
rm -f *2.tgz

#le chmod recursif en 777 c'est si vous avez un problème d'accès,
#attention ca offre les droits max,
#lecture écriture exécution pour tous les fichiers groupes utilisateurs.

chmod -R 777 /gui.xplico.org

On continue ?
Ok il faut que l'interface web soit accessible pour apache avec toutes les options activées et allow override allow.

Pour plus de simplicité vous pouvez directement télécharger la conf (ca ne touche en rien apache, ça active tout pour xplico et uniquement xplico.

cd /etc/apache2/sites-enabled
wget http://bricowifi.free.fr/xplico

Ensuite dans /etc/apache2/ports.conf vous devez ajouter xplico et son port
Voici un extrait du mien avec l'ajout en rouge:

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz
# xplico Host port
NameVirtualHost *:9876
Listen 9876
NameVirtualHost *:80
Listen 80

Il faut aussi éditer php.ini pour le down, l'upload max:

nano /etc/php5/apache2/php.ini

post_max_size = 100M

upload_max_filesize = 100M

On oublie pas d'activer le mode rewrite sur apache !!!!

a2enmod rewrite

Terminé, on relance apache:
/etc/init.d/apache2 restart

///////////////Pour le tutoriel d'instalation c'est terminé///////////// ouf... (merci de préciser si y a une coquille)

  • Phase 2 Demo live Wep sniffing avec airodump-ng et airtun-ng; décodage avec Xplico


Détail des commandes:

airmon-ng
airmon-ng start wlan1
airodump-ng -w /root/Bureau/s -c 11 --bssid 00:11:22:33:44:55 mon0

(airmon-ng pour passer a carte en monitor)
(airodump-ng pour enregistrer; -w "écrire" -c "canal" --bssid "@ mac de l'ap")

|-------------------------------------------------------------------

|--[3] Launch airtun-ng with the Wep key and mount your tun/tap at0

airtun-ng -a 00:11:22:33:44:55 -w 55:44:33:22:11 mon0
ifconfig at0 up

(airtun-ng -a "@mac ap" -w "clé wep" interface wifi)

|-------------------------------------------------------------------

|--[4] Hack Xplico

| a] enlevez /opt/xplico/xplico.db
| b] enlevez tous /opt/xplico/pol
| c] exec:
| cd /opt/xplico/script/db/sqlite2
| ./create_xplico_db.sh
| d] avec la web ui, réalisez une seul case
| c] dans cette case créez seulement une session d'écoute (sol) listening sessions
| ici /opt/xplico/script vous trouverez
| rt_demo.sh. éditez l'interface par la votre



cd /opt/xplico/script/ && ./sqlite_demo.sh
|#abort

|-------------------------------------------------------------------

|--[5] Run Xplico in live, 1337

cd /opt/xplico/script/ && ./rt_demo.sh

  • Phase 3 demo forensics sur un pcap avec xplico, airdecap-ng pour decrypter le Wep et décoder son contenu


Détail des commandes:

|--[1] First decrypt your wep packet

airdecap-ng -w 55:44:33:22:11 s-01.cap

(airdecap-ng -w "clé wep" "emplacement pcap"

|-------------------------------------------------------------------

|--[2] Run Xplico demo sqlite

cd /opt/xplico/script/ && ./sqlite_demo.sh

|-------------------------------------------------------------------

|--[3] Jump to the web ui, create case & sol, upload your pcap (*dec*)

http://127.0.0.1:9876
  • Phase 4 Xplico en cli (sans l'interface web)
On se place dans notre répertoire de binaire:

./xplico -m pcap -f s-01.cap

pour un dossier de pcap:

./xplico -m pcap -d ~/wardrive/

En temps reel sur eth0:

./xplico -m rltm -i eth0

Voila qui boucle le tuto sur xplico, site web: xplico
Un problème? Venez en parler sur le forum, tout a une solution :D

64 commentaires:

Anonyme a dit…

Hi !

A tester aussi la capture des mails au format .eml. Les re-traduire au format mbox avec ./eml2mbox.rb ./xplico/tmp/xplico/pop/ puis les importer dans évolution ...

Merci pour ton blog qui m'a permis de découvrir des tas de choses fort intéressantes ;-)

@+

Anonyme a dit…

Oh, ça c'est cool!

Merci beaucoup, continues comme ça ! ;)

* a dit…

anonyme 2 merci, anonyme 1 ca c'est une bonne idée, à tester :)

Anonyme a dit…

Encore merci pour l'install et le détail des commandes super logiciel.

excellent site régulièrement visité depuis un an.

Anonyme a dit…

Mouarf enorme ce joujou ^^
Je test ca ce week end.

Bisous.

Benjy

Anonyme a dit…

Salut et grand merci pour cette découverte !!

Je bloque a l'install de la Web UI : 404 !!
l'URL est réécrite en http://localhost:9876/user/index !
Je ne vois pas ou ca a pu merder !!

PS : je n'ai pas installé les options GeoIP et pcl ...

merci de votre aide ... la franchement c bete, mais je vois pas ...

* a dit…

il ne faut pas oublier la conf de apache (la partit wget sur mon site) il ne faut pas oublier d'activer le port dans ports.conf et surtout une fois ceci fait de faire un restart de apache

Anonyme a dit…

Merci de ta réponse !

Oui j'ai réalisé les modifs nécéssaires dans le port.conf et ajouté xplico dans /etc/apache2/site-enabled/

en regardans les logs errors d'xplico, j'ai :
[error] [client 127.0.0.1] File does not exist: /var/www/gui.xplico.org/users
alors que je me connecte : sur http://localhost:9876

....

donc il chope bien le index.php, mais il cherche un dossier users qui n'existe pas ...

des idées ...

* a dit…

tu utilises ubuntu ?

je fais faire un test ce soir (car sur une ubuntu d'origine j'ai juste test jusqu'a la compilation pour xplico cli)

* a dit…

re

bon j'ai plombé ma machine virtuel ducoup j'ai pas peu test, dans l'installation il manquait effectivement un truc important "python2.5"

c'est corrigé dans la ligne apt-get tout en haut, helas j'ai pas peu test, donc si tu peux me prévenir du bon ou mauvais fonctionnement ? merci

arsene a dit…

salut !
merci pour ce tutaux
>....
>
>donc il chope bien le index.php, mais il >cherche un dossier users qui n'existe pas >...

moi aussi j'ai la même erreur sur kubuntu et j'avais deja installer python 2.5.

Anonyme a dit…

Salut,

Je suis parti d'une Ubuntu 9.4 tte neuve ...
J'ai bien python2.5 déja installé ...

@+

arsene a dit…

re,
j'ai lu la doc d'install, jai tape cette adresse http://localhost:9876/index.php/users/login et cela marche, il y a peut etre un probleme de mod_rewrite

* a dit…

arf j'ai zappé le mode rewrite dans le tuto

sudo a2enmod rewrite

Si vous pouvez test et me dire si c'est ok :)

* a dit…

ca va activer rewrite dans la conf apache il faut aussi relancer apache:

sudo /etc/init.d/apache2 restart

Anonyme a dit…

yooo !!!

ca maaarrche!!!!
(enfin j'ai la page de login !)

C'etait bien le mod rewrite d'a2 qui posait problème

Je vais continuer les tests du reste du tuto ...

Merci énormément de ton aide !!
et encore merci du tuto !

f1l

* a dit…

merci a toi, pour le retour

j'ajoute ca au tuto, comme ca il sera définitivement opérationnel sur une ubuntu de serie, et servira aux autres pour ce dont il est nécessaire de faire / installer.

Anonyme a dit…

quel est le login et mdp par défaut pour se connecter à la console web?
merci

* a dit…

deft
xplico

c'est marqué

Anonyme a dit…

salut !

Je reviens à la charge ...
Install OK maintenant
mais ...
lorsque je lance ./rt_demo pour un realtime analysis
(admettons que je sois sur un wifi open)
j'ai la commande tcpdump du script qui me renvois :
tcpdump: /opt/xplico/pol_1/sol_1/decode/rt.pcap: Permission denied

j'ai vérifier les perms, changer pour 1777 et meme essayer sudo ... mais rien n'y fait !

Meme en lancant la commande tcpdump en solo, il me renvois cette erreur !

une idée ?

Anonyme a dit…

Bonjour, excusez-moi d'être un peu noob :p
mais est-ce que c'est normal d'avoir ca quand je fais le make de ghostpdl-8.70 ?

attention : no previous prototype for imdi k147, k147gen, k147tab, etc...

Anonyme a dit…

I don't speak french, but this is hands down the best guide I've found to getting explico running from source. Far superior to the provided documentation I think. Does anyone know how to change the default credentials?

* a dit…

hello and thank you,

Credential:

root ☯ grep deft -R /var/www/gui.xplico.org/

/var/www/gui.xplico.org/app/views/users/login.thtml:User: deft

root ☯

arsene a dit…

Salut!!
Ca marche nickel chez moi! merci!

une petite question!
dans l'interface web quand on consulte les pages visitées , il y a marqué celà : "For a complete wiew of html page set your browser to use Proxy, and point it to Web server",
j'ai esseyé de setter mon proxy firefox avec localhost:9876 mais cela fonctionne pas, est ce qu'il y a une adresse specific à setter?

Anonyme a dit…

Thanks again, I looked at that grep command, but I think that will just allow you to remove it from displaying those default credentials. If I figure out how to add and manage users, I'll post it here.

I've also written a script to automate starting xplico in realtime (so you don't have to remember all the commands, many of which are very sensitive to where you execute them).

Here it is:
#!/bin/bash
sudo rm /opt/xplico/xplico.db
sudo rm -rf /opt/xplico/pol*

cd /opt/xplico/script/db/sqlite2/
sudo ./create_xplico_db.sh
cd /opt/xplico/
sudo ./script/create_session.sh 1 1
sudo ./script/sqlite_demo.sh
sudo ./script/rt_demo.sh


Maybe someone will find that useful. Thanks again, this tutorial is so great.
bcg[@]struxural[dot]com

* a dit…

anonyme:
http://127.0.0.1:9876/users/register

and in your script (i don't have test) but you have missing to backup the conf, if you run xplico with pcap it will failed (i think)
(now i don't have the time for test it, i will test monday)
/opt/xplico/cfg/xplico.cfg

arsene, dans ma démonstration ca fonctionne bien, je suis sur 127.0.0.1:9876 c'est ca le proxy, il faut que tu sois connecté au net pour voir les pages dans leur intégralités

Anonyme a dit…

Salut.
J'ai un soucis à la fin... Je fais
cd /opt/xplico/script/ && ./rt_demo.sh

ensuite j'ai le message d'avertissement et en dessous:

error opening dile GeoLiteCity.dat
tcpdump: /opt/xplico/pol_1/decode/rt.cap: Permission denied

Et je suis bien root...

* a dit…

error opening dile GeoLiteCity.dat

ca c'est normal, ca ne pose pas de soucis pour le kml, par contre l'autre j'ai déja eu ca, mais je ne me souvient plus a quoi c'était du.

Si tu as toujours ton dossier dans /tmp, je te conseil d'écraser en faisant un make install, ensuite backup /opt/xplico, si tu veux tourner en live sniff, tu deletes xplico et tu décompresse ton backup

* a dit…

faut que tu exécutes: sqlite_demo.sh avant

Anonyme a dit…

pourtant je lance bien sqlite_demo.sh avant :/

Anonyme a dit…

Bon ben je me suis pris la tête depuis ce matin avec ça et j'ai pas vraiment avancé... Donc si quelqu'un trouve la solution un jour, ou si quelqu'un se prendre la tête sur ma machine via sparkangel ou autre chose (dans ce cas j'add un dongle wifi comme ça j'ai 2 cartes) ben qu'il me mail: Bling8d@gmail.com
Merci

* a dit…

je t'envois mon foder xplico sous forme d'archive si tu veux, après il faut que tu es quand meme modifié le php.ini comme indiqué, ouvert e port apache et foutu e gui.

Bling a dit…

Ok, envois le moi, je test et je tiens au courant
Thx

* a dit…

sudo su
cd /opt
wget http://bricowifi.free.fr/xplico.tar.bz2

tar jxvf xplico.tar.bz2
ensuite tu delete pas 'archive, comme ca si tu foires un truc, tu fais comme dans a video tu deletes et tu restores.

Pour les commandes c'est comme dans la video live wep sniffing, tu fais tourner airodump et airtun (airtun sans préciser de cé wep)
puis tu ances xplico (en root) sudo ou sudo su si tu veux avoir e terminal root et pas une seul commande.

Bling a dit…

Bon ben c'est toujours pareil :/
Pourquoi tu me dis "airtun sans préciser de clé wep"? Il en faut une de toute façon non?

* a dit…

bein si tu fous at0 ca risque pas de fonctionner sans airtun et non pas besoin de clé wep si c'est un réseau ouvert, si y a du wep la oui.

Bling a dit…

Comment ça si je fous at0? Mon interface est ra0 et je l'ai changée dans rt_demo.sh.
Vraiment, je fais tout comme dans la video et j'obtiens les bons résultats mais à la fin

error opening dile GeoLiteCity.dat
tcpdump: /opt/xplico/pol_1/decode/rt.cap: Permission denied

* a dit…

c'est quoi ca ra0 ? c'est surement pas airtun-ng qui te donne une interface ra0 !

Bling a dit…

Non, bon. ra0 c'est juste mon interface que je met en mode monitor... Et puis at0 je la monte...

En fait je crois que c'est là que je fais une erreur... Si on prend le tuto ton interface wlan1 pour moi c'est ra0. Et le truc c'est que j'avais pas vu et donc partout ou il y'a mon0 j'ai mis ra0.
Mais mon0 elle vient d'où?

* a dit…

mon0 c'est l'interface en mode monitor, c'est une interface virtuel, en gros je suis connecté avec wlan1 et je sniff avec mon0 (comme du atheros quoi)

pour toi si tu as ra0 en mode monitor, bein c'est ra0 ensuite tu utilises ra0 avec airtun-ng, et dans le script de xplico tu ajoutes at0, c'est comme dans la vids sauf que ma mon0 c'est ta ra0 si il te créé pas d'interface virtuel.

Bling a dit…

en fait je pense que j'avais mis ra0 au lieu de at0 dans le rt_demo.sh mais bon... Ca change juste que maintenant j'ai:

Error Opening file GeoLiteCity.dat
tcpdump: WARNING: at0: no ipv4 assigned
tcpdump: /opt/xplico/pol_1/decode/rt.pcap: Pemission denied

* a dit…

je comprend pas la;
delete ton folder xplico, decompresse l'archive et refait comme dans la video, (sauf mon0 = ra0)

et passe un sudo su dans ton term avant, je vais retester demain, je te tiendrais au courant si y a un problème chez moi, mais en principe non.

(en principe la seul différence qu'on a c'est que moi je suis en utilisateur root, sauf que toi avec sudo ca revient au même)

bref on se tien au courant, y a pas de raisons que ca foire chez toi.

Tu tournes sous quoi ? (ubuntu, backtrack... ?)

ah peut etre, lance firefox en root, mais je pense pas que ca va changer, (sudo firefox)

Bling a dit…

Bah j'ai déjà fait toussa (delete le folder...) sinon je suis toujours en sudo su et pour firefox j'ai déjà essayé aussi en le lancant en root...
Et je suis sous ubuntu

* a dit…

on voit ca par irc demain si possible, ou silc, ou via la blog mais c'est plus chiant

Bling a dit…

OK. Je suis sur le chan bt toute la journée avec le même nick.

james a dit…

hi! i like the designs. check out the source of the template.
Thank you! i love it.
More templates easy to download

Bling a dit…

Me revoilà mais cette fois sur mon desktop avec une install toute fraiche. Donc j'ai voulu retenté et au make install de geoip j'ai des problèmes: /bin/bash ../libtool --mode=install /usr/bin/install -c libGeoIPUpdate.la /usr/local/lib/libGeoIPUpdate.la
libtool: install: warning: relinking `libGeoIPUpdate.la'
(cd /tmp/GeoIP-1.4.5/libGeoIP; /bin/bash ../libtool --mode=relink gcc -g -O2 -o libGeoIPUpdate.la -rpath /usr/local/lib GeoIPUpdate.lo md5.lo -lz libGeoIP.la )
mv: cannot stat `libGeoIPUpdate.so.0.0.0': No such file or directory
libtool: install: error: relink `libGeoIPUpdate.la' with the above command before installing it
make[2]: *** [install-libLTLIBRARIES] Erreur 1
make[2]: quittant le répertoire « /tmp/GeoIP-1.4.5/libGeoIP »
make[1]: *** [install-am] Erreur 2
make[1]: quittant le répertoire « /tmp/GeoIP-1.4.5/libGeoIP »
make: *** [install-recursive] Erreur 1
root@bling-desktop:/tmp/GeoIP-1.4.5# install-libLTLIBRARIES]
bash: install-libLTLIBRARIES] : commande introuvable

Donc bah je sais pas trop quoi faire là... Limite si j'installe geoip-bin ça le fait ou pas?

* a dit…

apt-get install libgeoip1 libgeoip-dev et prend la meme version que ce qui est présent sur le blog, pas la version plus récente

Bling a dit…

Toujours la même erreur. Et dans synaptic je ne vois que la 1.4.4 ...

Anonyme a dit…

bonjour,

j'aimerais savoir alien security qu'ont voit dans la vidéo N°1 c'est une version linux ou c'est juste un fond d'écran et une page web avec des raccourci en tout cas la page web m'intéresserai bien

Anonyme a dit…

Hi

I have been able to install xplico(for both console and gui mode) correctly.They seem to work fine.The problem is that when the sessions are created, the upload of pcap files fails.
Another problem happens when running the live capture (or the simple xplico in console mode), the program captures packets but it seems they are not processed correctly.For example, I have ran it against my interface, the http requests are not recognized, I can see the packets being captured (tcp number increases) but it fails to recognize simple http requests.

Is there any help ?

* a dit…

" the upload of pcap files fails. "

Make sure you have modified your php.ini for apache, and make sure your pcap take less Mo of your php.ini max upload

Anonyme a dit…

"the upload of pcap files fails.

Make sure you have modified your php.ini for apache, and make sure your pcap take less Mo of your php.ini max upload"

I have installed xplico-0.5.2 on BackTrack 4 Beta. I still get the upload pcap file fail even after I fix the /etc/php5/apache2/php.ini as said. Any clue to debug and solve this problem? Thanks.

Anonyme a dit…

"I have installed xplico-0.5.2 on BackTrack 4 Beta. I still get the upload pcap file fail even after I fix the /etc/php5/apache2/php.ini as said. Any clue to debug and solve this problem?"

I finally solve the problem by chmod 777 /tmp
The backtrack4 I installed does not have 777 mode in /tmp by default

* a dit…

cool thx for reply

Anonyme a dit…

Hello,
for further help, there is now an offical wiki and forum for Xplico, http://wiki.xplico.org and http://forum.xplico.org

Anonyme a dit…

Merci beaucoup, mais pourriez-vous réuploadé le fichier conf pour apache2 s'il vous plait, merci :)

* a dit…

la conf est marqué dans le tuto, édite juste en root et voila

Anonyme a dit…

Merci *, mais j'ai du oublier quelques choses, après avoir refait l'installation plusieurs fois, sur différents PC, sur ubuntu 9.10, après le lancement de la commande finale, il renvoie toujours :" xplico no process" le gui fonctionne, enfin je n'ai pas accés aux pages :" login / register " une idée peut etre ?

Merci d'avance de votre suivi.

Anonyme a dit…

L'installation c'est super bien passé. Seulement lorsque je fais CAT xplico il ne ce passe rien.
Avez vous une idée

* a dit…

pourquoi CAT xplico ?

Anonyme a dit…

Comme sur le tuto vidéo. Dans tous les cas j'ai réussi à faire fonctionner xplico. Seulement pas la version live car j'ai mis la version 5.4 avec l'interface 5.2, enfin un conseil faites tous en 5.2

* a dit…

ah ok, le cat, ca sert a rien c'est juste un fichier texte que j'ai préparé pour la video montrant les instructions, et il ne doit y avoir aucun problèmes avec la dernière version

Anonyme a dit…

Bonsoir à tous,

Bravo pour ce tuto et cet outils vraiment super.

J'ai toutefois une question, probablement bête, comment peut-on voir le traffic de tout le réseau et non pas seulement celui du pc sur lequel est installé xplico.

Ma configuration:
1er pc sur lequel est installé xplico connecté en wifi(ip 192.168.1.2)
2ème pc que je voudrais écouter connecté en filaire (ip 192.168.1.51)
modem router (ip 192.168.1.1)

Si quelqu'un pouvais m'aider d'avance merci.

 
LinuxStore