网站渗透测试原理及详细过程
滲透測試實(shí)戰(zhàn) site:baidu.com
滲透測試思路 site:baidu.com
帶你入門滲透測試的5個(gè)項(xiàng)目:https://www.jianshu.com/p/5b82e42ae346
滲透測試的一些總結(jié):http://www.freebuf.com/articles/3562.html
網(wǎng)站滲透測試原理及詳細(xì)過程
原文地址:http://blog.csdn.net/kingmax54212008/article/details/11833059 滲透測試(Penetration Testing)目錄
零、前言
一、簡介
二、制定實(shí)施方案
三、具體操作過程
四、生成報(bào)告
五、測試過程中的風(fēng)險(xiǎn)及規(guī)避
參考資料
FAQ集
?
?
零、前言 滲透測試在未得到被測試方授權(quán)之前依據(jù)某些地區(qū)法律規(guī)定是違法行為。 這里我們提供的所有滲透測試方法均為(假設(shè)為)合法的評估服務(wù),也就是通常所說的道德黑客行為(Ethical hacking),因此我們這里的所有讀者應(yīng)當(dāng)都是Ethical Hackers,如果您還不是,那么我希望您到過這里后會成為他們中的一員 ;)
這里,我還想對大家說一些話:滲透測試重在實(shí)踐,您需要一顆永不言敗的心和一個(gè)有著活躍思維的大腦。不是說您將這一份文檔COPY到您網(wǎng)站上或者保存到本地電腦您就會了,即使您將它打印出來沾點(diǎn)辣椒醬吃了也不行,您一定要根據(jù)文檔一步一步練習(xí)才行。而且測試重在用腦,千萬別拿上一兩個(gè)本文中提到的工具一陣亂搞,我敢保證:互聯(lián)網(wǎng)的安全不為因?yàn)檫@樣而更安全。祝您好運(yùn)。。。
- 什么叫滲透測試?
滲透測試最簡單直接的解釋就是:完全站在攻擊者角度對目標(biāo)系統(tǒng)進(jìn)行的安全性測試過程。 - 進(jìn)行滲透測試的目的?
了解當(dāng)前系統(tǒng)的安全性、了解攻擊者可能利用的途徑。它能夠讓管理人員非常直觀的了解當(dāng)前系統(tǒng)所面臨的問題。為什么說叫直觀呢?就像Mitnick書里面提到的那樣,安全管理(在這里我們改一下,改成安全評估工作)需要做到面面俱到才算成功,而一位黑客(滲透測試)只要能通過一點(diǎn)進(jìn)入系統(tǒng)進(jìn)行破壞,他就算是很成功的了。 - 滲透測試是否等同于風(fēng)險(xiǎn)評估?
不是,你可以暫時(shí)理解成滲透測試屬于風(fēng)險(xiǎn)評估的一部分。事實(shí)上,風(fēng)險(xiǎn)評估遠(yuǎn)比滲透測試復(fù)雜的多,它除滲透測試外還要加上資產(chǎn)識別,風(fēng)險(xiǎn)分析,除此之外,也還包括了人工審查以及后期的優(yōu)化部分(可選)。 - 已經(jīng)進(jìn)行了安全審查,還需要滲透測試嗎?
如果我對您說:嘿,中國的現(xiàn)有太空理論技術(shù)通過計(jì)算機(jī)演算已經(jīng)能夠證明中國完全有能力實(shí)現(xiàn)宇航員太空漫步了,沒必要再發(fā)射神8了。您能接受嗎? - 滲透測試是否就是黑盒測試?
否,很多技術(shù)人員對這個(gè)問題都存在這個(gè)錯(cuò)誤的理解。滲透測試不只是要模擬外部黑客的入侵,同時(shí),防止內(nèi)部人員的有意識(無意識)攻擊也是很有必要的。這時(shí),安全測試人員可以被告之包括代碼片段來內(nèi)的有關(guān)于系統(tǒng)的一些信息。這時(shí),它就滿足灰盒甚至白盒測試。 - 滲透測試涉及哪些內(nèi)容?
技術(shù)層面主要包括網(wǎng)絡(luò)設(shè)備,主機(jī),數(shù)據(jù)庫,應(yīng)用系統(tǒng)。另外可以考慮加入社會工程學(xué)(入侵的藝術(shù)/THE ART OF INTRUSION)。 - 滲透測試有哪些不足之處?
主要是投入高,風(fēng)險(xiǎn)高。而且必須是專業(yè)的Ethical Hackers才能相信輸出的最終結(jié)果。 - 你說的那么好,為什么滲透測試工作在中國開展的不是很火熱呢?
我只能說:會的,一定會的。滲透測試的關(guān)鍵在于沒法證明你的測試結(jié)果就是完善的。用戶不知道花了錢證明了系統(tǒng)有問題以后,自己的安全等級到了一個(gè)什么程序。但是很顯然,用戶是相信一個(gè)專業(yè)且經(jīng)驗(yàn)豐富的安全團(tuán)隊(duì)的,這個(gè)在中國問題比較嚴(yán)重。在我接觸了一些大型的安全公司進(jìn)行的一些滲透測試過程來看,測試人員的水平是對不住開的那些價(jià)格的,而且從測試過程到結(jié)果報(bào)表上來看也是不負(fù)責(zé)的。我估計(jì)在三年以后,這種情況會有所改觀,到時(shí)一方面安全人員的技術(shù)力量有很大程度的改觀,另一方面各企業(yè)對滲透測試會有一個(gè)比較深刻的理解,也會將其做為一種IT審計(jì)的方式加入到開發(fā)流程中去。滲透測試的專業(yè)化、商業(yè)化會越來越成熟。
實(shí)施方案應(yīng)當(dāng)由測試方與客戶之間進(jìn)行溝通協(xié)商。一開始測試方提供一份簡單的問卷調(diào)查了解客戶對測試的基本接收情況。內(nèi)容包括但不限于如下:
- 目標(biāo)系統(tǒng)介紹、重點(diǎn)保護(hù)對象及特性。
- 是否允許數(shù)據(jù)破壞?
- 是否允許阻斷業(yè)務(wù)正常運(yùn)行?
- 測試之前是否應(yīng)當(dāng)知會相關(guān)部門接口人?
- 接入方式?外網(wǎng)和內(nèi)網(wǎng)?
- 測試是發(fā)現(xiàn)問題就算成功,還是盡可能的發(fā)現(xiàn)多的問題?
- 滲透過程是否需要考慮社會工程?
- 。。。
在得到客戶反饋后,由測試方書寫實(shí)施方案初稿并提交給客戶,由客戶進(jìn)行審核。在審核完成后,客戶應(yīng)當(dāng)對測試方進(jìn)行書面委托授權(quán)。這里,兩部分文檔分別應(yīng)當(dāng)包含如下內(nèi)容:
- 實(shí)施方案部分:
... - 書面委托授權(quán)部分:
...
1、信息收集過程
- 網(wǎng)絡(luò)信息收集:
在這一部還不會直接對被測目標(biāo)進(jìn)行掃描,應(yīng)當(dāng)先從網(wǎng)絡(luò)上搜索一些相關(guān)信息,包括Google Hacking, Whois查詢, DNS等信息(如果考慮進(jìn)行社會工程學(xué)的話,這里還可以相應(yīng)從郵件列表/新聞組中獲取目標(biāo)系統(tǒng)中一些邊緣信息如內(nèi)部員工帳號組成,身份識別方式,郵件聯(lián)系地址等)。
1.使用whois查詢目標(biāo)域名的DNS服務(wù)器
2.nslookup
>set type=all
><domain>
>server <ns server>
>set q=all
>ls -d <domain>涉及的工具包括:Google,Demon,webhosting.info,Apollo,Athena,GHDB.XML,netcraft,seologs 除此之外,我想特別提醒一下使用Googlebot/2.1繞過一些文件的獲取限制。
Google hacking 中常用的一些語法描述
1.搜索指定站點(diǎn)關(guān)鍵字site。你可以搜索具體的站點(diǎn)如site:www.nosec.org。使用site:nosec.org可以搜索該域名下的所有子域名的頁面。甚至可以使用site:org.cn來搜索中國政府部門的網(wǎng)站。
2.搜索在URL網(wǎng)址中的關(guān)鍵字inurl。比如你想搜索帶參數(shù)的站點(diǎn),你可以嘗試用inurl:asp?id=
3.搜索在網(wǎng)頁標(biāo)題中的關(guān)鍵字intitle。如果你想搜索一些登陸后臺,你可以嘗試使用intitle:"admin login" - 目標(biāo)系統(tǒng)信息收集:
通過上面一步,我們應(yīng)當(dāng)可以簡單的描繪出目標(biāo)系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu),如公司網(wǎng)絡(luò)所在區(qū)域,子公司IP地址分布,VPN接入地址等。這里特別要注意一些比較偏門的HOST名稱地址,如一些backup開頭或者temp開關(guān)的域名很可能就是一臺備份服務(wù)器,其安全性很可能做的不夠。
從獲取的地址列表中進(jìn)行系統(tǒng)判斷,了解其組織架構(gòu)及操作系統(tǒng)使用情況。最常用的方法的是目標(biāo)所有IP網(wǎng)段掃描。 - 端口/服務(wù)信息收集:
這一部分已經(jīng)可以開始直接的掃描操作,涉及的工具包括:nmap,thc-amap
1.我最常使用的參數(shù)
nmap -sS -p1-10000 -n -P0 -oX filename.xml --open -T5 <ip address> - 應(yīng)用信息收集:httprint,SIPSCAN,smap
- 這里有必要將SNMP拿出來單獨(dú)說一下,因?yàn)槟壳霸S多運(yùn)營商、大型企業(yè)內(nèi)部網(wǎng)絡(luò)的維護(hù)臺通過SNMP進(jìn)行數(shù)據(jù)傳輸,大部分情況是使用了默認(rèn)口令的,撐死改了private口令。這樣,攻擊者可以通過它收集到很多有效信息。snmp-gui,HiliSoft MIB Browser,mibsearch,net-snmp都是一些很好的資源。
2、漏洞掃描
這一步主要針對具體系統(tǒng)目標(biāo)進(jìn)行。如通過第一步的信息收集,已經(jīng)得到了目標(biāo)系統(tǒng)的IP地址分布及對應(yīng)的域名,并且我們已經(jīng)通過一些分析過濾出少許的幾個(gè)攻擊目標(biāo),這時(shí),我們就可以針對它們進(jìn)行有針對性的漏洞掃描。這里有幾個(gè)方面可以進(jìn)行:
針對系統(tǒng)層面的工具有:ISS,?Nessus, SSS, Retina, 天鏡, 極光
針對WEB應(yīng)用層面的工具有:AppScan,?Acunetix Web Vulnerability Scanner,?WebInspect,?Nstalker
針對數(shù)據(jù)庫的工具有:ShadowDatabaseScanner,?NGSSQuirreL
針對VOIP方面的工具有:PROTOS c07 sip(在測試中直接用這個(gè)工具轟等于找死)以及c07 h225,?Sivus,?sipsak等。
事實(shí)上,每個(gè)滲透測試團(tuán)隊(duì)或多或少都會有自己的測試工具包,在漏洞掃描這一塊針對具體應(yīng)用的工具也比較個(gè)性化。
3、漏洞利用
有時(shí)候,通過服務(wù)/應(yīng)用掃描后,我們可以跳過漏洞掃描部分,直接到漏洞利用。因?yàn)楹芏嗲闆r下我們根據(jù)目標(biāo)服務(wù)/應(yīng)用的版本就可以到一些安全網(wǎng)站上獲取針對該目標(biāo)系統(tǒng)的漏洞利用代碼,如milw0rm,?securityfocus,packetstormsecurity等網(wǎng)站,上面都對應(yīng)有搜索模塊。實(shí)在沒有,我們也可以嘗試在GOOGLE上搜索“應(yīng)用名稱 exploit”、“應(yīng)用名稱 vulnerability”等關(guān)鍵字。
當(dāng)然,大部分情況下你都可以不這么麻煩,網(wǎng)絡(luò)中有一些工具可供我們使用,最著名的當(dāng)屬metasploit了,它是一個(gè)開源免費(fèi)的漏洞利用攻擊平臺。其他的多說無益,您就看它從榜上無名到?jīng)_進(jìn)前五(top 100)這一點(diǎn)來說,也能大概了解到它的威力了。除此之外,如果您(您們公司)有足夠的moeny用于購買商用軟件的話,CORE IMPACT是相當(dāng)值得考慮的,雖然說價(jià)格很高,但是它卻是被業(yè)界公認(rèn)在滲透測試方面的泰山北斗,基本上測試全自動。如果您覺得還是接受不了,那么您可以去購買CANVAS,據(jù)說有不少0DAY,不過它跟metasploit一樣,是需要手動進(jìn)行測試的。最后還有一個(gè)需要提及一下的Exploitation_Framework,它相當(dāng)于一個(gè)漏洞利用代碼管理工具,方便進(jìn)行不同語言,不同平臺的利用代碼收集,把它也放在這里是因?yàn)樗旧硪簿S護(hù)了一個(gè)exploit庫,大家參考著也能使用。
上面提到的是針對系統(tǒng)進(jìn)行的,在針對WEB方面,注入工具有NBSI,?OWASP SQLiX,?SQL Power Injector,?sqlDumper,?sqlninja,?sqlmap,?Sqlbftools,?priamos,?ISR-sqlget***等等。
在針對數(shù)據(jù)庫方面的工具有:
數(shù)據(jù)庫?工具列表?Oracle(1521端口): 目前主要存在以下方面的安全問題:1、TNS監(jiān)聽程序攻擊(sid信息泄露,停止服務(wù)等)
2、默認(rèn)賬號(default password list)
3、SQL INJECTION(這個(gè)與傳統(tǒng)的意思還不太一樣)
4、緩沖區(qū)溢出,現(xiàn)在比較少了。?thc-orakel,?tnscmd,?oscanner,?Getsids,?TNSLSNR,?lsnrcheck,?OAT,?Checkpwd,?orabf?MS Sql Server(1433、1434端口) ? Mysql(3306端口) ? DB2(523、50000、50001、50002、50003端口)?db2utils?Informix(1526、1528端口) ?
在針對Web服務(wù)器方面的工具有:
WEB服務(wù)器?工具列表?IIS?IISPUTSCANNER?Tomcat 想起/admin和/manager管理目錄了嗎?另外,目錄列表也是Tomcat服務(wù)器中最常見的問題。比如5.*版本中的http://127.0.0.1/;index.jsphttp://www.example.com/foo/"../manager/html?
http://www.example.com:8080/examples/servlets/servlet/CookieExample?cookiename=HAHA&cookievalue=%5C%22FOO%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2F%3B
http://www.example.com:8080/servlets-examples/servlet/CookieExample?cookiename=BLOCKER&cookievalue=%5C%22A%3D%27%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2Fservlets-examples%2Fservlet+%3B JBOSS jboss的漏洞很少,老版本中8083端口有%符號的漏洞:
GET %. HTTP/1.0可以獲取物理路徑信息,
GET %server.policy HTTP/1.0可以獲取安全策略配置文檔。
你也可以直接訪問GET %org/xxx/lib.class來獲取編譯好的java程序,再使用一些反編譯工具還原源代碼。 Apache ? Resin http://victim/C:%5C/
http://victim/resin-doc/viewfile/?file=index.jsp
http://victim/resin-doc/viewfile/?contextpath=/otherwebapp&servletpath=&file=WEB-INF/web.xml
http://victim/resin-doc/viewfile/?contextpath=/&servletpath=&file=WEB-INF/classes/com/webapp/app/target.class
http://victim/[path]/[device].[extension]
http://victim/%20.."web-inf
http://victim/%20
http://victim/[path]/%20.xtp WebLogic ?
Web安全測試主要圍繞幾塊進(jìn)行:
- Information Gathering:也就是一般的信息泄漏,包括異常情況下的路徑泄漏、文件歸檔查找等
- Business logic testing:業(yè)務(wù)邏輯處理攻擊,很多情況下用于進(jìn)行業(yè)務(wù)繞過或者欺騙等等
- Authentication Testing:有無驗(yàn)證碼、有無次數(shù)限制等,總之就是看能不能暴力破解或者說容不容易通過認(rèn)證,比較直接的就是“默認(rèn)口令”或者弱口令了
- Session Management Testing:會話管理攻擊在COOKIE攜帶認(rèn)證信息時(shí)最有效
- Data Validation Testing:數(shù)據(jù)驗(yàn)證最好理解了,就是SQL Injection和Cross Site Script等等
目前網(wǎng)上能夠找到許多能夠用于進(jìn)行Web測試的工具,根據(jù)不同的功能分主要有:
針對WebService測試的部分有一些尚不是很成熟的工具,如:wsbang,wschess,wsmap,wsdigger,wsfuzzer
這一部分值得一提的是,很多滲透測試團(tuán)隊(duì)都有著自己的測試工具甚至是0DAY代碼,最常見的是SQL注入工具,現(xiàn)網(wǎng)開發(fā)的注入工具(如NBSI等)目前都是針對中小企業(yè)或者是個(gè)人站點(diǎn)/數(shù)據(jù)庫進(jìn)行的,針對大型目標(biāo)系統(tǒng)使用的一些相對比較偏門的數(shù)據(jù)庫系統(tǒng)(如INFORMIX,DB2)等,基本上還不涉及或者說還不夠深入。這時(shí)各滲透測試團(tuán)隊(duì)就開發(fā)了滿足自身使用習(xí)慣的測試工具。
在針對無線環(huán)境的攻擊有:WifiZoo
4、權(quán)限提升
在前面的一些工作中,你或許已經(jīng)得到了一些控制權(quán)限,但是對于進(jìn)一步攻擊來說卻還是不夠。例如:你可能很容易的能夠獲取Oracle數(shù)據(jù)庫的訪問權(quán)限,或者是得到了UNIX(AIX,HP-UX,SUNOS)的一個(gè)基本賬號權(quán)限,但是當(dāng)你想進(jìn)行進(jìn)一步的滲透測試的時(shí)候問題就來了。你發(fā)現(xiàn)你沒有足夠的權(quán)限打開一些密碼存儲文件、你沒有辦法安裝一個(gè)SNIFFER、你甚至沒有權(quán)限執(zhí)行一些很基本的命令。這時(shí)候你自然而然的就會想到權(quán)限提升這個(gè)途徑了。
目前一些企業(yè)對于補(bǔ)丁管理是存在很大一部分問題的,他們可能壓根就沒有想過對一些服務(wù)器或者應(yīng)用進(jìn)行補(bǔ)丁更新,或者是延時(shí)更新。這時(shí)候就是滲透測試人員的好機(jī)會了。經(jīng)驗(yàn)之談:有一般權(quán)限的Oracle賬號或者AIX賬號基本上等于root,因?yàn)檫@就是現(xiàn)實(shí)生活。
5、密碼破解
有時(shí)候,目標(biāo)系統(tǒng)任何方面的配置都是無懈可擊的,但是并不是說就完全沒辦法進(jìn)入。最簡單的說,一個(gè)缺少密碼完全策略的論證系統(tǒng)就等于你安裝了一個(gè)不能關(guān)閉的防盜門。很多情況下,一些安全技術(shù)研究人員對此不屑一顧,但是無數(shù)次的安全事故結(jié)果證明,往往破壞力最大的攻擊起源于最小的弱點(diǎn),例如弱口令、目錄列表、SQL注入繞過論證等等。所以說,對于一些專門的安全技術(shù)研究人員來說,這一塊意義不大,但是對于一個(gè)ethical hacker來說,這一步驟是有必要而且絕大部分情況下是必須的。;)
目前比較好的網(wǎng)絡(luò)密碼暴力破解工具有:thc-hydra,brutus
>hydra.exe -L users.txt -P passwords.txt -o test.txt -s 2121?www.heimian.com?ftp
目前網(wǎng)絡(luò)中有一種資源被利用的很廣泛,那就是rainbow table技術(shù),說白了也就是一個(gè)HASH對應(yīng)表,有一些網(wǎng)站提供了該種服務(wù),對外宣稱存儲空間大于多少G,像rainbowcrack更是對外宣稱其數(shù)據(jù)量已經(jīng)大于1.3T。
針對此種方式對外提供在線服務(wù)的有:
當(dāng)然,有些單機(jī)破解軟件還是必不可少的:Ophcrack,rainbowcrack(國人開發(fā),贊一個(gè)),cain,L0phtCrack(破解Windows密碼),John the Ripper(破解UNIX/Linux)密碼,當(dāng)然,還少不了一個(gè)FindPass...
針對網(wǎng)絡(luò)設(shè)備的一些默認(rèn)帳號,你可以查詢http://www.routerpasswords.com/和http://www.phenoelit-us.org/dpl/dpl.html
在滲透測試過程中,一旦有機(jī)會接觸一些OFFICE文檔,且被加了密的話,那么,rixler是您馬上要去的地方,他們提供的OFFICE密碼套件能在瞬間打開OFFICE文檔(2007中我沒有試過,大家有機(jī)會測試的話請給我發(fā)一份測試結(jié)果說明,謝謝)。看來微軟有理由來個(gè)補(bǔ)丁什么的了。對于企業(yè)來說,您可以考慮使用鐵卷或者RMS了。
6、日志清除
It is not necessary actually.
7、進(jìn)一步滲透
攻入了DMZ區(qū)一般情況下我們也不會獲取多少用價(jià)值的信息。為了進(jìn)一步鞏固戰(zhàn)果,我們需要進(jìn)行進(jìn)一步的內(nèi)網(wǎng)滲透。到這一步就真的算是無所不用其及。最常用且最有效的方式就是Sniff抓包(可以加上ARP欺騙)。當(dāng)然,最簡單的你可以翻翻已入侵機(jī)器上的一些文件,很可能就包含了你需要的一些連接帳號。比如說你入侵了一臺Web服務(wù)器,那么絕大部分情況下你可以在頁面的代碼或者某個(gè)配置文件中找到連接數(shù)據(jù)庫的帳號。你也可以打開一些日志文件看一看。
除此之外,你可以直接回到第二步漏洞掃描來進(jìn)行。
四、生成報(bào)告報(bào)告中應(yīng)當(dāng)包含:
在測試過程中無可避免的可能會發(fā)生很多可預(yù)見和不可預(yù)見的風(fēng)險(xiǎn),測試方必須提供規(guī)避措施以免對系統(tǒng)造成重大的影響。以下一些可供參考:
1. 不執(zhí)行任何可能引起業(yè)務(wù)中斷的攻擊(包括資源耗竭型DoS,畸形報(bào)文攻擊,數(shù)據(jù)破壞)。
2. 測試驗(yàn)證時(shí)間放在業(yè)務(wù)量最小的時(shí)間進(jìn)行。
3. 測試執(zhí)行前確保相關(guān)數(shù)據(jù)進(jìn)行備份。
4. 所有測試在執(zhí)行前和維護(hù)人員進(jìn)行溝通確認(rèn)。
5. 在測試過程中出現(xiàn)異常情況時(shí)立即停止測試并及時(shí)恢復(fù)系統(tǒng)。
6. 對原始業(yè)務(wù)系統(tǒng)進(jìn)行一個(gè)完全的鏡像環(huán)境,在鏡像環(huán)境上進(jìn)行滲透測試。
總結(jié)
以上是生活随笔為你收集整理的网站渗透测试原理及详细过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 操作 redis
- 下一篇: 小甲鱼 OllyDbg 教程系列 (八)