【廉環話】漫談信息安全設計與治理之滲透測試
原創【51CTO.com原創稿件】大家新年好!話說“大眾創業,萬眾創新”之風已吹到了我的身邊,比如說我的大表哥就從其供職的公司獨立出來,開創了一家只有“一兵一將”的小公司。深諳信息安全重要性的他lobby我去當其“獨立安全顧問”,就是不拿工資的那種。鑒于他延用的是其母公司的原有IT系統和資源,而并非從零開始,所以受命后我給他端上了一碗“雞湯”:要想讓你當前的系統能“保值”且繼續“發光發熱”,而且能輔助和促進新公司以正螺旋的軌跡健康發展,那么我們要學會一邊奔跑一邊思考,如今正值年關,就讓我們從一次滲透測試開始吧。他一臉蒙圈的望著我:怎么做滲透測試?好吧。我來科普一下它的基本流程要點吧。
一.普通搜集
俗話說:“不怕賊偷就怕賊惦記”。一旦攻擊者eye on you了,他們一般會對你的系統進行被動和主動收集兩種方式。
被動收集,也稱“外圍信息搜集”,咱們可以理解為“隔山打牛”,也就是在不觸碰目標系統的情況下,“曲線而婉約”的通過公共查詢或搜索引擎的手段來獲取外圍信息。如網站域名、IP地址(如使用dig命令)、也可配合使用Google Hacking和在Google地址后面追加各種參數來 Find Subdomains、Find Vhosts、以及使用 ICMP Ping和Whois Lookup等工具。相信有一定編程基礎的童鞋很快就能復制出基于Baidu和Bing的信息搜集腳本了吧。
而其中最普遍的當屬Whois,它可用來查詢那些由區域互聯網注冊機構所持有的,已在互聯網上注冊了的服務器資源信息 (IP地址或域名等)。通過運行該工具,可以獲得的信息包括:所有者公司的名稱、地址(一般是國家或區域)、特定的真實IP地址及其所隸屬的IP范圍、聯系電話號碼、電子郵件、管理員姓名以及域名服務器等。
Whois一般是以命令行的字符呈現的,如果要基于網頁的形式,他們可以通過運用Netcraft.com網站。其操作非常簡單,只要輸入要查詢的網站地址便可,如下圖所示。
另外,如果其目標是郵件服務器的話,他們則可以運用NSLookup工具來進一步收集到其服務器更多的信息。
主動收集,則需要和目標系統進行直接互動和簡單“過招”,比如說對其端口進行掃描等,不過這樣有時候會被目標系統的IDS或IPS所發現到。
他們常用的是帶有參數的Nmap來進行活躍主機的判斷、操作系統的識別(如大家所熟知的:Windows大小寫不敏感而Linux則敏感)、服務類型和端口的掃描等。當然也可以用到Metasploit輔助模塊中的SYN。而如果鎖定的目標系統是在其DMZ區里,則可用Back Track 5的Autoscan圖像界面來掃描。
在掃描到系統的常見服務和端口后,他們就可以進行弱口令的猜測和傳輸明文的嗅探了。他們甚至可以運用工具獲取服務器遠程訪問的權限。常言道:“沒有笨黑客只有懶黑客”。只要他們夠執著,什么C段網站、服務器系統版本、容器版本(如IIS、APACHE、NGINX、LIGHTTPD、TOMCAT等)、程序版本、數據庫類型、二級域名甚至是使用的防火墻等蛛絲馬跡都可以通過各種工具的聯合使用被發掘到。
二.進階搜集
攻擊者經常會到各種社會工程學庫里去查找是否有與目標系統相關的泄露的密碼。大家都知道,去年底的某東密碼泄漏事件,更使得各類密碼更為唾手可得了。一旦獲取了某些泄露的密碼、生成專用字典,他們就可以嘗試著登錄到目標的管理后臺。
攻擊者也會利用目標系統域名郵箱作為關鍵詞,去放入各大搜索引擎進行進一步的信息搜集。利用搜到的關聯信息,他們可以找出使用類似命名規則的其他網站的郵箱地址,進而得到常用的社交網站和APP的賬號。而基于那些社交賬號,進行進階式的搜索出相關微博、微信甚至是推文中包含此關鍵字的內容,最終以信息鏈的方式發現目標系統管理員的密碼設置習慣。
接下來,攻擊者可以進一步通過查找網上已經曝光出的各種程序漏洞來嘗試著判斷目標網站的CMS(CONTENT MANAGEMENT SYSTEM,即內容管理系統)了。多說一句:對我們信息安全測試人員來說,也同樣可以利用某些代碼的開源特性,下載其相對應的源碼進行代碼的原始審查和比對。
三. Web服務滲透
因為門戶網站大多都是有前端防火墻所保護的,那么攻擊者要繞過它的話,就只能通過瀏覽器HTTP/S(防火墻一般都被配置為允許HTTP/S的流入)的方式來進行攻擊了。Web滲透攻擊包括:SQL注入、XSS跨站腳本、CSRF跨站偽造請求、文件包含攻擊(利用瀏覽器獲取遠程文件)和命令執行(遠程執行命令)等。所用到的工具有掃描神器--W3AF等。它可以通過其自身WebSpider插件的發現模塊、暴力破解模塊、審計模塊和攻擊模塊的組合來進行滲透。
四.網絡服務滲透
當攻擊者進入DMZ的某臺服務器后,一般會“賊心不死”的繼續攻克其他設備以及進一步延伸到內網。這就是針對DMZ服務器上開啟的網絡服務進行的滲透,網絡服務可以大致分為三種:
· 一是Windows/Unix/Linux自帶的系統網絡服務,如Windows系統下的NetBIOS服務(UDP-137/138端口和TCP-139端口)、SMB服務(共享打印機)以及MSRPC服務(網絡調用遠程主機上的服務進程中的過程)和RDP服務(遠程桌面服務);
· 二是針對Windows系統上微軟的網絡服務,如IIS服務、SQLServer服務等;
· 三是第三方的網絡服務,如提供HTTP服務的Apache、IBM WebSphere、Tomcat等;提供數據庫服務的Oracle、MySQL等;提供FTP服務的Serv-U和FileZilla等。
五.客戶端滲透攻擊
這部分主要是在獲得了DMZ區里某個服務器的管理權限后,攻擊者繼續以此為跳板,獲得內網各類客戶端的權限。由于客戶端不像服務端有開放過多的端口和服務,而且一般默認打開了個人防火墻并安裝了反病毒軟件,因此攻擊者不大可能像滲透服務端時那樣發送惡意數據包給目標客戶端,讓客戶端自動執行觸發之從而獲得權限,所以攻擊者在此通常需要通過構造畸形數據,使得用戶在使用含有漏洞缺陷的應用程序處理數據時發生錯誤,進而執行了內嵌于數據中的惡意代碼。例如:針對瀏覽器的Javascript攻擊、第三方插件的攻擊、Office軟件的攻擊、Adobe閱讀器的攻擊等。并最終獲得目錄結構和敏感文件等信息。而在技術實現上有針對DEP和ASLR的堆噴射、ROP、JIT Spraying等。
六.BYOD滲透攻擊
如今移動互聯已經非常普及了,我們去年的漫談中曾花過兩個篇幅談BYOD相關安全,所以我們在滲透攻擊測試時也不應忽視攻擊者運用BYOD的場景。總的說來,其攻擊的主要步驟是:
·在可以接受wifi信號的位置,攻擊獲得AP的接入口令;
·進入AP后利用漏洞獲得AP的管理權;
·利用AP的管理權引導流量,制造釣魚攻擊劫持用戶流量;
·滲透進入用戶客戶端,如筆記本、Pad、手機等。
是不是感覺很簡單很粗暴?對,原理都是那些,只不過被移植到了無線的環境中而已。
記得上次在16年末給大家留了個懸念,說:“每個人。。。見到一座山,就想知道山后面是什么。”結果可愛的小伙伴神扒了一下,并根據其下句:“我很想告訴他,可能翻過山后面,你會發現沒什么特別。回望之下,可能會覺得這一邊更好。”來推斷我就此封筆了。唉,我承認自己當時文藝得過火了,其實應該用《終結者》的經典臺詞來直接表達:“I'll be back!”。所以今年伊始,我就忙著以此新的漫談告訴大家:“巨廉哥又殺回來了!”嶄新的“一起(17)”年來到了,各位奮戰在信息安全第一線的伙伴們,May the force be with you!
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】