01-基礎部分(上)
一、知識科普
簡介
本人是一名小白,以下是我的學習筆記,歡迎大家來補充和糾正。我們一起共同努力。
這是我的博客:https://honkerdynamo.wordpress.com/
黑客
算是比較好的黑客,大部分都是申請獲得授權之后才開始滲透測試的。
黑客可以說包含所有網絡安全專業的測試人員,只是大部分黑客是遵守法律通過授權來開展滲透測試的測試人員。
駭客
屬于未經允許開展滲透測試的壞黑客。
駭客來自英文Hacker,即闖入計算機系統/軟件,后來被稱為Cracker的一類人。他們從事惡意破解商業軟件、惡意入侵別人的服務器、計算機、網站等事務。
他們未必具有很高的技術,通常是一些簡單的攻擊手段去打到一些炫耀、惡作劇、搞破壞的目的。
紅客
紅客(Honker)是中國大陸具有政治積極行動主義和激進民族主義激進民族主義的黑客。反對者一般認為它是一種網路激進主義。紅客以維護國家利益,維護正義,不利用網路技術入侵自己國家的電腦,為祖國爭光為宗旨。
中國紅客聯盟是中國的一個紅客組織,英文簡寫為HUC。該組織成立于2000年底,由中國黑客Lion牽頭組建,吸納了全國眾多黑客。其成員曾達到8萬多人,是世界排名第五的黑客組織。該組織主要反擊國外一些黑客的攻擊,其中以2001年反攻美國白宮網站最為著名。
二、黑客傳奇
- 理查德·馬修·斯托曼:傳統型大黑客,斯托曼在1971年受聘成為美國麻省理工學院人工智能實驗室程序員。
- 史蒂夫·我茲尼亞克:蘋果計算機創辦人之一,現任職小學教師。
- 林納斯·托瓦茲:他與1991年開發了著名的Linux系統內核,當時他是芬蘭赫爾辛基大學計算機系的學生。
- 肯·湯普生和丹尼斯·利奇:貝爾實驗室的計算機科學操作組程序員。兩人在1969年發明了Unix操作系統。
三、專業術語
1、腳本
腳本語言(英語:Scripting language)是為了縮短傳統的“編寫、編譯、鏈接、運行”(edit-compile-link-run)過程而創建的計算機編程語言。
ASP腳本: ASP全稱是Active Server Pages(動態服務器頁面)。是一項微軟公司的技術。
JSP腳本: JSP全稱是Java Server Pages,是一種動態網頁開發技術。它使用JSP標簽在HTML網頁中插入java代碼。標簽通常以<%開頭以%>結束。
PHP腳本: PHP全稱是PHP : Hypertext Preprocessor,即"PHP : 超文本預處理器"是一種通用開源的腳本語言。
2、Web網頁
web(World Wide Web)即全球廣域網,也稱為萬維網,它是一種基于超文本和HTTP的、全球性的、動態交互的、跨平臺的分布式圖形信息系統。是建立在Internet上的一種網絡服務,為瀏覽者在Internet上查找和瀏覽信息提供了圖形化的、易于訪問的直觀界面,其中的文檔及超級鏈接將Internet上的信息節點組織成一個互為關聯的網狀結構。
HTML語言:超文本標記語言(英語:Hyper Text Markup Language,簡稱:HTML)是一種用于創建網頁的標準標記語言。HTML是一種基礎技術,常與CSS、JavaScript一起被眾多網站用于設計網頁、網頁應用程序一級移動應用程序的用戶界面。網頁瀏覽器可以讀取HTML文件,并將其渲染成可視化網頁。HTML描述了一個網站的結構語義隨著線索的呈現,使之成為一種標記語言而非編程語言。
HTML5語言:HTML5是HTML最新的修訂版本,由萬維網聯盟(W3C)于2014年10月完成標準制定。目標是取代1999年所制定的HTML 4.01和XHTML 1.0標準,以期能在網際網路應用迅速發展的時候,使網路標準達到符合當代的網路需求。廣義論及HTML5時,實際指的是包括HTML、CSS和JavaScript在內的一套技術組合。它希望能夠減少網頁瀏覽器對于需要外掛程式的豐富性網路應用服務(Plug-in-Based Rich Internet Application,RIA),例如:Adobe Flash、Microsoft Silverlight與Oracle JavaFX的需求,并且提供更多能有效加強網路應用的標準集。
3、HTTP/HTTPS協議
HTTP/HTTPS協議都是瀏覽器和服務器之間的通訊服務。專門進行數據傳輸工作。
HTTP協議:超文本傳輸協議(英語:Hyper Text Transfer Protocol,縮寫:HTTP)是一種用于分布式、協作式和超媒體信息系統的應用層協議。HTTP是萬維網的數據通信的基礎。設計HTTP最初的目的是為了提供一種發布和接收HTML頁面的方法。通過HTTP或者HTTPS協議請求的資源由統一資源標識符(Uniform Resource Identifiers,URI)來標識。
HTTPS協議:超文本傳輸安全協議(英語:Hyper Text Transfer Protocol Secure,縮寫:HTTPS;常稱為HTTP over TLS、HTTP over SSL或HTTP Secure)是一種通過計算機網絡進行安全通信的傳輸協議。HTTPS經由HTTP進行通信,但利用SSL/TLS來加密數據包。HTTPS開發的主要目的,是提供對網站服務器的身份認證,保護交換資料的隱私與完整性。這個協議由網景公司(Netscape)在1994年首次提出,隨后擴展到互聯網上。
CMS(B/S):內容管理系統(英語:content management system ,縮寫為 CMS)是指在一個合作模式下,用于管理工作流程的一套制度。該系統可應用于手工操作中,也可以應用到電腦或網絡里。作為一種中央儲存器(central repository),內容管理系統可將相關內容集中儲存并具有群組管理、版本控制等功能。版本控制是內容管理系統的一個主要優勢。內容管理系統在物品或文案或數據的存儲、掌管、修訂(盤存)、語用充實、文檔發布等方面有著廣泛的應用。現在流行的開源CMS系統有WordPress、Joomla!、Drupal、Xoops、CmsTop等。
5、加密
在密碼學中,加密(英語:Encryption)是將明文信息改變為難以讀取的密文內容,使之不可讀的過程。只有擁有解密方法的對象,經由解密過程,才能將密文還原為正常可讀的內容。理想情況下,只有經授權的人員能夠讀取密文所要傳達的信息。加密本身并不能防止信息傳輸被截取,但加密能防止截取者理解其內容。因為種種技術原因,加密方法通常使用一個通過算法生成的偽隨機密鑰。雖然任何加密后的消息都可能被破解,但對于一個良好的加密算法而言,破解需要相當多的技術和算力。授權讀取信息的人可以輕松通過發信人所提供的密鑰解密信息,但未經授權的人員則不行。密碼學歷史中有眾多加密方法;早期的加密方法常用于軍事通訊。從此開始,現代計算中也出現了眾多加密技術,并且加密在現代計算中也變得越來越常見。現代的加密方式通常使用公鑰或對稱密鑰。現代加密技術依賴現代計算機在破解密鑰上并不高效的事實來保證其安全性。
MD5加密:MD5消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數,可以產生出一個128位(16字節)的散列值(hash value),用于確保信息傳輸完整一致。MD5由美國密碼學家羅納德·李維斯特(Ronald Linn Rivest)設計,于1992年公開,用以取代MD4算法。這套算法的程序在 RFC 1321 中被加以規范。將數據(如一段文字)運算變為另一固定長度值,是散列算法的基礎原理。
SHA-2加密:SHA-2,名稱來自于安全散列算法2(英語:Secure Hash Algorithm 2)的縮寫,一種密碼散列函數算法標準,由美國國家安全局研發,由美國國家標準與技術研究院(NIST)在2001年發布。屬于SHA算法之一,是SHA-1的后繼者。其下又可再分為六個不同的算法標準,包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。
6、肉雞:僵尸電腦(英語:Zombie computer),簡稱:”僵尸(zombie)“,又稱”肉雞“,是指接入互聯網受到惡意軟件感染后,受控于黑客的電腦。其可以隨時按照黑客的命令與控制(C&C,command and control)指令展開拒絕服務(Dos)攻擊或發送垃圾信息。通常,一部被侵占的電腦只是僵尸網絡里面眾多中的一個,會被用來去運行一連傳的或者遠端控制的惡意程序。一般電腦的擁有者都沒有察覺到自己的電腦系統已經被”僵尸化“,就仿佛是沒有自主意思的僵尸一般。
7、抓雞:“抓雞”是黑客界的一種流行語言.這里所說的"雞",是指電腦肉雞 網絡攝像頭 路由器 等聯網設備。這就是受別人控制的遠程聯網設備。"肉雞"可以是各種系統,如2000,2003,2008,xp,win7,win8,linux等;更可以是一家公司\企業\學校甚至是政府軍隊的服務器。黑客們經常用80,8080,135,445,1433,1521,3306,3389 ,4899,5900之類的端口來抓雞。肉雞一般被黑客以不同的系統 硬件配置 聯網帶寬等條件區分不同的價格批發給需要的人。說到肉雞,就要講到遠程控制。遠程控制軟件例如灰鴿子、上興、鳳凰ABC、ghost、白金等等。肉雞不是吃的那種,是中了木馬,或者留了后門,可以被遠程操控的機器,許多人把有WEBSHELL 權限的可執行網頁腳本也叫肉雞。誰都不希望自己的設備被他人控制,但是很多人的設備是幾乎不設防的,很容易被遠程攻擊者完全控制。你的設備就因此成為別人砧板上的肉,別人想怎么吃就怎么吃,肉雞(機)一名由此而來。通常情況下跟互聯網連接的設備都存在有弱口令,這樣就給黑客有可趁之機,通過工具批量掃描破解入侵這樣你就成為黑客手中的“肉雞”,他們這樣的方式也就稱之為“抓雞”。
8、WebShell: webshell就是以asp、php、jsp或者cgi等網頁文件形式存在的一種代碼執行環境,也可以將其稱做為一種網頁后門。黑客在入侵了一個網站后,通常會將asp或php后門文件與網站服務器WEB目錄下正常的網頁文件混在一起,然后就可以使用瀏覽器來訪問asp或者php后門,得到一個命令執行環境,以達到控制網站服務器的目的。
9、漏洞:
漏洞或脆弱性(英語:Vulnerability),是指計算機系統安全方面的缺陷,使得系統或其應用數據的保密性、完整性、可用性、訪問控制等面臨威脅。
-
常見漏洞
- 零日漏洞:在電腦領域中,零日漏洞或零時差漏洞(英語:zero-day vulnerability、0-day vulnerability)通常是指還沒有補丁的安全漏洞,而零日攻擊或零時差攻擊(英語:zero-day exploit、zero-day attack)則是指利用這種漏洞進行的攻擊。提供該漏洞細節或者利用程序的人通常是該漏洞的發現者。零日漏洞的利用程序對網絡安全具有巨大威脅,因此零日漏洞不但是黑客的最愛,掌握多少零日漏洞也成為評價黑客技術水平的一個重要參數。
- SQL注入:(英語:SQL injection),也稱SQL注入或SQL注碼,是發生于應用程序與數據庫層的安全漏洞。簡而言之,是在輸入的字符串之中注入SQL指令,在設計不良的程序當中忽略了字符檢查,那么這些注入進去的惡意指令就會被數據庫服務器誤認為是正常的SQL指令而運行,因此遭到破壞或是入侵。
- 緩沖區溢出:(buffer overflow),在電腦學上是指針對程序設計缺陷,向程序輸入緩沖區寫入使之溢出的內容(通常是超過緩沖區能保存的最大數據量的數據),從而破壞程序運行、趁著中斷之際并獲取程序乃至系統的控制權。
- 跨站腳本:(英語:Cross-site scripting,通常簡稱為:XSS)是一種網站應用程序的安全漏洞攻擊,是代碼注入的一種。它允許惡意用戶將代碼注入到網頁上,其他用戶在觀看網頁時就會受到影響。這類攻擊通常包含了HTML以及用戶端腳本語言。
- 死亡之ping:,(英文:ping of death, POD),是一種向目標電腦發送錯誤封包的或惡意的ping指令的攻擊方式。通常,一次ping大小為32字節(若考慮IP標頭則為84字節)。在當時,大部分電腦無法處理大于IPv4最大封包大小(65,535字節)的ping封包。因此發送這樣大小的ping可以令目標電腦崩潰。
- ARP欺騙:(英語:ARP spoofing),又稱ARP毒化(ARP poisoning,網絡上多譯為ARP病毒)或ARP攻擊,是針對以太網地址解析協議(ARP)的一種攻擊技術。此種攻擊可讓攻擊者獲取局域網上的數據包甚至可篡改數據包,且可讓網絡上特定電腦或所有電腦無法正常連線。最早探討ARP欺騙的文章是由Yuri Volobuev所寫的《ARP與ICMP轉向游戲》(ARP and ICMP redirection games)。
- FREAK缺陷:(全稱:Factoring RSA Export Keys,中文:分解RSA出口級密鑰)是SSL/TLS協議中的密碼學安全缺陷。20世紀90年代,此缺陷隨著美國加密出口法規的出臺而引入。
- Badlock:Badlock是于2016年4月12日披露的安全漏洞,其影響Windows和Samba服務器所支持的安全帳戶管理器(SAM)和本地安全認證(域策略)(LSAD)遠程協議。
10、一句話【木馬】:一句話木馬短小精悍,而且功能強大,隱蔽性非常好,在入侵中始終扮演著強大的作用。
黑客在注冊信息的電子郵箱或者個人主頁等中插入類似如下代碼:
<%execute request("value")%>
其中value是值,所以你可以更改自己的值,前面的request就是獲取這個值
<%eval request("value")%>
現在比較多見的,而且字符少,對表單字數有限制的地方特別的實用。
當知道了數據庫的URL,就可以利用本地一張網頁進行連接得到Webshell。(不知道數據庫也可以,只要知道<%eval request("value")%>這個文件被插入到哪一個ASP文件里面就可以了。)
這就被稱為一句話木馬,它是基于CMS的B/S結構的。
11、提權:提權,顧名思義就是提高自己在服務器中的權限,就比如在windows中你本身登錄的用戶是guest,然后通過提權后就變成超級管理員,擁有了管理Windows的所有權限。提權是黑客的專業名詞,一般用于網站入侵和系統入侵中。
12、后門程序:后門程序一般是指那些繞過安全性控制而獲取對程序或系統訪問權的程序方法。在軟件的開發階段,程序員常常會在軟件內創建后門程序以便可以修改程序設計中的缺陷。但是,如果這些后門被其他人知道,或是在發布軟件之前沒有刪除后門程序,那么它就成了安全風險,容易被黑客當成漏洞進行攻擊。
13、旁站入侵(旁站注入【旁注】):旁注是一種入侵方法,在字面上解釋就是-"從旁注入",利用同一主機上面不同網站的漏洞得到webshell,從而利用主機上的程序或者是服務所暴露的用戶所在的物理路徑進行入侵。
14、C段注入:旁注與 C 段嗅探的意義,旁注的意思就是從同臺服務器上的其他網站入手,提權,然后把服務器端了,就自然把那個網站端了。C 段嗅探,每個 IP 有 ABCD 四個段,舉個例子,192.168.0.1,A 段就是 192,B 段是 168,C 段是 0,D 段是 1,而 C 段嗅探的意思就是拿下它同一 C 段中的其中一臺服務器,也就是說是 D 段1-255 中的一臺服務器,然后利用工具嗅探拿下該服務。
15、APT攻擊:即高級可持續威脅攻擊,也稱為定向威脅攻擊,指某組織對特定對象展開的持續有效的攻擊活動。這種攻擊活動具有極強的隱蔽性和針對性,通常會運用受感染的各種介質、供應鏈和社會工程學等多種手段實施先進的、持久的且有效的威脅和攻擊。
四、兩種滲透測試的區別
1、黑盒測試
在未授權的情況下,模擬黑客的攻擊方法和思維方式,來評估計算機網絡系統可能存在的安全風險。黑盒測試不同于黑客入侵,并不等于黑站。黑盒測試考驗的是綜合的能力(OS、Datebase、Script、code、思路、社工等)思路與經驗累計往往決定成敗。
黑盒測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息。黑盒測試著眼于程序外部結構,不考慮內部邏輯結構,主要針對軟件界面和軟件功能進行測試。
2、白盒測試
白盒測試相對黑盒測試,白盒測試基本是從內部發起。
白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基于代碼的測試。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,即清楚盒子內部的東西以及里面是如何運作的。"白盒"法全面了解程序內部邏輯結構、對所有邏輯路徑進行測試。"白盒"法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內部結構,從檢查程序的邏輯著手,得出測試數據。貫穿程序的獨立路徑數是天文數字。
3、滲透測試和入侵的最大區別
- 滲透測試:更全面的找出服務器的問題,更傾向于保護。
- 入侵:不擇手段(包含具有破壞性的手段)拿到權限。
五、一般滲透測試流程
1、明確目標
2、信息收集
- 基礎信息
- 系統信息
- 應用信息
- 版本信息
- 服務信息
- 人員信息
- 防護信息
3、漏洞探測
- 系統漏洞
- Web Server漏洞
- Web應用漏洞
- 其他端口服務漏洞
4、漏洞驗證
- 自動化驗證
- 手工驗證
- 試驗驗證
- 登錄猜解
- 業務漏洞驗證
- 公開資源的利用
- 精準打擊
- 繞過防御機制
- 定制攻擊路徑
- 繞過檢測機制
- 實施攻擊
- 獲取內部信息
- 進一步滲透
- 持續性存在
- 清理痕跡
- 整理滲透工具
- 整理收集信息
5、形成報告
- 按需整理
- 補充介紹
- 修補建議
6、信息整理
7、獲取所需
8、信息分析