紅藍對抗場景下的二三事
背景
未知攻焉知防,警察想要抓小偷,就該先摸透小偷的想法,才能更快捷的抓到小偷畢竟小偷抓小偷更容易。網絡安全的攻與防,好比“矛”與“盾”,要想不被“矛”輕易刺穿,不僅需要了解“矛”的作戰方式,同時也要不斷強化“盾”的防御能力。謹以此文討論一下在紅藍對抗場景下幾個關鍵的技術點的二三事。
暴露面
大多數定向攻擊場景里攻擊者都會針對受害者目標進行大量的信息收集,比較常用的方式比如通過網絡空間搜索引擎與各個互聯網技術論壇、開源站點等獲取到盡可能多的目標信息、包括不局限于一些開源的應用、服務器開發的特殊端口、常用的用戶名格式、密碼、網絡拓撲、內網網段、建站框架、數據庫類型、中間件版本、甚至是一些泄漏的VPN帳號等。比如很多內部非技術類員工將一些VPN技術指南上傳了百度網盤還共享給了其他人,里面包含了帳號、VPN接入IP或者默認密碼等信息,被惡意攻擊者獲取到該信息可能會直接導致內網的被攻破。又或者是一個業務系統的開發人員,將自己的開源項目直接上傳到了github后并沒有修改里面數據庫連接的配置文件,抑或是該項目存在一些命令執行、任意文件下載等問題被攻擊者發現,也會造成極大的風險。
針對防守方本身而已,首先需要做到就是對當前的網絡環境的安全狀態有一個比較合理的評估,結合對攻防的理解識別出網絡當中可能存在的風險,整理好當前的一些暴露面的信息。就算千叮嚀萬囑咐的要提高員工的信息安全意識,當然這個也是老生常淡要想完全避免這些情況的發生也幾乎不可能,想要徹底解決此類問題更是難上加難。更多的努力應該是在梳理好內網的資產后,結合當前的業務邏輯與網絡拓撲分析出可能存在的入口點,識別風險與威脅針對性的做一些防護措施,加強訪問控制、強制使用強密碼、周期性的更換密碼等方式都是一些合理且實用的方式。
入口點邊界
攻擊者的對象是一個點,防御的卻是一個面。對于大多數攻擊者來說滲透一個跨國大型的國有企業內網要比攻破一個小而精的金融互聯網要容易一些,比較組織結構復雜、互聯網資產更多容易出現更多的薄弱環節;主要的業務系統官方網站應用、CRM系統、業務系統往往有具備良好的安全防護,不同安全廠家的安全設備估計也是各種安排,常規攻擊手法容易被攔截在大門之外。對于大型的集團類的公司下屬的子公司、下屬單位、冷門的業務系統系統、測試系統往往難度會降低不少,捏柿子還是軟的好。但同時風險也有 有時候不容易連接到母公司核心內網可能就做了一些無用功。所以至于入口點的邊界往往就不僅僅局限于當前網絡的邊界,這個網到底有多大也就只有業務人員自己知道了。
還有一些常見的入口點主要是一些網絡設備的風險,比如VPN、堡壘機、邊界路由器防火墻一類的,前幾年就有過國外某安全廠商的防火墻存在漏洞的問題。漏洞當然還是少數,默認用戶、默認密碼之類的反而更加常見一些,特別是針對特定場景下面結合工號、用戶名、密碼、TOP500常用姓名的爆破尤為危險。
Web系統的弱口令也是常見的入口點之一,對公網的web系統如果存在一些知名的RCE的話估計早就被各種挖礦、黑鏈、勒索給盯上了,但是特別一些非常規的弱密碼的風險類型就很高了比如P@ssw0rd、姓名+數字、以及結合特定公司場景、業務場景生成的弱口令的情況。通過登錄用戶上傳webshell 獲取讀取敏感信息、注冊用戶信息甚至獲取到系統shell的情況,可能會造成更大的風險。
數據庫資產
數據庫資產也是經常收到攻擊者關注的方向之一,拿到了數據庫的權限后除了獲取到里面的數據信息之外也可以依次為跳板進行下一步的攻擊。數據庫表里面往往存儲有相關的用戶名、帳號等敏感信息而往往內網里面很多資產在口令認可都能與之有關聯性。實在沒有思路,也能針對部分用戶實施針對性釣魚、社工也是一種突破手法。目前依然還是有不少企業將自己的數據庫映射到公網,還不設置相應的安全策略或者存在admin/123456 root/root一類的弱口令問題,基本上就是送分題一樣的存在了。攻擊者拿到一個高權限的mssql用戶開啟xp_cmdshell之后,一個突破口帶來的就是內網漫游擴大戰果了;大多數用戶往往也不會更改數據的端口都是默認的1521、3306、1433等,攻擊者拿出掃描器就掃描這些數據庫端口正中下懷,改成一個特定的5位數的端口,常規業務也不會訪問就算掃描也掃描全全端口也才能發現,無形之下增加了發現難度也同時縮短了發現攻擊者的時間,一舉二得豈不快哉。
本質上來說數據庫資產應該是重點關注的對象之一,除了加強密碼測試與安全測試之外,一個適合業務的訪問限制往往就是最后一道防線。在攻擊者通過其他方式獲取到認證口令之下,依然由于源IP的原因無法登錄認證查看到相應的數據,也不失為一種棄軍保帥的做法。
橫向移動
在攻擊者獲取到內網的跳板機之后,下一步自然就是百尺竿頭更進一步。盡可能的擴大戰果。內網資產收集往往具備有很多的網絡行為,常規的存活性掃描、端口掃描、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服務器甚至多個服務器主機,如果能獲取到一些堡壘機、虛擬化管理平臺的主機就更方便。
內網穿透
大多數服務器都在內網服務器或者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等都是不錯的選擇。
釣魚郵件
釣魚,釣大魚,釣鯨。與其把重心放在突破層層防御體系上面,直接對人發起攻擊也是事半功倍的方法。現在主流的釣魚已經升級到釣鯨魚,針對特定對象構建特定的郵件主題、 附件與文檔正文,針對的對象比如一些管理人員、職能類的HR等場景,這些人的郵件地址往往也可以從招聘網站、社交平臺獲得,結合特定場景與受害者的心理狀態構建一個特殊的誘餌文件,軟件捆綁、Office CVE-2017-11882 CVE-2017-0199、Winrar CVE-2018-20250、office的混淆宏、偽造的PE文件、HTA、CHM、Link文件等多種方式,控制其電腦后植入遠控木馬,作為跳板進行內網。
攻防對抗
攻防對抗的場景下和傳統的僵尸網絡、木馬、蠕蟲病毒類的檢測方法有相當大的差異性,主要表現在傳統的惡意程序更多的趨向于自動化攻擊,其攻擊特點表現在比較固定利用的漏洞、EXP都相差無幾且特征比較明顯,而且特征比較明顯沒有刻意的隱藏自己的行為,通常通過威脅情報、攻擊行為特征都能較好的識別,其風險等級都很高。攻防對抗的場景下的攻擊手法,較多的利用了一些人的弱點一些弱口令、異常帳號登錄、非法網絡接入、敏感信息泄漏更多的是在一些行為上的特點,所以在識別惡意行為的時候更多的需要關注一些可疑的報警類型。基于單個報警的模式在場景下并不是很實用而往往防御人員在識別低風險的報警的時候并不一定能發現其中的一些線索,這個時候就比較考驗防御人員在攻防場景下的造詣了。
在這種場景下構建一定的攻擊場景,自動化的將一些低可疑的線索進行聚合進行梳理提升相關的報警級別來引起重視就是一種不錯的方案。之前很多人討論過關于AI算法模型的問題,本質上所謂AI也是將人的經驗賦能給代碼了而已,關鍵因素還是訓練數據從那里獲取之后的訓練以及特征工程的相關細節,按照目前大多數的場景下面關鍵問題都還是在于特征工程和訓練數據的選取層面上,還沒有到達拼算法特性的優劣上面。
由于對抗場景下的很多行為也不是真正意義上的悄無聲息,由于大多數攻擊者對受害者網絡里的業務邏輯并不是很熟悉,所以常常會出現很大層面的異常,這就埋下了被發現的隱患。被控制的跳板機、泄漏的VPN帳號、內網橫向的目標方向等等都會呈現與平時業務邏輯不一樣的地方,通過對業務邏輯的一個基線學習在真實的攻防場景下某敏感資產出現了一些非正常行為就是有很大的可能性被控制了,偏離基線的水平越大可疑性就越高。
總結
于筆者鄙見,多線索的關聯分析+基于行為的異常行為在識別高級攻擊的場景下對比常規的單事件的報警與攻擊行為匹配上會有更多的識別效果。安全對抗的表面是攻擊技術與檢測防御的技術演進,本質是人與人之間的投入、技術的博弈。之前有關注到部分文章提及到關于冰蝎、螞劍基于流量層面的檢測方案,仔細拜讀后覺得局限性還是比較大在針對部分初級白帽子不修改配置的前提下興許有檢出,若是針對性的做一些更改和特殊的字符拼接難度也不大,估計就會識別成正常流量了吧。
安全對抗的道路任重道遠,花里胡哨的姿勢越來越多;文章最后說二句,做防御方真的壓力好大一把辛酸淚,不但天天要膜拜各位滲透大佬的奇思妙想,抑或又是出了什么新漏洞新病毒,還得分析檢測識別思路與解決方案 感覺最近頭發也是越來越少了好惶恐,最好再說一句有意換工作的技術大佬,可私信本人。