實驗四 CTF實踐

qq_52130446發表於2020-12-21

實驗目的:通過對目標靶機的滲透過程,瞭解CTF競賽模式,理解CTF涵蓋的知識範圍,如MISC、PPC、WEB等,通過實踐,加強團隊協作能力,掌握初步CTF實戰能力及資訊收集能力。熟悉網路掃描、探測HTTP web服務、目錄列舉、提權、影像資訊提取、密碼破解等相關工具的使用。
系統環境:Kali Linux 2、WebDeveloper靶機來源:https://www.vulnhub.com/
實驗工具:不限
實驗原理:
1、什麼是CTF
CTF(Capture The Flag)中文一般譯作奪旗賽,在網路安全領域中指的是網路安全技術人員之間進行技術競技的一種比賽形式。CTF起源於1996年DEFCON全球黑客大會,以代替之前黑客們通過互相發起真實攻擊進行技術比拼的方式。發展至今,已經成為全球範圍網路安全圈流行的競賽形式,2013年全球舉辦了超過五十場國際性CTF賽事。而DEFCON作為CTF賽制的發源地,DEFCON CTF也成為了目前全球最高技術水平和影響力的CTF競賽,類似於CTF賽場中的“世界盃”。
1.1 CTF競賽模式
(1)解題模式(Jeopardy)在解題模式CTF賽制中,參賽隊伍可以通過網際網路或者現場網路參與,這種模式的CTF競賽與ACM程式設計競賽、資訊學奧賽比較類似,以解決網路安全技術挑戰題目的分值和時間來排名,通常用於線上選拔賽。題目主要包含逆向、漏洞挖掘與利用、Web滲透、密碼、取證、隱寫、安全程式設計等類別。
(2)攻防模式(Attack-Defense)在攻防模式CTF賽制中,參賽隊伍在網路空間互相進行攻擊和防守,挖掘網路服務漏洞並攻擊對手服務來得分,修補自身服務漏洞進行防禦來避免丟分。攻防模式CTF賽制可以實時通過得分反映出比賽情況,最終也以得分直接分出勝負,是一種競爭激烈,具有很強觀賞性和高度透明性的網路安全賽制。在這種賽制中,不僅僅是比參賽隊員的智力和技術,也比體力(因為比賽一般都會持續48小時及以上),同時也比團隊之間的分工配合與合作。
(3)混合模式(Mix)結合瞭解題模式與攻防模式的CTF賽制,比如參賽隊伍通過解題可以獲取一些初始分數,然後通過攻防對抗進行得分增減的零和遊戲,最終以得分高低分出勝負。採用混合模式CTF賽制的典型代表如iCTF國際CTF競賽。
1.2 CTF各大題型簡介
MISC(安全雜項)
全稱Miscellaneous。題目涉及流量分析、電子取證、人肉搜尋、資料分析、大資料統計等等,覆蓋面比較廣。我們平時看到的社工類題目;給你一個流量包讓你分析的題目;取證分析題目,都屬於這類題目。主要考查參賽選手的各種基礎綜合知識,考察範圍比較廣。
PPC(程式設計類)
全稱Professionally Program Coder。題目涉及到程式編寫、程式設計演算法實現。演算法的逆向編寫,批量處理等,有時候用程式設計去處理問題,會方便的多。當然PPC相比ACM來說,還是較為容易的。至於程式語言嘛,推薦使用Python來嘗試。這部分主要考察選手的快速程式設計能力。
CRYPTO(密碼學)
全稱Cryptography。題目考察各種加解密技術,包括古典加密技術、現代加密技術甚至出題者自創加密技術。這樣的題目彙集的最多。這部分主要考查參賽選手密碼學相關知識點。
REVERSE(逆向)
題目涉及到軟體逆向、破解技術等,要求有較強的反彙編、反編譯紮實功底。需要掌握彙編,堆疊、暫存器方面的知識。有好的邏輯思維能力。主要考查參賽選手的逆向分析能力。此類題目也是線下比賽的考察重點。
STEGA(隱寫)
全稱Steganography。題目的Flag會隱藏到圖片、音訊、視訊等各類資料載體中供參賽選手獲取。載體就是圖片、音訊、視訊等,可能是修改了這些載體來隱藏flag,也可能將flag隱藏在這些載體的二進位制空白位置。有時候需要你偵探精神足夠的強,才能發現。此類題目主要考查參賽選手的對各種隱寫工具、隱寫演算法的熟悉程度。
PWN(溢位)
PWN在黑客俚語中代表著攻破,取得許可權,在CTF比賽中它代表著溢位類的題目,其中常見型別溢位漏洞有棧溢位、堆溢位。在CTF比賽中,線上比賽會有,但是比例不會太重,進入線下比賽,逆向和溢位則是戰隊實力的關鍵。主要考察引數選手漏洞挖掘和利用能力。
WEB(web類)
WEB應用在今天越來越廣泛,也是CTF奪旗競賽中的主要題型,題目涉及到常見的Web漏洞,諸如注入、XSS、檔案包含、程式碼審計、上傳等漏洞。這些題目都不是簡單的注入、上傳題目,至少會有一層的安全過濾,需要選手想辦法繞過。且Web題目是國內比較多也是大家比較喜歡的題目。因為大多數人開始安全都是從web*站開始的。
實驗步驟和內容:
目的:獲取靶機Web Developer 檔案/root/flag.txt中flag。
基本思路:本網段IP地址存活掃描(netdiscover);網路掃描(Nmap);瀏覽HTTP 服務;網站目錄列舉(Dirb);發現資料包檔案 “cap”;分析 “cap” 檔案,找到網站管理後臺賬號密碼;外掛利用(有漏洞);利用漏洞獲得伺服器賬號密碼;SSH 遠端登入伺服器;tcpdump另類應用。
實施細節如下:
1、發現目標 (netdiscover),找到WebDeveloper的IP地址。截圖。
在這裡插入圖片描述

2、:利用NMAP掃描目標主機,發現目標主機埠開放、服務情況,截圖並說明目標提供的服務有哪些?(利用第一次實驗知識點)
在這裡插入圖片描述

3、若目標主機提供了HTTP服務,嘗試利用瀏覽器訪問目標網站。截圖。是否有可用資訊?
在這裡插入圖片描述

4、利用whatweb探測目標網站使用的CMS模板。截圖。分析使用的CMS是什麼?
在這裡插入圖片描述

是一個wordpress
5、網路搜尋wpscan,簡要說明其功能。
在這裡插入圖片描述

6、使用 Dirb 爆破網站目錄。(Dirb 是一個專門用於爆破目錄的工具,在 Kali 中預設已經安裝,類似工具還有國外的patator,dirsearch,DirBuster, 國內的御劍)截圖。找到一個似乎和網路流量有關的目錄(路徑)。
在這裡插入圖片描述

5、瀏覽器訪問該目錄(路徑),發現一個cap檔案。截圖。
在這裡插入圖片描述

6、利用Wireshark分析該資料包,分析TCP資料流。找到什麼有用的資訊?截圖。
在這裡插入圖片描述

7、利用上一步得到的資訊進入網站後臺。截圖。

在這裡插入圖片描述
在這裡插入圖片描述

8、利用該CMS存在的(外掛Plugin)漏洞。
9、利用該外掛漏洞提權。
可選方案1:利用MeterSploit外掛+reflex gallery外掛漏洞實現。安裝reflex gallery外掛。利用該外掛可能存在的漏洞。(課本知識點)
建立會話後,檢視wp-config.php獲得賬號及口令。(配置檔案很重要,各種系統的配置檔案)。
獲得的賬號、口令是用來訪問什麼目標?注意與第7步描述比較。
在這裡插入圖片描述
在這裡插入圖片描述

可選方案2:上傳反彈shell。
http://pentestmonkey.net/tools/web-shells/php-reverse-shell
【目的:PHP網站滲透;實現途徑:上傳網站後,URL訪問(含有)該反彈shell的頁面。
功能:該指令碼會發起反彈TCP連線到攻擊者(指令碼中指定攻擊者IP地址和埠號)。】
該CMS為PHP開發,可以利用其實現反彈shell。但必須修改初始化IP地址和埠。(指向攻擊者)。
在這裡插入圖片描述

進入後臺,找到任意一個PHP頁面,然後利用php-reverse-shell.PHP的程式碼修改該頁面的程式碼。

在這裡插入圖片描述

修改程式碼中反彈目標的IP地址及埠(修改為攻擊者IP地址及開放的埠號)。
在這裡插入圖片描述

攻擊者在Kali中利用NC開始監聽,攻擊者瀏覽器訪問修改的PHP頁面。從而得到反彈shell(使用者www-data)。建立會話後,檢視wp-config.php獲得賬號及口令。(注意路徑)
在這裡插入圖片描述
在這裡插入圖片描述

方案3:利用檔案管理外掛(File manager)漏洞。
安裝該外掛,直接可以瀏覽wp-config.php。

以上方案三選一,或找到可以實現的方案,操作步驟截圖。

10、SSH登入伺服器
嘗試利用上一步獲得的訪問資料庫的使用者名稱和密碼連線遠端伺服器。截圖。
1、嘗試檢視/root/flag.txt 以下操作得到的結果截圖替代以下截圖。
在這裡插入圖片描述
在這裡插入圖片描述

均無法檢視。
10、使用tcpdump執行任意命令(當tcpdump捕獲到資料包後會執行指定的命令。)
檢視當前身份可執行的命令。
在這裡插入圖片描述

發現可以root許可權執行tcpdump命令
建立攻擊檔案
touch /tmp/exploit1
寫入shellcode
echo ‘cat /root/flag.txt’ > /tmp/exploit
賦予可執行許可權
chmod +x /tmp/exploit
利用tcpdump執行任意命令
sudo tcpdump -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/exploit -Z root
獲得flag
在這裡插入圖片描述

tcpdump命令詳解:
-i eth0 從指定網路卡捕獲資料包
-w /dev/null 將捕獲到的資料包輸出到空裝置(不輸出資料包結果)
-z [command] 執行指定的命令
-Z [user] 指定使用者執行命令
-G [rotate_seconds] 每rotate_seconds秒一次的頻率執行-w指定的轉儲
-W [num] 指定抓包數量

相關文章