zoukankan      html  css  js  c++  java
  • 利用_winreg模块在注册表中分析无线访问热点

     _winreg.OpenKey(key, sub_key, res, sam)     key是一个已经打开的键,或者是HKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_USERSHKEY_PERFORMANCE_DATAHKEY_CURRENT_CONFIG这些中的一个。

    _winreg.EnumKey(key, index        枚举键,key is an already open key, or any one of the predefined HKEY_* constants.index is an integer that identifies the index of the key to retrieve.

     _winreg.EnumValue(key, index)       枚举一个一打开的注册表键值,返回元组

    for i in range(1,6):
         print EnumValue(netKey,i)
    '''
    输出结果:
    ('Description', u'xiaoming', 1)
    ('Source', 8, 4)
    ('DnsSuffix', u'workgroup', 1)
    ('FirstNetwork', u'xiaoming', 1)
    ('DefaultGatewayMac', '\xb0\xd5\x9d0\x94\xa2', 3)
    '''

     提取无线访问热点名称及Mac地址:

     1 #coding=utf-8
     2 from _winreg import *
     3 
     4 def va12addr(val):
     5     addr=""
     6     for ch in val:
     7         addr += ("%02x " %ord(ch))
     8     addr = addr.strip(' ').replace(" ",":")[0:17]
     9     return addr
    10 
    11 def printNets():
    12     net ="SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged"
    13     key = OpenKey(HKEY_LOCAL_MACHINE,net, 0, KEY_READ | KEY_WOW64_64KEY)
        #我用的是32-bit Python on 64-bit Windows,所以要加KEY_READ | KEY_WOW64_64KEY这一参数,否则运行失败
    14 print '\n[+] Networks You have Joined.'                   15 for i in range(100): 16 try: 17 guid = EnumKey(key,i) 18 #print guid 19 netKey = OpenKey(key,str(guid)) 20 # for i in range(1,6): 21 # print EnumValue(netKey,i) 22 (n,name,t) = EnumValue(netKey,1) 23 (n,addr,t) = EnumValue(netKey,5) 24 macAddr = va12addr(addr) 25 netName = str(name) 26 print '[+] '+netName +' '+macAddr 27 CloseKey(netKey) 28 except Exception ,e: 29 print e 30 pass 31 32 def main(): 33 printNets() 34 if __name__=='__main__': 35 main()

     运行结果:

    [+] Networks You have Joined.

    [+] xiaoming b0:d5:9d:30:94:a2
    [+] ahu.portal 48:fd:8e:30:5e:d6
    [+] asdfghjkl e8:cd:2d:23:10:f7
    [+] qizi? c2:14:3d:da:e1:07

    参考资料:Violent Python A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security Engineers ,TJ O'Connor

        http://stackoverflow.com/questions/28128446/how-do-i-use-python-to-retrieve-registry-values

  • 相关阅读:
    Git远程操作
    696. Count Binary Substrings
    693. Binary Number with Alternating Bits
    821. Shortest Distance to a Character
    345. Reverse Vowels of a String
    89. Gray Code
    数组操作符重载
    C++字符串反转
    马克思的两面性-来自网友
    C++字符串
  • 原文地址:https://www.cnblogs.com/lovealways/p/6554510.html
Copyright © 2011-2022 走看看