服务器防渗透(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???小結
上面提到的那些知識,對于專門做安全行業的人來說,估計是太自然不過的知識儲備了。本文提到的這些滲透手段,主要目的是根據提出一些服務器部署的安全建議,給開發人員一些警示:盡量能夠養成良好的開發習慣,做到防患于未然。
本文只是開篇,只針對服務器?端口掃描?這一行為提出了一種?端口偽裝?的可行方法,后續還會出一些專題:
- 密碼暴破的預防
- 服務器權限控制,預防小漏洞導致大問題
- 其它
警告:本文提供的一些思路和方法僅用于學習和內部的滲透測試,千萬不要用于攻擊外部的服務器,否則會被法律所追究,后果自負
總結
以上是生活随笔為你收集整理的服务器防渗透(1)--信息收集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【翻译】What is State Ma
- 下一篇: 资深专家深度剖析Kubernetes A