① 怎麼排查這些內存泄漏
最原始的內存泄露測試
重復多次操作關鍵的可疑的路徑,從內存監控工具中觀察內存曲線,是否存在不斷上升的趨勢且不會在程序返回時明顯回落。
這種方式可以發現最基本,也是最明顯的內存泄露問題,對用戶價值最大,操作難度小,性價比極高。
MAT內存分析工具
2.1 MAT分析heap的總內存佔用大小來初步判斷是否存在泄露
在Devices 中,點擊要監控的程序。
點擊Devices視圖界面中最上方一排圖標中的「Update Heap」
點擊Heap視圖
點擊Heap視圖中的「Cause GC」按鈕
到此為止需檢測的進程就可以被監視。Heap視圖中部有一個Type叫做data object,即數據對象,也就是我們的程序中大量存在的類類型的對象。在data object一行中有一列是「Total Size」,其值就是當前進程中所有java數據對象的內存總量,一般情況下,這個值的大小決定了是否會有內存泄漏。可以這樣判斷:
進入某應用,不斷的操作該應用,同時注意觀察data object的Total Size值,正常情況下Total Size值都會穩定在一個有限的范圍內,也就是說由於程序中的的代碼良好,沒有造成對象不被垃圾回收的情況。
所以說雖然我們不斷的操作會不斷的生成很多對象,而在虛擬機不斷的進行GC的過程中,這些對象都被回收了,內存佔用量會會落到一個穩定的水平;反之如果代碼中存在沒有釋放對象引用的情況,則data object的Total Size值在每次GC後不會有明顯的回落。隨著操作次數的增多Total Size的值會越來越大,直到到達一個上限後導致進程被殺掉。
2.2 MAT分析hprof來定位內存泄露的原因所在。
這是出現內存泄露後使用MAT進行問題定位的有效手段。
A)Dump出內存泄露當時的內存鏡像hprof,分析懷疑泄露的類:
B)分析持有此類對象引用的外部對象
C)分析這些持有引用的對象的GC路徑
D)逐個分析每個對象的GC路徑是否正常
從這個路徑可以看出是一個antiRadiationUtil工具類對象持有了MainActivity的引用導致MainActivity無法釋放。此時就要進入代碼分析此時antiRadiationUtil的引用持有是否合理(如果antiRadiationUtil持有了MainActivity的context導致節目退出後MainActivity無法銷毀,那一般都屬於內存泄露了)。
2.3 MAT對比操作前後的hprof來定位內存泄露的根因所在。
為查找內存泄漏,通常需要兩個 Dump結果作對比,打開 Navigator History面板,將兩個表的 Histogram結果都添加到 Compare Basket中去
A) 第一個HPROF 文件(usingFile > Open Heap Dump ).
B)打開Histogram view.
C)在NavigationHistory view里 (如果看不到就從Window >show view>MAT- Navigation History ), 右擊histogram然後選擇Add to Compare Basket .
D)打開第二個HPROF 文件然後重做步驟2和3.
E)切換到Compare Basket view, 然後點擊Compare the Results (視圖右上角的紅色」!」圖標)。
F)分析對比結果
可以看出兩個hprof的數據對象對比結果。
通過這種方式可以快速定位到操作前後所持有的對象增量,從而進一步定位出當前操作導致內存泄露的具體原因是泄露了什麼數據對象。
注意:
如果是用 MAT Eclipse 插件獲取的 Dump文件,不需要經過轉換則可在MAT中打開,Adt會自動進行轉換。
而手機SDk Dump 出的文件要經過轉換才能被 MAT識別,Android SDK提供了這個工具 hprof-conv (位於 sdk/tools下)
首先,要通過控制台進入到你的 android sdk tools 目錄下執行以下命令:
./hprof-conv xxx-a.hprof xxx-b.hprof
例如 hprof-conv input.hprof out.hprof
此時才能將out.hprof放在eclipse的MAT中打開。
手機管家內存泄露每日監控方案
目前手機管家的內存泄露每日監控會自動運行並輸出是否存在疑似泄露的報告郵件,不論泄露對象的大小。這其中涉及的核心技術主要是AspectJ,MLD自研工具(原理是虛引用)和UIAutomator。
3.1 AspectJ插樁監控代碼
手機管家目前使用一個ant腳本加入MLD的監控代碼,並通過AspectJ的語法實現插樁。
使用AspectJ的原因是可以靈活分離出項目源碼與監控代碼,通過不同的編譯腳本打包出不同用途的安裝測試包:如果測試包是經過Aspect插樁了MLD監控代碼的話,那麼運行完畢後會輸出指定格式的日誌文件,作為後續分析工作的數據基礎。
3.2 MLD實現監控核心邏輯
這是手機管家內的一個工具工程,正式打包不會打入,BVT等每日監控測試包可以打入。打入後可以通過諸如addObject介面(通過反射去檢查是否含有該工具並調用)來加入需要監控的檢測對象,這個工具會自動在指定時機(如退出管家)去檢測該對象是否發生泄漏。
這個內存泄露檢測的基本原理是:
虛引用主要用來跟蹤對象被垃圾回收器回收的活動。虛引用必須和引用隊列(ReferenceQueue)聯合使用(在虛引用函數就必須關聯指定)。當垃圾回收器准備回收一個對象時,如果發現它還有虛引用,就會在回收對象的內存之前,自動把這個虛引用加入到與之關聯的引用隊列中。程序可以通過判斷引用隊列中是否已經加入了虛引用,來了解被引用的對象是否將要被垃圾回收。
基於以上原理,MLD工具在調用介面addObject加入監控類型時,會為該類型對象增加一個虛引用,注意虛引用並不會影響該對象被正常回收。因此可以在ReferenceQueue引用隊列中統計未被回收的監控對象是否超過指定閥值。
利用PhantomReferences(虛引用)和ReferenceQueue(引用隊列),當PhantomReferences被加入到相關聯的ReferenceQueue時,則視該對象已經或處於垃圾回收器回收階段了。
MLD監控原理核心
目前手機管家已對大部分類完成內存泄露的監控,包括各種activity,service和view頁面等,務求在技術上能帶給用戶最順滑的產品體驗。
接下來簡單介紹下這個工具的判斷核心。根據虛引用監控到的內存狀態,需要通過多種策略來判斷是否存在內存泄露。
(1)最簡單的方式就是直接在加入監控時就為該類型設定最大存在個數,舉個例子,各個DAO對象理論上只能存在最多一個,因此一旦出現兩個相同的DAO,那一般都是泄露了;
(2)第二種情況是在頁面退出程序退出時,檢索gc後無法釋放的對象列表,這些對象類型也會成為內存泄露的懷疑對象;
(3)最後一種情況比較復雜,基本原理是根據歷史操作判斷對象數量的增長幅度。根據對象的增長通過最小二乘法擬合出該對象類型的增長速度,如果超過經驗值則會列入疑似泄露的對象列表。
3.3 UIAutomator完成重復操作的自動化
最後一步就很簡單了。這么多反復的UI操作,讓人工來點就太浪費人力了。我們使用UIAutomator來進行自動化操作測試。
目前手機管家的每日自動化測試已覆蓋各個功能的主路徑,並通過配置文件的方式來靈活驅動用例的增刪改查,最大限度保證了隨著版本推移用例的復用價值。
至此手機管家的內存泄露測試方案介紹完畢,也歡迎各路牛人交流溝通更多更強的內存泄露工具盒方案!
騰訊Bugly簡介
Bugly是騰訊內部產品質量監控平台的外發版本,其主要功能是App發布以後,對用戶側發生的Crash以及卡頓現象進行監控並上報,讓開發同學可以第一時間了解到App的質量情況,及時機型修改。目前騰訊內部所有的產品,均在使用其進行線上產品的崩潰監控。
② 一個完整的滲透測試流程,分為那幾塊,每一塊有哪些內容
包含以下幾個流程:
信息收集
第一步做的就是信息收集,根據網站URL可以查出一系列關於該網站的信息。通過URL我們可以查到該網站的IP、該網站操作系統、腳本語言、在該伺服器上是否還有其他網站等等一些列的信息。
漏洞探測
當我們收集到了足夠多的信息之後,我們就要開始對網站進行漏洞探測了。探測網站是否存在一些常見的Web漏洞,比如:SQL注入 。
漏洞利用
探測到了該網站存在漏洞之後,就要對該漏洞進行利用了。不同的漏洞有不同的利用工具,很多時候,通過一個漏洞我們很難拿到網站的webshell,我們往往需要結合幾個漏洞來拿webshell。
內網滲透
當我們能跟內網主機進行通信後,我們就要開始進行內網滲透了。可以先使用nmap對內網主機進行掃描,探測在線的主機,並且探測其使用的操作系統、開放的埠等信息。
內網中也有可能存在供內網使用的內網伺服器,可以進一步滲透拿下其許可權。
痕跡清除
達到了目的之後,有時候只是為了黑入網站掛黑頁,炫耀一下;或者在網站留下一個後門,作為肉雞,沒事的時候上去溜達溜達;亦或者掛入挖礦木馬。
撰寫滲透測試保告
在完成了滲透測試之後,就需要對這次滲透測試撰寫滲透測試報告了。明確的寫出哪裡存在漏洞,以及漏洞修補的方法。以便於網站管理員根據我們的滲透測試報告修補這些漏洞和風險,防止被黑客攻擊。
③ 滲透測試應該怎麼做呢
滲透測試步驟
明確目標
· 確定范圍:測試目標的范圍,ip,域名,內外網。
· 確定規則:能滲透到什麼程度,時間?能否修改上傳?能否提權等。
· 確定需求:web應用的漏洞、業務邏輯漏洞、人員許可權管理漏洞等等。
信息收集
方式:主動掃描,開放搜索等。
開放搜索:利用搜索引擎獲得,後台,未授權頁面,敏感url等。
漏洞探索
利用上一步中列出的各種系統,應用等使用相應的漏洞。
方法:
1.漏掃,awvs,IBM appscan等。
2.結合漏洞去exploit-db等位置找利用。
3.在網上尋找驗證poc。
內容:
系統漏洞:系統沒有及時打補丁
Websever漏洞:Websever配置問題
Web應用漏洞:Web應用開發問題
其它埠服務漏洞:各種21/8080(st2)/7001/22/3389
通信安全:明文傳輸,token在cookie中傳送等。
漏洞驗證
將上一步中發現的有可能可以成功利用的全部漏洞都驗證一遍,結合實際情況,搭建模擬環境進行試驗。成功後再應用於目標中。
自動化驗證:結合自動化掃描工具提供的結果
手工驗證,根據公開資源進行驗證
試驗驗證:自己搭建模擬環境進行驗證
登陸猜解:有時可以嘗試猜解一下登陸口的賬號密碼等信息
業務漏洞驗證:如發現業務漏洞,要進行驗證
公開資源的利用
信息分析
為下一步實施滲透做准備:
精準打擊:准備好上一步探測到的漏洞的exp,用來精準打擊
繞過防禦機制:是否有防火牆等設備,如何繞過
定製攻擊路徑:最佳工具路徑,根據薄弱入口,高內網許可權位置,最終目標
繞過檢測機制:是否有檢測機制,流量監控,殺毒軟體,惡意代碼檢測等
攻擊代碼:經過試驗得來的代碼,包括不限於xss代碼,sql注入語句等
獲取所需
實施攻擊:根據前幾步的結果,進行攻擊
獲取內部信息:基礎設施
進一步滲透:內網入侵,敏感目標
持續性存在:一般我們對客戶做滲透不需要。rookit,後門,添加管理賬號,駐扎手法等
清理痕跡:清理相關日誌,上傳文件等
信息整理
整理滲透工具:整理滲透過程中用到的代碼,poc,exp等
整理收集信息:整理滲透過程中收集到的一切信息
整理漏洞信息:整理滲透過程中遇到的各種漏洞,各種脆弱位置信息
形成報告
按需整理:按照之前第一步跟客戶確定好的范圍,需求來整理資料,並將資料形成報告
補充介紹:要對漏洞成因,驗證過程和帶來危害進行分析
修補建議:當然要對所有產生的問題提出合理高效安全的解決辦法
④ java 如何判斷文件路徑是否存在
exists
public boolean exists()測試此抽象路徑名表示的文件或目錄是否存在回。
返回:
當且僅當答此抽象路徑名表示的文件或目錄存在時,返回 true;否則返回 false
isFile
public boolean isFile()測試此抽象路徑名表示的文件是否是一個標准文件。如果該文件不是一個目錄,並且滿足其他與系統有關的標准,那麼該文件是標准 文件。由 Java 應用程序創建的所有非目錄文件一定是標准文件。
返回:
當且僅當此抽象路徑名表示的文件存在且 是一個標准文件時,返回 true;否則返回 false
⑤ 如何對網站進行滲透測試和漏洞掃描
零、前言
滲透測試在未得到被測試方授權之前依據某些地區法律規定是違法行為。 這里我們提供的所有滲透測試方法均為(假設為)合法的評估服務,也就是通常所說的道德黑客行為(Ethical hacking),因此我們這里的所有讀者應當都是Ethical Hackers,如果您還不是,那麼我希望您到過這里後會成為他們中的一員 ;)
這里,我還想對大家說一些話:滲透測試重在實踐,您需要一顆永不言敗的心和一個有著活躍思維的大腦。不是說您將這一份文檔COPY到您網站上或者保存到本地電腦您就會了,即使您將它列印出來沾點辣椒醬吃了也不行,您一定要根據文檔一步一步練習才行。而且測試重在用腦,千萬別拿上一兩個本文中提到的工具一陣亂搞,我敢保證:互聯網的安全不為因為這樣而更安全。祝您好運。。。
一、簡介
什麼叫滲透測試?
滲透測試最簡單直接的解釋就是:完全站在攻擊者角度對目標系統進行的安全性測試過程。
進行滲透測試的目的?
了解當前系統的安全性、了解攻擊者可能利用的途徑。它能夠讓管理人員非常直觀的了解當前系統所面臨的問題。為什麼說叫直觀呢?就像Mitnick書裡面提到的那樣,安全管理(在這里我們改一下,改成安全評估工作)需要做到面面俱到才算成功,而一位黑客(滲透測試)只要能通過一點進入系統進行破壞,他就算是很成功的了。
滲透測試是否等同於風險評估?
不是,你可以暫時理解成滲透測試屬於風險評估的一部分。事實上,風險評估遠比滲透測試復雜的多,它除滲透測試外還要加上資產識別,風險分析,除此之外,也還包括了人工審查以及後期的優化部分(可選)。
已經進行了安全審查,還需要滲透測試嗎?
如果我對您說:嘿,中國的現有太空理論技術通過計算機演算已經能夠證明中國完全有能力實現宇航員太空漫步了,沒必要再發射神8了。您能接受嗎?
滲透測試是否就是黑盒測試?
否,很多技術人員對這個問題都存在這個錯誤的理解。滲透測試不只是要模擬外部黑客的入侵,同時,防止內部人員的有意識(無意識)攻擊也是很有必要的。這時,安全測試人員可以被告之包括代碼片段來內的有關於系統的一些信息。這時,它就滿足灰盒甚至白盒測試。
滲透測試涉及哪些內容?
技術層面主要包括網路設備,主機,資料庫,應用系統。另外可以考慮加入社會工程學(入侵的藝術/THE ART OF INTRUSION)。
滲透測試有哪些不足之處?
主要是投入高,風險高。而且必須是專業的Ethical Hackers才能相信輸出的最終結果。
你說的那麼好,為什麼滲透測試工作在中國開展的不是很火熱呢?
我只能說:會的,一定會的。滲透測試的關鍵在於沒法證明你的測試結果就是完善的。用戶不知道花了錢證明了系統有問題以後,自己的安全等級到了一個什麼程序。但是很顯然,用戶是相信一個專業且經驗豐富的安全團隊的,這個在中國問題比較嚴重。在我接觸了一些大型的安全公司進行的一些滲透測試過程來看,測試人員的水平是對不住開的那些價格的,而且從測試過程到結果報表上來看也是不負責的。我估計在三年以後,這種情況會有所改觀,到時一方面安全人員的技術力量有很大程度的改觀,另一方面各企業對滲透測試會有一個比較深刻的理解,也會將其做為一種IT審計的方式加入到開發流程中去。滲透測試的專業化、商業化會越來越成熟。
二、制定實施方案
實施方案應當由測試方與客戶之間進行溝通協商。一開始測試方提供一份簡單的問卷調查了解客戶對測試的基本接收情況。內容包括但不限於如下:
目標系統介紹、重點保護對象及特性。
是否允許數據破壞?
是否允許阻斷業務正常運行?
測試之前是否應當知會相關部門介面人?
接入方式?外網和內網?
測試是發現問題就算成功,還是盡可能的發現多的問題?
滲透過程是否需要考慮社會工程?
。。。
在得到客戶反饋後,由測試方書寫實施方案初稿並提交給客戶,由客戶進行審核。在審核完成後,客戶應當對測試方進行書面委託授權。這里,兩部分文檔分別應當包含如下內容:
實施方案部分:
...
書面委託授權部分:
...
三、具體操作過程
1、信息收集過程
網路信息收集:
在這一部還不會直接對被測目標進行掃描,應當先從網路上搜索一些相關信息,包括Google Hacking, Whois查詢, DNS等信息(如果考慮進行社會工程學的話,這里還可以相應從郵件列表/新聞組中獲取目標系統中一些邊緣信息如內部員工帳號組成,身份識別方式,郵件聯系地址等)。
1.使用whois查詢目標域名的DNS伺服器
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.搜索指定站點關鍵字site。你可以搜索具體的站點如site:www.nosec.org。使用site:nosec.org可以搜索該域名下的所有子域名的頁面。甚至可以使用site:org.cn來搜索中國政府部門的網站。
2.搜索在URL網址中的關鍵字inurl。比如你想搜索帶參數的站點,你可以嘗試用inurl:asp?id=
3.搜索在網頁標題中的關鍵字intitle。如果你想搜索一些登陸後台,你可以嘗試使用intitle:"admin login"
目標系統信息收集:
通過上面一步,我們應當可以簡單的描繪出目標系統的網路結構,如公司網路所在區域,子公司IP地址分布,VPN接入地址等。這里特別要注意一些比較偏門的HOST名稱地址,如一些backup開頭或者temp開關的域名很可能就是一台備份伺服器,其安全性很可能做的不夠。
從獲取的地址列表中進行系統判斷,了解其組織架構及操作系統使用情況。最常用的方法的是目標所有IP網段掃描。
埠/服務信息收集:
這一部分已經可以開始直接的掃描操作,涉及的工具包括:nmap,thc-amap
1.我最常使用的參數
nmap -sS -p1-10000 -n -P0 -oX filename.xml --open -T5 <ip address>
應用信息收集:httprint,SIPSCAN,smap
這里有必要將SNMP拿出來單獨說一下,因為目前許多運營商、大型企業內部網路的維護台通過SNMP進行數據傳輸,大部分情況是使用了默認口令的,撐死改了private口令。這樣,攻擊者可以通過它收集到很多有效信息。snmp-gui,HiliSoft MIB Browser,mibsearch,net-snmp都是一些很好的資源。
2、漏洞掃描
這一步主要針對具體系統目標進行。如通過第一步的信息收集,已經得到了目標系統的IP地址分布及對應的域名,並且我們已經通過一些分析過濾出少許的幾個攻擊目標,這時,我們就可以針對它們進行有針對性的漏洞掃描。這里有幾個方面可以進行:
針對系統層面的工具有:ISS, Nessus, SSS, Retina, 天鏡, 極光
針對WEB應用層面的工具有:AppScan, Acunetix Web Vulnerability Scanner, WebInspect, Nstalker
針對資料庫的工具有:ShadowDatabaseScanner, NGSSQuirreL
針對VOIP方面的工具有:PROTOS c07 sip(在測試中直接用這個工具轟等於找死)以及c07 h225, Sivus, sipsak等。
事實上,每個滲透測試團隊或多或少都會有自己的測試工具包,在漏洞掃描這一塊針對具體應用的工具也比較個性化。
3、漏洞利用
有時候,通過服務/應用掃描後,我們可以跳過漏洞掃描部分,直接到漏洞利用。因為很多情況下我們根據目標服務/應用的版本就可以到一些安全網站上獲取針對該目標系統的漏洞利用代碼,如milw0rm, securityfocus,packetstormsecurity等網站,上面都對應有搜索模塊。實在沒有,我們也可以嘗試在GOOGLE上搜索「應用名稱 exploit」、「應用名稱 vulnerability」等關鍵字。
當然,大部分情況下你都可以不這么麻煩,網路中有一些工具可供我們使用,最著名的當屬metasploit了,它是一個開源免費的漏洞利用攻擊平台。其他的多說無益,您就看它從榜上無名到沖進前五(top 100)這一點來說,也能大概了解到它的威力了。除此之外,如果您(您們公司)有足夠的moeny用於購買商用軟體的話,CORE IMPACT是相當值得考慮的,雖然說價格很高,但是它卻是被業界公認在滲透測試方面的泰山北斗,基本上測試全自動。如果您覺得還是接受不了,那麼您可以去購買CANVAS,據說有不少0DAY,不過它跟metasploit一樣,是需要手動進行測試的。最後還有一個需要提及一下的Exploitation_Framework,它相當於一個漏洞利用代碼管理工具,方便進行不同語言,不同平台的利用代碼收集,把它也放在這里是因為它本身也維護了一個exploit庫,大家參考著也能使用。
上面提到的是針對系統進行的,在針對WEB方面,注入工具有NBSI, OWASP SQLiX, SQL Power Injector, sqlDumper, sqlninja, sqlmap, Sqlbftools, priamos, ISR-sqlget***等等。
在針對資料庫方面的工具有:
資料庫 工具列表 Oracle(1521埠): 目前主要存在以下方面的安全問題:
1、TNS監聽程序攻擊(sid信息泄露,停止服務等)
2、默認賬號(default password list)
3、SQL INJECTION(這個與傳統的意思還不太一樣)
4、緩沖區溢出,現在比較少了。 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伺服器方面的工具有:
WEB伺服器 工具列表 IIS IISPUTSCANNER Tomcat 想起/admin和/manager管理目錄了嗎?另外,目錄列表也是Tomcat伺服器中最常見的問題。比如5.*版本中的http://127.0.0.1/;index.jsp
http://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安全測試主要圍繞幾塊進行:
Information Gathering:也就是一般的信息泄漏,包括異常情況下的路徑泄漏、文件歸檔查找等
Business logic testing:業務邏輯處理攻擊,很多情況下用於進行業務繞過或者欺騙等等
Authentication Testing:有無驗證碼、有無次數限制等,總之就是看能不能暴力破解或者說容不容易通過認證,比較直接的就是「默認口令」或者弱口令了
Session Management Testing:會話管理攻擊在COOKIE攜帶認證信息時最有效
Data Validation Testing:數據驗證最好理解了,就是SQL Injection和Cross Site Script等等
目前網上能夠找到許多能夠用於進行Web測試的工具,根據不同的功能分主要有:
枚舉(Enumeration): DirBuster, http-dir-enum, wget
基於代理測試類工具:paros, webscarab, Burp Suite
針對WebService測試的部分有一些尚不是很成熟的工具,如:wsbang,wschess,wsmap,wsdigger,wsfuzzer
這一部分值得一提的是,很多滲透測試團隊都有著自己的測試工具甚至是0DAY代碼,最常見的是SQL注入工具,現網開發的注入工具(如NBSI等)目前都是針對中小企業或者是個人站點/資料庫進行的,針對大型目標系統使用的一些相對比較偏門的資料庫系統(如INFORMIX,DB2)等,基本上還不涉及或者說還不夠深入。這時各滲透測試團隊就開發了滿足自身使用習慣的測試工具。
在針對無線環境的攻擊有:WifiZoo
4、許可權提升
在前面的一些工作中,你或許已經得到了一些控制許可權,但是對於進一步攻擊來說卻還是不夠。例如:你可能很容易的能夠獲取Oracle資料庫的訪問許可權,或者是得到了UNIX(AIX,HP-UX,SUNOS)的一個基本賬號許可權,但是當你想進行進一步的滲透測試的時候問題就來了。你發現你沒有足夠的許可權打開一些密碼存儲文件、你沒有辦法安裝一個SNIFFER、你甚至沒有許可權執行一些很基本的命令。這時候你自然而然的就會想到許可權提升這個途徑了。
目前一些企業對於補丁管理是存在很大一部分問題的,他們可能壓根就沒有想過對一些伺服器或者應用進行補丁更新,或者是延時更新。這時候就是滲透測試人員的好機會了。經驗之談:有一般許可權的Oracle賬號或者AIX賬號基本上等於root,因為這就是現實生活。
5、密碼破解
有時候,目標系統任何方面的配置都是無懈可擊的,但是並不是說就完全沒辦法進入。最簡單的說,一個缺少密碼完全策略的論證系統就等於你安裝了一個不能關閉的防盜門。很多情況下,一些安全技術研究人員對此不屑一顧,但是無數次的安全事故結果證明,往往破壞力最大的攻擊起源於最小的弱點,例如弱口令、目錄列表、SQL注入繞過論證等等。所以說,對於一些專門的安全技術研究人員來說,這一塊意義不大,但是對於一個ethical hacker來說,這一步驟是有必要而且絕大部分情況下是必須的。;)
目前比較好的網路密碼暴力破解工具有:thc-hydra,brutus
>hydra.exe -L users.txt -P passwords.txt -o test.txt -s 2121 www.heimian.com ftp
目前網路中有一種資源被利用的很廣泛,那就是rainbow table技術,說白了也就是一個HASH對應表,有一些網站提供了該種服務,對外宣稱存儲空間大於多少G,像rainbowcrack更是對外宣稱其數據量已經大於1.3T。
針對此種方式對外提供在線服務的有:
網址 描述 rainbowcrack 裡面對應了多種加密演算法的HASH。 http://gdataonline.com/seekhash.php http://www.milw0rm.com/cracker/info.php http://www.hashchecker.com/?_sls=search_hash http://bokehman.com/cracker/ http://passcracking.ru/ http://www.md5.org.cn http://www.cmd5.com/ 數據量全球第一,如果本站無法破解,那麼你只能去拜春哥...
當然,有些單機破解軟體還是必不可少的:Ophcrack,rainbowcrack(國人開發,贊一個),cain,L0phtCrack(破解Windows密碼),John the Ripper(破解UNIX/LINUX)密碼,當然,還少不了一個FindPass...
針對網路設備的一些默認帳號,你可以查詢http://www.routerpasswords.com/和http://www.phenoelit-us.org/dpl/dpl.html
在滲透測試過程中,一旦有機會接觸一些OFFICE文檔,且被加了密的話,那麼,rixler是您馬上要去的地方,他們提供的OFFICE密碼套件能在瞬間打開OFFICE文檔(2007中我沒有試過,大家有機會測試的話請給我發一份測試結果說明,謝謝)。看來微軟有理由來個補丁什麼的了。對於企業來說,您可以考慮使用鐵卷或者RMS了。
6、日誌清除
It is not necessary actually.
7、進一步滲透
攻入了DMZ區一般情況下我們也不會獲取多少用價值的信息。為了進一步鞏固戰果,我們需要進行進一步的內網滲透。到這一步就真的算是無所不用其及。最常用且最有效的方式就是Sniff抓包(可以加上ARP欺騙)。當然,最簡單的你可以翻翻已入侵機器上的一些文件,很可能就包含了你需要的一些連接帳號。比如說你入侵了一台Web伺服器,那麼絕大部分情況下你可以在頁面的代碼或者某個配置文件中找到連接資料庫的帳號。你也可以打開一些日誌文件看一看。
除此之外,你可以直接回到第二步漏洞掃描來進行。
四、生成報告
報告中應當包含:
薄弱點列表清單(按照嚴重等級排序)
薄弱點詳細描述(利用方法)
解決方法建議
參與人員/測試時間/內網/外網
五、測試過程中的風險及規避
在測試過程中無可避免的可能會發生很多可預見和不可預見的風險,測試方必須提供規避措施以免對系統造成重大的影響。以下一些可供參考:
1. 不執行任何可能引起業務中斷的攻擊(包括資源耗竭型DoS,畸形報文攻擊,數據破壞)。
2. 測試驗證時間放在業務量最小的時間進行。
3. 測試執行前確保相關數據進行備份。
4. 所有測試在執行前和維護人員進行溝通確認。
5. 在測試過程中出現異常情況時立即停止測試並及時恢復系統。
6. 對原始業務系統進行一個完全的鏡像環境,在鏡像環境上進行滲透測試。
⑥ c#中如何檢測文件路徑是否存在
stringpath=@"d:A.txt";
if(File.Exists(path))
{
Console.WriteLine("文件存在");
}