對學校系統開展的一次滲透實戰
前言
此次滲透測試的過程簡記:
信息收集 -> 通過獲取的賬號密碼登錄平臺 -> 發現越權 -> 越權到admin用戶 -> 通過任意文件上傳getshell -> 獲取服務器權限(終)
期間遇到waf, 繞waf,遇到安全狗過安全狗,同時感謝遇到問題時ChaBug的兄弟們提出的意見和幫助!
信息收集
滲透的本質=信息收集?隨著實踐的次數增多,慢慢發現信息收集的重要性,當掌握的信息越多,目標暴露的弱點也會越多,下一步進攻的突破口越明顯。
瀏覽了目標的很多功能,沒有發現可以操作的點,因此嘗試登錄以發現新的功能點尋找突破口。

該平臺的默認賬號密碼為學號和身份證號后六位(也是大部分高校的慣性行為)。因此接下來就是收集學生的學號以及身份證號,學號比較好收集(谷歌語法一般都會找到很多),但是身份證號并不常見。但是我在另一個子域名的平臺發現了兩處不起眼的越權。
注: 目標網站是本人所在學校網站,且本人取得測試授權。雖然賬號密碼用自己的即可,但是作為一個攻擊者,我就當從零開始。

直接訪問該子域名的admin目錄,發現可以越權訪問,并在消費統計處查看到了大量學生學號等信息。接下來在此網站找到了第二處越權,可以查看任意學號/工號人員消費明細,且明細中包含身份證號碼。(本來是覺著可以搞這個網站卻發現后臺其他功能報廢了。前臺點了點各個功能才發現了這個越權)

拿到所需信息,登錄目標平臺。

Bypass && Getshell
登錄發現沒有權限訪問個人中心

普通學生用戶只有發表留言的權限,調用的是簡化魔改版ueditor編輯器,嘗試了一下沒有可利用漏洞。但是在抓包測試上傳的時候仔細看了一下cookie,發現了有意思的東西。

在查看服務平臺的相關管理人員回復的時候發現了賬號為admin的回復。因此直接將參數值改為admin,直接成功越權到admin用戶。

頭像處可以上傳,但是直接上傳會被某waf攔截,不太清楚是什么waf,問了@X1r0z一嘴又忘記了。。總之可以繞過。


起初傳了asp,發現訪問返回404,好奇又傳了php,結果也是404。最后發現只允許上傳解析aspx文件 :)

登錄遠程服務器
已經是system權限了,肯定要登錄到服務器看一眼,雖然沒必要但是可以。
tasklist /svc
發現服務器3389沒有開啟,另外發現了360及安全狗進程。利用procdump+Mimikatz來讀取windows明文密碼。
由于prodump.exe是微軟系統自帶,有微軟的簽名證書,所以殺軟不會攔截。# lsass.dmp保存至當前目錄procdump64.exe -accepteula -ma lsass.exe lsass.dmp# 脫回本地,獼猴桃(mimikatz)讀取明文密碼sekurlsa::minidump lsass.dmpsekurlsa::logonpasswords

# windows 2008 開啟3389wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS != "") call setallowtsconnections 1wmic /namespace:\\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName ='RDP-Tcp') call setuserauthenticationrequired 1reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f

服務器在外網直接登錄,結果發現:

折騰了半天還是不讓我登錄是吧,爺今天非要登錄進去看一看!
開始我以為管理員在線,不能同時登錄兩個賬號或者管理員把我踢了。后來@X1r0z提醒發現可能是安全狗的問題。將安全狗配置文件下載到本地查看,發現設置了白名單訪問控制。
# 安全狗配置文件所在目錄C:\Program Files\SafeDog\SafeDogServer\SafeDogGuardCenter\ProGuardData.iniC:\Program Files(x86)\SafeDog\SafeDogServer\SafeDogGuardCenter\ProGuardData.ini

虛擬機更改計算機為白名單內容項,登錄。

單獨的一臺服務器沒有內網,就到此為止了。
寫在后面
那個不知道什么名字的waf,在最近測試其他目標的時候又遇到了,且可以bypass它的SQL注入防護。
# 經過測試發現在部分查詢語句的時候攔截了substr 以及 or/and等。# 繞過(我測試的目標是盲注,其他的注入方式可以自測,好像防護規則有點弱智)?id=1' ^ (ascii(mid((select * from * ),1,1))>0)#
文章記錄的滲透過程都是網絡中已經存在的姿勢,我只不過是在遇到的機會的同時實際運用了一下并記錄在筆記。歡迎各位師傅指導交流,交個朋友~