系统排查
一 、系统基本信息
1. Windows系统
- 系统信息工具
使用命令“msinfo32
”,打开系统信息窗口,可以查看本地计算机硬件资源、组件和软件环境,其中包含正在运行的任务、服务、系统驱动程序、加载的模块、启动程序等。
- 正在运行任务
在【信息系统】的【软件环境】中点击【正在运行任务】,可以查看到正在运行任务名称、路径、进程ID等。
- 服务
在【信息系统】的【软件环境】中点击【服务】,可以查看服务的名称、状态、路径等。
- 系统驱动程序
在【信息系统】的【软件环境】中点击【系统驱动程序】,可以查看系统驱动程序的名称、描述、文件等。
- 加载的模块
在【信息系统】的【软件环境】中点击【加载的模块】,可以查看加载模块的名称、路径等。
- 启动程序
在【信息系统】的【软件环境】中点击【启动程序】,可以查看驱动程序的命令、用户名、位置等。
2. Linux系统
- CPU信息
使用命令“lscpu
”可以查看CPU信息,包括型号、主频、内核等。
- 操作系统信息
使用命令“uname -a
”可以查看当前操作系统版本信息。
- 模块信息
使用命令“lsmod
”可以查看所有已载入系统的模块信息。
二. 、用户信息
1. Windows系统
- 命令行方法
使用命令“net user
”,可以查看到用户账户信息(不会显示$结尾的隐藏账户),如果查看某个用户详细信息,可以使用命令“net user username
”。
- 图形界面方法
在【计算机管理】-【本地用户和组】-【用户】中查看用户,也可以使用命令“lusrmgr
”在这里可以查看到带$的隐藏账户。
- 注册表方法
在注册表计算机\HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
中查看用户信息。
如果SAM下没有内容,需要先给SAM启用继承,步骤如下:
- SAM右键,点击权限-高级-启用权限-应用,然后F5刷新注册表。
- wmic方法
使用命令“wmic useraccount get name,SID
”,可以查看系统中的用户信息。
2. Linux系统
- 查看系统所有用户信息
使用命令“cat /etc/passwd
”可以查看系统所有用户信息,显示 /bin/bash的表示可登录, /sbin/nologin表示不可登录。
- 分析超级权限账户
使用命令“awk -F : '{if($3==0)print $1}' /etc/passwd
”可以查询UID为0的账户。
- 查看可登录的账户
使用命令“cat /etc/passwd | grep '/bin/bash'
”可以查看可登录的账户。
- 查看用户错误的登录信息
使用命令“lastb
”可以查看用户错误登录的登陆列表。
- 查看所有用户最后的登录信息
使用命令“lastlog
”可以查看所有用户登录的最后信息。
- 查看用户最近登录信息
使用命令“last
”可以查看用户最近登录信息。
- 查看当前用户登录系统情况
使用命令“who
”可以查看当前用户登录系统情况。
- 查看空口令账户
使用命令“awk -F: 'length($2)==0 {print $1}' /etc/shadow
”可以查看存在空口令的账户。
三 、启动项
1. Windows系统
- 通过系统配置对话框查看
按住Ctrl
+Shift
+Esc
打开任务管理器,点击启动,查看启动项的详细信息。
- 通过注册表查看
- HKEYCLASSESROOT:此处存储的信息可确保在Windows资源管理器中执行时打开正确的程序。它还包含有关拖放规则、快捷方法和用户界面信息的更多详细信息。
- HKEYCURRENTUSER:包含当前登录系统的用户的配置信息,有用户的文件夹、屏幕颜色和控制面板设置。
- HKEYLOCALMACHINE:包含运行操作系统的计算机硬件特定信息,有系统上安装的驱动器列表及已安装硬件和应用程序的通用配置。
- HKEYUSERS:包含系统上所有用户配置文件的配置信息,有应用程序配置和可视设置。
- HKEYCURRENTCONFIG:存储有关系统当前配置的信息。
2. Linux系统
可以使用三个命令:cat /etc/init.d/rc.local
、cat /etc/rc.local
、ls -alt /etc/init.d
。
四 、计划任务
1. Windows系统
-
【计算机管理】-【系统工具】-【任务计划程序】-【任务计划程序库】中可以查看任务计划的名称、状态、触发器等信息。
-
在power shell下使用命令“
Get-ScheduledTask
”,可以查看系统中所有的任务计划,包括名称、路径、状态等。
-
使用命令“
schtasks
”,可以查看任务计划详细信息。
2. Linux系统
-
使用命令“
crontab -l
”可以查看当前的任务计划。
-
查看任务计划文件
Linux中,任务计划文件一般以cron开头,使用命令“ls /etc/cron*
”查看etc目录下所有cron开头的文件。
五 、 其他
1. Windows系统
-
【高级安全 Windows Defender 防火墙】中可查看防火墙的入站规则和出站规则。
-
使用命令“
netsh advfirewall firewall
”可以显示当前防火墙的网络配置状态。
2. Linux系统
使用命令“systemctl status firewalld
”查看防火墙状态。
进程排查
1. Windows系统
-
按住
Ctrl
+Shift
+Esc
打开【任务管理器】查看进程。
-
使用命令“
tasklist
”查看所有进程。
-
使用命令“
tasklist /svc
”查看进程和服务的对应情况。
-
使用命令“
tasklist /m
”查看DLL进程。
-
使用命令“
netstat -ano | findstr "ESTABLISHED"
”查看当前的网络连接。
-
power shell中使用命令“
Get-WmiObject Win32_Process | select Name,ProcessId,ParentProcessId,Path
”。
-
使用命令“
wmic process get name,parentprocessid,processid /format:csv
”以csv格式显示进程的名称、父进程ID、进程ID。
2. Linux系统
-
使用命令“
netstat -antlp
”查看网络连接。
-
使用命令“
ls -alt /proc/1562
”可查看进程的可执行程序(1562为进程PID)。
-
使用命令“
lsof -p 1562
”可查看进程所打开的文件(1562为进程PID)。
-
依次使用命令“
ps -ef | awk '{print}' | sort -n | uniq >1
”、“ls /proc | sort -n | uniq >2
”、“diff 1 2
”可以查看隐藏进程。
服务排查
1. window系统
- 运行命令“
services.msc
”,可以打开服务窗口。
2. Linux系统
-
使用命令“
chkconfig --list
”可以查看运行的服务。
-
使用命令“
service --statuss-all
”可以查看所有服务状态。
文件痕迹排查
1. window系统
-
查看“
C:\Windows\Temp
”临时文件夹。
-
查看浏览器历史记录和下载文件等。
-
查看“
C:\Windows\Prefetch
”预读取文件夹。
2. Linux系统
-
查看“
/tmp/
”、“/usr/bin/
”和“/usr/sbin/
”目录。
-
查看“
~/.ssh
”和“/etc/ssh
”目录。 -
使用命令“
find /tmp/ -perm 777
”查看/tmp目录下777权限文件。
-
使用命令“
find / -type f -perm -04000 -ls -uid 0 2>/dev/null
”查看SUID权限的程序。