入侵排查_2025/11/23

入侵排查_2025/11/23

windows

系统账号安全

检查是否开启公网3389端口及弱口令

检查方法:咨询运维人员。

检查是否存在可疑账号、新增账号

检查方法:打开 cmd 窗口,输入 lusrmgr.msc 命令,查看是否有新增/可疑的账号,如有管理员群组的(Administrators)里的新增账户。

检查是否存在克隆账号、隐藏账号

检查方法:

  1. 由于隐藏账号无法在终端和用户组中看到,可以通过查看注册表regedit中管理员账号对应键值来排查。
  2. 使用D盾_web查杀工具,集成了对克隆账号检测的功能。

检查系统信息

检查补丁信息

检查方法:systeminfo

检查可疑目录与文件

检查方法:

  1. 目录,查看是否有新建的用户目录。
  2. 文件,输入 %UserProfile%\Recent,分析最近打开分析可疑文件。
  3. 修改时间在创建时间之前的为可疑文件。
  4. 发现并得到 WebShell、远控木马的创建时间,如何找出同一时间范围内创建的文件?

​ 利用 Registry Workshop 注册表编辑器的搜索功能,可以找到最后写入时间区间的文件。
​ 利用计算机自带文件搜索功能,指定修改时间进行搜索。

启动项&计划任务&服务

检查服务器是否有异常的启动项

检查方法:

  1. 登录服务器,单击【开始】>【所有程序】>【启动】,默认情况下此目录在是一个空目录,确认是否有非业务程序在该目录下。

  2. 输入 msconfig,查看是否存在命名异常的启动项目,是则取消勾选命名异常的启动项目,并到命令中显示的路径删除文件。

  3. 输入 regedit,打开注册表,查看开机启动项是否正常。

  4. 检查右侧是否有启动异常的项目,如有请删除,并建议安装杀毒软件进行病毒查杀,清除残留病毒或木马。

  5. 利用安全软件查看启动项、开机时间管理等。

  6. 检查组策略,运行 gpedit.msc

检查计划任务

检查方法:

  1. 单击【开始】>【设置】>【控制面板】>【任务检查方法:计划】,查看计划任务属性,便可以发现木马文件的路径。

  2. 单击【开始】>【运行】;输入 cmd,然后输入 at,检查计算机与网络上的其它计算机之间的会话或计划任务,如有,则确认是否为正常连接。

检查服务自启动

检查方法:单击【开始】>【运行】,输入 services.msc,注意服务状态和启动类型,检查是否有异常服务。

异常进程&端口

检查端口连接情况

检查方法:

  1. 使用netstat -ano 命令查看目前的网络连接,定位可疑的 ESTABLISHED 连接。
  2. 根据 netstat 命令定位出的 PID 编号,再通过 tasklist 命令进行进程定位 tasklist | findstr "PID"

检查可疑进程

检查方法:

  1. 打开任务管理器,查看当前的运行程序,查看程序对应的文件位置。
  2. 输入 msinfo32 命令,依次点击 "软件环境 -- 正在运行任务" 就可以查看到进程的详细信息,比如进程路径、进程ID、文件创建日期以及启动时间等。
  3. 打开D盾_web查杀工具,进程查看,关注没有签名信息的进程。
  4. 通过微软官方提供的 Process Explorer 等工具进行排查 。

工具查杀

病毒查杀

检查方法:下载安全软件,更新最新病毒库,进行全盘扫描。

webshell查杀

检查方法:选择具体站点路径进行webshell查杀;使用多款 WebShell 查杀工具同时查杀,互补规则库的不足。

日志分析

系统日志

检查方法:

  1. 开启审核策略,若日后系统出现故障、安全事故则可以查看系统的日志文件,排除故障,追查入侵者的信息等:
    开始 → 管理工具 → 本地安全策略 → 本地策略 → 审核策略。
  2. 输入eventvwr.msc进入事件查看器:
    windows有三类日志,应用程序日志、系统日志和安全日志;其中安全日志是最重要的。
  3. 导出应用程序日志、安全日志、系统日志,利用 Log Parser 进行分析。

Web访问日志

检查方法:

  1. 找到中间件的web日志,打包到本地方便进行分析。
  2. 导入到工具中分析 EmEditor。

linux

系统账号安全

检查passwd文件

检查方法:cat /etc/passwdawk -F: '$3==0{print $1}' /etc/passwd

0:特权用户

1000:普通用户
image-20251123210300664

检查shadow文件

检查方法:cat /etc/shadow,如果用户能登陆,就会在后面显示加密密码:

image-20251123210605667

检查sudoer文件

检查方法:cat /etc/sudoers

image-20251123210908389

禁用或删除账号

方法:

usermod -L user    禁用帐号,帐号无法登录,/etc/shadow 第二栏为 ! 开头
userdel user       删除 user 用户
userdel -r user    将删除 user 用户,并且将 /home 目录下的 user 目录一并删除

检查历史命令

检查方法:cat .bash_history

检查异常端口

检查方法:

  1. 使用 netstat 网络连接命令,分析可疑端口、IP、PID

    netstat -antlp

  2. 查看下 PID 所对应的进程文件路径

    ls -l /proc/$PID/exefile /proc/$PID/exe($PID 为对应的 pid 号)
    image-20251123213226456

检查异常进程

检查方法:

ps aux | grep $PID

image-20251123213516773

检查开机启动项

检查方法:

启动项文件:
more /etc/rc.local
/etc/rc.d/rc[0~6].d
ls -l /etc/rc.d/rc3.d/

检查计划任务

检查方法:

重点关注以下目录中是否存在恶意脚本:
/var/spool/cron/* 
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/* 
/etc/cron.hourly/* 
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*

image-20251123220512149

检查服务

检查方法:

查询已安装的服务:

RPM 包安装的服务

chkconfig  --list  查看服务自启动状态,可以看到所有的RPM包安装的服务
ps aux | grep crond 查看当前服务

系统在3与5级别下的启动项 
中文环境
chkconfig --list | grep "3:启用\|5:启用"
英文环境
chkconfig --list | grep "3:on\|5:on"

源码包安装的服务

查看服务安装位置 ,一般是在/user/local/
service httpd start
搜索/etc/rc.d/init.d/  查看是否存在

检查异常文件

检查方法:

  1. 查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以“..”为名的文件夹具有隐藏属性
  2. 得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?

​ 可以使用find命令来查找,如 find /opt -iname "*" -atime 1 -type f 找出 /opt 下一天前访问过的文件

日志分析

系统日志

日志位置:

日志文件 说明
/var/log/cron 记录了系统定时任务相关的日志
/var/log/cups 记录打印信息的日志
/var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/mailog 记录邮件信息
/var/log/message 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件
/var/log/btmp 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看
/var/log/utmp 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询
/var/log/secure 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中

检查方法:

#以 /var/log/secure 为例:

1、定位有多少IP在爆破主机的root帐号:    
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

定位有哪些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|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
 
2、登录成功的IP有哪些: 	
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}' 

3、增加一个用户kali日志:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
#grep "useradd" /var/log/secure 

4、删除用户kali日志:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'
# grep "userdel" /var/log/secure

5、su切换用户:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)

sudo授权执行:
sudo -l
Jul 10 00:43:09 localhost sudo:    good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now

Web访问日志

日志位置:

# Apache 日志
/var/log/apache2/access.log
/var/log/apache2/error.log
/var/log/httpd/access_log   # CentOS
/var/log/httpd/error_log    # CentOS

# Nginx 日志
/var/log/nginx/access.log
/var/log/nginx/error.log

# 其他Web服务
/var/log/tomcat/*
/var/log/lighttpd/*

检查方法:

# 查看实时访问日志
tail -f /var/log/nginx/access.log

# 查找可疑请求
grep -E "(\.php|\.asp|\.jsp)" /var/log/nginx/access.log
grep -i "shell" /var/log/apache2/access.log
grep -E "(cmd|exec|system)" /var/log/nginx/access.log

# 查找特定IP的访问
grep "192.168.1.100" /var/log/nginx/access.log

# 查找POST请求(可能包含攻击payload)
grep "POST" /var/log/apache2/access.log

# 查找404错误(探测行为)
grep "404" /var/log/nginx/access.log | head -20

# 统计IP访问量
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

# 查找特定时间段的访问
sed -n '/25\/Aug\/2024:17:00:/,/25\/Aug\/2024:18:00:/p' /var/log/nginx/access.log
posted @ 2025-11-23 23:00  Neur0toxin  阅读(0)  评论(0)    收藏  举报