github.com/n00py/Slackor@v0.0.0-20200610224921-d007fcea1740/impacket/tests/SMB_RPC/test_nmb.py (about) 1 try: 2 import ConfigParser 3 except ImportError: 4 import configparser as ConfigParser 5 import unittest 6 7 from impacket import nmb 8 from impacket.structure import hexdump 9 10 11 class NMBTests(unittest.TestCase): 12 def create_connection(self): 13 pass 14 15 def test_encodedecodename(self): 16 name = 'THISISAVERYLONGLONGNAME' 17 encoded = nmb.encode_name(name,nmb.TYPE_SERVER,None) 18 hexdump(encoded) 19 decoded = nmb.decode_name(encoded) 20 hexdump(bytearray(decoded[1],'utf-8')) 21 22 #self.assertTrue(nmb.TYPE_SERVER==decoded[0]) 23 self.assertTrue(name[:15]==decoded[1].strip()) 24 25 # ToDo: Fix the scope functionality 26 #namescope = 'MYNAME' 27 #encoded = nmb.encode_name(namescope,nmb.TYPE_SERVER,'SCOPE') 28 #hexdump(encoded) 29 #decoded = nmb.decode_name(encoded) 30 #hexdump(decoded) 31 32 #self.assertTrue(nmb.TYPE_SERVER==decoded[0]) 33 #self.assertTrue(namescope[:15]==decoded[1].strip()) 34 35 def test_getnetbiosname(self): 36 n = nmb.NetBIOS() 37 res = n.getnetbiosname(self.machine) 38 print(repr(res)) 39 self.assertTrue( self.serverName, res) 40 41 def test_getnodestatus(self): 42 n = nmb.NetBIOS() 43 resp = n.getnodestatus(self.serverName.upper(), self.machine) 44 for r in resp: 45 r.dump() 46 print(resp) 47 48 def test_gethostbyname(self): 49 n = nmb.NetBIOS() 50 n.set_nameserver(self.serverName) 51 resp = n.gethostbyname(self.serverName, nmb.TYPE_SERVER) 52 print((resp.entries)) 53 54 def test_name_registration_request(self): 55 n = nmb.NetBIOS() 56 # ToDo: Look at this 57 #resp = n.name_registration_request('*SMBSERVER', self.serverName, nmb.TYPE_WORKSTATION, None,nmb.NB_FLAGS_G, '1.1.1.1') 58 try: 59 resp = n.name_registration_request('*JSMBSERVER', self.serverName, nmb.TYPE_WORKSTATION, None,nmb.NB_FLAGS_ONT_P, '1.1.1.2') 60 resp.dump() 61 except Exception as e: 62 print(str(e)) 63 if str(e).find('NETBIOS') <= 0: 64 raise e 65 66 def test_name_query_request(self): 67 n = nmb.NetBIOS() 68 # ToDo: Look at this 69 # resp = n.name_registration_request('*SMBSERVER', self.serverName, nmb.TYPE_WORKSTATION, None,nmb.NB_FLAGS_G, '1.1.1.1') 70 resp = n.name_query_request(self.serverName, self.machine) 71 print((resp.entries)) 72 73 class NetBIOSTests(NMBTests): 74 def setUp(self): 75 NMBTests.setUp(self) 76 # Put specific configuration for target machine with SMB1 77 configFile = ConfigParser.ConfigParser() 78 configFile.read('dcetests.cfg') 79 self.serverName = configFile.get('SMBTransport', 'servername') 80 self.machine = configFile.get('SMBTransport', 'machine') 81 82 if __name__ == "__main__": 83 suite = unittest.TestLoader().loadTestsFromTestCase(NetBIOSTests) 84 unittest.TextTestRunner(verbosity=1).run(suite)