红队外围突破的五大方式

红蓝对抗

Posted by DC on December 12, 2018

红队突破外围的五大方式

最近在拜读这篇文章《红队突破外围的五大方式》,从中学习相关红蓝对抗的经验总结,并从文章中进行提炼学习,知识点,来提升自我同时分享作为知识备份。

在红方侦查阶段:采用有效的侦查、发现技术手段和工具,挖掘出有针对性的攻击对象就能够轻易触发一些系列攻击操作,从而帮助红队获取一个非常复杂的目标。所以做为外围突破总结一些外围信息搜集和突破点的思路进行学习。

1. 第一阶段 OSINT 收集

OSINT(公开来源情报)是从公开来源收集到的情报 。 在情报机构(IC)来看,“公开”是指公然展示的、公众可见的来源(相对于被掩盖或并非公开可见的来源)。 它与开源软件或群体智能无关– wiki

awesome-osint给我们提供了丰富的公开数据源,在我看来,当前互联网数据接口是十分多的(但是数据同步能力则十分低效,或掌握在一部分组织手中),如何进行数据挖掘是十分重要的核心能力点。以下列出开源情报的一些思路和方式。

  • 被动收集方式(Passive Gathering)

    1. 引擎API数据搜集
    • shodan

    Shodan是一个搜索引擎,它允许用户使用各种过滤器查找连接到互联网的特定类型的计算机(网络摄像头路由器服务器等)。有些人还将其描述为服务横幅的搜索引擎,服务横幅是服务器发送回客户端的元数据。[1]这可以是有关服务器软件的信息,服务支持的选项,欢迎消息或客户端在与服务器交互之前可以找到的任何其他信息。

    shodan,作为主机搜索引擎,可以快速的搜集目标ip的一些服务信息、指纹信息、漏洞信息、作为攻防目标的基础信息搜集和突破点,文中给出了一个信息搜集脚本shodanhat,个人觉得没有shodan官方接口好用API,当然大批量搜索目标时需要KEY(付费)

    • SpiderFoot

      文章中提到了另外一个脚本SpiderFoot这是脚本化了的OSINT收集脚本,支持不同数据类型,和不同引擎的数据反馈,shodan也是其中接口之一。

      ### 输入
      Domain
      IP Address
      hostname/sub-domain
      subnet
      ### 调用引擎(有些需要私有API
      Honeypot Checker
      SHODAN
      VirusTotal
      IBM X-Force Exchange
      MalwarePatrol
      BotScout
      Cymon.io
      Censys.io
      Hunter.io
      AlienVault OTX
      Clearbit
      BuiltWith
      FraudGuard
      IPinfo.io
      CIRCL.LU
      SeccurityTrails
      FullContact.com
      RiskIQ
      Citadel.pw
      
  1. 企业人脉网络信息搜集LinkedIn

    主要提供了国际中用的比较多的LinkedIn 这样的社交应用,文章提供了 一个针对 LinkedIn 这样信息搜集脚本LinkedInt通过设置,搜集大量某公司或者某一类用户的基本信息(邮箱、用户名,访问凭据,密码爆破、联系方式等突破口)。(其他类似方法:1.浏览器burpsuite脚本搜集linkint(方式不同) )

  2. DNS类

    DNS信息搜集作为基础数据可以精确地定位目标的域名、子域名、IP、这些指向性基础设施设备信息。文章给了三种子域名枚举工具及IP

    AsyncamassSublist3r

  3. 互联网文档库

    提供搜索引擎 基于爬取的 WIKI、网页文档、连接等等 。地址: https://archive.org/web/ 感觉使用根据特定场景能够搜索到一些有用信息。

  4. OSINT服务相关

    一些已经实现的常用的数据查询接口

    • censys(设备ip基础信息)
    • hunter(搜索邮箱)
    • pipl(通过email、name、username、phone来对人进行相关信息搜集)
  5. google语法(通过google hacking 语法进行google信息搜集)

  6. 社交媒体信息搜集(这种信息搜索方式较为针对性和模糊性,搜索公司发布的公开信息)

  7. github信息泄露获取(通过监控爬取github的泄露凭据,作为攻击资源)

  8. Amazon S3服务 敏感信息获取(获取托管服务的数据看是否有,泄露数据)

    Amazon Simple Storage Service(S3)是一项AWS服务,供用户以安全的方式存储数据。S3 Bucket权限默认是安全的,这意味着在创建时,只有存储桶和对象所有者可以访问S3服务器上的资源。xxx.s3.amazonaws.com 前缀 托管目录

    文章提供了一个简单的脚本 inSp3ctor.py文件 用来搜索,但是字典还是要自己持续丰富提供,探测说明报告

  9. 违规/被攻击记录查询

    查询违规记录、来寻找是否存在攻击面、国内好像蛮少的,

    Pwned API(https://haveibeenpwned.com 资源网站的api)

  10. 元数据处理(其实就是对文档处理)

    FOCA(带有收集档案的指纹识别组织)是一种主要用于在扫描文档中查找元数据和隐藏信息的工具。

    它能够分析各种文档,最常见的是Microsoft Office,Open Office或PDF文件,但它也可以分析Adobe InDesign或SVG文件

    通过 google、bing、DuckDuckGo 之类的引擎获取文档,提取信息(个人感觉处理量有点大)

  11. 针对微软通信服务的对外接口

    邮件服务

    • MailSniper(功能主要是爆破exchage–outlook,搜集邮件中的泄露信息,密码。)

    • ruler(搜索ex服务器与EXchange 交互,并尝试进行数据获取)

    • msf上的模块 进行outlookapp 暴力破解 use auxiliary/scanner/http/owa_login

    LYNC通信服务(LCS, OCS, Lync, Skype各种名字)

    Microsoft Lync(前称Microsoft Office Communicator)是一个配合Microsoft Lync Server一同使用,又或随同Office 365与Live@EduLync Online附送的即时通信客户端。客户端软件的基本特性包括即时通信、IP电话和网络视频会议。

    lyncsmash枚举侦测脚本

    SharePoint

    SharePoint微软制作的一款用于Windows Server 2003的免费附加(增值)软件,它提供基本的门户网站企业内网功能。它包括由web部件(由ASP.NET开发)组成的叫作web 部件页面的门户页面、团队站点、文档库以及项目子站点,带有版本控制的文档存储空间、以及基本的搜索功能。它的前端是一个运行于Internet Information Services 6.0之上的ASP.NET网站,后端由SQL Server或者MSDE来存储数据。

    SPartan指纹识别/爆破脚本

  12. 主动扫描工具

2. 第二阶段 鱼叉式网络钓鱼

在拥有大量OSINT资源的理想情况下,拥有一些确切的:目标的名称、年龄、职位描述(相关通过打电话什么的也是技术手段之一),操作系统、Office版本、Anti Virus版本、类型,明确防火墙及代理设备在创建攻击载荷进行外围突破时都十分重要。

文中给出了在线针对攻击时随机给出匿名攻击时所需的安全假名、地址、用户名、密码、可用的电子邮件地址等的生成网站免费电子账户注册便于你在锁定目标时的进行前期的载荷投递准备。

在生成有效投递载荷,比如用Cobalt Strike ,在这里文章强调了一下无阶段有效载荷分阶段有效载荷 这两个概念各有优劣,最明显的区别就是攻击过程和载荷是否分阶段执行投递。同时在攻击阶段,应该明确的是钓鱼方案中使用的网站都应是合法的,所生成的载荷都应该显示为正常 有效的文档或者应用程序。

在介绍使用载荷生成框架方面,文章提的并不是很明确(根本就没咋说,主要就是为了推销Cobalt Strike~2333)、定制化是常态。不过较为著名的框架应该是Cobalt Strike(收费)、Metasploit(开源)等。

不过在载荷投递方面,针对用户触发阶段,提供了一些方法:

  • ClickOnce应用

    ClickOnce微软公司开发的一门用于在网络上发布应用程序的技术。

    ClickOnce使得用户可以从支持ClickOnce的网页中点击一个链接来运行一个程序。ClickOnce的设计目标是使得应用程序的启动和升级更加容易。

    ClickOnce的安装是把文件复制到用户的配置文件下,所以不需要管理员权限,对系统的影响也比较小。.Net对ClickOnce程序采取的安全策略是基于启动位置,在默认的安全设置下,从Internet启动的程序较从本地启动的程序拥有较少的权限。

    ClickOnce程序可以从程序的更新位置检查是否有更新版本,并且提示用户下载和安装新的版本。

    通过开发这样的ClickOnce包装器,来针对windows 的信用体系进行攻击。例子

  • html中包含加密的HTA数据

    HTA是HTML Application的缩写(HTML应用程序),是软件开发的新概念,直接将HTML保存成HTA的格式,就是一个独立的应用软件,与VB、C++等程序语言所设计的软件界面没什么差别

    通过邮件伪造一个网页页面(中间包含运行的HTA恶意程序)诱导进行载荷投递。

  • 通过投递生成的CSharp(C#)的载荷

    C#微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#以.NET框架类库作为基础,拥有类似Visual Basic的快速开发能力。

    通过投递C#程序进行载荷投递,提供一个sharpshooter脚本用于触发载荷生成

  • powershell 的msbulid 白程序调用方式

    PowerLessShell依赖于MSBuild.exe来远程执行PowerShell脚本和命令,而不会产生powershell.exe

    这样可以轻易的,进行调用。(其实也是利用了微软的默认信用体系)PowerLessShell

  • rundll32.exe 调用 最为常见的方法

    通过调用rundll32.exe 的程序进行 dll 注册 注入 执行 来进行调用 简单的生成脚本 CACTUSTORCH

3. 第三阶段 基础设施准备

  1. 电脑用什么(Mac….)

  2. 实验环境准备 (Active Directory、Microsoft Office 、anti Virus等)还给推了广告。。。云端平台Endpoint,不过该平台强调了自己在att&ck 上的覆盖能力,确实是一个前瞻性的思路。

  3. 讲了个技术点关于网络层分析

    SSL正向代理与入站检查解密模式的区别

    配置SSL解密策略以定义符合解密条件的SSL流量时,您必须在两种不同类型/模式之间进行选择:

    • SSL正向代理(流量代理,需分发配置秘钥,CA证书签发)
    • SSL入站检查(不充当代理,获得秘钥情况下,解密配置进行数据解密)

    msf 增加httpstager 的shell 验证是否符合或者被劫持(对抗防御和研究)

  4. 红队外部基础设施

    在红队攻防中,自有资产,比较重要的就是自己外部基础设施的域,一个自有的基础设施点被标注恶意,则会影响整个环节攻击被检测或者标注。所以怎么隐藏自己的基础设施是一个重要的议题。

    主要的设施:
    domains 域名
    redirectors 重定向服务器
    SMTP servers  邮件服务器
    payload hosting servers  payload 服务器
    command and control (C2) servers  c2 控制服务器
    

    隐藏思路:

    1. 基础配置
    • 主要设施按照功能隔离,其中对于C2 也安装功能 分成C (command) 和 C (control)
    • 重定向,做保密和模糊处理
    • 技术使用的不确定性
    • 在控制阶段的进行重定向处理
    • 测试时间控制
    • 架构压力测试
    • log完整性
    1. 域名选用
    • 域名按照用途分类
    • 域名选取合法分类过的域名与未分类域名 进行交叉掩护
    • 域名与目标流量 相似度要高
    1. 载荷处理
    • 选用目标环境有效载荷类型
    • 载荷触发的有效性
    • 有效载荷重定向,web重定向分两类:scat/iptables 类与Apache mod_rewrite、nginx
    • 载荷访问指纹有效性(防止分析)
    1. C2处理
    • long-Haul vs short-Haul :根据功能用途分类频次分开,进行处理。(可以仿照鱼鹰的DNS回显)
    • short c : 快速可更换性
    • 协议选择,常见的 HTTP(s)、DNS、Domain Fronting 、C2ip

    常见C2协议图

    • 流量相似性
    • 重定向处理
    1. SMTP
    • 自控服务器:Sendmail和Postfix,设置SMTP服务器配置DKIM,SPF和PTR记录。还应将服务器配置为删除所有先前的主机标头
    • 第三方接口操作(需评估影响)
    • 使用开放的邮件中继点

    后续提供了简单的实例,以及加上搜集的思路git

    样本基础设施设计#3

  5. C2设施,提供简单的深化配置

  6. 强调选择域对 基础域名的相似性过期域名 要点的强调 提供 一个 代理分类管理工具

  7. 隐蔽性测试:不论外部渗入 还是内网攻击案例中,对每个操作进行评估都至关重要,这里提供一个过期域名案例,包括简单的域前端处理说明

  8. 2018流行攻击及策略

4.第四阶段:持久化处理

基本的持久化套路,通过加密方式绕过流量,通过简单后门创建 cron计划任务,通过ssh stunnel 这种端点进行持久化控制。但是在初步连接建立时进行进一步持久化,所在节点及周边节点信息获取,优化持久化能力十分重要,(这里的持久化能力和方法根据具体场景进行选用,着重在于是否对目标系统的了解采取合适方法。),讨论帖子例子和想法