网络安全中的拟态主动防御研究

​ 一直以来,我以为所谓的拟态防御就是通过机器学习研究人与人之间的动态行为,但了解了网上一些有关拟态防御的文章和比赛原题后,发现与我想的有很大出入,863计划中的“网络空间拟态防御理论及核心方法”,里边研发人员所提出的动态异构冗余体制架构,将未知的转向已知的一个过程,再转向概率极小事件,也就是 unknown+unknown+unknown=>uncertain threat,通过这种架构,系统不再依赖于单一的静态防御,而是借助动态变化来让攻击者难以找到可利用的固定漏洞。系统通过持续改变自身的运行环境,包括操作系统、软件版本、网络协议甚至硬件架构等,增加了攻击的难度。每一个“unknown”代表系统中的不同维度的不确定性,通过多样性和随机性的引入,逐渐将未知风险控制在一定范围内,并最终将攻击成功的概率压缩至极低水平,这在打攻防的时候会有很大优处,有一定的概率渗透不进系统

​ 有个非常强的逻辑性就是,如果我们在系统中引入多个后端,并且每次请求随机分配到不同的后端,那么攻击者无法确定每次请求的响应是否来自同一个服务器或执行环境,这一点在以前打学校的过程中就搭建过类似的靶场,感兴趣的等以后有时间了出篇文章复现下其中的情况,具体说明就是攻击者需要按照特定的顺序访问API才能获取到想要的数据,但由于后端是动态变化的,并且请求的顺序会被记录,攻击者必须确保每一步都发往正确的后端,否则就无法继续下一步,虽说有点脑残,但是实践中的现象表明,如果存在多个异构后端,那么每次请求都会随机分配到其中一个,并且导致某些请求的响应并不正确,攻击者必须通过重复尝试确保发送到正确的后端

​ 在攻击过程中,攻击者既暴露了自己的行为,又逐渐显露出自己想要攻击的目标是什么,并且在攻击过程中,多个后端的不同回显会导致系统自动检测出不一致的行为,并进行报警,长亭的雷池社区waf就有类似的功能,这种机制不仅可以让攻击者的行为更加透明化,还通过逐步缩小攻击者成功的窗口,将威胁锁定在极低的概率区间

这里简单写了一份Nginx配置文件供大家参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
http {
upstream test_backend {
server test-server-1.icecliffs.cn;
server test-fake-server-2.icecliffs.cn;
server test-server-3.icecliffs.cn;

server test-fake-server-2.icecliffs.cn;
server test-server-3.icecliffs.cn;
}

server {
listen 80;
server_name www.icecliffs.cn;

location / {
proxy_pass http://test_backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Cache-Control no-store;
}
}
}

搭配雷池WAF食用更佳(大概,也许?可能?运用jumping不等式,$主=6$)

​ 同理我们还可以设想一个场景,高德地图、百度地图、腾讯地图等地图软件都是可被入侵的对象,如果在短时间内入侵上述地图软件,多路委派错误的导航,可造成一定的交通瘫痪,其危害程度不亚于寻呼机爆炸事件

Reference

基于OpenBTS的GSM短信基站实验

中文:基于OpenBTS的GSM短信基站实验

⚠警告⚠声明

仅供学习交流!严禁将此技术用于非法途径!违者后果自负!

搭建教程已略(网上一搜一大把),这是一篇长坑,后面会慢慢补,因为我不是通信专业的,所以有些地方写的不好还请见谅

Read more

Persistence: Kerberoasting Attack Methods in Windows Domain Pentest

在22年国护远程红的时候,有几台靶标用到了这个方法,现在重新整理一下发出来。

认识Kerberos

一般来说,Kerberos在建立客户端-服务端连接的时候,分为三个角色,分别是DC(域控)域客户端和提供应用服务的AS(应用服务器),其中域服务器主要涉及到了Kerberos的KDC(Key Distribution Center,密钥分发中心),并且Kerberos默认使用的端口遵循RFC4120并使用88端口进行TCP数据传输

  • Domain Controller,DC
  • Client
  • App Server,AS
Read more

Persistence: Windows UAC bypass and attack methods

UAC简单介绍

UAC(User Account Control),作为Windows系统中的一种安全机制,其主要目的是为了保证应用程序和任务始终在非管理员账户的安全上下文中运行,除非系统做了管理员级别的访问权限(输入管理员账号密码或者手动授权),否则一般是不允许未经授权的应用程序自动进行安装。

image-20241126222354535

主要登录过程:

  • 如果资源拥有了ACL(Access Control List),则这个列表决定了当前这个资源能被哪种权限的用户进行访问
  • 开启UAC之后,如果用户是标准用户,则会给Windows分配一个Access Token
  • 以管理员登陆的话,会生成两种令牌,一种是Full Access Token,一种是User Token(标准用户令牌)
    • 标准用户令牌,会删除管理Windows特权和SID,只用于访问特定的用户信息,用于执行显示桌面explorer.exe
Read more