红蓝对抗

  • 岗位职责
    从红蓝对抗的角度,基于具体的业务场景,研究场景攻击手法,将研究成果形成知识图谱以及输出到产品线形成防御方案,提升产品的安全效果,具体包括但不限于:
    1. web业务场景的攻击手法研究;
    2. 主机场景的攻击手法研究;
    3. 内网横向移动的攻击手法研究;
    4. APT常见攻击手法的研究。
  • 岗位要求
    1. 学习能力强,对安全知识有一定的了解;
    2. 有单独分析复现组件漏洞或挖掘漏洞的能力,web或者二进制。
  • 优先条件:
    1. 有提交过SRC或者参加过CTF等赛事,获得优秀名次的优先;
    2. 有渗透测试项目经验者优先。

是什么

在军事领域,演习专指军队进行大规模的实兵演习,红军为守,蓝军为攻。网络安全中,红军就是防御者,蓝军就是黑客。(也有采用红攻蓝守的说法)

国内蓝军扮演假想敌(即敌方部队),与红军(我方正面部队)开展实战演习,帮助红军查缺补漏,提升作战能力。网络安全红蓝对抗的概念也源自于此,通过开展APT高级持续性威胁攻击演习来全方位检验企业的安全稳健性和威胁监测及响应能力。

目的

红军作为企业防守方,通过安全加固、攻击监测、应急处置等手段来保障企业安全;而蓝军作为攻击方,以发现安全漏洞,获取业务权限或数据为目标,利用各种攻击手段,试图绕过红军层层防护,达成既定目标。

“渗透测试”与“红蓝对抗”

渗透测试:侧重尽量用较短的时间去挖掘尽可能多的安全漏洞,一般不太关注攻击行为是否被监测发现,即便被发现也不会立刻遭拦截,目的是帮助业务系统暴露和收敛更多风险

红蓝对抗:侧重绕过防御体系,毫无声息达成获取业务权限或数据的目标,不求发现全部风险点,因为攻击动作越多被发现的概率越大,一旦被发现,红军就会把蓝军踢出战场,目的是检验在真实攻击中纵深防御能力、告警运营质量、应急处置能力

流程:网络攻击杀伤链(Kill Chain)

[以攻促防:企业蓝军建设思考]https://www.freebuf.com/articles/es/199166.html

想要了解蓝军的整个攻击生命周期,可以通过网络攻击杀伤链来进行:首先通过多种手段获取立足点,在此基础上通过权限提升、信息发现和横向移动扩大控制权,最后达成数据收集、窃取和篡改破坏等目的。

img

第一阶段:获取立足点

目标侦查 利用一系列侦查手段获取目标的资产、人员、环境等信息,为实施攻击提供基础信息支持,信息的全面性和准确性很大程度确定攻击的路径、战果和效率。

通过DNS域传送漏洞、域名注册信息反查、域名枚举等手段获取域名资产信息。通过域名解析、网段扫描等手段获取IP资产信息。通过网站扫描、端口探测等手段获取程序指纹信息。通过在搜索引擎、社交网站、网盘、Github等平台检索以及社工欺骗等手段获取组织架构、员工信息、源代码、账户密码、常用软件、常上网站、安全防护策略、外包服务供应商等信息。通过实地考察获取职场和机房的网络、门禁、办公等环境信息。

武器构建 根据前期收集到的信息,针对性制作攻击代码。

如果尝试对HR进行攻击,那么可以设计植入木马的简历文档。如果计划从线上服务入手,可以通过自动化扫描、人工测试等手段对目标资产进行漏洞探测,发现可利用的0day漏洞。在目前公开的APT案例中,至少有80%是从攻击员工办公电脑入手,因为人是系统最大的漏洞,利用社会工程学的攻击成功率高,同时攻陷员工电脑后更容易摸清内部网络及扩大控制范围。

攻击投放 利用各种手段将攻击载荷投递到目标。

利用命令注入、文件上传、SQL注入、SSRF、XSS、溢出等漏洞直接远程攻击线上服务,利用邮件钓鱼、U盘摆渡攻击、水坑攻击、软硬件供应链攻击、网络劫持等方式入侵服务器、员工电脑、网络设备。

执行利用 不同环境采用不同的执行方式,在受限环境可利用系统组件或合法程序执行加载恶意代码,从而突破系统限制或隐藏自身,达到木马顺利运行的目的。

在Windows环境使用系统内置程序PowerShell执行脚本,恶意代码仅存在于内存中,文件不落地,类似可使用的执行方式非常多。

命令控制 建立具有各种隐蔽级别的通道来操控目标设备或进入目标内网。

通过WebShell(如Caidao、Weevely)、Reverse Shell(如Bash/Python/PowerShell)、远控木马RAT(如Cobalt Strike/Metasploit Meterpreter)、远程桌面访问软件(如TeamViewer/VNC),使用多层代理、传输加密、端口复用、Domain Fronting等方式、采用TCP/UDP/HTTP/HTTPS/DNS/ICMP/SMTP等网络协议,甚至模仿其他正常应用通信流量,做到实时监控和遥控目标设备;通过端口转发(如netsh/iptables)、Socks代理(如ssh -D)、HttpTunnel(如reGeorg)、企业VPN通道等方式穿透企业内网,突破网络边界。

防御躲避 利用检测对抗技术、攻击痕迹清除等方式逃避入侵检测、杀毒软件等安全系统的发现和追溯。

使用肉鸡发起攻击避免暴露黑客真实IP,构造畸形请求包绕过WAF,将恶意代码注入到正常合法进程/文件内,利用白名单、反调试、无文件等手段绕过病毒检测(如使用知名企业合法数字证书给恶意程序签名),清除或破坏应用访问/系统登陆操作日志,降低行为活动频率等等。

权限维持 通过劫持合法程序、驻留系统自启动后门、创建隐藏管理员账户等方式实现长期控制,即使系统重启或重装也不会消失。

替换系统辅助功能(如放大镜、软键盘)、劫持动态连接库、利用Windows服务启动项/Linux定时任务crontab配置随系统自启动、设置suid特权程序、安装bootkit木马、盗用原有合法账户密码等等。

第二阶段:扩大控制权

权限提升 利用系统弱点或配置不当等方式获取超级管理员级别权限。

利用最新Windows/Linux内核提权漏洞,管理员权限运行的第三方软件存在漏洞可利用,管理员权限定时执行的程序文件因权限设置不当致使普通用户也可篡改程序,管理员密码随意存放在服务器普通文件里等等。

信息发现 通过本地搜索、内网扫描和嗅探等方式确认已可以获取或控制的数据及进一步了解内部网络和可能利用的风险点。

通过本机翻箱倒柜获取用户列表、进程列表、网络连接、配置文件、程序代码、数据库内容、运维操作记录、系统账户密码、浏览器保存密码、邮件内容等信息;通过内存导出、键盘记录、网络嗅探获取用户凭据;通过查询Windows域全部账户和主机,分析出企业完整的组织机构/人员、重要机器等信息;通过内网主机存活探测、远程服务探测描绘出内网结构拓扑图、内网应用服务以及可能的风险点;通过访问内部OA网站尤其是知识分享平台获取业务架构、代码、服务器等信息。

横向移动 通过内网渗透攻击获取更多服务器权限和数据。

一般来说黑客偏爱攻击拥有企业网络、机器、数据相关管理权限的系统,比如说Windows域控、补丁服务器、邮箱系统、内部即时通讯工具、跳板机、运维运营平台、密码系统、代码管理平台等,道理很简单,一旦攻破这些系统就几乎能够控制全部机器,进而获取目标业务数据;黑客也喜欢攻击企业高管、目标业务员工、网络管理员的电脑,因为这些人员掌握的信息更重要,也更接近黑客目的。其中一种常见的内网渗透思路是由于大多数企业内部网络隔离精细度不足(尤其是大型企业服务器数量太多,隔离成本大),内网站点安全性低(重点防御外部攻击,内部系统安全投入少),内网高危应用服务没有鉴权认证(比如Docker/Kubernetes/Redis/Hadoop等应用在未鉴权的情况下可造成服务器直接被入侵控制,不少人以为内网很安全所以没有开启鉴权),服务器帐号密码普遍通用(为了方便管理甚至全部服务器密码都一样),这些情况可以让黑客在内网渗透时很轻易获取到一些服务器的控制权限,然后逐一登陆服务器抓用户登陆凭证(一台服务器存在多个账户),再使用这些凭证尝试登陆其他服务器,若登陆成功后又继续抓其他用户登陆凭证,这些新拿到的凭证又可能可以登陆其他服务器,通过反复尝试登陆、抓取凭证这一经典套路,逐步扩大服务器控制范围,最终甚至可能做到全程使用合法用户凭证登陆任意服务器,就好似运维管理员正常登陆进行运维一样。

第三阶段:达成目的

数据收集 搜集源代码、数据库、资产信息、技术方案、商业机密、邮件内容等攻击目标数据。

数据窃取 对数据进行加密、压缩、分段处理,通过HTTP(S)/FTP/DNS/SMTP等网络协议主动对外传送、使用Web对外提供访问下载、物理U盘拷贝,或业务接口直接查询回显等方式将数据传输到黑客手中。

篡改破坏 通过修改数据进行非法获利,摧毁数据进行打击报复等。

具体攻击手法非常多,不是每次攻击都会涉及到方方面面。比如说攻击目的是获取某系统数据,假设该系统本身存在SQL注入漏洞,那直接从外网利用SQL注入漏洞获取数据就能达成目的,不用考虑那么多复杂的攻击手法,黑客会根据目的和现状倒推出最佳手段,而不是盲目开展。

安全演习也是如此,根据演习诉求和目的按需开展。MITRE ATT&CK攻击矩阵是一个基于全球APT组织真实入侵事件中整理出攻击战术、技术和过程的知识库,很有参考价值,不过有些操作实例不够详实,我们进行了细化和扩展,后续也会持续分享出来。

[红蓝对抗基础设施架构设计Wiki]https://www.4hou.com/technology/17573.html

[红蓝对抗 - 蓝队手册 (BTFM)] https://www.cnblogs.com/qiudabai/p/9758125.html

[信安之路挑战赛红蓝对抗题目全解析]https://cloud.tencent.com/developer/article/1355022

应用场景

[安全之红蓝对抗简介]http://www.cnblogs.com/he1m4n6a/p/10057473.html

  1. 外网web业务场景

    敏感文件泄露、管理后台暴露、waf有效性、waf防御效果、违规使用的框架、高危端口

  2. 办公网安全

    OS系统安全、高危端口、设备脆弱性(弱口令)、边界安全、安全告警测试、办公助手安全

  3. IDC主机安全

    爆破告警、shell告警、木马告警、软件未授权访问、软件弱口令、内网Web评估

  4. DB专项

    低版本漏洞、明文密码泄露、权限问题、弱密码、空口令

一个思路图:https://img2018.cnblogs.com/blog/1545399/201904/1545399-20190420144230940-559126514.png

攻击方式与技术

1. Web业务场景的攻击

请结合食用:[Web安全学习笔记]https://websec.readthedocs.io/zh/latest/

(1) SQL注入

介绍:[SQL注入介绍(玄魂工作室)]https://mp.weixin.qq.com/s/zzlTSHJwXW4egygwxgeovg

分类:

  • B:布尔型盲注
  • E:报错型注入
  • U:联合查询注入
  • S:堆查询注入
  • T:时间型盲注
  • Q:内联查询注入

WIKI:[SQL注入WIKI]http://sqlwiki.radare.cn/

工具:

(2) XSS 跨站脚本攻击

介绍:原理是恶意攻击者往 Web 页面里插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中 Web 里面的脚本代码会被执行,从而可以达到攻击者盗取用户信息或其他侵犯用户安全隐私的目的。

分类:

  • 反射型XSS(非持久型)
  • 持久型XSS

方式:

  • DOM-XSS
  • Blind XSS
  • 基于字符集的 XSS
  • 基于 Flash 的跨站 XSS
  • 未经验证的跳转 XSS

用途:

  • Cookies 窃取
  • 会话劫持
  • 钓鱼
  • 挂马
  • DDOS

WIKI:

(3) CSRF 跨站请求伪造

介绍:对于 CSRF,其两个关键点是跨站点的请求与请求的伪造,由于目标站无 token 或 referer 防御,导致用户的敏感操作的每一个参数都可以被攻击者获知,攻击者即可以伪造一个完全一样的请求以用户的身份达到恶意目的。

XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。

分类:

  • HTML CSRF(资源包含)、(基于表单)
  • Flash CSRF

防御:

  • Token
  • 验证码
  • Referer Check
  • 严格设置cookie的域

WIKI:[CSRF 跨站请求伪造]https://ctf-wiki.github.io/ctf-wiki/web/csrf/

(4) SSRF 服务器端请求伪造

介绍:是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。

常用后端函数:

  • file_get_contents
  • fsockopen
  • curl_exec

WIKI:[SSRF 服务端请求伪造]https://ctf-wiki.github.io/ctf-wiki/web/ssrf/

(5) 命令执行

介绍:指Web应用在服务器上拼接系统命令而造成的漏洞。

常见危险函数:

  • PHP

    • system
  • exec

    • passthru
  • shell_exec
    • popen
  • proc_open
    • pcntl_exec
  • WScript.shell
    • Shell.Users
  • Shell.Application

    • dl
  • Python

    • system
    • popen
    • subprocess.call
    • spawn
  • Java
    • java.lang.Runtime.getRuntime().exec(command)

绕过方式:

[php命令注入函数及dvwa命令注入实践]<https://blog.51cto.com/12332766/2151859?source=drh

(6) 文件上传

[玄魂工作室-CTF实战14 任意文件上传漏洞]https://mp.weixin.qq.com/s/QL_9fEnTDfq67By_Nq3xCw

介绍:通过绕过限制,上传脚本等漏洞利用文件到服务器上,使服务器进一步沦陷。

中间件漏洞:https://websec.readthedocs.io/zh/latest/vuln/middleware.html

(7) 文件包含

介绍:会导致恶意代码的执行及敏感信息泄露,主要包括本地文件包含和远程文件包含两种形式。

[Web安全实战系列:文件包含漏洞]https://www.freebuf.com/articles/web/182280.html

(8) 业务漏洞

介绍:逻辑漏洞是指由于程序逻辑不严导致一些逻辑分支处理错误造成的漏洞。

漏洞点:

  • 安装
  • 验证码
  • 刷优惠券
  • 重放请求
  • 用户注册、登录、找回密码、修改密码

2. 主机场景的攻击

(1) 信息收集

基本信息、域信息、用户信息、网络信息、密码信息、补丁安装情况、杀毒防御软件信息

(2) 权限提升

任意写文件利用、mof文件、sethc、dll

(3) 痕迹清理

3. 内网横向移动的攻击

4. APT常见攻击

描述

是一些目的性较强、攻击方式先进、复杂多样、多用0Day、攻击持续时间长、隐蔽性很强的攻击方式。

过程

  • 侦察跟踪 (电子邮件、社交媒体、公网服务器)(收集访问者日志、建立异常检测机制、特别注意基于技术和人的侦察)
  • 武器构建 (获得‘军火商’的帮助,基于文件的攻击、“钓鱼”,嵌入恶意代码)(进行全面的恶意软件分析)
  • 载荷投递 (针对Web服务器、恶意邮件、恶意软件、社交互动、钓鱼网站)(分析理解载荷介质、推断意图、收集日志、还原取证)
  • 漏洞利用 (利用软件、硬件、人类的弱点)(提高员工安全意识、服务器的防护、限制管理员权限、阻止shellcode执行、登录审计)
  • 安装植入 (植入后门、修改时间点)(关注软件安装目录、终端审计、异常文件的创建)
  • 命令和控制 (WEB、DNS、SMTP)(规范所有的流量)
  • 目标达成 (收集凭据、权限提升、侦察、横向内网渗透、覆盖或破坏数据、修改数据)(制定响应流程,检测数据泄露、横向传输、未经授权证书的使用,及时反馈告警、事件评估)

应对

  • 资产范围、资产属性、资产类别 (所有攻击都是有目的性的,我们要关注我们要守护的内容)
  • 上网行为监控、邮件服务器监控、终端管理 (访问方式)
  • 基础防护、检测、应急、维护、监控 (堵不如疏)

攻击思路:https://github.com/klionsec/RedTeamManual/blob/master/RedTeamManula.jpg

测试方法

  1. 讨论并记录脑图
  2. 按专项测试
  3. 分点,按点排期测试
  4. 撰写报告,漏洞闭环
  5. 逐行扫描
  6. 持续跟进、复盘测试

需要的技术

  1. Python
  2. IDA
  3. JEB
  4. Masscan
  5. Nmap
  6. Metasploit
  7. 收集的各种样本

百科全书: