记一个真实的应急响应案例(3)XMR挖矿病毒事件

admin 2024年1月23日23:23:19评论39 views字数 7078阅读23分35秒阅读模式

技术交流可以关注公众号 OneMoreThink 或公众号后台添加微信,欢迎提出宝贵建议。

目录

  1. 恶意程序排查

    1. 网络排查

    2. 进程排查

      1. 网络进程排查

      2. 所有进程排查

      3. 隐藏进程排查

      4. 进程资源排查

    3. 文件排查

      1. 时间文件排查

      2. 敏感目录排查

      3. 特权文件排查

  2. 后门排查

    1. 账号后门排查

      1. SSH账户

      2. SSH密钥

    2. 条件后门排查

      1. 计划任务

      2. 启动项

      3. 自启服务

      4. 命令别名

  3. 溯源排查

    1. 日志分析

      1. 系统日志

      2. 中间件日志

      3. 数据库日志

      4. 安全设备日志

    2. 流量分析

    3. 内存分析

    4. 溯源结论

  4. 后续待办

    1. 终止恶意进程

    2. 备份后删除恶意程序

    3. 修复漏洞和后门

1、恶意程序排查

1.1、网络排查

使用命令netstat -tunlap发现ID是512、名称是work32的进程在连接大量公网IP的22端口(使用命令netstat -tunlap | grep ":22" | wc -l发现有7000多个),应该是口令扫描。

使用命令netstat -tunlap | grep -v ":22" | grep work32发现该进程还会连接公网IP的其它端口,以及监听本机的14747、8012、5060端口,应该是漏洞扫描和远程后门。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

使用命令netstat -tunlap | grep -v ":22" | grep -v work32确认没有其它恶意进程。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

1.2、进程排查

1.2.1、网络进程排查

使用命令pstree -asp 512排查恶意进程512,发现所有与之相关的父进程与子进程,后续需要全部终止。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

使用命令ls -l /proc/512/exe /proc/512/cwd发现恶意进程512的启动程序/usr/.work/work32和启动目录/usr/.work/微步沙箱work32分析报告[1]确认该启动程序是恶意程序,后续需要备份后删除。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

使用命令ls -la /usr/.work/发现启动目录下的另一个可疑程序/usr/.work/work64微步沙箱work64分析报告[2] 确认该程序是恶意程序,后续需要备份后删除。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

1.2.2、所有进程排查

使用命令pstree -asp排查所有进程,通过进程名称和进程启动命令,发现可疑进程682等、677等、669等共三组。

记一个真实的应急响应案例(3)XMR挖矿病毒事件 记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

使用命令ls -l /proc/682/exe /proc/682/cwd发现可疑进程682的启动程序/usr/bin/bash和启动目录/tmp/,收获不大。

使用命令ps -ef | grep 682发现可疑进程682的启动程序/tmp/auth.sh,使用命令cat /tmp/auth.sh发现是每分钟拉黑一次1个小时内登录失败超过8次的IP地址,因此无异常。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

使用命令ls -l /proc/677/exe /proc/677/cwd发现可疑进程677的启动程序/usr/bin/bash和启动目录/tmp/,收获不大。

使用命令ps -ef | grep 677发现可疑进程677的启动程序/tmp/secure.sh,使用命令cat /tmp/secure.sh发现是每分钟拉黑一次1个小时内登录失败超过8次的IP地址,因此无异常。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

使用命令ls -l /proc/669/exe /proc/669/cwd发现恶意进程669的启动程序/tmp/xmr微步沙箱xmr分析报告[3]确认该启动程序是恶意程序,后续需要备份后删除。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

1.2.3、隐藏进程排查

使用命令ps -ef | awk '{print}' | sort | uniq > 1ps -ef | awk '{print}' | sort | uniq > 2diff 1 2排查隐藏进程,没有收获。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

1.2.4、进程资源排查

使用命令top排查所有进程消耗资源的情况,发现除了已知的恶意进程work32把CPU干到了150%之外,没有新的收获。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

1.3、文件排查

1.3.1、时间文件排查

使用命令stat 文件路径查看恶意程序的落地时间,发现全部都是2024-01-22 11:50

记一个真实的应急响应案例(3)XMR挖矿病毒事件

使用命令find / -newerct '2024-01-22 10:50:00' ! -newerct '2024-01-22 14:50:00' ! -path '/proc/*' ! -path /'sys/*' ! -path '/run/*' -type f -exec ls -lctr --full-time {} + 2>/dev/null排查恶意程序落地前后相继落地的其它文件,发现一些可疑文件。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

01、/usr/.work/work32

1.2.1网络进程排查发现的恶意程序。

02、/tmp/config.json

是xmr矿池的配置文件,内有矿池url和user等信息。后续需要备份后删除该文件,并封堵对矿池域名xmr.crypto-pool.fr的访问请求(若有访问请求,还需排查请求源是否挖矿)。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

03、/tmp/xmr

1.2.2所有进程排查发现的恶意程序。

04、/root/.ssh/authorized_keys

是攻击者创建的SSH公钥文件,后续需要备份后删除。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

05、/var/spool/cron/root

攻击者创建了每小时执行一次恶意程序/usr/.work/work32的计划任务,后续需要删除该计划任务、删除该恶意程序。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

06、/etc/rc.d/rc.local

攻击者创建了执行恶意程序/usr/.work/work32&的开机自启服务,后续需要删除该自启服务、删除该恶意程序。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

07、/etc/crontab

攻击者创建了每小时执行一次恶意程序/usr/.work/work32的计划任务,后续需删除该计划任务、删除该恶意程序。    

记一个真实的应急响应案例(3)XMR挖矿病毒事件

08、/usr/.work/work64

1.2.1网络进程排查发现的恶意程序。

09、可疑但正常的文件

/usr/bin/wget1:文件落地时间与恶意程序落地时间一致可能是攻击者上传的,Modify的毫秒是0可能被攻击者修改过(详情点击:应急响应中的文件时间:mtime、atime、ctime。但微步沙箱wget1分析报告[4]未发现异常,对系统无影响,需询问系统管理员或进行逆向分析判断是否保留。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

/usr/bin/curl1:文件落地时间与恶意程序落地时间一致可能是攻击者上传的,Modify的毫秒是0可能被攻击者修改过微步沙箱curl1分析报告[5]未发现异常,对系统无影响,需询问系统管理员或进行逆向分析判断是否保留。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

/tmp/secure.sh:文件落地时间与恶意程序落地时间一致可能是攻击者上传的。但脚本内容是每分钟拉黑一次1个小时内登录失败超过8次的IP地址,对系统无影响。需询问系统管理员判断是否保留。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

/tmp/auth.sh:文件落地时间与恶意程序落地时间一致可能是攻击者上传的。但脚本内容是每分钟拉黑一次1个小时内登录失败超过8次的IP地址,对系统无影响。需询问系统管理员判断是否保留。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

1.3.2、敏感目录排查

使用命令find /tmp ! -type d -exec ls -lctr --full-time {} + 2>/dev/null排查临时目录,未发现新的可疑文件。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

使用find $HOME ! -type d -exec ls -lctr --full-time {} + 2>/dev/null命令排查家目录,未发现新的可疑文件。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

1.3.3、特权文件排查

使用命令find / -perm -u=s 2 -type f -ls >/dev/null命令排查特权文件,未发现可疑文件。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

2、后门排查

2.1、账号后门排查

2.1.1、SSH账户

使用命令cat /etc/passwd | grep -v 'nologin|false'排查可以登录SSH的账户,发现只有root和lighthouse账户的/bin/bash可以登录,未发现异常。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

使用命令cat /etc/passwd | awk -F: '$3==0 {print $1}'排查UID是0的超级权限账户,发现只有root账户,未发现异常。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

使用命令cat /etc/shadow | awk -F: 'length($2)>2 {print $1}'排查有口令的SSH账户,发现只有root账户,未发现异常。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

使用命令cat /etc/shadow | awk -F: 'length($2)==0 {print $1}'排查空口令的SSH账户,未发现异常。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

2.1.2、SSH密钥

特权用户的/root/.ssh/authorized_keys文件已在1.3.1.4分析过,普通用户未发现SSH密钥文件。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

2.2、条件后门排查

2.2.1、计划任务

使用命令find /var/spool/cron/ -type f -exec ls -lctr --full-time {} + 2>/dev/null排查计划任务,发现/var/spool/cron/root文件于2024-01-22 11:50:32被攻击者篡改,已在1.3.1.5进行分析,已被删除因此没有显示。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

使用命令find /etc/*cron* -type f -exec ls -lctr --full-time {} + 2>/dev/null排查计划任务,发现/etc/crontab文件于2024-01-22 11:50:32被攻击者篡改,已在1.3.1.7进行分析,已被修改。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

2.2.2、启动项

使用命令find /etc/rc.d/ -type f -exec ls -lctr --full-time {} + 2>/dev/null排查启动项,发现/etc/rc.d/rc.local文件于2024-01-22 11:50:32被攻击者篡改,已在1.3.1.6进行分析,已修改。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

2.2.3、自启服务

使用命令chkconfig –listservice --status-all命令排查自启服务,未发现异常。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

2.2.4、命令别名

使用命令alias排查命令别名,未发现异常。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

使用命令find / -name *bashrc* -type f -exec ls -lctr --full-time {} + 2>/dev/null排查可以配置命令别名的配置文件,发现最新的ctime都是服务器创建时候的,未发现异常。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

3、溯源排查

3.1、日志分析

3.1.1、系统日志

01、安全日志secure

使用命令cat /var/log/secure* | grep Accepted | awk '{print $11}' | sort | uniq -c | sort -nr发现5个恶意的未知IP地址各成功登录过一次SSH。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

微步情报确认85.209.11.254是俄罗斯的恶意IP。使用命令cat /var/log/secure* | grep 8.219.176.16 | grep Failed | wc -l发现只有1次登录失败记录,看来root密码太弱了。

使用命令cat /var/log/secure* | grep 85.209.11.254查看登录时间,与本次攻击时间不吻合,可能与本次挖矿事件无关,只是单纯的口令扫描。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

微步情报确认222.186.16.214是北京的恶意IP。使用命令cat /var/log/secure* | grep 222.186.16.214 | grep Failed | wc -l发现有4次登录失败记录,看来root密码太弱了。

使用命令cat /var/log/secure* | grep 222.186.16.214查看登录时间,与本次攻击时间不吻合,可能与本次挖矿事件无关,只是单纯的口令扫描。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

微步情报确认143.198.98.252是美国的境外IP。使用命令cat /var/log/secure* | grep 143.198.98.252 | grep Failed | wc -l未发现登录失败记录,对方这密码本太强大了。

使用命令cat /var/log/secure* | grep 143.198.98.252查看登录时间,与本次攻击时间完全吻合,是本次挖矿事件的始作俑者。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

微步情报确认141.98.11.11是立陶宛的恶意IP。使用命令cat /var/log/secure* | grep 141.98.11.11 | grep Failed | wc -l未发现登录失败记录,对方这密码本太强大了。

使用命令cat /var/log/secure* | grep 141.98.11.11查看登录时间,与本次攻击时间不吻合,可能与本次挖矿事件无关,只是单纯的口令扫描。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

02、登录日志last系列

使用命令lastlog查看用户最后登录系统的信息(/var/log/lastlog),使用命令w查看用户正在登录系统的信息(/var/run/utmp),均未发现异常。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

03、命令日志history

使用history(/root/.bash_history)命令查看历史命令,未发现攻击者使用过的命令。

3.1.2、中间件日志

没有运行中间件服务,不涉及中间件日志排查。

3.1.3、数据库日志

没有运行数据库服务,不涉及数据库日志排查。

3.1.4、安全设备日志

没有部署安全设备,不涉及安全产品日志排查。

3.2、流量分析

没有部署流量采集产品,不涉及流量排查。

3.3、内存分析

服务器在重置SSH密码时被重启过,内存已丢失,没有分析价值。

3.4、溯源结论

01、2024-01-22 11:50:27

来自美国的攻击源IP地址143.198.98.252登录SSH服务的root账号,没有登录失败记录,只有一次成功登录记录。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

02、2024-01-22 11:50:31至34

4秒后,攻击者上传并执行恶意程序/usr/.work/work32/usr/.work/work64/tmp/xmr(配置文件/tmp/config.json),修改后门配置/root/.ssh/authorized_keys/var/spool/cron/root/etc/rc.d/rc.local/etc/crontab。整个过程持续3秒。

记一个真实的应急响应案例(3)XMR挖矿病毒事件

03、2024-01-22 11:50:33至39

5秒钟后,攻击者上传的恶意程序均被腾讯云镜主机安全检测到并告警,不知是这个样本太菜,还是腾讯云镜太强,反正上次记一个真实的应急响应案例(2)挖矿病毒事件的阿里云盾用了10分钟。

记一个真实的应急响应案例(3)XMR挖矿病毒事件    

4、后续待办

4.1、终止恶意进程

序号

待办

原因

方法

1

终止恶意进程work32

连接大量公网IP的22端口(口令扫描)、连接公网IP的其它端口(漏洞扫描)、监听本机的端口(远程后门)。

kill -9 512

kill -9 513

kill -9 514

kill -9 515

kill -9 518

kill -9 729

kill -9 730

kill -9 783

kill -9 802

kill-9 22402

2

终止恶意进程xmr

挖矿。

kill -9 669

kill -9 671

kill -9 672

kill -9 673

kill -9 674

kill -9 675

记一个真实的应急响应案例(3)XMR挖矿病毒事件

记一个真实的应急响应案例(3)XMR挖矿病毒事件

4.2、备份后删除恶意程序

序号

待办

原因

方法

1

备份后删除/usr/.work/work32

连接大量公网IP的22端口(口令扫描)、连接公网IP的其它端口(漏洞扫描)、监听本机的端口(远程后门)。

scp [email protected]:/usr/.work/work32 ./

rm -rf /usr/.work/work32

2

备份后删除/usr/.work/work64        

同上。

同上。

3

备份后删除/tmp/xmr

挖矿。

同上。

4

备份后删除/tmp/config.json

挖矿程序的配置文件。

同上。

4.3、修复漏洞和后门

序号

待办

原因

方法

1

修改root用户密码

弱口令漏洞被攻击者获取服务器权限

passwd root

2

备份后删除/root/.ssh/a1uthorized_keys

攻击者的后门SSH密钥

scp [email protected]:/root/.ssh/authorized_keys ./

rm -rf /root/.ssh/authorized_keys

3

备份后删除/etc/crontab

攻击者的后门定时任务

同上。

4

备份后修改/var/spool/cron/root

攻击者的后门定时任务

1、打开文件:vim /var/spool/cron/root

2、移动位置:上下箭头移动到恶意代码行

3、删除代码:输入dd删除恶意代码

4、退出文件::wq

5

备份后修改/etc/rc.d/rc.local

攻击者的后门启动项

同上。

参考资料

[1]

微步沙箱work32分析报告: https://s.threatbook.com/report/file/7f28b2791ad94a202eea5e4c91d47cdeadca4723723427af574519f8aedbf15e

[2]

微步沙箱work64分析报告: https://s.threatbook.com/report/file/2d2239acd852e43952bcb14fcdc7485fd804b54df241c077750f5447b55354b7

[3]

微步沙箱xmr分析报告: https://s.threatbook.com/report/file/86f0e4c7596a7ac30af4152ce86268b109c325f62a7cfe1be0dbc72de0d9279a

[4]

微步沙箱wget1分析报告: https://s.threatbook.com/report/file/782bed6a835398f7bf31f03e5f27453c70ceaf73aa66b50d3638561d5f896bd2

[5]

微步沙箱curl1分析报告: https://s.threatbook.com/report/file/bf5a41d753283e01ef2f7bbb79f45e04efa6c601afe32b493a8f30460c46fb14

原文始发于微信公众号(OneMoreThink):记一个真实的应急响应案例(3)XMR挖矿病毒事件

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月23日23:23:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一个真实的应急响应案例(3)XMR挖矿病毒事件http://cn-sec.com/archives/2424143.html

发表评论

匿名网友 填写信息