python打造漏洞补丁缺少检测
前言:
当我们进行后渗透的时候,进行提权的时候
要识别被未打补丁的漏洞。来进行提权,从而
拿到管理员权限。
思路:
1.让使用者在cmd中打systeminfo命令。将补丁号
放入一个txt。
2.与list.txt进行对比。没有的则打出来
对漏洞进行区分
代码:
import os import optparse import re def main(): parser=optparse.OptionParser() parser.add_option('-j',dest='jiance',help='-j[file] Check all') parser.add_option('-7',dest='windows7',help='-7[file] inspect windows7') parser.add_option('-8',dest='windowsserver2008',help='-8 [file] inspect windows server 2008') parser.add_option('-2',dest='windowserver2012',help='-2 [file] inspect windows server 2012') parser.add_option('-3',dest='windowsserver2003',help='-3 [file] inspect windows server 2003') parser.add_option('-x',dest='windowsXP',help='-x [file] inspect windows XP') parser.add_option('-0',dest='windows10',help='0 [file] inspect windows 10') (options,args)=parser.parse_args() if options.jiance: file=options.jiance jiance(file) elif options.windows7: file2=options.windows7 windows7(file2) elif options.windowsserver2008: file3=options.windowsserver2008 windowsserver2008(file3) elif options.windowserver2012: file4=options.windowserver2012 windowsserver2012(file4) elif options.windowsserver2003: file5=options.windowsserver2003 windowsserver2003(file5) elif options.windowsXP: file6=options.windowsXP windowsxp(file6) elif options.windows10: file7=options.windows10 windows10(file7) else: parser.print_help() exit() def jiance(file): pd=os.path.exists(file) if pd == True: print('[*]{}existence'.format(file)) else: print('[-]Sorry{}not existence'.format(file)) exit() pd2=os.path.exists('list.txt') if pd2==True: print('[*]list.txt existence') else: print('[-]not existence list.txt') exit() lists=open('list.txt','r').read() fg=open('{}'.format(file),'r').read() pow="{}".format(fg) lgw=re.findall('KB\d+',lists) print('[*]There are no patched patches') for v in lgw: if v in str(pow): pass else: print("[*]",v) def windows7(file2): pd = os.path.exists(file2) if pd == True: print('[*]{}existence'.format(file2)) else: print('[-]Sorry{}not existence'.format(file2)) exit() pd2 = os.path.exists('windows7.txt') if pd2 == True: print('[*]windows 7.txt existence') else: print('[-]not existence windows 7.txt') exit() lists = open('windows7.txt', 'r').read() fg = open('{}'.format(file2), 'r').read() pow = "{}".format(fg) lgw = re.findall('KB\d+', lists) print('[*]There are no patched patches') for v in lgw: if v in str(pow): pass else: print("[*]", v) def windowsserver2008(file3): pd = os.path.exists(file3) if pd == True: print('[*]{}existence'.format(file3)) else: print('[-]Sorry{}not existence'.format(file3)) exit() pd2 = os.path.exists('windows server 2008.txt') if pd2 == True: print('[*]windows server 2008.txt existence') else: print('[-]not existence windows server 2008.txt') exit() lists = open('windows server 2008.txt', 'r').read() fg = open('{}'.format(file3), 'r').read() pow = "{}".format(fg) lgw = re.findall('KB\d+', lists) print('[*]There are no patched patches') for v in lgw: if v in str(pow): pass else: print("[*]", v) def windowsserver2012(file4): pd = os.path.exists(file4) if pd == True: print('[*]{}existence'.format(file4)) else: print('[-]Sorry{}not existence'.format(file4)) exit() pd2 = os.path.exists('windows server 2012.txt') if pd2 == True: print('[*]windows server 2012.txt existence') else: print('[-]not existence windows server 2012.txt') exit() lists = open('windows server 2012.txt', 'r').read() fg = open('{}'.format(file4), 'r').read() pow = "{}".format(fg) lgw = re.findall('KB\d+', lists) print('[*]There are no patched patches') for v in lgw: if v in str(pow): pass else: print("[*]", v) def windowsserver2003(file5): pd = os.path.exists(file5) if pd == True: print('[*]{}existence'.format(file5)) else: print('[-]Sorry{}not existence'.format(file5)) exit() pd2 = os.path.exists('windows server 2003.txt') if pd2 == True: print('[*]windows server 2003.txt existence') else: print('[-]not existence windows server 2003.txt') exit() lists = open('windows server 2003.txt', 'r').read() fg = open('{}'.format(file5), 'r').read() pow = "{}".format(fg) lgw = re.findall('KB\d+', lists) print('[*]There are no patched patches') for v in lgw: if v in str(pow): pass else: print("[*]", v) def windowsxp(file6): pd = os.path.exists(file6) if pd == True: print('[*]{}existence'.format(file6)) else: print('[-]Sorry{}not existence'.format(file6)) exit() pd2 = os.path.exists('windows XP.txt') if pd2 == True: print('[*]windows XP.txt existence') else: print('[-]not existence windows XP.txt') exit() lists = open('windows XP.txt', 'r').read() fg = open('{}'.format(file6), 'r').read() pow = "{}".format(fg) lgw = re.findall('KB\d+', lists) print('[*]There are no patched patches') for v in lgw: if v in str(pow): pass else: print("[*]", v) def windows10(file7): pd = os.path.exists(file7) if pd == True: print('[*]{}existence'.format(file7)) else: print('[-]Sorry{}not existence'.format(file7)) exit() pd2 = os.path.exists('windows 10.txt') if pd2 == True: print('[*]windows 10.txt existence') else: print('[-]not existence windows 10.txt') exit() lists = open('windows 10.txt', 'r').read() fg = open('{}'.format(file7), 'r').read() pow = "{}".format(fg) lgw = re.findall('KB\d+', lists) print('[*]There are no patched patches') for v in lgw: if v in str(pow): pass else: print("[*]", v) if __name__ == '__main__': main()
效果:
Github下载地址:https://github.com/422926799/python
版权声明:本文为haq5201314原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。