站在攻擊者的角度做防護

http://www.freebuf.com/news/special/61508.html

0×01、前言

習慣性的講點廢話,筆者是一名菜鳥安全工程師。有幸參與過兩次安全方面的比賽,有些個人的體會,所以就有了這篇文章了。(自知技術還很菜,望各位大牛不喜勿噴,也歡迎對這方面感興趣的同學來和我一起交流探討。)

0×02、攻擊者會怎麼做?

在做這幾次防護的過程中,我一直在思考。我如果是攻擊者,我會怎麼來攻擊?我會怎麼去做?

A、第一步,針對目標做信息收集(擴大目標)

子域信息、Whois信息、Ip信息、端口信息、公司人員的信息、公司郵箱信息等等,一切與目標相關的信息。

B、針對拿到的信息,進行漏洞掃描及挖掘

針對子域,我們可以去嘗試獲取其ip,及對其域名進行漏洞掃描。

針對whois信息,我們可以去嘗試,獲取其註冊郵箱,進一步進行社工拿到密碼進行域名劫持。

針對ip信息,我們可以去獲取ip對應的端口及服務,對相應的服務進行漏洞掃描及挖掘。(對於踢場子的來說,直接進行ddos,直接讓你玩不下去。)

針對公司人員信息及公司郵箱信息,可以進行社工弱口令之類。看能否拿到某位員工的公司郵箱,通過敏感信息進一步深入。(如果碰到某位關鍵人物)

看我寫起來貌似很簡單似的,但實際上確是一個苦逼而漫長的過程。

除了攻擊者的技術水平、人的毅力及對事物的專注程度外,還與運氣有點關係。(看你碰到的是sb管理還是nb管理)

做爲防護者,這個時候你該怎麼做了??對方已經出招,得接住呀!不然這個看場子的任務就將失敗了。

0×03、我是這樣來做防護的

A、Find and fix(這個其實是很關鍵的)

從字面上理解就是”發現並修復“,簡單的來說就是通過一些手段,去發現系統中的安全問題,然後解決問題。(醫生的最高境界不是去治療疾病,而是在疾病沒有來,就拔除了,根源在代碼)

帶領團隊成員對站點進行安全測試,發現安全問題,儘量減少外部安全隱患。(這裏只能說是減少隱患,一個人的力量是有限的,一個團隊的力量也是有限的,並且側重點都不一樣。)

上面也說了,只能是減少安全隱患,當漏了安全問題的時候,該怎麼辦了??這就有了下面的了。

B、Defend and Defer

從字面上來說是“捍衛和推遲”(這是谷歌翻譯的啊!和我沒關係),這裏的防護難道僅僅是弄一些安全設備(防火牆、入侵檢測系統、web應用防火牆)麼???當然這些也是不可少的,但不是全部。合理的事物,放在合理的位置,才能產生好的效果。

縱深防護

這裏主要涉及到,防火牆的HA,入侵檢測系統、白名單的使用,CDN及雲防護。

流量從外面到裏面需要經過如下幾層:

第一層必須經過CDN雲防護的過濾及隱藏真實ip;‍‍
‍‍第二層必須經過防火牆白名單過濾,只允許cdn過來的流量;‍‍
‍‍第三層必須經過IDS或者IPS的過濾或者記錄風險行爲。

也就是說就算我服務器存在一些安全風險,如果你沒能繞過這重重過濾也是沒用的。

MASTER防火牆

BACKUP防火牆

這裏防火牆的HA,主要是爲了防止單點故障或者說是流量攻擊時而設。關於這個防火牆的HA,這裏有文章介紹:

http://drops.wooyun.org/%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8/4010

難道安全防護做到這裏就完成了?如果有人繞過了你的種種過濾(或者說你的某一層過濾失效了),你還能高枕無憂麼?不能想當然,你做不到,並不代表別人也做不到。一切皆有可能,做好最壞的打算。

當黑客繞過了重重過濾後,對服務器進行攻擊的時候,你是否能在第一時間發現?

當黑客找到服務器漏洞,繞過了各種防護,拿到了shell,你是否能在第一時間瞭解到,並能分析出漏洞所在地?

這個時候就有了第四層的監控(應該算是比較失敗的),基於主機的ids(可以理解成一個文件監控系統,自然也可以成爲一個日誌分析系統),從理論上講,我們可以使用這個東西,對網站目錄進行監控及日誌文件進行監控。一但網站文件發生變化,就立刻報警。但通過實戰,通過經驗告訴我,不要理想化,任何東西,都不可能橫空出世,都是有他的機制的。

這裏第四層,使用的是ossec這個軟件,它對文件的監控,上面也說了比較失敗的。比較失敗的原因是,之前只是知道怎麼去使用它,並不明白它是採用的什麼機制,導致差點出大大問題。

第五層,做最壞的打算,當攻擊者上傳拿到shell後,繞過了前面三層的防護,而在第四層失效的情況下,攻擊者不就可以在你的網絡裏面漫遊了麼?這種情況是不能容忍的,這個時候第五層防護就出現了。用專業詞彙來說叫“風險控制”,風險控制的目的是,減少風險事件發生時造成的損失。打好各個補丁(防止提權),降低服務運行權限,取消上傳目錄的執行權限。就算攻擊者通過某0day拿到服務器的shell,他也不能幹啥,因爲權限很低嘛!

你現在能拿到子域信息、Whois信息、公司人員的信息、公司郵箱信息。對於公司人員的信息、公司郵箱信息這裏暫時不考慮,這個只能通過提高員工的安全意識來進行。這裏還存在子域信息,和whois信息。關於這個域名信息上面B主要就是針對這個的,這裏就不提了。

往往被大家忽略的是whois信息,通過whois信息我們可以看到有可能看到註冊者的郵箱(這裏是可以隱藏的)就可以對郵箱(一般是個人郵箱,纔好弄)進行社工(現在滿大街的庫),如果僥倖能拿下,就happy了。還能看到域名使用的ns服務器,即而得知使用的那家的cdn,如果說在註冊域名的地方不行,那就去cdn唄,效果差不多。

Cdn就一定靠得住麼?就算它靠的住,難保他自己會不存在問題。一不小心,發現了一個隱患,只能說是個可能性吧!你想想如果,cdn上面的郵箱和密碼被泄漏出去了,別人給你改改,你的站點就死活打不開了,前面的一切就白費了。

看到沒,qq郵箱,是不是可以對這個郵箱進行社工啊?手氣好說不定就搞定了這個密碼。

這個是咱們的,已經改了個暱稱了,默認是顯示郵箱的。

C、Secure at the Source

個人理解這句話的意思應該是“源代碼裏面的安全”,這個就要從代碼的書寫者身上去找答案了。也就是上面所提高到高明的醫生,不會讓疾病產生,在源頭就給幹掉了。很多大公司都有他們的一套“安全開發流程”,應該就是在這個層面的。

在這裏做好了,可以減少很多問題,及bug,但往往得不到很好的解決。從代碼的的書寫者,角度來說,肯定是怎麼方便怎麼來。壓根不會去考慮安全問題,或許也不瞭解。再者,書寫者的水平也參差不齊,就造就了不安全的代碼。

0×04、遲早都是要還的

曾經的不諳世事,曾經的無知無畏。現在終於要還了,以前經常去挖掘別人系統的漏洞,沒日沒夜的去掃別人的系統。甚至弄掛別人的服務器,都沒想過有一天,我也會被晾在外面,被人虐。

由於業務需要的原因,某重要子域需要關閉CDN上的雲防護。即第一層的防護,這其實是很危險的,但業務的需要也是沒辦法的,首先要保障的是可用,如果都不可用了,還談什麼安全了?第二層防護其實就是爲了,最大限度的隱藏真實ip,防止ddos攻擊。雲防護已經沒了,那麼第三層就顯的尤爲重要了。這裏就主要介紹下,在這個第三層發現的一些攻擊行爲吧!這裏主要介紹下,幾個典型的案例。

案例一:某攻擊者使用sqlmap對站點進行注入攻擊

Sqlmap(sql注入神器)

打開數據包,發現其實就是這個user-agent暴露了自己。因爲使用了cdn,攻擊者的真實ip放在x-forwarded-for,通過這個找到了攻擊者所在的單位。

案例二:某攻擊者使用某神器對網站進行注入攻擊

查看Payload

看來是一個高明的攻擊者,對工具掌握的很好了,基本沒暴露出來使用的什麼工具,但從請求的時間請求的頻率來看,可以判斷肯定是工具提交的。

案例三:某大俠在測試上傳漏洞


通過查看x-forwarded-for,大概判斷應該是兩個人(不能準確的說,因爲別人還有可能使用vpn)。我們來看下它們的Payload吧!

Payload 1.1:

這不是一句話木馬麼?

Payload 1.1:

小夥子不死心呀!

這裏也讓我緊張了一把,雖然他們上傳的是php,沒關係,我們這邊不是php的。所以解析不了,但還是有點怕怕的,立馬登錄到服務上,看了會這個上傳文件的目錄,才放下心來。

Payload 2:

很好奇,這個哥們這個1.php裏面寫了什麼玩意。通過http頭部裏面的X-Forwarder-For記錄的ip,查到兩位攻擊者分別處於長沙和邵陽的。

案例四:意外的收穫

一個意外的收穫,發現老外們都在玩這個(friendly-scanner)。

查看Payload

 

friendly-scanner到底是一個什麼掃描了??百度一下

高大上啊!有時間研究下這款工具。這個VoIP攻擊,國內確實很少有人去研究都沒怎麼聽說過。

案例五:這個是bash漏洞麼?

查看Payload

頓時就明白是怎麼回事了,但還是有點怕怕的,立馬上服務器把bash漏洞的補丁打了。

(Yum update bash)

案例六:一些七七八八的信息

這個其實也挺恐怖的,看到了”shell”這個字。

通過查看Payload,發現其實就是上傳了一個html文件,沒啥。

  

這應該是掃描器弄的,我們都沒用jboss。

0×05、一顆敬畏之心

滲透測試,個人認爲就是一種可能性的測試。沒有什麼不可能的,無論是做爲防守者還是攻擊者,都不能是想當然,要以理性的頭腦去測試或者防護。如果要歸根到底的話,問題的源頭,都是人的問題。

個人認爲做安全防護,還有一個原則就是“信任”。需要做的是,在不可信地方設防,到底那裏不可信,外面不可信,裏面就可信了麼?同樣你也不能完全信任,你需要明確誰可以訪問誰,做好訪問控制。

最後要感謝下烏雲白帽“霍大然”及“北京-lion_00”兩位大俠的指點。

編者注:筆者是南方人,因此“呢”“了”不分,改不下去了,大家明白就好~~~

參考資料

《白帽子講web安全》

http://drops.wooyun.org/tips/2821

http://drops.wooyun.org/%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8/4010

http://drops.wooyun.org/%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8/3874


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章