📒2023暑期网络安全攻防实践
00 分钟
2023-7-10
2023-7-27
type
status
date
slug
summary
tags
category
icon
password
Property
Jul 27, 2023 07:21 AM
notion image

1.实践目标

基础团队实践训练

团队分工跟练复现完成 网络安全(2021) 综合实验 。无论团队由多少人所组成,以下按本次实践训练所涉及到的人员能力集合划分了以下团队角色。一人至少承担一种团队角色,老师将按照该角色的评价标准进行 基于客观事实的主观评价 。
  • 红队:需完成漏洞存在性验证和漏洞利用。
  • 蓝队威胁监测:漏洞利用的持续检测和威胁识别与报告。
  • 蓝队威胁处置:漏洞利用的缓解和漏洞修复(源代码级别和二进制级别两种)。
上述能力的基本评分原则参考“道术器”原则:最基础要求是能够跟练并复现 网络安全(2021) 综合实验 中演示实验使用到的工具;进阶标准是能够使用课程视频中 未使用 的工具或使用编程自动化、甚至是智能化的方式完成漏洞攻击或漏洞利用行为识别与处置。

2.实验报告攥写说明

团队实践训练

  • 完成「漏洞攻防实训」;
  • 分组完成 作业过程中产生的文档、代码采用 Github的方式管理
    • 在属于每个人的分支当中记录你的思考和实践,可以是你阅读的参考资料、阅读的代码、个人的尝试实践等等不限,只要是你在整个实践过程中的任何学习记录都可以进行记录,这也是量化整个实践过程的努力程度。
  • 遇到任何问题都可以在群里提问,大家一起解决,众人拾柴火焰高,一定可以做出有质量的成果。

3.拟定时间安排(7.10-7.28)

7.10-7.11 观看老师的视频资料,搭建部署本地环境。
7.12 线上视频会议,细化小组分工和项目进行安排,确定最终完成指标。
7.13-7.18 基本复现最基础简单的红蓝队漏洞进攻和防御,如果有必要,随时可以线上会议看一下进度。
7.19-7.23 完善实验细节流程,复盘攻克实验的难点和给出一些具体的解决方案。
7.23-7.28 完成实验报告的攥写,整合项目资料。

4.实践日志

7.10-7.11 小组已完成相关视频学习 ,完善实践报告编写规范,已完成基本环境部署

  • 遇到的问题:本地环境部署完毕,漏洞镜像的拉取和使用都可以正常运行,但本地的Vulfocus的管理平台中的场景拓扑没有办法同步拉取场景商店中的场景镜像,同时在线测试平台https://vulfocus.cn/ 已经不开放对应的场景资源下载,需要自行去设计场景拓扑环境。

7.12 进行第一次线上小组会议,确定实践分工和时间安排

  • 对于场景场景创建的问题已解决,我们直接手动设计场景,首先,要达成跨网段和识别,进入办公区和核心区的任务,简单模拟其环境供使用这一漏洞攻防环境,我们需要准备两张网卡实现二层网络的搭建:
    • notion image
      攻击者主机通过暴露在“外网”的靶机漏洞从而渗透攻击DMZ区域,并将其作为跳板访问,依次利用漏洞访问到核心网内的靶机:
      notion image
      在容器中启动场景,查看相应的镜像信息:
      notion image
      完成上述步骤即构建了一个双层网段的渗透测试环境的模拟。

7.13-7.16 针对weblogic-cve-2019-2725提出修复方案

通过我们在场景中的复现能够清楚看到,Weblogic-cve-2019-2725的漏洞源于在反序列化处理输入信息的过程中存在缺陷,未经授权的攻击者可以发送精心构造的恶意 HTTP 请求,利用该漏洞获取服务器权限,实现远程代码执行。
我们从Oracle官方漏洞复现源拿到漏洞镜像,根据Oracle的漏洞报告,此漏洞存在于异步通讯服务,通过访问路径/_async/AsyncResponseService,判断不安全组件是否开启。wls9_async_response.war包中的类由于使用注解方法调用了Weblogic原生处理Web服务的类,因此会受该漏洞影响:
notion image
通过上述漏洞调用过程分析,要想有效修复漏洞,需要开发补丁,最直接的方法是在路径weblogic/wsee/workarea/WorkContextXmlInputAdapter.java中添加了validate方法,即在调用startElement方法解析XML的过程中,如果解析到Element字段值为Object就抛出异常:
当然,如果攻击者使用的poc中再次的利用了void、array和Class或者其他元素依然可能导致绕过补丁,因此这种修复漏洞的方式只能一定程度上的缓解,而不是一种完全可靠的防护措施

7.17-7.20 小组第二次会议,核对实践进度进展,分析存在的问题和解决方案

部分组员在具体搭建环境过程中遇到了由于docker版本问题和Python版本不兼容导致在复现某些漏洞场景的过程中出现错误:
  1. docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
原因:Docker未正常启动
解决方式:
  1. can’t create unix socket /var/run/docker.sock: is a directory
原因:docker.sock不能创建
解决方式:
然后重新启动docker
  1. Job for docker.service failed. Failed to start Docker Application
原因:Selinux引起
解决方式:
/etc/sysconfig/selinux , 把 selinux 值改为disabled,重启docker解决
4.docker-compose启动容器时报错:
/usr/lib/python2.7/site-packages/requests/init.py:80: RequestsDependencyWarning: urllib3 (1.22) or chardet (2.2.1) doesn’t match a supported version! RequestsDependencyWarning)
未知原因:pip相应组件版本不支持
解决方式:跟新对应的python版本
5.Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
解决方式:
查看 /var/run/docker.sock所在用户组
将用户重新加入docker组中,usermod -aG docker ${USER}

7.21-7.23 针对在攻破靶机的基础上,增加对异常流量监控、自动化脚本编写和漏洞端口扫描工具使用

异常流量检测与防护

使用 Docker 的网络命名空间和网络抓包工具来捕获和分析流量。
  • 获取容器的 PID(进程ID)
notion image
  • 使用 nsenter 命令进入容器的网络命名空间
  • 使用网络抓包工具(如 tcpdumptshark)来捕获和分析流量
这将在容器的 eth0 网络接口上捕获流量,并将结果保存到 captured_traffic.pcap 文件中
notion image
captured_traffic.pcap 文件中可以查看到所有访问到容器的流量
可以查看到疑似远程代码执行的攻击流量
notion image

Fscan使用初探

一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。 支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。
我同时尝试使用集成化的的漏洞工具去模拟渗透攻击,事实上,在实际的渗透中,更多的是使用这种多个功能集成式的工具来实现渗透,这样既能保证有着良好效果,同时也能提高效率。
Fscan使用Go语言编写,git clone下来后,需要编译成可执行程序后使用:
工具中提供了多个功能模块:
1.信息搜集:
  • 存活探测(icmp)
  • 端口扫描
2.爆破功能:
  • 各类服务爆破(ssh、smb、rdp等)
  • 数据库密码爆破(mysql、mssql、redis、psql、oracle等)
3.系统信息、漏洞扫描:
  • netbios探测、域控识别
  • 获取目标网卡信息
  • 高危漏洞扫描(ms17010等)
4.Web探测功能:
  • webtitle探测
  • web指纹识别(常见cms、oa框架等)
  • web漏洞扫描(weblogic、st2等,支持xray的poc)
5.漏洞利用:
  • redis写公钥或写计划任务
  • ssh命令执行
  • ms17017利用(植入shellcode),如添加用户等
6.其他功能:
  • 文件保存

对靶机扫描:

我们直接调用相关参数,即可完整获取到靶机所有信息:
notion image
同时,工具可以将该网卡中所有端信息保存下来:
notion image

7.24-7.26 汇总红蓝队实践报告流程,整合实验报告

根据小组分配角色任务流程,大体从红蓝攻守两方进行实验报告整合
  • 红队:
    • 实现对环境漏洞的挖掘,并利用漏洞实现攻击,成功拿到靶机Flag
    • 在原有漏洞基础上尝试编写漏洞利用的自动化脚本和工具
  • 蓝队:
    • 对模拟场景下的出现的攻击进行检测和识别处理
    • 完成对漏洞的缓解或修复
    • 编写自动化检测脚本和利用集成式工具进行维护和防御

5.总结

通过本次攻防实践实验,让我们小组成员收获颇丰,经过这一段时间的学习和实践,我们对于网络安全中相关的攻击方式、攻击手段和流程都进行了模拟和实践,同时也对防御方如何去应对攻击者多变复杂的攻击手段,如何去检测恶意行为和漏洞利用进行了实践模拟。
以本次跨网段渗透的模拟场景的攻击为例,可以清楚看到,在真实网络环境中,攻击者在进行渗透攻击前会进行充分的“试探“和摸索:
  1. 信息收集阶段:攻击者在开始渗透之前首先进行信息收集,包括目标网络的IP地址范围、域名信息、子域名枚举等。常用的信息收集工具有NmaptheHarvester等。
  1. 漏洞扫描与分析:在获得目标网络的信息后,攻击者会使用漏洞扫描工具来发现目标网络中存在的漏洞,并进行漏洞分析,以确定哪些漏洞是可以被利用的。
  1. 渗透与入侵:攻击者通过已发现的漏洞或其他手段,尝试进入目标网络。渗透工具如MetasploitSQLMap等被广泛用于此阶段。那对于一些更加复杂的环境,攻击者甚至可能通过社会工程学手段获取登录凭证,或利用远程执行漏洞获得对目标系统的控制权。
  1. 提权和权限维持:成功进入目标网络后,攻击者会寻求提权,以获得更高的权限。常用的工具有PowerSploitmimikatz等。此外,攻击者还会尽可能地维持对目标系统的控制,以确保持久性地侵入入侵靶机,以获得更多的信息。
面对攻击者层出不穷的”机关巧计“,蓝方同样有着许多方式能够做出有效的应对:
  1. 网络防护设施:蓝队需要建立完善的网络安全设施,包括防火墙、入侵检测系统(IDS)、入侵防御系统(IPS)等。这些设施可以及时监测并阻止可疑的网络活动和攻击行为。
  1. 漏洞管理与修复:定期进行漏洞扫描,并及时修复已发现的漏洞,是防御措施中至关重要的一环。蓝方的防御过程是一个持久不间断的,因此,需要对于系统、网络进行及时的扫描和维护才能实时有效地防御。
  1. 行为分析与异常检测:通过行为分析和异常检测,可以及时察觉异常的活动,如大量信息注入、不寻常的网络流量、大量的端口扫描等,从而能够快速定位到攻击者的攻击目标和方位从而有效的进行检测和防御。
  1. 加密与访问控制:使用强大的加密技术保护敏感数据的传输,同时合理配置访问控制,限制用户权限,可以有效防止未经授权的访问。
渗透攻防是网络安全领域的重要方向。无论是攻击方还是防守方, 都需要进行大量的学习和尝试,这就像是水火不容的矛和盾,在激烈的碰撞中,不断地产生振聋发聩的声响。
作为一名网安人,练就”火眼金睛“,维护网络安全,是我们的责任更是我们的初心。

6.实践报告地址:

7.仓库地址

 

评论
  • Twikoo