服务器被入侵了?反手溯源出入侵者画像【网络安全】
前序
手機上發來服務器被入侵的消息,這令人感到一臉懵,這個服務器也不是啥重要東西,上面啥也沒有怎么還會被搞?被人搞了那也不能示弱了,
排查后門
開機進行分析。一登陸進服務器就想起來了之前做測試的時候直接在服務器上搭了個文件上傳的靶場,就很難受了,這就是自作自受啊~~。沒辦法,只好先找馬吧。首先就在upload的文件夾下發現了木馬后門,然后查看隱藏文件時還發現了一個“不死馬”。
又仔細看了下shell.php,這是個PHP的冰蝎馬,這要進行流量分析肯定也溯源不回去啊,操作流量都是加密的。再看那個.config.php妥妥的“不死馬”,刪了還會再生。接下來肯定也溯源不回去啊,操作流量都是加密的。再看那個.config.php妥妥的“不死馬”,刪了還會再生。
- 1.創建一個和不死馬生成的馬一樣名字的目錄。
- 2.編寫一個使用ignore_user_abort(true)函數的腳本,一直競爭寫入刪除不死馬文件,其中usleep()的時間必須要小于不死馬的usleep()時間才會有效果。
- 3.在具有高權限時,重啟Apache直接刪除即可。
- 4.如果沒有權限重啟就kill掉www-data用戶的所有子進程。
雖然有權限,但是還是覺得單獨清理www-data下的子進程能好一些,執行命令:
ps aux | grep www-data | awk '{print $2}' | xargs kill -9然后再rm -f .config.php就清除了“不死馬”。
反擊溯源
清除了后門后,又好一頓檢查應該是沒有問題了。就想著能不能溯源找到這個黑客呢,首先看了下history歷史記錄,又看了下Apache日志記錄。他竟然給刪了。好吧,但是也只能說這個黑客有點背,這本就是平時做測試用的服務器,之前用這個服務器做測試的時候給好幾個文件加過一個流量監控的WAF,打開WAF生成的日志記錄,還真的抓取到了它攻擊的記錄,捕獲到了它的IP。
拿著這個IP放到微步在線進行一番查詢,很久之前就被人標記為是個傀儡機了,看來是個老油條了。
攻克傀儡機
【→所有資源關注我,可點擊查看獲取←】
1、網絡安全學習路線
2、電子書籍(白帽子)
3、安全大廠內部視頻
4、100份src文檔
5、常見安全面試題
6、ctf大賽經典題目解析
7、全套工具包
8、應急響應筆記
知道目標機器后拿出nmap進行一波掃描,發現目標的3306端口竟然暴露出來了,而80端口訪問頁面也什么東西沒有。
然而第一時間并沒有考慮SSH弱密碼和Mysql弱密碼的事,因為基本很少碰到過。同時根據微步查詢的結果判斷,所以第一時間就猜想這個網站上一定“萬馬奔騰”,于是就祭出了改裝掃描工具對其進行探測,結果還真存在馬。這里使用的是改裝過的dirsearch,在它的配置字典里加上了一些常見后門命名。
從掃描結果看除了這兩個存在的馬之外還有個2.php,訪問后頁面都是空白,那八成確定就是某個黑客遺留的小馬后門了,于是自己寫了個小腳本對這幾個后門依次進行探測,首先上網找了個后門密碼字典,然后載入這個黑客之前種的馬的密碼,最終利用腳本如下:
Import requests url = "http://ip/bgdoor.php"#后門地址 dict = open('后門密碼字典.txt','r') dict_list = dict.readlines() print("[+] 請選擇木馬類型 1.GET 2.POST") type = input("") if int(type)==1: for i in dict_list: data = {i.strip():'phpinfo();'} res = requests.get(url,data) if '$_SERVER' in res.text: print(i.strip()) if int(type)==2: for i in dict_list: data = {i.strip():'phpinfo();'} res = requests.post(url,data) if '$_SERVER' in res.text: print(i.strip())和種的馬密碼是相同的,那接下來就騎著他的馬打他吧
社工藝術黑手畫像
蹭上馬后,進去就是一番翻箱倒柜,因為前面的端口探測,知道存在MySQL的服務,當時的想法就是找到MySQL的登錄密碼。所以第一時間進去后就開始尋找MySQL的目錄位置去尋找user.MYD文件,最終找到該文件的路徑為:D:\MySQL\data\mysql\user.MYD。而找這個文件是因為其中保存著用戶數據庫登錄的用戶名和密碼哈希值。打開后看到用戶名就是root。
而對于該文件的密碼哈希的獲取我這樣來解釋,首先存在*這就代表該密碼的哈希長度一定是40位,而該文件開頭部分存在四段不同的密碼哈希,將每一段單獨提出,找到其中兩段是26位和14位,拼接到一起剛好40位,即為MySQL登錄的密碼哈希值。得到密碼哈希值后送到cmd5網站就是一波破解。
破解后得到了密碼結果,這個密碼應該也算得上是個弱口令了,就是不太常用,反正cmd5庫里存在,這里就不再吐槽了。然后用得到用戶名和密碼就輕車熟路的進入了數據庫。
進去后看了看這個數據庫,里面的內容較少,看樣子應該也不常用。不過我還是在一番仔細尋找后找到點東西,密碼就不打碼了,md5解密后就是“123456”,應該是注冊人當時隨便注冊的吧,但是前面的user和mail得打碼了,這倆信息有點意思。如下圖所示。
拿到user值,看樣子注冊的時候應該是他的網絡常用ID,但是不確定這個ID是這臺機器原本主人留下的,還是這個黑客留下的。于是就谷歌了一下這個ID,信息不是很多,但是存在一個作廢的博客。再看下這個QQ,嘗試加了下好友,發現這明顯就是一個小號,空間內容就更新過一兩次還多是廣告。
再看看這小號的第一條說說,什么QQ飛車榮譽殿堂之類的,好像還可以幫忙刷Q幣,但看樣子也都是好久之前的信息了。這么一看就感覺好像是那個黑服務器的人,多少有點野路子。然后本著繼續探索的心理,我加了他一下QQ,結果好幾天沒個回復,估計這號他都要作廢了吧。沒辦法回到那個廢棄的博客上,再研究研究吧。
這個博客是常見的WordPress,那么常規操作:網址后加上/wp-admin找后臺,訪問存在這個路徑后臺,地址沒有修改,然后WordPress的默認用戶名是admin,那么接下來就是密碼字典生成了,因為之前MySQL數據庫也弄到一個密碼,再把他的常用ID用社工庫查了一下得到了一個舊密碼,但是不確定是不是他的。最后結合它的ID歷史密碼和Mysql登錄密碼,利用社工密碼字典生成工具生成了一個組合密碼字典,掏出BurpSuite就是一把梭。
看到結果心里笑出了聲,登錄進去就看到了郵箱地址確認提示,這個郵箱還是個QQ郵箱,這下應該就是黑客的大號了。
然后又嘗試加了下好友,至少確定這是個常用號,一個SVIP的大佬。因為也沒有什么驗證措施,所以第二天就同意了。
接下來就沒啥可說的了,空間動態輕松的就暴露了他的大量信息,定位特殊的建筑物位置得到曾經去過的大概的位置,還翻到半年前曾在空間發通知換了手機號,再看空間留言,大家都叫他老徐。
整理一下目前得到的信息:
手機號碼、大概位置、出生年月日、姓氏。
利用得到的手機號去支付寶進行轉賬,然后對姓名進行校驗,看看能不能得到名字全稱。
校驗時發現名字只有兩個字,姓氏前面我們已經知道了,校驗時提示出的是名字,讓填姓氏,我們填入"徐"姓,校驗通過,得到完整的姓名。
接著拿著手機號去搜索了一番,發現存在一個微博賬號,在微博賬號的資料欄里又得到了一個生日,猜想微博這個才是正確的,qq資料卡的為假的。
準備猜測一波SFZ,以下是當時的猜解過程:因為前面通過查看黑客的生活照中的建筑物確定了黑客的基本地區,我們利用XX省XX縣XX鎮的SFZ地區號來構造一下SFZ前面的部分,通過查詢發現地區號碼為51****,出生年月日就用微博資料里寫的19911023,只有后四位不確定,因為黑客是男性,所以可以確定SFZ第17位是奇數。第17位范圍是:1-3-5-7-9 這4個數字,而最后一位的范圍是:0-1-2-3-4-5-6-7-8-9-10這11個數字,第15和第16位則是0~9這10個數字。于是準備利用阿里的SFZ實名認證api進行枚舉驗證。
最終寫了個腳本批量爆破,成功匹配到真實的SFZ。
import urllib,urllib2,sysimport sslhost = 'https://idcard.market.alicloudapi.com'path = '/lianzhuo/idcard'method = 'GET'appcode = '2e1ac42e**************4f8258e438'querys = 'cardno=5*****19911023'name = '&name=*****'bodys = {}for i in range(5000):url = host + path + '?' + querys + str(i) + namerequest = urllib2.Request(url)request.add_header('Authorization', 'APPCODE ' + appcode)ctx = ssl.create_default_context()ctx.check_hostname = Falsectx.verify_mode = ssl.CERT_NONEresponse = urllib2.urlopen(request, context=ctx)content = response.read()if (content):print(content)到最后可算是鎖定到這個人了,收工前再梳理一下得到的信息,分析黑客人物畫像:
姓名:徐*性別:男年齡:29家庭地址:**省**市**縣**鎮**手機號碼:1**********出生年月:19911023SFZ:5*****19911023****總結
1、一些敏感業務不要輕易放到公網服務器上,放上一定要做好安全。
2、在溯源分析時,遇到傀儡機可以考慮下蹭馬利用的方式。
3、數據庫密碼哈希值獲取,搜尋敏感信息。
4、社工查詢:谷歌搜索、QQ資料、細心關聯分析。
總結
以上是生活随笔為你收集整理的服务器被入侵了?反手溯源出入侵者画像【网络安全】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 适合入门代码审计之熊海cms
- 下一篇: 教你如何搭建一个骗子举报/信息查询的平台