Surveillance powered by Linux

Un petit recensement de quelques utilitaires de surveillance de réseau utiles ou pas, ça dépend de vos besoins :)

PS : Ne pas abuser de ces commandes a des fins malicieuses, les données des autres ne nous concernent pas !

tcpdump

La commande la plus connue pour la capture de paquets par excellence. Par défaut la commande retourne tous les paquets qui passent sur le réseau (a savoir tout ce qui passe sur le switch d'un bâtiment par exemple).

23:28:09.542847 IP hwq.maisel.enst-bretagne.fr.netbios-ns > 172.16.255.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
23:28:09.543616 IP wafer.maisel.enst-bretagne.fr.32786 > noboot.maisel.enst-bretagne.fr.domain:  34478+ PTR? 255.255.16.172.in-addr.arpa. (45)
23:28:09.545736 IP noboot.maisel.enst-bretagne.fr.domain > wafer.maisel.enst-bretagne.fr.32786:  34478 NXDomain* 0/1/0 (126)
23:28:09.546006 IP wafer.maisel.enst-bretagne.fr.32786 > noboot.maisel.enst-bretagne.fr.domain:  34479+ PTR? 152.25.16.172.in-addr.arpa. (44)

Un meilleur filtrage peut se faire avec les option -nq

23:28:55.520504 IP 172.16.25.152.137 > 172.16.255.255.137: UDP, length: 50
23:28:55.575918 IP 64.236.34.4.5190 > 172.16.29.29.33388: tcp 1408
23:28:55.581726 IP 64.236.34.4.5190 > 172.16.29.29.33388: tcp 1408
23:28:55.632153 IP 64.236.34.4.5190 > 172.16.29.29.33388: tcp 256

Un filtrage par protocole peut etre fait aussi exemple pour les connexions tcp

# tcpdump -nq tcp
23:33:15.430157 IP 64.236.34.4.5190 > 172.16.29.29.33388: tcp 1408
23:33:15.486168 IP 64.236.34.4.5190 > 172.16.29.29.33388: tcp 1408
23:33:15.503876 IP 64.236.34.4.5190 > 172.16.29.29.33388: tcp 1408
23:33:15.543694 IP 64.236.34.4.5190 > 172.16.29.29.33388: tcp 1408
23:33:15.543753 IP 172.16.29.29.33388 > 64.236.34.4.5190: tcp 0

man tcpdump pour toutes les options possibles et imaginables

Ethereal

Big Brother de tcpdump mais avec une interface graphique qui permet de filtrer les captures de paquets suivant ce que l'utilisateur recherche. Plusieurs protocoles sont recenses et l'application permet de regarder les paquets un par un en détail pour les fous d'hexadecimal ou autre :)

ngrep

Network Grep, assez violent sans aucune option mais très puissant comme outil

T 64.236.34.4:5190 -> 172.16.29.29:33388 [A]
  7=.,....4&l.8`0^.-. .I9m...<...].....]$..pd..B.J..)..(B;%,...ekll0i...r...J...V.}......".Vs.dc.=#..W.._...........Vu......kY.>.
  .d....C...&..C.`..,..h].G....../<..?..R.b........%..3.i.(......+...EL...j..26.....Q,....3..Y..Q.....).....?,..0....~>pi.f...W..
  ../....RK `....h.t..8.$G.......1>..4..[o...ZH.,.J.Cy`..Yr.....=#xB.+i:.%.......K...0$r..n.M.O,......rd.."}$_.&../............x.
  ../| ..s...*.._|.l.bb..........]a.;.......................O.......U.iQ.).hz*K.$.~..f...(...s...x.....x........"..-.6....IH...>.
  .{.a_...........M...U...@.YFNi.........h.Y.....{.=.\.a8.3........1l...]`1...........Al,.D...z.?......... .pa`#M....w..%J..T.I..
  ...(..E...........m..9..t...%....pd...x5.i..r*..m."..H.}..ah..0t..2.+..&..r.S.....r?.dt[.#N......^.._R........{7o.`.@.`pJ....v.
  ...............V..L2,L.GK.X"..idr.I0....~...B..9=.(y2U.f.0.....o.BZfg...I;Z.k~@V...oAJoh.lR$O.-.G.(....\NAIx|..................
  I%.K..H.m.....].>..iEz~..........a.^E.J.m.@ ..H.p..F$..$].......y......&~.W,.y....H..D.j.)..rd....+.if.Z1..=."....s..e....4....
  .B'.N.C...."..l6..[...h......&..HR.f4....r..0#aB....2q.........E8..R/.i[...J.f,..Bn8,,..C..'"$...x|dL..Q.#..c...7..wv..`..^E@..
  .....%...V+:.KI5I.uX........=............#.5(../.x.Q....D.@.`sm.y0.....P.\....c^.....J).M.Z..m.{.......@M..D...........r<.@%$..
  ..EBUr..../kDz....B.i....pd....%]...r- L-.b....}..ap...4`....f....'V.UUUc...a.........._)K.r........GS..d....../.. ....g...*.w.
  .......g...
##

On peut lui intégrer tout plein de filtres assez sympathiques et puissants, même des regex pour les fans !

potion

Outil aussi sympathique qui capture tous les trafics passant sur le réseau et les tris dynamiquement suivant l'adresse IP source et destination avec des statistiques.

# potion eth0
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄ
Source                   ³ Destination                    ³  Protocol   ³ Avg Rate
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ
64.236.34.4:5190        ³ 172.16.29.29:33388                     tcp     ³   105.2k 
192.108.115.2:8080      ³ 172.16.29.29:33639                     tcp     ³     9.0k
172.16.23.6:6767        ³ 172.16.29.29:33055                     tcp     ³     2.4k  
172.16.29.29:33639      ³ 192.108.115.2:8080                     tcp     ³    931.4  
172.16.23.159:68        ³ 255.255.255.255:67                     udp     ³    684.0
172.16.25.152:137       ³ 172.16.255.255:137                     udp     ³    568.7
172.16.23.254:68        ³ 255.255.255.255:67                     udp     ³    364.8
172.16.24.69:5353       ³ 224.0.0.251:5353                       udp     ³    330.7 
172.16.29.29:33055      ³ 172.16.23.6:6767                       tcp     ³    276.0 

scanssh

Outil qui scanne des machines a la recherche de proxy ou de serveurs SSH ouverts

Nmap

Scanneur de machines assez puissant, qui peut entre autre faire un listing des ports ouverts sur machine

#nmap localhost

21/tcp    open  ftp
22/tcp    open  ssh
25/tcp    open  smtp
80/tcp    open  http
3306/tcp  open  mysql
19150/tcp open  gkrellmd

lsof

Une commande unix qui permet de voir quel programme utilise quel fichier ou quel port sur la machine locale.

lsof -i donne la liste des programmes et des ports ouverts

netstat

pour voir les connexions réseau ouvertes en local. Il y a plein de paramètres possibles, une des combinaisons assez simples à retenir est :

#netstat -taupe