README.it

ISTRUZIONI PER L'USO DEL PROGRAMMA "PKDUMP"
Port scanning detector.

- Ver. 3.3

Il programma controlla il collegamento a Internet per rilevare
eventuali attacchi effettuati mediante il "TCP o UDP port scanning"
o tentativi di stabilire un collegamento su uno specifico
servizio (TCP ,UDP) da parte di altri computer con i protocolli
IP versione 4 o IP versione 6 .

I tipi di scanning rilevati dal programma sono i seguenti:
TCP connect ,TCP syn ,TCP fin ,TCP Xmas ,TCP ack
TCP null (no flags) ,UDP port (collegamento ad un servizio UDP),
UDP null (0 bytes lunghezza pacchetto UDP ) ,anche se i pacchetti
IP sono frammentati ;
[Consultare il manuale del programma nmap ...man nmap]

Il programma crea una directory della forma "Pkdump-[date][time]"
ed in questa directory crea il file "PKDATA" che contiene tutti i
pacchetti IP trasmessi e ricevuti durante la connessione e in caso di
attacco scanning crea dei file numerati progressivamente che
registrano i dati dello scanning ;inoltre i dati dello scanning
vengono inviati sullo schermo seguiti da un "beep" di avvertimento.


I dati del probabile attacco contengono :

> il protocollo (TCP o UDP) ;
> nome della Interfaccia
> la data e l'ora ;
> il tipo di scanning effettuato;
> source port
> destination port
> Numero dei frammenti IP
> Lo stato dei flag (solo TCP)
> Direzione del pacchetto ( Ingoing ,Outgoing )
> l'indirizzo IP sorgente
> l'indirizzo IP destinazione

Il programma usa il "packet socket" quindi "packet socket"
bisogna compilarlo nel kernel o inserirlo come modulo
( af_packet.o ).

Invocando il programma senza nessuna opzione verra stampato un breve
help.

PKDUMP V. 3.3 :
Usage :pkdump interface [-di] IP-version [options] flags .



[interface] (obbligatorio)

-L'interfaccia piu comunemente usata durante un collegamento ad
internet e' ppp0 ,compunque si puo specificare qualsiasi interfaccia
che trasporti un datagramma IP. per esempio eth0 ,eth1 ,ppp1 o atre
interfaccie.




[-di] = [non ignorare i pacchetti in uscita] (facoltativo)

Se "-di" si inserisce di nella linea di comando tutti i pacchetti
generati dalla tuo computer verranno trattati come quelli che provengono
dall'esterno ,per cui se contengono il flag SYN il programma ti
dira' che e' in corso un SYN port attack.
Per ovviare a questo problema puo essere utile specificare nella
linea di comando le opzioni -oT 80,25,103,143,443...etc -oU 53..etc.
80=http ,25=smtp ,103=pop3 ,143=imap ,443=https .

Se non si inserisce "-di" nella linea di comando tutti i pacchetti
generati dal tuo computer vengono registrati comunque nel file PKDATA.




[IP-version] (obbligatorio)

-IP-version e' costituito dai due flag IPV4 o IPV6 ,che specifica
la versione del protocollo IP ;generalmete e' IPV4 .



[options] (facoltativo)

E prevista la possibilita' di ignorare alcuni "scan" TCP o UDP
diretti verso una "destination port" o un range di "destination
ports" e provenienti da uno specifico indirizzo o da un range
di indirizzi .

La sintassi prevede sei flag ,tre per TCP "-iT","-oT","-aT" e
tre per UDP "-iU" ,"-oU" ,"-aU" seguiti
dal ,dalle "destination port" , dall'indirizzo e da una maschera
(CIDR Notation).

i = ingoing ;
o = outgoing ;
a = ingoing e outgoing ;

-iT = ignorare i pacchetti TCP che provengono da altri computer.
-oT = ignorare i pacchetti TCP generati dal nostro computer.
-aT = ignorare tutti i pacchetti ,esterni ed interni .

La stessa cosa e' valida per i pacchetti UPD ( "-iU" ,"-oU" ,"-aU" )


-Per il protocollo IP versione 4 la sintassi e' la seguente :

Se ad esempio vogliamo ignorare gli "UDP port scan" diretti verso
"port 137" e proveniente da qualsiasi indirizzo scriveremo :

- pkdump ppp0 IPV4 -iU 137-255.255.255.255/32 udpport udpnull etc..;

Se ad esempio vogliamo ignorare tutti gli "scan" TCP diretti verso
"port 21" (ftp) provenienti dagli indirizzi 192.45.0.0/16 (CIDR Notation)
ovvero dall'indirizzo 192.45.0.0 all'indirizzo 192.45.255.255

scriveremo :

- pkdump ppp0 IPV4 -iT 21-192.45.0.0/16 syn xmas etc..;

Se vogliamo invece ignorare gli scan TCP diretti verso il range
port 21-27 scriveremo :

- pkdump ppp0 IPV4 -iT 21:27-192.45.0.0/16 syn xmas etc. etc. ;

Se vogliamo invece ignorare gli scan TCP diretti verso le porte 1,131,220
scriveremo :

- pkdump ppp0 IPV4 -iT 1,131,220-192.45.0.0/16 syn xmas etc. etc. ;

Se vogliamo ignorare gli scan TCP verso il range di porte 21-32 e abbiamo
inserito nella linea di comando "di" ma non vogliamo falsi allarmi
dalle porte TCP 80,25,103 scriveremo :

- pkdump ppp0 -di IPV4 -iT 21:32-255.255.255.255/32
-oT 80,25,103-255.255.255.255/32 syn fin.

Se vogliamo ignorare gli scan TCP verso il range di porte 21-32 e abbiamo
inserito nella linea di comando "di" ma non vogliamo falsi allarmi
dallo stesso range di porte 21-32 scriveremo :

- pkdump ppp0 -di IPV4 -aT 21:32-255.255.255.255/32 fin ack


I flag possono essere ripetuti a seconda del bisogno esempio:

- pkdump IPV4 -di ppp0 -iT 1:21-255.255.255.0/24
-iT 25-198.25.0.0/16
-iU 137:255.255.255.255/32
-iT 143,2000-192.0.0.0/2
-oT 80,25,103-255.255.255.255/32 udpport syn etc.



-La stessa cosa puo' essere eseguita con il protocollo IP versione 6

esempio :

- pkdump ppp0 IPV6 -iT 1:21-f301:0:1:0:0:0:0:f3/24
-iT 25,27,198-c031:0:0:0:0:0:0:1/128
-iU 137-0:0:0:0:0:ffff:ffff:ffff/63 udpport syn etc.



[flags] (obbligatorio)

-I flag sono quelli che si vogliono monitorare per rilevare il port
scanning attack ; si possono specificare i seguenti flag :
(TCP) null ,syn ,fin ,xmas ,ack ,rst ,urg ,mymo .
(UDP) udpport udpnull :

Si possono specificare tutti i flag o solo alcuni di esssi lasciando
uno spazio (o piu') tra un flag e l'alro.Ed in oltre si puo specificare
un set di flag separandoli con il ":" ;
" esempio  rst:ack  syn  fin psh:fin:syn   etc. etc. "

Si consiglia la lettura del manuale del programma nmap per comprendere
il significato dei flag ....e del port scanning.



Per uscire dal programma dare il CTRL C.

E' bene dare i comandi :

"chown root pkdump"
"chmod 4555 pkdump" .

Per compilare il programma il comando e':

gcc -o pkdump pkdump.c -lpthread



Spero di aver detto tutto e che il programma sia utile...

Qualunque commento sara' apprezzato .