服務器防滲透--信息收集

服務器防滲透(1)--信息收集

你的服務器安全麼?

1   概述

在本人所處的公司的服務器正式遭到黑客攻擊之前,一直都以爲 黑客 是個遙不可及的詞,直到真正成爲了受害者時,才猛然意識到安全的重要性。有一些基本經驗和心得總結出來,和同行分享一下吧。

2   暴破手段

最粗暴的黑客行爲,就是利用計算機對比人的逆天的計算能力,來暴力破解。一般的服務器都是不提供交互界面的,而且爲了能夠方便和其它程序進行自動化連接和集成,也是不會設置圖靈測試驗證碼的,所以基於這種條件,服務器天然具備暴破的條件。

主要的暴破方法如下:

3   資產收集

所謂的資產收集,在服務器滲透領域,就是獲取服務器的域名和IP等等相關信息,這是獲取滲透目標的最基本要求。資產收集的手段有很多,主要有社會工程學手段,計算機信息檢索手段及混合手段。

  • 社會工程學手段

    從內部人着手,採用誘導或者收買的方式來獲取信息

  • 計算機信息檢索手段
    • 從社會上公開的信息進行檢索分析,例如:工商信息,域名信息
  • 混合手段
    • 研究企業內部人員,觀察其社交網絡行爲,從郵箱,QQ號等等獲得信息檢索的線索,逐步弄清資產

這是一個類似於“戰場”的場合,其目的只有一個:獲取服務器資產相關信息。

這一領域到底有多嚴酷,可以從以前一些“某國家研究所向國外間諜出賣重要資料最終被判死刑”的案例可以看出。當然,大部分的普通人還是沒法到那個程度的,所以就從普通的技術層次來進行實驗。

比如:要獲取指定企業的服務器信息。

一級線索:

  • 企業名稱
  • 企業網址

任何人都可以通過企業名稱,可以在 啓信寶 上獲得此企業的詳細工商信息。

例如:阿里巴巴


對於小公司,特別是創業小公司來說,公司的域名一般都是以創始人或者聯合創始人的名義來註冊的,當然我們一般不會這個名字來查詢公司域名,畢竟同名人太多,這個用於域名查詢之後的驗證。

一般公司肯定會有官網,有官網就有域名,通過任意的域名反查平臺:

http://whois.chinaz.com/

查到相關信息如下:

  • 域名持有人姓名(可以和之前查到的企業相關人員進行驗證)
  • 註冊時間和到期時間
  • 電話/地址/郵箱

其實通過 電話/地址/郵箱 還可以繼續進行深挖,挖到更多的線索,但是這和本文主題相關不大,略去不表。

在支持 whois反查 的平臺,可以查出更多相關的域名,然後進行篩選分析得到和此企業相關的域名。

然後通過PING或者traceroute等等網絡工具,可以查到服務器的具體IP地址及網絡節點圖。

當然,如果是自己內部人員做滲透測試,就沒有這麼麻煩了,直接找運維人員要一份 服務器資產清單 即可。

4   端口掃描

在獲得 服務器資產清單 之後,就可以對服務器上運行的服務進行掃描。基本上所有的服務器都是以 IP+端口 作爲服務地址來對外提供服務的。

通過常見的 nmap 等等工具可以掃描到服務器上暴露的端口,下面對內網的某個安全測試服務器進行掃描:

顯然,服務器上面運行了哪些服務一目瞭然。

  • ftp
  • ssh
  • dnsmasq
  • web-http
  • mongodb服務器
  • mysql
  • redis
  • 其它

有了這些信息之後,可做的事情又多了:

  • ssh密碼暴破

    估計很多小白用戶的root賬號密碼都會中招,如果這一層被攻破,服務器就成了 肉機,所以操作及文件系統權限都被獲取

  • ftp密碼暴破
    • 匿名登錄賬號會中招
    • 簡單密碼賬號會中招

    可以查看ftp上的文件,甚至有些沒有設置好權限的,還能通過此端口獲取整個服務器根目錄權限

  • web密碼暴破

    如果獲取成功,再有web權限的疏忽,則可能通過web後臺上傳可執行文件,執行shell腳本,間接獲取服務器所有權限

  • 數據庫密碼暴破

    暴破破功後,影響也是相當大的

一般情況下:

  • 沒經驗的開發人員沒有系統的安全意識,服務器漏洞百出
  • 公司用於測試的服務器,沒有足夠的安全意識和投入,往往成爲了突破口

基於如上獲取的信息,就可以對很多服務器形成很好的滲透了。因爲這個世界上有太多的人還沒有足夠的安全意識,就已經敢把自己的服務放在公網上了。

5   預防措施

服務器 端口掃描 這一行爲,最好的方法,就是儘量僞裝好自己的服務器上的服務。主要手段有:

  • 禁用ICMP,防止別人通過網絡工具獲取網絡拓撲圖
  • 局域網的多臺服務器之間禁止公網IP訪問
  • 沒有必要對外公開的信息就不要給外界權限訪問
  • 對外儘量使用代向代理,不要暴露過多端口信息

當然,肯定會有很多開發小白會覺得這樣很不方便,特別是在很多創業公司裏面,早期如果在安全上下太多功夫,而把本來用於產品開發的保貴人力放在這邊,有點不划算,這是普遍的早期企業的矛盾之處。

所以會存在這樣的訴求:

  • 既要開發服務器隱藏端口
  • 也需要開發人員在自己機器上訪問到相應的數據庫,方便查看數據開發調試

本文提出了一種中間代理模式,來實現以上訴求。

5.1   生產配置圖

一般的web應用程序都有數據庫服務器和web應用服務器,還有一臺反向代理服務器(nginx),如下圖:

其中:

  • Web服務器通過內網IP及端口連接數據庫服務器
  • Nginx服務器通過內網IP及端口連接Web服務器
  • 只有80端口的Web服務暴露給客戶訪問

整體來說:不需要對外的服務器都對公網形成了很好的隔離。

5.2   開發配置圖

對於開發調試階段需要連接公網服務器的數據庫時,可以使用如下模式:

5.3   方法總結

上面的 端口映射 方法,其思想都是基於 代理映射 。即都會使用一箇中間人做傳話,內部的系統對外都是黑盒狀態,然後安全人員集中精力守住門口即可,畢竟守門的難度比守個方圓十公里的大莊園要簡單得多,真的是省時省心省力。

類似的方法在ssh登錄管理服務器的時候,也有用到:開發人員要登錄集羣的其它服務器,必需要登錄到某一臺中間服務器,然後再通過中間服務器對其它服務器內網訪問。

畢竟:隱藏得越深,往往就越安全也越省事。即使技術十分精湛,也沒有必要去自找麻煩吧。

6   小結

上面提到的那些知識,對於專門做安全行業的人來說,估計是太自然不過的知識儲備了。本文提到的這些滲透手段,主要目的是根據提出一些服務器部署的安全建議,給開發人員一些警示:儘量能夠養成良好的開發習慣,做到防患於未然。

本文只是開篇,只針對服務器 端口掃描 這一行爲提出了一種 端口僞裝 的可行方法,後續還會出一些專題:

  • 密碼暴破的預防
  • 服務器權限控制,預防小漏洞導致大問題
  • 其它

警告:本文提供的一些思路和方法僅用於學習和內部的滲透測試,千萬不要用於攻擊外部的服務器,否則會被法律所追究,後果自負。

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