常用命令
查看登录用户和活动
whoami:显示当前登录用户的用户名。
w:显示当前登录到系统上的用户列表和他们正在执行的命令。
last:显示最近登录到系统的用户列表、登录时间和来源IP地址。
ps aux:列出当前正在运行的所有进程,以及它们的详细信息。
网络连接和端口检查
netstat -tuln:列出所有当前监听的TCP和UDP连接以及对应的端口号。
lsof -i:显示当前打开的网络连接和相关进程的信息。
tcpdump:捕获网络流量进行分析,例如:tcpdump -i eth0 port 80 捕获进入网卡 eth0 的 HTTP 流量。
文件和目录检查
find /path/to/directory -name "filename":在指定目录中查找特定文件。
ls -al /path/to/directory:列出指定目录下的所有文件和目录,包括隐藏文件。
file /path/to/file:确定文件类型。
系统性能和资源监控
top:实时显示系统的进程和资源使用情况。
htop:交互式显示系统的进程和资源使用情况。
free -m:显示系统内存使用情况。
df -h:显示磁盘空间使用情况。
日志分析
tail -f /var/log/syslog:实时监视系统日志文件。
grep "keyword" /var/log/syslog:在系统日志中搜索包含关键字的行。
命令参数:
whoami - 显示当前登录用户的用户名。
参数:无。
w 或者 who - 显示当前登录到系统上的用户列表,以及他们正在执行的命令。
参数:无。
ps aux - 列出当前正在运行的所有进程。
参数:
a:显示所有用户的进程,而不仅仅是当前用户。
u:以用户为主要显示格式,显示详细的进程信息。
netstat -tuln - 列出所有当前监听的网络连接和端口。
参数:
t:仅显示TCP连接。
u:仅显示UDP连接。
l:仅显示监听状态的连接。
n:以数字形式显示IP地址和端口号,而不进行反向解析。
top 或者 htop - 显示当前系统的实时性能信息。
参数:无。
last 或者 lastlog - 显示最近登录到系统的用户列表。
参数:无。
history - 显示当前用户执行过的命令历史记录。
参数:无。
find 或者 locate - 在文件系统中搜索文件或目录。
参数:
name:按文件名进行搜索。
type:指定搜索的文件类型。
user:指定所有者进行搜索。
mtime:按照文件修改时间进行搜索。
lsof - 列出当前打开的文件和网络连接。
参数:
i:显示互联网相关的文件。
p:显示指定进程打开的文件。
u:显示指定用户打开的文件。
ifconfig 或者 ip addr - 显示网络接口的配置信息。
参数:无。
chkrootkit 或者 rkhunter - 用于检测常见的Rootkit和后门程序。
参数:无。
tcpdump 或者 Wireshark - 抓取和分析网络流量。
参数:根据具体需求来使用。这些工具有丰富的参数选项来过滤和分析网络数据包。
iptables 或者 firewalld - 配置和管理防火墙规则。
参数:根据具体需求来使用。这些工具有不同的参数选项来添加、删除或修改防火墙规则。
journalctl - 查看系统日志。
参数:
-u <unit>:仅显示指定单位的日志。
-p <priority>:仅显示指定优先级的日志。
md5sum 或者 sha1sum - 计算文件的哈希值。
参数:无。
webshell 查杀
linux 版:
河马 webshell 查杀:
http://www.shellpub.com
深信服 Webshell 网站后门检测工具:
http://edr.sangfor.com.cn/backdoor_detection.html
Rootkit 查杀
chkrootkit :
http://www.chkrootkit.org
使用方法:
wgetftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar zxvf chkrootkit.tar.gz
cdchkrootkit-0.52
makesense
#编译完成没有报错的话执行检查
./chkrootkit
rkhunter
http://rkhunter.sourceforge.net
使用方法:
Wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz
tar -zxvfrkhunter-1.4.4.tar.gz
cdrkhunter-1.4.4
./installer.sh --install
rkhunter -c
入侵排查
1、查询特权用户 (uid 为 0)
[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd
2、查询可以远程登录的帐号信息
[root@localhost ~]# awk '/$1|$6/{print $1}' /etc/shadow
3、除root 帐号外,其他帐号是否存在 sudo 权限。如非管理需要,普通帐号应删除 sudo 权限
[root@localhost ~]# more /etc/sudoers | grep -v "^#|^$" | grep "ALL=(ALL)"
4、禁用或删除多余及可疑的帐号
usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏为 ! 开头
userdel user 删除user 用户
userdel -r user 将删除user用户,并且将/home目录下的user目录一并删除
通过
.bash_history
查看帐号执行过的系统命令5、root的历史命令
histroy
6、打开/home 各帐号目录下的
.bash_history
,查看普通帐号的历史命令为历史的命令增加登录的IP地址、执行命令时间等信息
7、端口
使用
netstat
网络连接命令,分析可疑端口、IP、PIDnetstat -antlp|more
查看下pid所对应的进程文件路径,
运行
ls -l /proc/$PID/exe
或file /proc/$PID/exe
($PID为对应的 pid 号)9、登录失败排查
grep "Failed password" /var/log/secure | tail -n 50
10、创建账户排查grep "useradd" /var/log/secure
11、业务日志
cat /var/log/apache2/error.log | grep -i "error" | tail -n 50 grep "POST" /var/log/nginx/access.log | tail -n 50
12、进程
使用 ps 命令,分析进程
ps aux | grep pid
windows
登录成功用户
Get-WinEvent -LogName Security | Where-Object {$_.ID -eq 4624} | Select-Object -Property TimeCreated, @{Name="UserName";Expression={$_.Properties[5].Value}}