giovedì 24 aprile 2008

dhcp_probe: scopriamo i server DHCP sulla nostra rete

E a che vi serve? Voi sapete benissimo quali sono i DHCP sulla vostra rete....

Beh non e' detto....qualche "simpaticone" potrebbe essersi intrufolato e avervi installato il suo DHCP server che darebbe informazioni errate ai vostri client indirizzandoli verso angoli oscuri della rete. Il tutto ovviamente per carpirvi informazioni.

Bene, c'e' un bel software per SUN che rileva eventuali server DHCP illegali (rogue DHCP servers), si chiama dhcp_probe, e' stato sviluppato all'universita' di Princeton e lo trovate QUI.

Dicevo che e' un software per SUN pero' (e la trovate nella home page del progetto) e' stata scritta una patch che ne consente la compilazione sotto Linux.

Vediamo come fare per compilare il pacchetto su sistemi Ubuntu Linux, posizioniamoci nella directory dove teniamo i sorgenti da compilare:
cd /usr/local/src

Scarichiamo il programma:

Scarichiamo la patch per compilarlo in Linux:

Scompattiamo il pacchetto contenente i sorgenti:
tar xzvf dhcp_probe-1.2.1.tar.gz

Applichiamo la patch:
patch -p0 < dhcp_probe-1.2.1-weppelman-1.diff.txt

Ora se vivessimo in un mondo perfetto, basterebbe digitare:

./configure;make;make install

per compilare e installare il programma.

Purtroppo, almeno oggi su Ubuntu Gutsy alla vigilia del rilascio di Ubuntu Heron, sono necessarie due librerie. La prima, libpcap, la installiamo agevolmente con il seguente comando:
sudo apt-get install libpcap-dev
La seconda, libnet, dobbiamo ricompilarla in quanto le manca una funzione fondamentale per il funzionamento del nostro programma. Vediamo come fare:

cd /usr/local/src
apt-get source libnet1-dev
cd libnet-1.1.2.1

sudo gedit src/libnet_cq.c

Aggiungere queste linee a fine file:

u_int32_t
libnet_cq_end_loop()
{

if (! clear_cq_lock(CQ_LOCK_WRITE))
{
return (0);
}
l_cqd.current = l_cq;
return (1);
}


sudo gedit include/libnet/libnet_functions.h

Aggiungere queste linee a fine file:

u_int32_t
libnet_cq_end_loop();


A questo punto bisogna ricompilare il pacchetto libnet:
dpkg-buildpackage

Questo comando generera' in /usr/local/src (o piu' in generale nella directory dove tenete i sorgenti) due pacchetti deb:

libnet1_1.1.2.1-2build1_i386.deb
libnet1-dev_1.1.2.1-2build1_i386.deb

Che andiamo a installare con il comando:
sudo dpkg -i libnet1_1.1.2.1-2build1_i386.deb libnet1-dev_1.1.2.1-2build1_i386.deb

A questo punto possiamo riprovare a compilare il pacchetto dhcp_probe come a inizio post, quindi:

cd /usr/local/src/dhcp_probe-1.2.1
./configure
make
make install
cp extras/dhcp_probe.cf.sample /etc/dhcp_probe.cf


Possiamo poi lanciare il programma con questa linea di comando:
dhcp_probe -f -d 11 eth0

Nessun commento: