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

admin 2024年1月28日10:29:07评论15 views字数 6159阅读20分31秒阅读模式

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

目录
  1. 恶意程序排查

    1. 文件排查

      1. 告警文件排查

      2. 时间文件排查

      3. 敏感目录排查

      4. 特权文件排查

    2. 网络排查

    3. 进程排查

      1. 网络进程排查

      2. 所有进程排查

      3. 隐藏进程排查

      4. 进程资源排查

  2. 后门排查

    1. 账号后门排查

      1. SSH账户

      2. SSH密钥

    2. 条件后门排查

      1. 计划任务

      2. 启动项

      3. 自启服务

      4. 命令别名

  3. 溯源排查

    1. 日志分析

      1. 系统日志

      2. 中间件日志

      3. 数据库日志

      4. 安全设备日志

    2. 流量分析

    3. 内存分析

    4. 溯源结论

  4. 后续待办

    1. 终止恶意进程

    2. 备份后删除恶意程序

    3. 修复漏洞和后门

    4. 攻击回溯与防护

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

2024年01月24日08时13分,收到主机安全告警,立即上机开展排查。

1、恶意程序排查

1.1、文件排查

1.1.1、告警文件排查

01、文件

使用命令stat /usr/bin/dhpcdfile /usr/bin/dhpcd确认存在告警中的恶意文件/usr/bin/dhpcd

这个环节如果定位不到告警文件,可能是被恶意程序自身删除了,此时可以基于告警时间排查其他落地文件。如果还是没有,那可能要进行内存马查杀了。

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

使用微步沙箱进行交叉验证,dhpcd分析报告[1]的结论也是恶意样本,同时还是首次提交,看来中挖矿病毒这事咱也是敢为人先勇立潮头呀。

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

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

02、进程

使用命令lsof /usr/bin/dhpcd发现该恶意文件正被ID是14213的进程使用。

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

使用命令pstree -asp 14213发现该进程的所有子进程,后续需要全部终止。

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

03、网络

使用命令netstat -tunlap | grep 14213发现该恶意进程外联了93.240.52.232的3389端口和139.99.125.38的443端口,查询威胁情报,猜测分别是远控服务器和矿池服务器。

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

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

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

使用命令tcpdump -i eth0 (host 93.240.52.232 and port 3389) or (host 139.99.125.38 and port 443) -w dhpcd.pcap捕获通信流量包,并下载到本地分析。

分析发现远控服务器93.240.52.232:3389每隔10秒会给受害服务器下发algo币的挖矿任务,但由于矿池139.99.124.170:443没有响应,无法确认受害服务器的挖矿任务,因此受害服务器并未真正开始挖矿工作。

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

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

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

后续需要在边界防火墙封堵对恶意IP地址93.240.52.232和139.99.125.38的访问请求,并在流量侧安全设备中查询最近7日是否存在相关访问请求,若存在,还需排查请求源设备是否中了挖矿病毒。

1.1.2、时间文件排查

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

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

01、/etc/shadow

/etc/shadow中并未发现后门账号,攻击者应该只是修改了root用户的弱口令,让这台服务器更安全,可以避免其他挖矿和勒索病毒的攻击导致的自身挖矿进程被kill掉。看来,挖矿病毒的攻击者也饱受挖矿病毒攻击的困扰呀。因此后续需要修改root帐户的SSH密码。

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

02、/root/.ssh/authorized_keys

是攻击者创建的SSH后门公钥文件,用于登陆SSH服务,后续需要备份后删除。

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

03、/usr/bin/dhpcd

1.1.1告警文件排查发现的恶意程序。

04、/etc/rc.d/rc.local

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

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

05、/var/spool/cron/root

攻击者创建了每小时的第7分钟执行一次恶意程序/bin/dhpcd的计划任务,后续需要删除该计划任务、删除该恶意程序。

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

06、可疑但正常的文件

/etc/crontab的ctime虽然与恶意程序/bin/dhpcd的落地时间相近,但文件本身并未发现异常内容,因此属于正常情况。

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

1.1.3、敏感目录排查

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

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

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

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

1.1.4、特权文件排查

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

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

1.2、网络排查

使用命令netstat -tunlap除了发现1.1.1告警文件排查分析过的dhpcd进程外,还发现115.79.35.110连接22端口。查询微步情况确认是恶意IP,使用命令cat /var/log/secure* | grep 115.79.35.110发现只是暴力破解,并未登陆成功,因此可忽略。

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

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

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

1.3、进程排查

1.3.1、网络进程排查

网络排查环节并未发现新的恶意进程,所以该环节跳过。

1.2.2、所有进程排查

使用命令pstree -as排查所有进程,通过进程名称和进程启动命令,并未发现其他可疑进程。

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

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

1.2.3、隐藏进程排查

使用命令ps -ef | awk '{print}' | sort | uniq > 1ps -ef | awk '{print}' | sort | uniq > 2diff 1 2排查隐藏进程,除了已知的恶意进程/bin/dhpcd和SSH服务被爆破外,没有新的收获。

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

1.2.4、进程资源排查

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

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

2、后门排查

2.1、账号后门排查

2.1.1、SSH账户

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

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

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

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

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

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

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

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

2.1.2、SSH密钥

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

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

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-24 08:14:16被攻击者篡改,已在1.1.2.5进行分析。

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

使用命令find /etc/*cron* -type f -exec ls -lctr --full-time {} + 2>/dev/null排查计划任务,发现/etc/crontab文件于2024-01-24 08:11:09被修改,但无异常,已在1.1.2.9进行分析。

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

2.2.2、启动项

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

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

2.2.3、自启服务

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

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

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

2.2.4、命令别名

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

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

使用命令find / -name *bashrc* -type f -exec ls -lctr --full-time {} + 2>/dev/null排查可以配置命令别名的配置文件,未发现异常。

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

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。

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

微步情报确认222.186.16.196是北京的恶意IP。使用命令cat /var/log/secure* | grep 222.186.16.196 | grep Failed | wc -l发现有4次登录失败记录,使用命令cat /var/log/secure* | grep 222.186.16.196 | grep Accepted | wc -l发现有1次登陆成功记录,看来是爆破成功了。

使用命令cat /var/log/secure* | grep 222.186.16.196查看登录时间,于2024-01-24 04:07:11开始爆破,6秒钟后爆破成功,但与本次挖矿事件的攻击时间不吻合,可能与本次挖矿事件无关。

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

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

微步情报确认222.186.16.186是北京的恶意IP。使用命令cat /var/log/secure* | grep 222.186.16.186 | grep Failed | wc -l发现有4次登录失败记录,使用命令cat /var/log/secure* | grep 222.186.16.186 | grep Accepted | wc -l发现有1次登陆成功记录,看来是爆破成功了。

使用命令cat /var/log/secure* | grep 222.186.16.186查看登录时间,于2024-01-24 05:48:58开始爆破,6秒钟后爆破成功,但与本次挖矿事件的攻击时间不吻合,可能与本次挖矿事件无关。

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

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

微步情报确认222.103.98.36是韩国的IP。使用命令cat /var/log/secure* | grep 222.103.98.36 | grep Failed | wc -l发现没有登录失败记录,使用命令cat /var/log/secure* | grep 222.103.98.36 | grep Accepted | wc -l发现有1次登陆成功记录,看来是爆破成功了。

使用命令cat /var/log/secure* | grep 222.103.98.36查看登录时间,于2024-01-24 08:10:27登陆成功,与本次挖矿事件的攻击时间吻合,是本次挖矿事件的始作俑者。

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

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

02、登录日志last系列

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

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

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-24 08:10:27

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

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

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

02、2024-01-24 08:11:09至08:14:16

1分钟后,攻击者上传并执行恶意程序/usr/bin/dhpcd,修改后门配置/etc/shadow/root/.ssh/authorized_keys/etc/rc.d/rc.local/var/spool/cron/root,整个过程持续3分钟。

值得一提的是,/etc/crontab文件的修改时间也在攻击者活动的时间窗口内,但确实未发现异常。

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

03、2024-01-24 08:13:21

恶意程序/usr/bin/dhpcd2024-01-24 08:13:19被攻击者上传,2秒钟后的08:13:21腾讯主机安全就完成了威胁检测与告警通知,不得不说这实力杠杠的。

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

4、后续待办

4.1、终止恶意进程

序号

待办

原因

方法

1

终止恶意进程dhpcd

外联远控服务器93.240.52.232:3389获取algo币的挖矿任务,并进程挖矿,然后外联矿池服务器139.99.124.170:443提交挖矿成果。

kill -9 14213

kill -9 14214

kill -9 14215

kill -9 14216

kill -9 14217

kill -9 14218

kill -9 14855

kill -9 14856

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

4.2、备份后删除恶意程序

序号

待办

原因

方法

1

备份后删除/usr/bin/dhpcd

外联远控服务器93.240.52.232:3389获取algo币的挖矿任务,并进程挖矿,然后外联矿池服务器139.99.124.170:443提交挖矿成果。

scp [email protected]:/usr/bin/dhpcd ./

rm -rf /usr/bin/dhpcd

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

4.3、修复漏洞和后门

序号

待办

原因

方法

1

修改root用户密码

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

passwd root

2

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

攻击者的后门SSH密钥

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

rm -rf /root/.ssh/authorized_keys

3

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

攻击者的后门定时任务

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

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

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

4、退出文件::wq

4

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

攻击者的后门启动项

同上。

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

4.4、攻击回溯与防护

序号

待办

原因

方法

1

防护:在边界防火墙封堵对恶意IP地址93.240.52.232和139.99.125.38的访问请求。

93.240.52.232是外联远控服务器,139.99.125.38是矿池服务器。

查询边界防火墙的操作手册。

2

回溯:在流量侧安全设备中查询最近7日是否存在相关访问请求,若存在,还需排查请求源设备是否中了挖矿病毒。

同上。

查询流量侧安全设备的操作手册。

参考资料

[1]

dhpcd分析报告: https://s.threatbook.com/report/file/eca7a5e81277f043939f09d36c40acb4ade4be39020e25a1cc8f85e02404ca32

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

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

发表评论

匿名网友 填写信息