文档详情

《西普python安全脚本实验》编写Python脚本与Metasploit交互.docx

发布:2025-03-27约2.84千字共10页下载文档
文本预览下载声明

编写Python脚本与Metasploit交互

实验指导

实验六编写Python脚本与Metasploit交互

【实验介绍】

1.概述

使用nmap交互进行扫描,建立监听器进行远程交互,建立漏洞利用代码,添加暴力破解模块,整合所有代码。

2.实验目标

学会编写Python脚本与Metasploit的交互;学会给脚本中添加暴力破解,远程执行。

本实验主要要求学生掌握以下几个方面:

(1)了解Metasploit模块的基本用法;

(2)了解nmap模块的基本用法;

(3)掌握Python脚本与Metasploit的交互。

3.实验环境

CentOS7.xLinux操作系统;python3.x。

【实验步骤】

1.打开CentOS7.4Linux操作系统

首先,我们需要进入CentOS7.4Linux操作系统,界面图如下:

2.验证Python

(1)右击桌面---选择“在终端中打开”。

(2)输入命令及密码切换成root用户,作用是拥有最高权限,方便后面的一系列命令操作;命令:suroot密码:123456。

(3)输入命令:python;验证是否存在。

3.脚本设计思路

(1)首先,我们需要了解Metasploit框架。Metasploit框架:Metasploit框架包含了世界上最大而且经过测试攻击的代码数据库。该框架也是迄今为止使用Ruby脚本语言构建的最复杂项目之一。并下载和安装Metasploit框架。

(2)其次,在脚本中,我们首选需要利用nmap模块扫描目标主机是否开放了445端口,我们写了一个findTarget()函数,来扫描给定ip或者给定网段中开放了目标端口的主机,返回开放了445端口的主机列表。445端口是作为SMB文件共享协议的端口,在这个端口上,经常爆发出各种高危的漏洞。

Metasploit提供了一个被称为Meterpreter的高级动态载荷,它是一种后渗透工具。当渗透进目标主机后,Meterpreter会主动连接目标主机,并提供大量分析和控制主机的参数。我们写了setupHandler()函数,使用exploit/multi/handler监听数据,我们设置payload为windows/x64/meterpreter/reverse_tcp。我们还需要设置一个全局变量DisablePayloadHandler,其作用是:我们已经新建了一个监听器,以后所有的主机都不必重复新建监听器。

当脚本能够在目标主机上执行漏洞利用代码时,配置函数将向Metasploitrc脚本中写入用于生成漏洞利用代码的目标主机、本地地址和端口。该函数还将把使用哪个漏洞利用代码的指令也写入rc脚本文件中,这里我们使用MS_08067_netapi漏洞。此外,该函数还需要设置Payload、Lport。最后,该脚本发送一条指令在同一个任务(job)的上下文环境中(-j),不与任务进行即时交互的条件下(-z)利用对目标计算机上的漏洞。

尽管如此我们已经可以成功的在被黑的主机上运行漏洞利用代码,但一旦目标主机安装了最新的安全补丁便可以阻止该代码被执行,因此我们的脚本还需要另一种攻击方式,如暴力破解SMB用户名和密码,以此获取在目标主机上远程执行一个进程的权限。输入smbBrute()函数的参数有:Metasploit脚本文件、目标主机、包含密码列表的另一个文件、本地地址、端口。用户名默认为windows管理员Administrator,打开密码列表文件,对于每一个密码,都会生成一个用来远程执行进程的Metasploit脚本,如果密码正确则远程执行进程的代码就会运行一个shell到攻击者本地地址对应的端口。

(3)最后,我们结合以上的思路,整合出完整框架从而达到与Metasploit交互的目的。

4.编写准备

(1)安装metasploit服务。

①下载最新的metasploit,截图如下:

②安装metasploit,输入./metasploit-latest-linux-x64-installer.run进行安装。

③验证,输入:msfconsole,截图如下:

5.编写python脚本

(1)开始着手编写Python脚本。打开Pycharm工具,并导入shadow.txt文件和key.txt文件,界面图如下:

(2)创建四个函数来实现四个功能。第一个功能是扫描网段范围内开放445端口的主机;第二个功能是监听被攻击的主机,并设置将所有连接的会话保持在后台;第三个功能是进行漏洞利用;第四个功能是进行暴力破解SMB口令。

第一个函数我们取名为findTarget()函数,扫描网段范围内开放445端口的主机,如果445端口提供了协议那么就查看445端口的状态。截图

显示全部
相似文档