实验目的
掌握Meterpreter常见的基本命令的使用
实验原理
1、Meterpreter介绍
meterpreter是metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个meterpretershell的链接。
meterpretershell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息
另外meterpreter能够躲避入侵检测系统。在远程主机上隐藏自己,它不改变系统硬盘中的文件,因此HIDS[基于主机的入侵检测系统]很难对它做出响应。此外它在运行的时候系统时间是变化的,所以跟踪它或者终止它对于一个有经验的人也会变得非常困难。
最后,meterpreter还可以简化任务创建多个会话。可以来利用这些会话进行渗透。
2、Meterpreter优点
- 不创建进程(使用的内存注入方式)
- meterpreter是一个解释器加载各种攻击命令
- 工作在被攻击进程的上下文中
- 通信是加密的(TLV协议),可以躲避IDS
- 没有硬盘写入操作
- 使用的通信方式是信道模式,可以同时和几个信道工作,支持多信道
- 支持扩展编写
3、Meterpreter工作过程
- 漏洞的利用代码+第一阶段的攻击载荷
- 攻击载荷反向连接到msf
- 发送第二阶段的攻击载荷
- 客户端和服务器进行通信
实验内容
掌握Meterpreter常见的基本命令的使用
实验环境描述
渗透机KliLinux账号密码:root/toor 靶机windowsxp账号密码:xp/123456
实验步骤
渗透机KliLinux账号密码:root/toor 靶机windows账号密码:123456
1、在KaliLinux下打开一个终端查看Kali的IP地址
2、使用msfvenom生成一个Windows系统下的Payload
3、将msf.exe拷贝一份并命名为msf.exe.bak,然后使用python来打开一个HTTP服务。这个主要是为了借用Web来吧msf.exe.bak传输到靶机上去。一般在渗透测试中这一步需要你利用一些上传漏洞或者其他等将生成的木马传输到目标机器上。
4、此时在目标靶机上打开浏览器输入http://KaliIP:88
,可以打开一个Web页面,点击msf.exe.bak下载将其下载下来并重新命名为msf.exe。
5、此时需要先打开Metasploit中的监听模块,输入命令msfconsole,先加载模块exploits/multi/handler
,并设置Payload跟生成木马的Payload一致,均为:windows/meterpreter/reverse_tcp
,设置监听地址(即Kali虚拟机地址),监听端口也设置为4444,然后输入exploit
执行监听。
6、接着在靶机系统上双击msf.exe来执行木马程序后,此时在渗透机的Metasploit界面会显示有新的session生成,即表示已经获取到了靶机的Meterpreter Shell。
7、在当前的Meterpreter界面上输入?
即可查看帮助命令
8、输入命令background
即可将当前的Meterpreter Shell放到后台,再次输入session -i SesssionID
即可进入指定的Meterpreter Shell界面
9、Meterpreter中也集成了多个脚本,可以使用命令run
来执行Meterpreter的一些脚本,此处以脚本checkvm
来举例,此脚本主要是用来查看目标机是否是虚拟机
10、如果想让脚本在后台执行,也可以使用命令bgrun
11、如果想在meterpreter下使用Windows API编程,可以使用命令irb
12、示例:弹出一个helloworld
13、此时在靶机系统上弹出来一个helloworld的对话框
14、如果要完全退出当前的session,输入命令quit
或者exit
即可退出当前session,此时这个Meterpreter并不是隐藏到后台了,而是完全退出了。
15、以上即可Meterpreter的一些常用的基本命令,还有 比较重要的两个命令migrate
和pivot
由于要与其他的一些命令配合使用,我们在后面的一些相关模块会讲到。