HowTo kill net connection [Debian]

01/06/2006 by - Linux

Utilizzando il classico $netstat abbinato alle più svariate opzioni possiamo controllare lo stato delle connessioni (udp/tcp/raw..) intraprese da e verso la nostra macchina. Netstat non ci offre la possibilità di killare queste connessioni. Per windows un comodo e leggero è tcpview, della sysinternals.

Su Debian il tool predisposto a questo genere di applicazioni è tcpkill, contenuto nel pacchetto dsniff.

________________________________________

#apt-get install dsniff Reading Package Lists…

Done Building Dependency Tree…

Done The following extra packages will be installed: libnet0 libnet1 libnids1

The following NEW packages will be installed: dsniff libnet0 libnet1 libnids1

__________________________________________

Provando a lanciarlo..

# tcpkill Version: 2.4 Usage: tcpkill [-i interface] [-1..9] expression

La sintassi di expression è lo stessa del tcpdump. Per testarlo mi collego via telnet ad un sito web esempio www.google.it

$ netstat -nat | grep :80

tcp 0 0 192.168.20.168:33264 66.249.85.104:80 ESTABLISHED

# tcpkill -i eth0 port 80

192.168.20.168:33271 > 66.249.85.99:80: R 3140141590:3140141590(0) win 0 192.168.20.168:33271 > 66.249.85.99:80: R 3140147430:3140147430(0) win 0 192.168.20.168:33271 > 66.249.85.99:80: R 3140159110:3140159110(0) win 0 192.168.20.168:33272 > 66.249.85.104:80: R 3150409655:3150409655(0) win 0 192.168.20.168:33272 > 66.249.85.104:80: R 3150415495:3150415495(0) win 0 192.168.20.168:33272 > 66.249.85.104:80: R 3150427175:3150427175(0) win 0 192.168.20.168:33273 > 66.249.85.99:80: R 3143569594:3143569594(0) win 0 192.168.20.168:33273 > 66.249.85.99:80: R 3143575434:3143575434(0) win 0 192.168.20.168:33273 > 66.249.85.99:80: R 3143587114:3143587114(0) win 0 192.168.20.168:33274 > 66.249.85.104:80: R 3149787130:3149787130(0) win 0 192.168.20.168:33274 > 66.249.85.104:80: R 3149792970:3149792970(0) win 0 192.168.20.168:33274 > 66.249.85.104:80: R 3149804650:3149804650(0) win 0 192.168.20.168:33275 > 66.249.85.104:80: R 3156522985:3156522985(0) win 0 192.168.20.168:33275 > 66.249.85.104:80: R 3156528825:3156528825(0) win 0 192.168.20.168:33275 > 66.249.85.104:80: R 3156540505:3156540505(0) win 0 192.168.20.168:33276 > 66.249.85.99:80: R 3160046074:3160046074(0) win 0 192.168.20.168:33276 > 66.249.85.99:80: R 3160051914:3160051914(0) win 0 192.168.20.168:33276 > 66.249.85.99:80: R 3160063594:3160063594(0) win 0

Come potete vedere dall’output in stile tcpdump ogni tentativo di connessione verso i pool di ip di google viene bloccato. Ma non solo.. eth0 entra in promiscuous mode e tutte le altre macchine della vostra rete (se dietro hub o se fate da gw) che tenteranno di accedere ad un qualsiasi sito non riusciranno a collegarsi.

Jun 1 09:35:14 localhost kernel: device eth0 entered promiscuous mode

192.168.20.166:3184 > 72.14.205.**:80: R 3207569938:3207569938(0) win 0 192.168.20.166:3184 > 72.14.205.**:80: R 3207635473:3207635473(0) win 0 192.168.20.166:3184 > 72.14.205.**:80: R 3207766543:3207766543(0) win 0

Conviene fare molta attenzione con le espressioni, meglio limitarsi ad eseguire qualche test con il vostro ip

#tcpkill -i eth0 host 192.168.20.168 and port 80

Immaginatevi uno scenario reale nel quale un certo numero di client windows è infetto da worms/virus troppo recenti per essere rilevati dall’antivirus. I simpatici creatori hanno pensato di appendere al codice del virus un motore smtp che prende in pasto l’elenco dei vostri contatti outlook e cerca di autoinviarsi via email. Potete muovervi in diversi modi (ad es. iptables: loggo traffico verso 25 e droppo) ma vi sarà utilissimo un tool come tcpkill impostando una expression sulla porta 25

#tcpkill -i eth0 port 25

In questo modo in real time e senza dover scrivere una sola regola di iptables potete tenere sotto controllo traffico e circoscrivere gli ip dei client “buggati” Potete testare sempre con telnet

$ telnet mx1.libero.it 25

Trying 193.70.193.95… telnet:

Unable to connect to remote host: Connection reset by peer #tcpkill -i eth0 port 25

192.168.20.168:33293 > 193.70.193.95:25: R 1277850473:1277850473(0) win 0 192.168.20.168:33293 > 193.70.193.95:25: R 1277856313:1277856313(0) win 0 192.168.20.168:33293 > 193.70.193.95:25: R 1277867993:1277867993(0) win 0 193.70.193.95:25 > 192.168.20.168:33293: R 1425724522:1425724522(0) win 0 193.70.193.95:25 > 192.168.20.168:33293: R 1425725970:1425725970(0) win 0 193.70.193.95:25 > 192.168.20.168:33293: R 1425728866:1425728866(0) win 0



Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.