本帖最后由 pukr 于 2020-4-22 00:11 编辑
0x00 背景
未知攻焉知防,警察想要抓小偷,就该先摸透小偷的想法,才能更快捷的抓到小偷毕竟小偷抓小偷更容易。网络安全的攻与防,好比“矛”与“盾”,要想不被“矛”轻易刺穿,不仅需要了解“矛”的作战方式,同时也要不断强化“盾”的防御能力。谨以此文讨论一下在红蓝对抗场景下几个关键的技术点的二三事
0x01暴露面
大多数定向攻击场景里攻击者都会针对受害者目标进行大量的信息收集,比较常用的方式比如通过网络空间搜索引擎与各个互联网技术论坛、开源站点等获取到尽可能多的目标信息、包括不局限于一些开源的应用、服务器开发的特殊端口、常用的用户名格式、密码、网络拓扑、内网网段、建站框架、数据库类型、中间件版本、甚至是一些泄漏的VPN帐号等。比如很多内部非技术类员工将一些VPN技术指南上传了百度网盘还共享给了其他人,里面包含了帐号、VPN接入IP或者默认密码等信息,被恶意攻击者获取到该信息可能会直接导致内网的被攻破。又或者是一个业务系统的开发人员,将自己的开源项目直接上传到了github后并没有修改里面数据库连接的配置文件,抑或是该项目存在一些命令执行、任意文件下载等问题被攻击者发现,也会造成极大的风险。
针对防守方本身而已,首先需要做到就是对当前的网络环境的安全状态有一个比较合理的评估,结合对攻防的理解识别出网络当中可能存在的风险,整理好当前的一些暴露面的信息。就算千叮咛万嘱咐的要提高员工的信息安全意识,当然这个也是老生常淡要想完全避免这些情况的发生也几乎不可能,想要彻底解决此类问题更是难上加难。更多的努力应该是在梳理好内网的资产后,结合当前的业务逻辑与网络拓扑分析出可能存在的入口点,识别风险与威胁针对性的做一些防护措施,加强访问控制、强制使用强密码、周期性的更换密码等方式都是一些合理且实用的方式。
0x02入口点边界
攻击者的对象是一个点,防御的却是一个面。对于大多数攻击者来说渗透一个跨国大型的国有企业内网要比攻破一个小而精的金融互联网要容易一些,比较组织结构复杂、互联网资产更多容易出现更多的薄弱环节;主要的业务系统官方网站应用、CRM系统、业务系统往往有具备良好的安全防护,不同安全厂家的安全设备估计也是各种安排,常规攻击手法容易被拦截在大门之外。对于大型的集团类的公司下属的子公司、下属单位、冷门的业务系统系统、测试系统往往难度会降低不少,捏柿子还是软的好。但同时风险也有 有时候不容易连接到母公司核心内网可能就做了一些无用功。所以至于入口点的边界往往就不仅仅局限于当前网络的边界,这个网到底有多大也就只有业务人员自己知道了。
还有一些常见的入口点主要是一些网络设备的风险,比如VPN、堡垒机、边界路由器防火墙一类的,前几年就有过国外某安全厂商的防火墙存在漏洞的问题。漏洞当然还是少数,默认用户、默认密码之类的反而更加常见一些,特别是针对特定场景下面结合工号、用户名、密码、TOP500常用姓名的爆破尤为危险。
Web系统的弱口令也是常见的入口点之一,对公网的web系统如果存在一些知名的RCE的话估计早就被各种挖矿、黑链、勒索给盯上了,但是特别一些非常规的弱密码的风险类型就很高了比如P@ssw0rd、姓名+数字、以及结合特定公司场景、业务场景生成的弱口令的情况。通过登录用户上传webshell 获取读取敏感信息、注册用户信息甚至获取到系统shell的情况,可能会造成更大的风险。
0x03数据库资产
数据库资产也是经常收到攻击者关注的方向之一,拿到了数据库的权限后除了获取到里面的数据信息之外也可以依次为跳板进行下一步的攻击。数据库表里面往往存储有相关的用户名、帐号等敏感信息而往往内网里面很多资产在口令认可都能与之有关联性。实在没有思路,也能针对部分用户实施针对性钓鱼、社工也是一种突破手法。目前依然还是有不少企业将自己的数据库映射到公网,还不设置相应的安全策略或者存在admin/123456 root/root一类的弱口令问题,基本上就是送分题一样的存在了。攻击者拿到一个高权限的mssql用户开启xp_cmdshell之后,一个突破口带来的就是内网漫游扩大战果了;大多数用户往往也不会更改数据的端口都是默认的1521、3306、1433等,攻击者拿出扫描器就扫描这些数据库端口正中下怀,改成一个特定的5位数的端口,常规业务也不会访问就算扫描也扫描全全端口也才能发现,无形之下增加了发现难度也同时缩短了发现攻击者的时间,一举二得岂不快哉。
本质上来说数据库资产应该是重点关注的对象之一,除了加强密码测试与安全测试之外,一个适合业务的访问限制往往就是最后一道防线。在攻击者通过其他方式获取到认证口令之下,依然由于源IP的原因无法登录认证查看到相应的数据,也不失为一种弃军保帅的做法。
0x04 横向移动
在攻击者获取到内网的跳板机之后,下一步自然就是百尺竿头更进一步。尽可能的扩大战果。内网资产收集往往具备有很多的网络行为,常规的存活性扫描、端口扫描、SYN扫描、Banner扫描、甚至是C段 B段的扫描流量层面动静还是有点大的。在跳板机上收集信息动静会小不少本地查看一下ARP缓存、ifconfig看一下网关的地址等方式,虽然信息有限但是基本上不会被流量层面的安全设备发现。当然了扫描是有必要扫描的但是方法很多,动静小点的方法也很多,这里就不展开讨论。 有时候为了快速获取权限拿下更多的服务器,动静大点也无所谓了。内网里常见的漏洞利用比如MS17-010、MS08-067、RDP爆破、SMB暴力破解、数据库爆破、S2漏洞利用、weblogic RCE系列等方式都是不错的选择,由于甲方对内网安全重视度不够往往内网服务器、主机很多安全补丁都是没有打的,内部的web系统也疏于修复高危漏洞、弱口令问题、一个帐号多个登录的问题的情况是屡见不鲜,内网往往还有一些特殊的应用比如SVN、gitlab、zabbix、redis、企业wiki、OA系统等风险业务都可能是重大突破口。
通过mimikatz获取到跳板机的用户名密码之后,对多个主机进行登录抓住几个漏网之鱼也不是什么难事,说不定windows的账户还能登录linux服务器甚至多个服务器主机,如果能获取到一些堡垒机、虚拟化管理平台的主机就更方便。
0x05内网穿透
大多数服务器都在内网服务器或者DMZ区域,出口地址经过NAT转换后为公网提供服务,为了深一步的渗透内网和跨转网段探测 同时增加一定的隐蔽性 一个合适的内网传统就很有必要了。通过自建CS、MSF平台让受控主机反弹shell连接回来本本质上动静还是有点大,即使使用一定的隧道或者编码混淆、特殊协议传递的方法,因为服务器的外联本身也是一种比较异常的行为容易被内网流量层的安全设备发现,而且Client端容易被主机层面的杀软给识别,由于Client端里面包含CC端通信的IP、域名、端口等信息容易暴露目标甚至被溯源,同时CS、MSF等知名工具的具备一定的流量特征也会被识别。
使用一些常见的隧道提供商或者使用一些流量转发的平台就比较重要了,例如当前常用的ngrok、frp、nps等此类工具特征流量往往都是基于TCP协议之上的,具备一定的隐蔽性同时杀毒软件也不会将其定义为恶意软件。系统进程的利用也是较为不错的方法常见的如powershell、SSH流量转发等方法,上次更新的kali2的时候偶然间发现kali2都集成了nishang、Powersploit等框架。
无文件攻击的方法的确更隐蔽一些。倘若上传一个lcx一类的工具本地的杀软估计会立马报警,躺在了病毒隔离区里面。Linux场景下,SSH自带了此功能当然就更加隐蔽了基本上算是秋水了无痕,还有一些常见的隧道通信如HTTP、DNS、ICMP等都是不错的选择。
0x06钓鱼邮件
钓鱼,钓大鱼,钓鲸。与其把重心放在突破层层防御体系上面,直接对人发起攻击也是事半功倍的方法。现在主流的钓鱼已经升级到钓鲸鱼,针对特定对象构建特定的邮件主题、 附件与文档正文,针对的对象比如一些管理人员、职能类的HR等场景,这些人的邮件地址往往也可以从招聘网站、社交平台获得,结合特定场景与受害者的心理状态构建一个特殊的诱饵文件,软件捆绑、Office CVE-2017-11882 CVE-2017-0199、Winrar CVE-2018-20250、office的混淆宏、伪造的PE文件、HTA、CHM、Link文件等多种方式,控制其电脑后植入远控木马,作为跳板进行内网。
0x07攻防对抗
攻防对抗的场景下和传统的僵尸网络、木马、蠕虫病毒类的检测方法有相当大的差异性,主要表现在传统的恶意程序更多的趋向于自动化攻击,其攻击特点表现在比较固定利用的漏洞、EXP都相差无几且特征比较明显,而且特征比较明显没有刻意的隐藏自己的行为,通常通过威胁情报、攻击行为特征都能较好的识别,其风险等级都很高。攻防对抗的场景下的攻击手法,较多的利用了一些人的弱点一些弱口令、异常帐号登录、非法网络接入、敏感信息泄漏更多的是在一些行为上的特点,所以在识别恶意行为的时候更多的需要关注一些可疑的报警类型。基于单个报警的模式在场景下并不是很实用而往往防御人员在识别低风险的报警的时候并不一定能发现其中的一些线索,这个时候就比较考验防御人员在攻防场景下的造诣了。
在这种场景下构建一定的攻击场景,自动化的将一些低可疑的线索进行聚合进行梳理提升相关的报警级别来引起重视就是一种不错的方案。之前很多人讨论过关于AI算法模型的问题,本质上所谓AI也是将人的经验赋能给代码了而已,关键因素还是训练数据从那里获取之后的训练以及特征工程的相关细节,按照目前大多数的场景下面关键问题都还是在于特征工程和训练数据的选取层面上,还没有到达拼算法特性的优劣上面。
由于对抗场景下的很多行为也不是真正意义上的悄无声息,由于大多数攻击者对受害者网络里的业务逻辑并不是很熟悉,所以常常会出现很大层面的异常,这就埋下了被发现的隐患。被控制的跳板机、泄漏的VPN帐号、内网横向的目标方向等等都会呈现与平时业务逻辑不一样的地方,通过对业务逻辑的一个基线学习在真实的攻防场景下某敏感资产出现了一些非正常行为就是有很大的可能性被控制了,偏离基线的水平越大可疑性就越高。
0x08 总结
于笔者鄙见,多线索的关联分析+基于行为的异常行为在识别高级攻击的场景下对比常规的单事件的报警与攻击行为匹配上会有更多的识别效果。安全对抗的表面是攻击技术与检测防御的技术演进,本质是人与人之间的投入、技术的博弈。之前有关注到部分文章提及到关于冰蝎、蚂剑基于流量层面的检测方案,仔细拜读后觉得局限性还是比较大在针对部分初级白帽子不修改配置的前提下兴许有检出,若是针对性的做一些更改和特殊的字符拼接难度也不大,估计就会识别成正常流量了吧。 安全对抗的道路任重道远,花里胡哨的姿势越来越多;文章最后说二句,做防御方真的压力好大一把辛酸泪,不但天天要膜拜各位渗透大佬的奇思妙想,抑或又是出了什么新漏洞新病毒,还得分析检测识别思路与解决方案 感觉最近头发也是越来越少了好惶恐,最好再说一句有意换工作的技术大佬,可私信本人。
|