2021HW干货--蓝队

0. 前言

1. 护网前

1.1 红队角度

对抗!对抗!对抗!

在打目标的时候,一般用的都是迂回战术!

因为目标的系统多而杂,有些企业甚至不知道自己有哪些系统,利用这点从底往上摸,但凡有交互的地方都会摸一遍,只要给个口,里外摸个透。

外紧内松,门户网站或重要系统,多个防护设备,蜜罐。而内网为了办公的便利,防护巨差,甚至内网0防护,一旦从外面打进去,内网横向去打,就会发现一片光明。

什么运维机,什么密码.xls xxx拓扑,里外翻个遍。

1.2 上帝视角

防守方报告基本是防御,处置,溯源。(真实HW中,如果自身溯源能力很差的话,尽早找外援。某行业的HW,红队被反控,这个都能去搞情报)

1.3 前期排查

HW的准备阶段尤为重要,HW前开展一次小的HW,发现问题,解决问题。

主要分为外网渗透测试和内网渗透测试两部分,外网和内网测试不一样,外网需要结合客户相关业务来,比如政企客户,你需要使用 WordPress,Drupal 的payload去打,不能说百分之百没有,但是成功的概率相当低,要有针对性去测试,因为时间不允许去这么做。

外网渗透测试

根据实际情况主要关注哪些能直接获取主机权限的漏洞和泄露大量数据的漏洞即可,比如:

弱口令:数据库,SSH,RDP,后台。

命令执行:Solr,Jenkins,Weblogic,Struct2,RMI,JBoss,Tomcat,Spring,ActiveMQ,Zabbix

文件操作:文件上传,文件读取

未授权访问:Redis,Hadoop,Docker,K8C

内网渗透测试

内网渗透测试和外网渗透测试区别很大,因为外网不仅有我们,还有其他合作伙伴,各种 WAF ,防火墙,APT,IDS,IPS,以及办公网的 EDR ,杀毒什么的各种安全设备一顿操作。

资产梳理

对废弃边角的资产梳理是重中之重,在HW开展前,企业要对自身的资产进行梳理,减少被攻击面。

排查服务器补丁情况,业务系统安全性自查。

排查企业自身信息是否泄露,如:csdn,GitHub,码云,百度文库,百度网盘。。。

对于云平台:

因为云平台都是在专有云上,所以写个脚本爬一下资产就可以全部获取到了。

这里需要注意下爬的字段,因为后期涉及到漏洞修复,安全时间等问题的对接。

1
| IP |项目|部门|状态|

指纹梳理

因为主机数量太大了,如果每个资产都单独去测试的话,时间代价太大,所以很有必要进行资产指纹梳理,这样如果发现某个漏洞,直接就可以为后面的批量漏洞利用提供条件了。

资产指纹根据业务情况进行有针对性的收集,主要搜集有:

21,22,23,1090,1099,2049,2181,3000,3306,4848,5000,5900,5901,6379,70

漏洞发现

漏洞发现就是常规的渗透测试,但是内网的渗透区别于外网,内网主要是快速,尽可能的发现更多的漏洞,所以不需要进一步利用,比如发现了Redis未授权访问,就不要去浪费时间反弹 shell ,写密钥之类的。

Example 1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
https://192.168.2.11:8888/
PS:前期资产发现阶段发现8888端口对应的主机有1800多台

1、直接访问提示403
2、Fuzz目录
发现存在taskFile,https://192.168.2.11:8888/taskFile
3、访问https://192.168.2.11:8888/taskFile提示参数不对
4、Fuzz参数
发现参数tId,https://192.168.2.11:8888/taskFile?tId=
5、输入值,访问https://192.168.2.11:8888/taskFile?tId=1
发现提示tId=1不存在
6、删除值访问https://192.168.2.11:8888/taskFile?tId=
发现提示/root/xxx/xxx任务不存在
7、Fuzz漏洞,成功发现本地文件包含https://192.168.2.11:8888/taskFile?
tId=../../../../etc/passwd

Example2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
https://192.168.2.11:8006/
PS:前期资产发现阶段发现8006端口对应的主机有180多台

1、直接访问https://192.168.2.11:8006/env,发现存在SpringBoot Actuator
信息泄漏
/autoconfig
/beans
/env
/configprop
/dump
/health
/info
/mappings
/metrics
/shutdown
/trace
/env
2、访问https://192.168.2.11:8006/trace,发现存在访问
URL:/application.wadl
3、直接访问发现信息泄漏,可直接看到整站的目录结构
/war
/war/path
...
4、一层一层访问目录接口发现/war/WEB-INF/classes目录下存在
redis.properties文件,直接访问提示403
5、根据前期漏洞信息、收集信息关联分析,发现在对应文件下加入content即可进行
文件读取:/war/WEB-INF/classes/redis.properties/content
这样就可以直接导致web目录下任意文件读取了,批量利用发发现8006端口全部主机均
存在此漏洞
6、访问https://192.168.2.11:8006/war/WEB-INF/classes/
redis.properties/content读取到redis密码,为弱口令:Nb123456
7、根据整理的资产指纹信息编写批量利用脚本,发现60多台Redis存在此弱口令

批量利用

这部分就是批量发现问题主机了,大部分事需要写脚本,如果有相关工具就更好。

比如我们在上面发现的漏洞,利用收集的资产指纹信息直接编写脚本批量跑一遍就可以了。

当然其他漏洞也一样,这里主要为测试的几个典型批量为例:

SSH,FTP,MySQL,Zoomkeeper,MongoDB,Hadoop,Redis,Struct2,Weblogic,Docker,OpneSSL,Werkzeug,Jboss,ActiveMQ,Zabbix,K8S,Druid 等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
├── IP.txt
├── Zookeeper
│ ├── vul.txt
│ └── zookeeper_unauth_access.py
├── bash
├── ftp
├── memcache
├── mongodb
├── mssql
├── openssl
├── postgresql
├── redis
├── smb
├── ssh
├── st2
├── weblogic
├── druid
├── zabbix
├── docker
...
└── all_poc.py

这是做过的基线检查的相关脚本,然后根据需求改了一下,也可以用POC-T,Pocsuite 等这些框架,反正能用就行了。

信息清理

梳理出来的资产进行分组,无用资产该关就关。

蜜罐

蜜罐是个好东西,能多则多,能否得分还得靠蜜罐。

防钓鱼

加强对员工的安全意识培训!!!

划重点,很多目标被沦陷,入口点在钓鱼直接控制运维机。。

包括不限于:邮件,QQ,微信,电话等手段进行钓鱼社工;exe就别说了,不要乱点!!!

办公PC机可以安装火绒。

防不甚防

各种防护设备放上去就觉得可以了???

一般能参加HW的都是国内渗透能力较强的大佬,手里有一些0day漏洞也很常见,甚至可能会遭受APT攻击,而大多数企业针对定向 0day,1day,APT攻击毫无还手之力,尽管手里购买了很多设备,也只能被动进行防御。

心态

比赛 && 发现问题

如果本着打个比赛的目的,该撸穿撸穿。。。

如果本着发现问题的心态,那么可以发现如今的HW已经实战化,在实战中发现全面问题,这大概才是HW的真正意义。

应急小组

明确应急小组的职责,定期排查邮件系统,个人PC机是否被控。

面对的问题

防火墙或者网闸买的再多,访问控制策略做的再细致和规范,若它们自身就存在 0day 漏洞或者 1day 漏洞没有被修补,,则可以全部被攻破。

业务系统接入了云防御,即使云端防御再好,一旦攻击者找到了未作信任策略的源站地址,一切防御都全部失效。

内网部署了很好的防御产品和策略,包括防病毒,反垃圾邮件等,但内部员工被鱼叉攻击依然会泄露重要和敏感信息。

业务系统防范严密,却在某个具有出口的测试环境中存在暗资产,或者在 GitHub 上泄露了数据,导致其成为跳板甚至被进行内网漫游或攻击者直接获得了某些重要资料和信息等等。

守住自身系统后,也该拿点分数证明实力。

1.4 加固

运维相关

  1. 测试,开发服务器全部关停

  2. 敏感端口安全组隔离

  3. 使用堡垒机,跳板机运维

  4. 用户,权限隔离

    特别说明:比如:MySQL不使用默认的root用户,使用业务/项目名中间用下划线连接的方式,因为爆破都是默认用户的,这样即使存在弱口令,也将安全性提升一大截。

  5. 认证策略:密钥,双因子认证

  6. 最小化权限原则

  7. 补丁

安全设备

WAF:使用防火墙,防御大多数攻击。

流量,日志,数据库审计:流量,日志,数据库方面一旦出现安全事故,能够快速响应,溯源分析找到问题源头。

态势感知:

安骑士:主机安全,能够第一时间发现异常登录,异常进程,异常网络连接,后门,账户等高危安全问题,并且能够快速定位问题所在。

蜜罐:攻击者进入内网后会进行内网渗透,收集信息,攻击靶标,所以部署蜜罐是发现内网异常的必要手段。主要部署了常用的服务,比如:SSH,MySQL,FTP,MongoDB,Redis,Weblogic,Struct2,Tomcat,Joomla,PostgreSQL,Shellshock,SMB,Memcache,Telnet。

扫描器:由于主机量巨大,手工总会有遗漏,所以在不同网段部署扫描器,每天在0点到1点自动给开始巡检。

环境隔离

防火墙策略:虽然安全组也可以做,但是内网业务层面还需要在防火墙做策略。

堡垒机:使用堡垒机是为了保证运维安全,同时保障重要系统及靶标隔离。堡垒机的登录也是用访问控制的,只允许白名单IP访问,同时堡垒机使用强口令+随机KEY登录

双因子认证:重要系统(控制台,总控系统,运维系统等)有必要的均采用堡垒机登录,无法使用的采用 白名单IP+强口令策略+随机验证码 组合策略。

靶标:靶标是重中之重,一旦被攻破,直接可以收拾收拾回家,脸面不说,monkey还可能没了。靶标是只允许堡垒机IP能够访问;同时在前期要花很大功夫渗透一波,删除不必要的账户,所有账户使用 **十六位随机密码+随机6位KEY **登录。

1.5 得分点

发现

通过日志审计,蜜罐发现攻击日志及路径,快速响应攻击者是否已被攻破。

处置

尽可能在未攻破时,将漏洞修复,或者清除webshell。

发现钓鱼邮件后分析回连IP,由应急小组进行通知并排查分析是否被钓鱼。

溯源

蜜罐,威胁情报设备,此项可以帮助获得N+分,自动化设备会通过攻击者指纹,结合社会关系,溯源到QQ,姓名,手机号等一系列信息。

反制

2. 护网时

2.1 查漏补缺

  1. 虽然前期做了渗透测试,但毕竟也过了一段时间,所以护网期间重新找端口对应的主机,然后寻找漏洞。

  2. 数据库查看端口对应主机也可以发现一些非标准端口,比如MySQL 数据库的3303,3304,3305,3307,Redis的6377,6378等,存在弱口令。

  3. 通过日志检索,流量分析等可以发现一些弱口令问题,利用这些弱口令批量测试主机,可以发现一些MySQL,SSH,Redis弱口令。

  4. 在进行全量日志检索的时候,可以发现一些运维直接将一些敏感字段直接写在命令行中,比如MySQL连接是直接将密码写在命令行中,这样如果一台主机被入侵,那么 history 是必看的。如果该密码是通用的将直接或间接的影响更多的主机,所以统一安排将 history 命令历史清空,再统一改了下相关配置。

  5. 新建主机风险,在查看主机对应业务的时候发现了在护网开始后还是会有新主机的创建,那么这些新建的主机就存在较大的安全风险。

  6. 堡垒机安全问题,堡垒机一般是采用 白名单IP+强密码+令牌的登录方式,但是也存在 0day 漏洞。部分接口也存在直接获取全部用户包括明文密码等全部敏感信息,重置任意用户密码,更换认证方式及客户端限制等。此外,堡垒机登陆后还可以绕过沙箱限制,做一些限制的操作。

2.2 安全告警

主要就是安全设备上的安全告警了,比如蜜罐的端口探测告警,蜜罐入侵事件;态势感知的暴力破解,攻击事件;安骑士的后门,网络连接,进程,账户;WAF 封IP一把梭。

2.3 事件分析

这就是应急响应,事件分析和溯源的范畴了。

当厂商告警存在恶意文件下载,地址是我们OSS的一个地址,OSS是一个静态存储服务器,供业务应用上传媒体文件,静态资源文件等使用,对于这类安全事件处理:

  1. 如果访问的IP是业务服务器

    • 要么AK泄露了直接利用AK进行的文件增删改查;
    • 要么业务上传的地方没有做严格限制,导致任意格式文件上传;
    • 该服务器应该不光存在XSS,还存在SSRF漏洞。
  2. 如果访问的IP不是业务服务器

    由于OSS上传后会生成随机字符串的URL,根本是无法猜到的,那么谁访问了这个URL,那么就是这个IP上传的,这个IP就有问题。

2.4 防火墙策略

对于云平台防护来说,主要找一些和云平台有直接交互的业务,然后就需要在防火墙上做策略。

2.5 WAF等

不管三七二十一,先封为敬;另外一定要及时关注安全预警,直接在WAF上做自定义规则,比如 weblogic 的,直接拦截 _async ,bea_wls_internal 等URL路径即可。

2.6 安全组

发现敏感端口,高危漏洞,先把安全组做了。

2.7 护网神操作

护网期间的神操作:

  • 无人机搞WIFI的
  • 挖下水道进内部的(这个怕是拍电影吧)
  • BadUSB钓鱼的
  • 提前半个月混入甲方的
  • 望远镜看密码的
  • 红队伪装蓝队进行木马钓鱼的
  • 利用深信服0day伪装进入的
  • 首页开局一张图片的
  • 美人计的

3. 问题思考

3.1 蜜罐的局限性

市面上的蜜罐和业务基本是国内都是无关联,无数据的,对于攻击队那些资深大佬来说,个人觉得应该采用的是“深度优先原则”的方式进行攻击,因为这种方式内网动作更小,更不易被察觉。

基于这个局限性,蜜罐很容易就被识破了,比如查看 hosts文件,history,网段,数据,业务等。

3.2 安全产品

堡垒机,VPN,蜜罐,扫描器等这些安全产品,比如说扫描器,基本上告警源是扫描器,都肯定是忽略的,但是如果扫描器被搞了,就很尴尬了。