Files
Sec-Interview/_book/Chapter7/7-37.md
T
2025-11-08 21:00:06 +08:00

104 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 查看服务器是否存在可疑账号、新增账号
**Windows 服务器排查**
在 Windows 系统中,我们可以通过命令行工具、注册表和日志来查找异常账号
**1. 使用命令行检查**
- **查看本地所有用户账号** 使用 `net user` 命令可以列出系统上的所有本地用户。仔细检查是否有不认识或命名异常的账号,例如:`tempadmin``testuser``service_a`
```bash
net user
```
- **查看新增的管理员账号** 使用以下命令可以查看本地管理员组的成员。如果发现新的或不熟悉的账号,需要重点排查
```bash
net localgroup administrators
```
- **查看最近创建的账号** `lusrmgr.msc`(本地用户和组)是一个图形化界面,可以按创建日期排序。在命令行中,我们通常需要结合 **安全日志** 来进行排查
**2. 检查安全事件日志**
这是最可靠的方法之一。Windows 会记录用户创建、修改和删除等操作到安全事件日志中
- **事件查看器(Event Viewer**
1. 打开事件查看器 (`eventvwr.msc`)
2. 导航到“Windows 日志” -> “安全”
3. 使用“筛选当前日志”功能,输入以下**事件 ID** 进行筛选:
- **4720**: 创建用户账号
- **4722**: 启用用户账号
- **4724**: 重置用户密码
- **4732**: 将用户添加到本地安全组(如管理员组)
- **4728**: 将用户添加到全局安全组
通过筛选这些事件 ID,你可以快速定位到账号被创建、启用或权限提升的时间点,并查看操作者(通常是 SYSTEM 或其他管理员账号)
**Linux 服务器排查**
在 Linux 系统中,我们可以通过检查系统文件和命令历史来发现异常账号
**1. 检查关键系统文件**
- **`/etc/passwd` 文件** 这个文件包含了系统上所有用户的信息,每行代表一个用户。通常,系统的服务账号会以 `/sbin/nologin` 或 `/bin/false` 结尾,而可登录的用户通常以 `/bin/bash` 或 `/bin/sh` 结尾。 你可以使用 `cat` 或 `less` 命令查看,重点关注 UID(用户 ID),UID 小于 1000 的通常是系统账号,而 UID 大于 1000 的是普通用户
```bash
cat /etc/passwd
```
要找到 UID 大于 1000 的账号,可以使用:
```bash
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
```
- **`/etc/shadow` 文件** 这个文件包含了用户的密码哈希值和密码过期信息。虽然不能直接看到密码,但它能确认用户的存在
```bash
cat /etc/shadow
```
- **`/etc/group` 文件** 这个文件定义了用户组。你可以检查 `sudo`、`wheel` 或 `root` 等特权组,看是否有可疑用户被添加
```bash
cat /etc/group
```
**2. 查看登录历史和命令历史**
- **查看用户登录历史** 使用 `last` 命令可以查看所有用户的登录历史。检查是否有不正常的登录时间、来源 IP 地址或登录用户。
```bash
last
```
使用 `who` 命令可以查看当前登录的用户
```bash
who
```
- **查看命令历史** 检查 `/root/.bash_history` 或 `/home/<username>/.bash_history` 文件,看是否有添加用户的命令(如 `useradd`
```bash
cat /root/.bash_history | grep "useradd"
```
**注意**:攻击者可能会清除命令历史,所以这不能作为唯一的判断依据
**3. 检查审计日志(Auditd**
如果你的 Linux 服务器配置了 `auditd` 服务,那你可以通过审计日志来获取更详细的信息。`auditd` 会记录系统上几乎所有的操作
- **事件 ID** `auditd` 记录用户创建的事件 ID 是 **1000**。你可以通过 `ausearch` 命令来查询:
```bash
ausearch -ua root -i | grep 1000
```
这个命令可以帮助你查找由 root 用户执行的账户创建操作