如何收集服务器被入侵的基础信息?
美国、香港服务器
如何收集服务器被入侵的基础信息?
11-27 来源:
收集服务器被入侵的基础信息,核心是 “快速、全面、不破坏证据”,优先收集 “时间窗口、登录痕迹、进程 / 文件 / 网络状态、系统配置” 四大类信息,为后续入侵排查、溯源和处置提供依据。以下是兼容 Windows/Linux 系统的实操指南,含命令行工具与证据留存技巧:
一、核心原则(避免证据破坏)
不轻易重启服务器:重启会清除内存中的进程、网络连接、临时日志,可能导致证据丢失;
不执行未知命令 / 脚本:避免触发恶意程序(如勒索病毒)或覆盖日志;
优先只读操作:查看日志、进程时以 “只读” 方式打开,复制文件而非移动 / 删除;
及时隔离环境:若服务器仍在被攻击,先断网或限制公网访问,避免攻击者销毁证据或横向扩散。
二、基础信息收集清单(按优先级排序)
第一类:系统与环境基础信息(定位服务器基本情况)
核心是确认 “服务器身份、系统版本、当前状态”,为后续排查提供上下文。
信息类型 Windows 系统操作 Linux 系统操作
服务器基本信息 1. 命令行(管理员):systeminfo > C:\temp\system_info.txt(系统版本、补丁、硬件);
2. 查看主机名:hostname;
3. 网络配置:ipconfig /all > C:\temp\ip_config.txt(IP、DNS、网卡信息)。 1. 命令行:uname -a > /tmp/system_info.txt(内核版本);
2. cat /etc/os-release >> /tmp/system_info.txt(系统版本);
3. 网络配置:ifconfig > /tmp/ip_config.txt 或 ip addr > /tmp/ip_config.txt;
4. 主机名:hostname。
当前时间与时区 1. 命令行:date /t && time /t >> C:\temp\system_info.txt;
2. 确认时区:tzutil /g。 1. 命令行:date && timedatectl >> /tmp/system_info.txt;
2. 时区:cat /etc/timezone(Ubuntu)或 timedatectl show -p Timezone --value(CentOS)。
运行时间 命令行:`systeminfo findstr "系统启动时间" >> C:\temp\system_info.txt`。 命令行:uptime >> /tmp/system_info.txt(服务器运行时长,判断是否被重启过)。
第二类:登录与账号信息(判断入侵入口)
核心是收集 “谁登录过、何时登录、从哪里登录”,确认入侵是否通过账号爆破 / 盗用实现。
信息类型 Windows 系统操作 Linux 系统操作
登录日志导出 1. 事件查看器(Win+R→eventvwr)→ Windows 日志→ 安全;
2. 右键 “安全”→ 保存所有事件→ 选择 “EVTX” 格式,保存到 C:\temp\security_log.evtx;
3. 命令行导出关键事件:wevtutil epl Security C:\temp\security_log.evtx。 1. 复制登录日志:cp /var/log/secure /tmp/secure_log.txt(SSH / 系统登录日志);
2. cp /var/log/auth.log /tmp/auth_log.txt(Ubuntu 系统);
3. 导出近期登录记录:last > /tmp/last_login.txt、lastlog > /tmp/lastlog.txt。
账号列表与权限 1. 命令行:net user > C:\temp\user_list.txt(所有用户);
2. net localgroup administrators > C:\temp\admin_group.txt(管理员组用户);
3. 查看隐藏用户:wmic useraccount get name,sid,status >> C:\temp\user_list.txt(SID 以 S-1-5-21-xxx-500 结尾的可能是隐藏管理员)。 1. 命令行:cat /etc/passwd > /tmp/user_list.txt(所有用户);
2. `cat /etc/group grep "root|sudo" > /tmp/admin_group.txt(高权限组);
3. 查看 SSH 密钥:cp /root/.ssh/authorized_keys /tmp/root_ssh_keys.txt、for u in $(cat /etc/passwd cut -d: -f1); do [ -f /home/u/.ssh/authorized_keys ] && cp /home/u/.ssh/authorized_keys/tmp/${u}_ssh_keys.txt; done`(用户 SSH 密钥)。
第三类:进程与服务信息(定位运行中的恶意程序)
核心是收集 “当前运行的进程、服务、启动项”,找到恶意程序或异常服务。
信息类型 Windows 系统操作 Linux 系统操作
进程列表导出 1. 命令行(管理员):tasklist /v > C:\temp\process_list.txt(进程名、PID、用户、状态);
2. 详细进程信息:wmic process get name,processid,executablepath,commandline > C:\temp\process_detail.txt;
3. 用 Process Explorer 截图进程列表(含路径、发布者),保存到 C:\temp\process_screenshot.png。 1. 命令行:ps aux > /tmp/process_list.txt(所有进程详细信息);
2. 进程树:pstree -p > /tmp/process_tree.txt(父子进程关联);
3. 内存中的进程:ls /proc > /tmp/proc_list.txt(对比 ps 结果,查找隐藏进程)。
服务与启动项 1. 服务列表:sc query > C:\temp\service_list.txt;
2. 启动项:wmic startup get caption,command,location > C:\temp\startup_list.txt;
3. 计划任务:schtasks /query /v /fo list > C:\temp\task_scheduler.txt。 1. 服务列表:systemctl list-unit-files --type=service > /tmp/service_list.txt;
2. 启用的服务:systemctl list-units --type=service --state=running >> /tmp/service_list.txt;
3. 计划任务:crontab -l > /tmp/crontab_current.txt、cp /etc/crontab /tmp/crontab_system.txt、ls /etc/cron.d/ /etc/cron.hourly/ > /tmp/cron_dir_list.txt;
4. 开机启动脚本:cp /etc/rc.local /tmp/rc_local.txt、ls /etc/profile.d/ > /tmp/profile_d_list.txt。
第四类:文件与注册表信息(查找篡改与后门)
核心是收集 “近期修改的文件、敏感目录文件、注册表关键项”,找到恶意文件或篡改痕迹。
信息类型 Windows 系统操作 Linux 系统操作
近期修改的文件 1. 命令行:`dir C:\Windows\System32 /s/a /t:w findstr "2025-11-20" > C:\temp\system32_recent.txt(替换日期为入侵前后3天);
2. 敏感目录文件:dir C:\Temp /s /a > C:\temp\temp_files.txt、dir C:\ProgramData /s /a > C:\temp\programdata_files.txt;
3. 隐藏文件:dir C:\ /s /a:h findstr -v "System Volume Information" > C:\temp\hidden_files.txt`。 1. 近期修改的系统文件:find /bin /sbin /usr/bin -mtime -7 > /tmp/system_files_recent.txt(近 7 天修改的文件);
2. 敏感目录文件:find /tmp /var/tmp /dev/shm -type f > /tmp/tmp_files.txt;
3. 隐藏文件:find /root /home -name ".*" -type f > /tmp/hidden_files.txt(名称以。开头的文件)。
注册表关键项 1. 导出启动项注册表:reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" C:\temp\run_reg.reg;
2. 导出 RunOnce 项:reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" C:\temp\runonce_reg.reg;
3. 导出用户启动项:reg export "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" C:\temp\user_run_reg.reg。 无注册表,重点查 /etc/passwd、/etc/shadow、/etc/sudoers 等配置文件:
1. cp /etc/passwd /tmp/passwd_backup;
2. cp /etc/shadow /tmp/shadow_backup;
3. cp /etc/sudoers /tmp/sudoers_backup。
第五类:网络与端口信息(定位外联与监听)
核心是收集 “当前网络连接、端口占用、流量状态”,找到恶意外联 IP(C2 服务器)或异常监听端口。
信息类型 Windows 系统操作 Linux 系统操作
网络连接与端口 1. 命令行:netstat -ano > C:\temp\netstat_all.txt(所有连接、PID、端口);
2. 筛选监听 / 已建立连接:`netstat -ano findstr "LISTENING|ESTABLISHED" > C:\temp\netstat_established.txt;
3. 路由表:route print > C:\temp\route_table.txt`。 1. 命令行:netstat -tulnp > /tmp/netstat_all.txt(端口、进程、连接状态);
2. 更详细连接:ss -tulnp > /tmp/ss_all.txt;
3. 路由表:route -n > /tmp/route_table.txt;
4. 进程网络连接:lsof -i > /tmp/lsof_network.txt。
流量与 DNS 信息 1. DNS 缓存:ipconfig /displaydns > C:\temp\dns_cache.txt;
2. 用 Wireshark 抓包(10 分钟):tshark -i any -w C:\temp\traffic.pcap -a duration:600(需安装 Wireshark)。 1. DNS 缓存:cat /etc/resolv.conf > /tmp/dns_resolv.txt;
2. 抓包(10 分钟):tcpdump -i any -w /tmp/traffic.pcap -G 600(需安装 tcpdump);
3. 网络连接统计:netstat -s > /tmp/netstat_stats.txt。
三、证据留存与归档
创建统一目录:在 Windows 下创建 C:\temp\入侵证据_20251122(以日期命名),Linux 下创建 /tmp/入侵证据_20251122,将所有收集的文件(日志、txt、reg、pcap)放入该目录;
压缩加密归档:将证据目录压缩为 zip 包(Windows 右键→发送到→压缩文件夹;Linux zip -r 入侵证据_20251122.zip /tmp/入侵证据_20251122),设置密码(避免证据泄露);
备份到安全设备:将压缩后的证据包复制到离线硬盘或安全服务器,避免被攻击者删除;
截图与录像:对异常进程、日志关键条目、勒索弹窗等场景截图 / 录像,补充文字说明(如 “2025-11-22 14:30 发现进程 xyz.exe 占用 CPU 90%”)。
四、快速收集脚本(一键执行,避免遗漏)
Windows 快速收集脚本(保存为 collect_evidence.bat,管理员运行)
bat
@echo off
set "output_dir=C:\temp\入侵证据_%date:~0,4%%date:~5,2%%date:~8,2%"
md %output_dir% 2>nul
:: 系统信息
systeminfo > %output_dir%\system_info.txt
hostname >> %output_dir%\system_info.txt
ipconfig /all > %output_dir%\ip_config.txt
date /t && time /t >> %output_dir%\system_info.txt
:: 登录与账号
wevtutil epl Security %output_dir%\security_log.evtx
net user > %output_dir%\user_list.txt
net localgroup administrators > %output_dir%\admin_group.txt
wmic useraccount get name,sid,status >> %output_dir%\user_list.txt
:: 进程与服务
tasklist /v > %output_dir%\process_list.txt
wmic process get name,processid,executablepath,commandline > %output_dir%\process_detail.txt
sc query > %output_dir%\service_list.txt
wmic startup get caption,command,location > %output_dir%\startup_list.txt
schtasks /query /v /fo list > %output_dir%\task_scheduler.txt
:: 网络信息
netstat -ano > %output_dir%\netstat_all.txt
netstat -ano | findstr "LISTENING\|ESTABLISHED" > %output_dir%\netstat_established.txt
route print > %output_dir%\route_table.txt
ipconfig /displaydns > %output_dir%\dns_cache.txt
:: 注册表
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" %output_dir%\run_reg.reg
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" %output_dir%\runonce_reg.reg
echo 证据收集完成,文件保存至:%output_dir%
pause
Linux 快速收集脚本(保存为 collect_evidence.sh,root 运行)
bash
运行
#!/bin/bash
output_dir="/tmp/入侵证据_$(date +%Y%m%d)"
mkdir -p $output_dir
:: 系统信息
uname -a > $output_dir/system_info.txt
cat /etc/os-release >> $output_dir/system_info.txt
ifconfig > $output_dir/ip_config.txt
hostname >> $output_dir/system_info.txt
date && timedatectl >> $output_dir/system_info.txt
uptime >> $output_dir/system_info.txt
:: 登录与账号
cp /var/log/secure $output_dir/secure_log.txt 2>/dev/null
cp /var/log/auth.log $output_dir/auth_log.txt 2>/dev/null
last > $output_dir/last_login.txt
lastlog > $output_dir/lastlog.txt
cat /etc/passwd > $output_dir/user_list.txt
cat /etc/group | grep "root\|sudo" > $output_dir/admin_group.txt
cp /root/.ssh/authorized_keys $output_dir/root_ssh_keys.txt 2>/dev/null
for u in $(cat /etc/passwd | cut -d: -f1); do
[ -f /home/$u/.ssh/authorized_keys ] && cp /home/$u/.ssh/authorized_keys $output_dir/${u}_ssh_keys.txt
done
:: 进程与服务
ps aux > $output_dir/process_list.txt
pstree -p > $output_dir/process_tree.txt
ls /proc > $output_dir/proc_list.txt
systemctl list-unit-files --type=service > $output_dir/service_list.txt
systemctl list-units --type=service --state=running >> $output_dir/service_list.txt
crontab -l > $output_dir/crontab_current.txt 2>/dev/null
cp /etc/crontab $output_dir/crontab_system.txt 2>/dev/null
ls /etc/cron.d/ /etc/cron.hourly/ > $output_dir/cron_dir_list.txt
cp /etc/rc.local $output_dir/rc_local.txt 2>/dev/null
:: 网络信息
netstat -tulnp > $output_dir/netstat_all.txt
ss -tulnp > $output_dir/ss_all.txt
route -n > $output_dir/route_table.txt
lsof -i > $output_dir/lsof_network.txt
cat /etc/resolv.conf > $output_dir/dns_resolv.txt
tcpdump -i any -w $output_dir/traffic.pcap -G 600 2>/dev/null &
:: 文件信息
find /bin /sbin /usr/bin -mtime -7 > $output_dir/system_files_recent.txt
find /tmp /var/tmp /dev/shm -type f > $output_dir/tmp_files.txt
find /root /home -name ".*" -type f > $output_dir/hidden_files.txt
cp /etc/passwd /etc/shadow /etc/sudoers $output_dir/ 2>/dev/null
echo "证据收集完成,文件保存至:$output_dir"
五、关键注意事项
权限要求:收集日志、注册表、进程信息时,需以管理员(Windows)或 root(Linux)权限执行,否则会遗漏部分信息;
日志大小限制:若安全日志过大,可优先导出近 72 小时的日志(Windows 事件查看器筛选时间范围,Linux grep "2025-11-20" /var/log/secure > /tmp/secure_recent.txt);
敏感信息保护:证据包中可能包含服务器密码、SSH 密钥、敏感数据,需加密存储,仅授权人员可访问;
补充说明:收集完成后,记录 “收集人、收集时间、服务器用途、发现异常的方式”,便于后续溯源分析。
通过以上步骤,可快速收集服务器被入侵的核心基础信息,为后续入侵排查(如定位恶意进程、溯源攻击 IP)和处置(如清理后门、重装系统)提供完整依据。若需针对具体场景(如 Web 服务器、数据库服务器)补充收集特定信息(如 Web 访问日志、数据库操作日志),可进一步说明。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快