紅隊(duì) | 外網(wǎng)快速打點(diǎn)方法&技巧總結(jié)
紅隊(duì)攻防-外網(wǎng)快速打點(diǎn)方法&技巧總結(jié)
一、打點(diǎn)的基本認(rèn)識
做過紅隊(duì)的小伙伴,對打點(diǎn)一定不陌生,這是一項(xiàng)基本技能。
所謂打點(diǎn),就是拿到一臺機(jī)器的shell。
打點(diǎn)的一般目的在于利用這臺機(jī)器,做一個(gè)跳板,然后進(jìn)入內(nèi)網(wǎng)。
通常給予充分時(shí)間的情況下,打點(diǎn)不是一件很難的事情,因?yàn)橄到y(tǒng)總會有漏洞,就算系統(tǒng)沒有漏 洞,人也有漏洞,也可以進(jìn)行釣魚,甚至還可以近源,可以花錢買內(nèi)鬼,一切都只是打點(diǎn)的時(shí)間和價(jià)格成本與打到點(diǎn)進(jìn)內(nèi)網(wǎng)的收益的核算問題,本質(zhì)就是一道數(shù)學(xué)題。
但是以在公司干活的普通員工視角出發(fā),一般項(xiàng)目時(shí)間很緊,同時(shí)外部資源少,基本能用的東西就是自己的技術(shù)。
對個(gè)體而言,這種條件下,個(gè)人技術(shù)成為了主導(dǎo)因素,也就是說,一個(gè)紅隊(duì)人員快速打點(diǎn)能力的強(qiáng)悍與否,成為了一個(gè)普通紅隊(duì)和優(yōu)秀紅隊(duì)的差別所在。
當(dāng)然,這里有人會講,那么有的地方可以給很多時(shí)間,或者說自己在實(shí)戰(zhàn)中,在搞別的站的時(shí)候, 不是特定項(xiàng)目中,是有大把時(shí)間來進(jìn)行滲透和攻擊的,可以慢慢搞。
主流的ctf賽事解題時(shí)間也只有1-2天,很多攻防項(xiàng)目也就是一周時(shí)間,src中第一個(gè)挖到洞的才給錢,這是客觀條件,對大家都是平等的。
項(xiàng)目就只有幾天,這就是游戲規(guī)則,是沒有道理可講的,所以還是不要找理由了,因?yàn)橐矝]啥用。
當(dāng)然,從公司的角度出發(fā),因?yàn)轫?xiàng)目時(shí)間緊,而很大程度上,打點(diǎn)又是個(gè)體力活,不涉及太多技術(shù),所以投入信息搜集的人越多,效果一般是更加好的。
總而言之,打點(diǎn)本身就是一種遍歷行為,被攻擊的目標(biāo)就好像一個(gè)被圍墻保護(hù)的城堡,紅隊(duì)要做的事情就是圍著圍墻轉(zhuǎn)來轉(zhuǎn)去,敲敲打打,看看圍墻哪里沒修好,哪里空了一塊,然后趁機(jī)溜進(jìn)去, 這是一個(gè)體力勞動,尤其在面對很多目標(biāo)的時(shí)候,是一項(xiàng)繁重的體力勞動,在下文中會詳細(xì)解釋為什么我反復(fù)強(qiáng)調(diào)這是一項(xiàng)體力勞動。
二、打點(diǎn)的基本方法
基本方法,無非就是信息搜集-->找到脆弱資產(chǎn)-->漏洞利用→getshell,說起來是很簡單的。
這其中最肝的一個(gè)部分,莫過于信息搜集了,純體力活。
當(dāng)然,過程可以用工具相對優(yōu)化,但我依舊認(rèn)為是最無腦的一個(gè)部分,就像大學(xué)生和小學(xué)生(高階和低階技術(shù)人員)一起用計(jì)算器(各種工具 fofa goby oneforall等)來算1w道加減乘除題(大量的資產(chǎn) 域名子域名 c段等)一樣,其實(shí)是區(qū)分不開技術(shù)人員的水平的,很多頭部的公司早就認(rèn)識到了這一點(diǎn),于是在大型攻防演練中,通常是派大量的人來進(jìn)行資產(chǎn)收集,然后篩選出其中的脆弱資產(chǎn)后把資產(chǎn)給后續(xù)的利用人員來進(jìn)內(nèi)網(wǎng)快速拿分。
雖然信息搜集很無腦,但是該說還是得說,這個(gè)事情一般有以下幾個(gè)步驟。
1、當(dāng)項(xiàng)目經(jīng)理告訴了你攻擊目標(biāo)的時(shí)候 →得到公司名→上企查查搜公司名→搜出來一堆公司和子公司
2、拿到這堆公司和子公司的名字→oneforall來跑一遍→然后得到了一堆子域名
3、拿到這堆子域名丟給Eeyes跑一遍→得到對應(yīng)子域名對應(yīng)的ip和c段信息
4、將對應(yīng)ip和c段丟給fofa和fscan→fofa能快速得到c段資產(chǎn)信息,fscan能快速掃一遍,順便幫你打一下常用漏洞
5、如果你的運(yùn)氣足夠好,這個(gè)時(shí)候fscan已經(jīng)有漏洞爆出來了,可以直接去利用了(小概率事件),但是如果你的運(yùn)氣不好,就要看接下來的第6步
6、剛剛fofa得到的資產(chǎn)看一眼,這里可以配合ehole的指紋識別來幫助快速篩選,通過篩選敏感資產(chǎn),例如shiro,fastjson等直接能夠反序列化getshell的資產(chǎn)(小概率事件),如果你的運(yùn)氣好,那么這個(gè)時(shí)候已經(jīng)有漏洞了,可以直接利用了,如果你的運(yùn)氣不好,就要看接下來的第7步
7、通過上面一番篩選,時(shí)間已經(jīng)過去很久了,但是目前卻毫無進(jìn)展,其實(shí)心里有點(diǎn)郁悶,這個(gè)時(shí)候就不建議再搞了,先休息一下,調(diào)整下心態(tài),不然后續(xù)的幾天會大幅度降低工作效率,休息好了感覺又可以了,就看看下面的步驟8繼續(xù)吧
8、其實(shí)經(jīng)過上面的一番篩選,web這塊的基本已經(jīng)過完了,但是依舊還沒有漏洞,說明這個(gè)系統(tǒng)平時(shí)自查搞的比較多,基本的高危漏洞修復(fù)已經(jīng)完成了,如果是大型攻防演練,那就建議換個(gè)目標(biāo)再用上面的方法輪一次,如果是就某家單位做的定向攻防,就繼續(xù)看步驟9吧
9、web的過完了,雖然沒有直接能夠rce的系統(tǒng),但是我們獲得了很多形形色色的登錄后臺\用戶登錄\注冊\管理員登錄等等等等交互類型的資產(chǎn),這些資產(chǎn)雖然看起來沒用,但是我這里要介紹一下攻防演練的三板斧漏洞,運(yùn)氣好的話,這些資產(chǎn)還是能夠派上用場的
三板斧其一 反序列化漏洞:這個(gè)不用多說,我最喜歡的漏洞,只要有了這個(gè)漏洞,基本一臺機(jī)子的shell就拿到了,看到就眼睛放光,但是可遇不可求,遍地都是shiro的時(shí)代已經(jīng)漸漸過去了。
三板斧其二 文件上傳:這個(gè)也是老熟人了,一般我會先看看是不是白名單,是白名單的話,就看看有沒有文件包含之類的漏洞能組合利用下,如果是黑名單,就把文件上傳的姿勢對著上傳點(diǎn)全部來一遍,看看有沒有一個(gè)能中,如果能中,那就有了一個(gè)shell(沒路徑連不上但是確實(shí)是shell),雖然找上傳路徑也是一個(gè)攔路虎,但是至少比傳不上去強(qiáng)。
三板斧其三 sql注入:這個(gè)更加老熟人了,注入之后,低權(quán)限,直接gg,高權(quán)限,試試吧,看能不能上shell。
至于其他漏洞,攻防演練就那么幾天時(shí)間,八成是用不上,建議直接放棄,就把上面三個(gè)玩精(僅僅就攻防項(xiàng)目來說)。
10、對各種登錄系統(tǒng)嘗試弱口令/sql注入攻擊,弱口令能登進(jìn)去后臺就找上傳點(diǎn),sql注入建議xray+burp來測,看到有戲的再上sqlmap。
還有一些信息搜集的方法,比如fofa搜關(guān)鍵字,title="單位名"等,這種方法可以自行穿插靈活使用,有時(shí)候有奇效,有時(shí)候沒啥效果,看個(gè)人造化了。
還有些天選之人,直接一個(gè)弱口令登云桌面(horizon、vdi等)然后拿shell的,這種屬于天賜shell,不在常規(guī)考慮范圍之內(nèi),但也可以嘗試。
11、弱口令如果爆不出賬號密碼,就考慮上網(wǎng)盤\github\sgk\泄露公開庫搜對應(yīng)人員的信息,看看好使不
12、如果還是沒有用,就可以開始看公眾號\app\小程序的信息
13、如果還是沒有用,就要開始用域傳送\備案號\ip反查網(wǎng)站\ssl證書\用google來搜c段
14、如果還是沒有用,就用dirmap\dirsearch來對可疑的網(wǎng)站進(jìn)行目錄爆破,看看好使不
15、如果還是沒有用,還可以釣魚,發(fā)郵件也是一個(gè)體力活
16、如果還是沒有用,拿上設(shè)備跟領(lǐng)導(dǎo)申請近源滲透吧
列了這么多,我就是想說明,雖然信息搜集是一項(xiàng)很重要的工作,是開啟后滲透的基礎(chǔ),但這項(xiàng)工作是體力活真的是不爭的事實(shí),因?yàn)樗麤]有門檻,基本誰都能做,無非就是用工具對著一項(xiàng)項(xiàng)checklist不斷的去嘗試而已。
因此通常意義上的快速打點(diǎn),就是比誰先試完所有的checklist,雖然目前絕大部分工作都是由工 具來完成,整個(gè)項(xiàng)目呈一個(gè)半自動化的流程,但是仍然架不住資產(chǎn)量的龐大,一個(gè)信息收集熟練的人,無非也就是流水線的工人而已,對著巨量的資產(chǎn)不斷的用工具篩選而已。
而一些高端打點(diǎn)技巧玩得好的人,例如電話釣魚成功率很大的人,釣魚郵件的撰寫和釣魚樣本的開發(fā)做的很牛的人,在做這些事情之前,同樣需要信息搜集,而能夠玩高端技巧的人是不愿意來做信息搜集的,因?yàn)樗麄円彩菑男“纂A段過來的,明白信息搜集這項(xiàng)繁重且技術(shù)含量低的工作完全可以找別人來做。
從公司層面上來講,要快速打點(diǎn),就要投入更多的人。從個(gè)人層面上來講,要快速打點(diǎn),要忍受枯燥的打點(diǎn)過程,然后提升自己的工具使用速度,最好自己能夠進(jìn)行二次開發(fā),把一些半自動化的步驟連接起來,優(yōu)化現(xiàn)有的步驟,從而進(jìn)一步提升效率。
三、打點(diǎn)的技術(shù)區(qū)分線
很多時(shí)候,找到了一個(gè)脆弱資產(chǎn),自己沒利用成功,別人利用成功了,這是很普遍的現(xiàn)象。這就來到了打點(diǎn)的區(qū)分線,也就是漏洞利用上。
利用不成功有很多的原因,比如一臺機(jī)器明明出網(wǎng),但是反彈shell怎么都彈不回來。比如一臺機(jī)器能夠反彈shell,但是時(shí)不時(shí)就會斷開。
比如一臺機(jī)器能夠?qū)懭胍粋€(gè)內(nèi)存馬,也能夠連接上,但是一旦下載或者上傳一些較大的文件,就會失敗。
比如一臺機(jī)器,他能夠執(zhí)行命令,也能反彈shell,連接也穩(wěn)定,但是執(zhí)行特定的命令,就會失敗。
這個(gè)時(shí)候,一個(gè)技術(shù)人員就脫離了苦力勞動的階段,進(jìn)入到了區(qū)分技術(shù)的時(shí)候了。區(qū)分一項(xiàng)工作是苦力勞動還是技術(shù)活其實(shí)很簡單,看是不是誰都能做就行了。
有的漏洞利用在實(shí)戰(zhàn)中涉及了一些很原理的東西,對于滲透人員的基本功考察以及聯(lián)想能力的考查是很強(qiáng)的,因此這個(gè)時(shí)候技術(shù)更好的人就可以凸顯優(yōu)勢。
舉一個(gè)稍微極端的例子,那就是ctf,做題是需要理解的,不會就是不會,多久都做不出來,信息搜集只要告訴了基本方法,基本都能做,只是熟練度有差別,信息搜集的效率有差別而已。
就技術(shù)人員個(gè)體而言,單純做一個(gè)熟練工,是很容易被淘汰的,應(yīng)當(dāng)花更多時(shí)間在技術(shù)的深化上, 建立自己的競爭壁壘。
技術(shù)的深化,代碼能力是基礎(chǔ),進(jìn)一步對各個(gè)系統(tǒng)和漏洞原理的理解,是延申,不斷的學(xué)習(xí)和突破,最后技術(shù)就會越來越好,也就會脫離信息搜集的循環(huán),邁入更高的層面。
不過做項(xiàng)目時(shí)候的信息搜集,那是公司項(xiàng)目,是不可避免的,公司花錢請人來就是干這個(gè)的。技術(shù)棧的突破和延申,是自己的事情。
我覺得更優(yōu)的解法就是先集中花一部分時(shí)間練習(xí)信息收集,然后配合自研的小工具把效率提上去, 練到了一定程度,做項(xiàng)目的時(shí)候信息搜集基本都能出東西了,公司這邊能跟客戶交差了,再把時(shí)間花到漏洞的突破和延申上。
文章大體是講思路,具體的技術(shù)細(xì)節(jié),很多論壇上都有,這里不再贅述。
這里更大程度上,只是想把做一件事的動機(jī)以及如何權(quán)衡利弊做好一件事情的方法分享出來,大部分也是個(gè)人理解,難免會有錯誤,不足之處希望大家指正。
來源:https://github.com/biggerduck/RedTeamNotes
轉(zhuǎn)載來源:Z2O安全攻防公眾號
