第一篇:綠盟安全工程師滲透測試常規思路
滲透測試常規思路分析
正所謂沒有人一出生就會走路,從不懂到入門到深諳,一步步慢慢來,每個人都是這樣;但是在這個過程中,思路無疑是最重要的,沒有做不到只有想不到,就跟咱們高中解題時有了思路就迎刃而解一樣,手里拿著鏟子(技巧知識)但不是道從何挖起豈不是悲哀。
下面會分享一些我自己總結的常規滲透思路。
分享的思路就像一本書的索引一樣,并不是每個點都有詳細的技巧和各種原理分析,而是咱們如何下手如何一步步深入,在每個點上咱們知道了思路可以在每個點上查閱資料來攻破,繼續前進。好比武功的招式套路,在總體套路不變的前提的下招招精進,也可以重組創新。
0×01 野球拳:外圍
招式解釋
野球拳:最基礎但練得好最后也非常厲害
1. 主要由于服務器配置等原因造成的信息泄露
常用google ,bing等搜索工具,輕量級的搜索出一些遺留后門,不想被發現的后臺入口,中量級的搜索出一些用戶信息泄露,源代碼泄露,未授權訪問等等,重量級的則可能是mdb文件下載,CMS 未被鎖定install頁面,網站配置密碼filetype:lst password,php遠程文件包含漏洞等重要信息。
包括Robots.txt不想讓百度知道的,可能沒有設置forbidden訪問權限,讓我們知道了路徑可以進入哦。
2. 端口探測——服務 該項也是針對服務器的配置來說的,在服務器配置的時候可能出現一些ftp,3389.1433等常規服務端口,則可以根據弱口令嘗試,或者一些服務的基礎漏洞(CVE)來使用matesploit進行處理。常用工具NMAP –A IP.3. 爬蟲爬網站目錄
該項是使用爬蟲掃描器,對網站域名進行掃描,網站根目錄下的文件,說不定能發現驚喜哦。AWVS,WWWScan。
4. Web框架漏洞
Web整體框架:
①Struts2框架漏洞,直接利用。
②ThinkPHP任意代碼執行。后臺框架:
其實也可以算繞過驗證進入后臺分類中;
①Siteservercms,cookie繞過,在sebug上可以找到相關漏洞修補信息。
②worldpress ③ewebeditor , fckeditor編輯器上傳頁面直接訪問,根據編輯器版本,隨處可查利用信息。
5. 暴力,撞庫進后臺
無論是前端的用戶登錄還是后臺的管理進入,暴力破解都不失為一種以時間和字典為消耗的方法,還是有概率進入的,呵呵。
不過相比而言,根據外圍探測拿到的信息,也許可以幫助我們很輕松的進入后臺。撞庫,也許你只拿到了一部分敏感信息,但是網絡上現在褲子滿天飛的狀況下,撞一撞找一找,說不定密碼就出來了,這個可比暴力破解快得多。
6. 弱口令
最常見最危險也最掉以輕心
7.中間件配置不當引起的問題
① IIS寫漏洞(不常見了)
(常規工具“老兵”)
② 目錄可訪問
*8.操作系統、中間件文件解析引起的問題,Apache test.php.xx IIS test.asp;.jpg windows.asp.asp□
不是深入的話題,在上傳里關注 9.php引起的一系列問題
①../../etc/passwd 直接深入 ② php引起的目錄遍歷
③ PHP 引起的遠程文件包含(google搜索也可以直接利用)
0×02 太極:外圍到內部之間的中間層(應用)
招式解釋
太極:遇強則強,遇弱則弱,全是應用惹的禍 一.用戶未登陸的情況下
1、注入
注入的類型實在太多,利用花樣種種,① 頁面調用時候的sql注入,一般直接穿山甲,sqlmap跑出來dbs和表,用來進后臺用或者泄露用戶信息。(DBS是否完整,網站結構庫,直接利用)
② 萬能密碼之類的sql注入,進入前端應用或者后臺管理。
③ 本站沒有注入不代表就不能深入,試試旁注呢,呵呵。只是流程不一樣了。
2、XSS XSS的類型不算多存儲型,反射型,但是利用就是只有你想不到,沒有你做不到。
和深入無關的就不說了。
① XSS盲打打后臺,多半也是想進后臺種種方法無果的情況下。概率有限。
② XSS DDoS。
3、信息泄露,訂單遍歷 用戶訪問權限問題。
4、密碼找回漏洞(密碼郵件/短信重置)
Burp可修改字段的情況下,找回其他用戶密碼,說不定admin的密碼就被你找回了。
5、后臺
后臺也是一種業務,只是一種專政的隱藏的業務哈。
如何進入后臺呢?在找到后臺地址的前提下。和應用無關的:暴力破解,撞庫,信息收集利用,弱口令,未授權訪問。
① 萬能密碼之類的sql注入,post型注入用sqlmap dump dbs.② 利用web前端的sql注入
③ 密碼找回運氣好的話前端應用的admin密碼和后臺密碼一致。(有什么查詢密碼88)
④ XSS盲打 cookie(成功率)
⑤ 后臺框架 siteservercms等知名后臺cms sebug
1、首先獲取免費版軟件,然后安裝使用查看是否有test(admin)賬戶,能否直接利用,保存cookie提交看能否使用。
2、看版本,Sebug等上面有無直接利用方法
3、代碼審計(北京2014綠盟安全奪旗北京分公司利用此方法成功轉賬)二.在模擬用戶注冊登陸情況下
1、認證繞過
① 萬能密碼
② Cookie欺騙
2、越權訪問
①平行越權,其他用戶信息讀取、修改;
② 縱向越權,主要體現在修改密碼能否通過特殊字段標記的修改管理員密碼。
3、注入
Cookie post get 型,登陸后user相關應用
4、XSS 影響力、類型實在太多
① user提交的東西讓后臺管理員去審核
1.了解后臺的提交審核流程,CSRF,給自己添加用戶,(文章管理系統)2.XSS找后臺,管理員瀏覽時Cookie傳輸到XSS平臺 3.XSS蠕蟲之類 4.訂單遍歷
5、上傳點
① 一句話木馬 ② Webshell上傳
在很多情況下,沒有注入的,后臺進不去,上傳點是最好的陣地。
網站十分重視對上傳文件的保護,熟悉上傳流程,被阻斷在哪里,在哪里突破。
6、短信、郵箱DDoS
7、支付漏洞
① 0元任意付
②-1元退款
③ 數量整型/長整型溢出
0×03 內部(管理后臺)
招式解釋:迷蹤步(無痕無跡,還需更深進入)既然已經進入了管理后臺了,很有成就感,那么下一步的目標就是控制這臺服務器,控制整個網段。。現在一般的web滲透也都到此為止了。1.上傳webshell 假如你在web前端沒有地方或者沒辦法上傳webshell,那么在后臺上傳是一個最好的選擇,這也是幫助你從業務層面上控制服務器的最佳方法。
① 后臺可修改上傳文件類型,歡天喜地,修改下白名單| 黑名單,上傳成功,有時候不能被解析很常見,再找原因。
② 后臺不能修改上傳文件類型,大部分哦~不過一般來說對后臺的上傳校驗比前端要寬松一些。
沒事,咱們該怎么繞過就怎么繞過,不能繞過就88…….2.一句話木馬 3.管理員的分權
假如說管理員進行了分權,拿到了管理員不是權限最高的主管理員的話還需要進行管理員提權操作。后臺提權
第二篇:安全測試工程師要求
安全測試工程師招聘要求
1.有2年以上安全測試經驗
2.熟練appscan、netsparker等安全測試軟件
3.熟悉PHP,JAVA,c#,PYTHON至少其中一種語言
4.深入理解sql注入
5.能夠書寫安全測試報告,較強的文檔的編寫能力和問題分析能力
6.做過以下安全掃描:
網絡防入侵安全漏洞掃描
程序代碼安全性掃描
應用漏洞掃描
數據庫漏洞掃描
7.帶領安全測試小組獨立完成工作,對其他員工進行培訓
第三篇:網絡信息安全 滲透測試
網絡信息安全--課程結業報告
重慶交通大學
課程結業報告
班 級:
學 號:
姓 名:
實驗項目名稱:
實驗項目性質:
實驗所屬課程:
實驗室(中心):
指 導 教 師 :
實驗完成時間:
滲透測試
設計性
網絡信息安全
軟件實驗室
2016 年 6 月 30 日
一、概述
網絡滲透測試就是利用所有的手段進行測試,發現和挖掘系統中存在的漏洞,然后撰寫滲透測試報告,將其提供給客戶;客戶根據滲透人員提供的滲透測試報告對系統存在漏洞和問題的地方進行修復和修補。滲透測試是通過模擬惡意黑客的攻擊方法,來評估計算機網絡系統安全的一種評估方法。滲透測試與其它評估方法不同,通常的評估方法是根據已知信息資源或其它被評估對象,去發現所有相關的安全問題。滲透測試是根據已知可利用的安全漏洞,去發現是否存在相應的信息資源。
應網絡信息安全課程結課要求,于2016年5月至2016年7月期間,在MobaXterm和kail平臺進行了活動主機和活動端口掃描以及漏洞掃描,最后匯總得到了該分析報告。
二、實驗目的
①熟悉kali平臺和MobaXterm; ②熟悉信息收集的基本方法和技巧;
③了解kali平臺下活動主機和端口掃描的方法; ④了解漏洞掃描的過程;
三、滲透測試范圍
此次滲透測試的對象為:10.1.74.114---Metasploitable2 Linux。
四、本次分析工具介紹
本次測試主要用到了MobaXterm、Nmap、Nessus和kali.MobaXterm是遠程計算的終極工具箱。本次在MobaXterm上運行了10.1.74.111(用戶名和密碼是root:toor)和10.1.74.114(滲透對象,用戶名和密碼:msfadmin:msfadmin)。
如果在虛擬機里運行kali,首先需要安裝好虛擬機,然后下載安裝好滲透環境kail,然后下載安裝滲透對象(Metasploitable2 Linux)。
Kali Linux預裝了許多滲透測試軟件,包括nmap(端口掃描器)、Wireshark(數據
包分析器)、John the Ripper(密碼破解器),以及Aircrack-ng(一套用于對無線局域網進行滲透測試的軟件).本次測試嘗試了Metasploit,但技術不成熟,不知道哪里出錯,沒有成功。
圖1運行Metasploit結果圖
圖2 運行Metasploit結果圖
圖3 運行Metasploit結果圖3 在漏洞掃描時,因為教學網上說Kali中內置了OpenVAS的,所以打算用這個工具
作為掃描工具的,可是在我使用的kali平臺里并沒有這個內置的工具。
圖4 沒有內置OpenVAS的kali
本次實驗還是使用了nmap的圖形化掃描工具zenmap。Nmap是目前為止使用最廣的端口掃描工具之一,軟件提供一些非常實用的功能。比如通過tcp/ip來甄別操作系統類型、秘密掃描、動態延遲和重發、平行掃描、通過并行的PING偵測下屬的主機、欺騙掃描、端口過濾探測、直接的RPC掃描、分布掃描、靈活的目標選擇以及端口的描述。
除了以上工具,本次還用了Nessus,這個工具是目前全世界最多人使用的系統漏洞掃描與分析軟件。
五、實驗主要內容及原理
1、信息收集—掃描活動主機
可以使用一些命令來進行局域網內的活動主機的掃描。常用的命令有 fping、nping、netenum、netdiscover 等。
本次滲透測試選用了netdiscover來獲取LAN 中活動主機及其MAC。
2、信息收集—掃描目標主機活動端口
信息收集有兩種方式,一種是命令行方式,一種是圖形化界面方式。常用的命令是 namp,使用語法:nmap 參數 目標主機IP 地址。圖形界面工具是zenmap。
3、信息收集—掃描漏洞
Nessus是使用比較多的系統漏洞掃描與分析軟件。
六、實驗過程簡述
1、信息收集-掃描活動主機
實驗步驟:在MobaXterm下進行命令行形式進行活動主機的掃描:
fping:掃描指定范圍內的活動主機(fping-s-r 1-g 202.202.240.1 202.202.240.254);
nping:對防火墻過濾ICMP或主機不對ICMP響應的情況,則可不使用ICMP,直接定制TCP包發出運行nping-c1--tcp-p 80--flags syn 202.202.240.6;
netenum:速度超快的活動主機掃描器(運行netenum 202.202.240.0/24 10)(10代表超時時間,越長越準確)
netdiscover:獲取LAN中活動主機及其MAC等信息(運行netdiscover即可); 也在虛擬機里進行了netdiscover掃描。
2、信息收集—掃描目標主機活動端口
實驗步驟:在MobaXterm中輸入下列的命令即可完成目標主機活動端口的掃描: TCP連接掃描: nmap-sT-p--PN 202.202.240.6 SYN 掃描: nmap-sS-p--PN 202.202.240.6 Xmas 掃描:nmap-sX-p--PN 202.202.240.6 Null 掃描:nmap-sN-p--PN 202.202.240.6
3、信息收集—掃描漏洞
實驗步驟:Nessus是目前全世界最多人使用的系統漏洞掃描與分析軟件。以下為安裝及配置步驟:
下載Nessus軟件進行注冊,選擇家庭版,注冊號將發送到郵箱 使用命令dpkg-i Nessus-6.3.7-debian6_amd64.deb 命令進行安裝
運行命令 /opt/nessus/bin/nessus-fetch--register(你得到的注冊號)進行注冊及更新模塊
運行命令/opt/nessus/sbin/nessus-adduser添加用戶并設為管理員(需記住,后面登錄要使用)
運行命令/etc/init.d/nessusdsta啟動nessus服務
打開瀏覽器,輸入https://127.0.0.1:8834登錄Nessus即可(先定策略,再掃描)
七、實驗結果及分析
1、信息收集-掃描活動主機
圖5使用fping掃描活動主機結果1
圖6使用fping掃描活動主機結果2
通過運行fping-s-r 1-g 202.202.240.1 202.202.240.254來掃描IP地址從
202.202.240.1 到202.202.240.254的活動主機,(-s)打印出最后的結果;(-r 1)重復次數為1,默認情況下為3;(-g)生成目標列表,指定目標列表的起始和結束IP,此次起始IP為202.202.240.1,結束IP為202.202.240.254。共掃描254個目標,其中74個存活,176個不可達,沒有不知的IP地址。
圖7使用nping掃描活動主機結果
圖8使用netenum掃描結果
使用來進行netenum掃描,顯示的是202.202.240.0/24這個網段的活動主機,顯示的結果。
圖9netdiscover掃描結果
從上面的圖中可以看出,netdiscover會顯示出活動主機的IP地址、MAC地址等信息。
2、信息收集—掃描目標主機活動端口
圖10 nmap掃描結果1
圖11 nmap掃描結果2
圖12 nmap掃描結果3
圖13 nmap掃描結果4 上圖是使用nmap掃描目標主機活動端口的結果,本次實驗是掃描202.202.240.6的活動端口,從結果中可以看出使用TCP連接掃描和SYN掃描結果80端口是開啟的,Xmas和Null掃描運行不出結果,可能是掃描的時間不夠,活動端口掃描不是快速完成的。掃描結果會顯示活動的端口號以及提供的服務。
下面是在虛擬機的kali平臺里使用zenmap對10.1.74.114進行端口掃描的結果。由于掃描結果太多,所以只對部分進行了截圖分析。
圖14zenmap掃描結果
使用zenmap對活動端口進行掃描比使用命令行簡單,得到的結果比輸入命令得到的結果更加詳細。
3、信息收集—掃描漏洞
圖15Nessus掃描漏洞結果1 從掃描結果看出10.1.74.111有3個高危漏洞,18個中危漏洞,5個低危漏洞。下圖為掃描10.1.74.111的部分具體漏洞圖。
圖16Nessus掃描結果2
八、心得體會
通過本次網絡信息安全課程的學習,對滲透過程有了一定的了解,其基本步驟可總結為首先進行信息收集,可以收集的信息有活動主機、端口等等,然后掃描主機的漏洞,并對漏洞加以利用,從而達到攻擊的目的。
這次設計對各個模塊有了淺顯的認識,深入程度還有待提高。
第四篇:安全滲透測試技術白皮書
安全滲透測試技術白皮書
2008年月 17 日
目錄
4.1.1.預攻擊階段的發現.....................................................16 4.1.2.攻擊階段的操作.......................................................16 4.1.3.后攻擊階段可能造成的影響.............................................22 5.附錄:..................................................................23
google、baidu 等搜索引擎獲取目標信息
采用 FWtester、hping3 等工具進行防火墻規則探測
常規漏洞掃描和采用商用軟件進行檢測 結合使用測評工具與 Nessus 等商用或免費的掃描工具進行漏洞掃描
采用 SolarWind 對網絡設備等進行發現
采用 nikto、webinspect等軟件對 web 常見漏洞進行掃描
采用如AppDetectiv之類的商用軟件對數據庫進行掃描分析
??
對 Web 和數據庫應用進行分析 采用 WebProxy、SPIKEProxy、webscarab、ParosProxy、Absinthe 等工具進行分析
用 Ethereal 抓包協助分析
用 webscan、fuzzer 進行 SQL 注入和 XSS 漏洞初步分析
手工檢測 SQL 注入和 XSS 漏洞
采用類似OScanner 的工具對數據庫進行分析
??
應用分析的注意事項
檢查應用系統架構、防止用戶繞過系統直接修改數據庫
檢查身份認證模塊,防止非法用戶繞過身份認證
檢查數據庫接口模塊,防止用戶獲取系統權限
檢查文件接口模塊,防止用戶獲取系統文件
檢查其他安全威脅
其中每個環節都還有詳細的checklist,讀者可以自行補充。
2.2 攻擊階段
基于通用設備、數據庫、操作系統和應用的攻擊
可以采用各種公開及私有的緩沖區溢出程序代碼,一個比較好的Exploit搜索站點是: http:// code **/ $strTemp=trim($inString);if(strlen($strTemp)>0){ $strTemp=str_replace(“'”,“'”,$strTemp);$strTemp=str_replace('',“\”,$strTemp);$strTemp=str_replace('“',”"“,$strTemp);if($level==1){ $strTemp=str_replace('<',”<“,$strTemp);$strTemp=str_replace('>',”>“,$strTemp);$strTemp=htmlspecialchars($strTemp);} } return $strTemp;} function generateRandomCode($long=4){ global $HTTP_SESSION_VARS;for($i=0;$i<$long;$i++){ $rand.=rand(0,9);//$rand.=chr(rand(97,122));} $HTTP_SESSION_VARS[”verifyCode“]=$rand;$HTTP_SESSION_VARS[”loginTime“]=time();return $rand;} function generateVerifyCode(){ global $systemAdminPath;if(is_dir($systemAdminPath.”verifyImage“)){ $dir=@opendir($systemAdminPath.”verifyImage“);while(($file=readdir($dir))!=null){ if(time()-filemtime($systemAdminPath.”verifyImage/“.$file)>10){ @unlink($systemAdminPath.”verifyImage/“.$file);} } $im=imagecreate(45, 16);$background_color = imagecolorallocate($im, 255, 255, 255);$text_color = imagecolorallocate($im, 233, 14, 91);imagestring($im, 5, 5, 0, generateRandomCode(), $text_color);$imgFile=time().rand(0,100).”.jpg“;@imagejpeg($im,$systemAdminPath.”verifyImage/“.$imgFile);imagedestroy($im);return $systemAdminPath.”verifyImage/“.$imgFile;} } function countVisitor(){ global $systemUrl;$hand=@fopen($systemUrl.”count.txt“,”r“);$count=@fread($hand,@filesize($systemUrl.”count.txt“));@fclose($hand);return($count+0);} function checkLogin(){ global $HTTP_SESSION_VARS,$dbTools;list($count)=$dbTools->fetchArray($dbTools->getResult(”SELECT COUNT(*)FROM adminuser WHERE id='$HTTP_SESSION_VARS[loginUserId]' AND name='$HTTP_SESSION_VARS[loginUser]' “));return($count>0?true:false);} function loadHtml($file){ global
$systemAdminPath,$SystemAdmin,$system;include($systemAdminPath.$file);} function DisplayMessage($message, $withhr=true){ echo ”“.$message.”n“;if($withhr){ echo ”n“;} } function CalcPassword($password){ return md5($GLOBALS[”MD5RandomString“].$password);} function displayImage($imageFile,$width,$height){ global $systemUploadUrl;$swf=”
察看c:inetpub、純文本、XML、LaTeX等格式保存。
5.2.2.3 Nmap和xprobe2 功能強大的端口掃描軟件,支持多種協議的掃描如UDP,TCP connect(),TCP SYN(half open), ftp proxy(bounce attack),Reverse-ident, ICMP(ping sweep), FIN, ACK sweep,Xmas Tree, SYN sweep, 和Null掃描。還提供一些實用功能如通過tcp/ip來甄別操作系統類型、秘密掃描、動態延遲和重發、平行掃描、通過并行的PING偵測下屬的主機、欺騙掃描、端口過濾探測、直接的RPC掃描、分布掃描、靈活的目標選擇以及端口的描述。
Xprobe2是一款利用ICMP協議識別操作系統的軟件。5.2.2.4 STIF STIF是fyodor設計開發的一款自動進行滲透測試的工具框架。5.2.2.5 其它web及數據庫檢測工具
包括部份公開及私有的Web和數據庫檢測工具。
5.2.3 漏洞利用工具
中科正陽漏洞挖掘實驗室收集、交換及自行研究開發的各種操作系統及應用攻擊代碼。
5.3 對.NET與Websphere的基本檢測項目示例
.NET與websphere除了可能出現應用程序編寫方面的錯誤外,服務器本身在歷史上也出現過多種安全漏洞,在我們的基本檢測項目中,對websphere的檢測項目包括:
對.NET的檢測項目包括:
5.4 對web及其它B/S或C/S應用進行分析
5.4.1 檢查應用系統架構、防止用戶繞過系統直接修改數據庫
檢查用戶是否可以直接登錄數據庫?
測試登錄驗證頁面,檢查身份認證方式? 測試登錄后頁面,檢查是否所有頁面都需要身份驗證? 檢查系統是否可以被暴利破解,是否有多次登錄失敗鎖定機制? 檢查應用程序是否有多級權限,不同權限的判別是在服務器端還是客戶端?權限標志是在session還是cookie中,檢查是否可以繞過權限設置?
檢查系統是否可以被Session重放攻擊? 檢查系統是否可以通過“取回密碼功能”攻擊?
5.4.3 檢查數據庫接口模塊,防止用戶獲取系統權限
檢查是否可以被SQL語句注入,登陸系統? 檢查是否可以被sql語句注入,調用系統程序? 查看系統中是否用到存儲過程?
查看系統是否需要文件接口? 檢查文件接口頁面是否限制調用上級目錄? 檢查是否已知目錄? 檢查是否有例子文件? 檢查系統是否允許目錄瀏覽? 檢查是否調用系統程序?
5.4.5 檢查其他安全威脅
檢查是否用戶輸入的信息沒有經過檢查和處理就以HTML方式顯示 檢查系統是否存在遠程管理功能?
檢查WEB系統和數據庫或者中間件是否有加密? 檢查系統是否返回多余的錯誤信息 檢測系統是否有元字符注入? 檢查系統是否可以被User-Agent欺騙 檢查系統是否存在調試命令和參數 檢查是否存在邏輯錯誤?
第五篇:詳述SSL和TLS的Web安全滲透測試
如果Web服務中的SSL和TLS協議出現安全問題,后果會如何?很明顯,這樣的話攻擊者就可以擁有你所有的安全信息,包括我們的用戶名、密碼、信用卡、銀行信息……所有的一切。本文將向讀者詳細介紹如何針對Web服務中的SSL和TLS協議進行安全滲透測試。我們首先對這兩種協議進行了概述,然后詳細介紹了針對加密信道安全性的黑盒測試和白盒測試。最后列出了一些常用的安全測試工具。
一、簡介
目前,許多重要的Web服務都使用了SSL和TLS協議對通信進行保護。我們知道,http協議是使用明文進行傳輸的,但是像網絡銀行之類的web應用如果使用http協議的話,那么所有的機密信息都會暴露在網絡連接中,這就像銀行用一個透明的信封給我們郵寄信用卡帳號和密碼一樣,在從銀行到達用戶之間任何接觸過這封信的人,都能看到我們的帳號和密碼。為了提高其安全性,經常需要通過SSL或者TLS隧道傳輸這些明文,這樣就產生了https通信流量。例如網絡銀行之類的應用,在服務器和客戶端之間傳輸密碼,信用卡號碼等重要信息時,都是通過https協議進行加密傳送的。
SSL和TLS是兩種安全協議,它們通過加密技術為傳輸的信息提供安全信道、機密性和身份驗證等安全功能。我們知道由于對高級密碼技術的出口限制,會造成遺留系統使用的是弱加密技術。如果系統采用了弱密碼,或者說密碼強度過低的話,攻擊者可以在有效的時間內破解密鑰,而攻擊者一旦得到了密鑰,就像小偷得到了我們家的鑰匙一樣,所有的鎖都會形同虛設。但是,新Web服務器就不會使用弱加密系統了嗎?答案是否定的,因為許多新Web服務器也經常被配臵成處理虛密碼選項。為了實現這些安全特性,協議必須確保使用的密碼算法有足夠的強度,并且密碼算法得到了正確的實現。即使服務器安裝使用了高級的加密模塊,但是如果配臵不當的話,也有可能為安全特性要求較高的通信信道的設臵了較弱的加密技術。下面,我們將詳細介紹如何對這兩種協議的配臵進行安全審計。
二、測試SSL/TLS的密碼規范
我們知道,http協議是使用明文進行傳輸的,為了提高其安全性,經常需要通過SSL或者TLS隧道傳輸這些明文,這樣就產生了https通信流量。除對傳輸的數據進行加密處理之外,https(安全超文本傳輸協議,HTTPS)還能利用數字證書為服務器或客戶端提供身份標識。
過去,美國政府對加密系統的出口有許多限制,如密鑰長度最大為40位,因為密鑰長度越短,它就越容易破解。后來,密碼出口條例已經放寬了許多,但是,檢查服務器的SSL配臵仍然十分重要,因為它有可能配臵使用了弱加密技術。基于SSL的服務不應該提供選擇弱密碼的機會。
注意,我們這里所說的弱密碼,指的是加密強度不夠、容易破解的加密系統。不同的加密算法具有不同的密碼強度,但是在算法一定的情況下,密鑰的長度越長,加密強度越高。
技術上,選擇加密技術的過程如下所示:在建立SSL連接的初期,客戶端向服務器發送一個Client Hello消息,以告知服務器它支持哪些加密技術等。一般情況下,客戶端通常是一個Web瀏覽器,所以瀏覽器是目前最常見的SSL客戶端;然而,任何支持SSL的應用程序都可以作為SSL客戶端使用。比如,有時候SSL客戶端是些SSL代理(如stunnel),它們使得那些不支持SSL的工具也能與SSL服務通信。同理,SSL服務器端通常為Web服務器,但是其他應用程序也可以充當SSL服務器端。加密套件規定了具體的密碼協議(DES、RC4、AES)、密鑰長度(諸如40、56或者128位)和用于完整性檢驗的散列算法(SHA、MD5)。收到Client Hello消息后,服務器以此確定該會話所使用的加密套件。當然,通過配臵可以規定服務器能夠接受哪些密碼套件,這樣的話,我們就能夠控制是否跟僅支持40位加密的客戶端通話
三、黑盒測試
為了檢測可能支持的弱密碼,必須找出與SSL/TLS服務相關的端口。通常情況下,要檢查端口443,因為它是標準的https端口;不過運行在443端口上的卻未必是https服務,因為通過配臵,https服務可以運行在非標準的端口上,同時,Web應用程序也許使用了其它利用SSL/TLS封裝的服務。一般而言,為了找出這些端口,必須找出使用了哪些服務。
利用掃描程序nmap時,加上掃描選項–sV,就能用來識別SSL服務。實際上,安全漏洞掃描器除了可以顯示使用的服務之外,還能用來檢查弱密碼,比如,Nessus就能檢查任意端口上的SSL服務,并報告弱密碼。
如果攻擊者在您修復弱密碼之前發現了它們的話,那么您的處境可就不妙了——利用當前強大的桌面計算力,例如借助GPU的并行運算,他們能夠在有效的時間內破解出密鑰,然后就能解密出https信道中加密過的機密信息,如口令,用戶名,如果您在使用網絡銀行,還能獲得他們的帳號和口令,等等。所以,我們一定要在攻擊者下手之前發現并修復存在的弱密碼配臵。
例1.通過nmap識別SSL服務
[root@test]# nmap-F-sV localhostStarting nmap 3.75(http://#sslciphersuite This SSLv2 server also accepts SSLv3 connections.This SSLv2 server also accepts TLSv1 connections.Vulnerable hosts(以下從略)例3.利用OpenSSL以手工方式審計SSL的弱密碼
這里我們試圖通過SSLv2連接到Google.com:
[root@test]# openssl s_client-no_tls1-no_ssl3-connect);或者Openssl工具,它能直接從UNIX命令行下訪問Openssl加密函數。為了識別基于SSL的服務,可以使用具有服務識別能力的安全漏洞掃描程序或者端口掃描程序。掃描程序nmap具有一個-sV掃描選項,用以識別服務;安全漏洞掃描程序Nessus則能識別在任意的端口上的基于SSL的服務,并對這些服務進行安全漏洞檢查——不管它們是在標準端口還是非標準的端口上。
如果需要與SSL服務交互但是您喜愛的工具卻不支持SSL的話,可以求助于SSL代理,例如stunnel,它能在底層協議中打通隧道跟SSL服務進行通信。
最后,盡管人們樂于使用常規瀏覽器來檢查證書,但是瀏覽器通常具有許多漏洞,此外瀏覽器進行檢測時可能受到許多不易察覺的配臵設臵的影響。相反,依靠安全漏洞掃描器或者專門的工具來進行檢查則要好得多。