一、Windows入侵排查

排查顺序(写排查报告的顺序相同)

项目 说明
事件定性 蠕虫、黑页、webshell、挖矿…
时间
账号安全 弱口令 、可疑、新增账号
lusrmgr.msc查看账号
隐藏、克隆账号(影子账户)
注册表查看(HKEY_LOCAL_MACHINE/SAM/SAM)
D盾查杀(针对webshell,扫描网站目录)

影子账户:
1、创建隐藏用户并加入管理员组
2、打开注册表并赋予完全控制权限
3、打开注册表HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names 将用户的键值替换为管理员的键值
4、导出添加用户的注册表键、值
5、重新导入、重新提权
第三方服务 火绒剑 -> 服务
文件 文件监控
隐藏文件

D盾扫描网站木马
本地文件查杀(最后使用,会删除病毒文件,无法取证)
端口、进程 端口:
netstat -nao 查看网络进程、端口情况
tasklist | findstr “PID” 查看指定PID的发起程序

进程: 任务管理器
综合: 火绒剑 -> 进程、网络
开机启动 火绒剑
包括:
1、开始->所有程序->启动
2、msconfig
计划任务 控制面板->系统和安全->管理工具->计划任务
at/schtasks命令(新版)

火绒剑
日志 事件管理器
eventvwr.msc
推荐工具:Event Log explorer

中间件日志
中间件路径

网站后台日志
工具分析 火绒剑、D盾

总结:Windows入侵排查较为简单,使用火绒剑、D盾足以适应绝大部分情况(将各类信息综合起来,不需要挨个寻找)。相对麻烦的位日志,需要根据安装服务的情况寻找对应日志记录。

Windows日志常见位置:

日志类型 说明
应用程序日志 1、包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件
2、例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件
3、如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录,也许会有助于问题的解决
4、日志默认位置:
%SystemRoot%\System32\Winevt\Logs\Application.evtx
系统日志 1、记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等
2、系统日志中记录的时间类型由WindowsNT/2000操作系统预先定义
3、日志默认位置:
%SystemRoot%\System32\Winevt\Logs\System.evtx
安全日志 1、包含安全性相关的事件,如用户权限变更,登录及注销,文件及文件夹访问,打印等信息
2、日志默认位置:
%SystemRoot%\System32\Winevt\Logs\Security.evtx
转发事件 信息
信息事件指应用程序、驱动程序或服务的成功操作的事件

警告
警告事件指不是直接的、主要的,但是会导致将来发生问题的事件例如,当磁盘空间不足或未找到打印机时,都会记录一个“警告”事件

错误
错误事件指用户须知道的重要的问题,通常包括功能和数据的丢失例如,如果一个服务不能作为系统引导被加载,那么它将会产生一个错误事件

成功审核
成功的审核安全访问尝试,主要是指安全性日志,这里记录着用户登录/注销、对象访问、特权使用、账户管理、策略更改、详细跟踪、目录服务访问、账户登录等事件

失败审核
失败的审核安全访问尝试例如用户试图访问网络驱动器失败,则该尝试会被作为失败审核事件记录下来

位置
Win+R -> eventvwr.msc
USB等移动介质 相关文件记录:
WinXP/Win20003:
C:\Windows\Setupapi.log

Win7及以上版本:
C:\Windows\INF\setupapi.dev.log

Linux入侵排查

入侵排查顺序

项目 说明
账号排查 /etc/passwd、/etc/shadow (x、0、/bin/bash)

特权账户:
awk -F: ‘$3==0{print $1}’ /etc/passwd
远程登录账号:
awk ‘/$1|$6/{print $1}’ /etc/shadow sudo
权限账号:
more /etc/sudoers | grep -v “^#|^$” | grep “ALL=(ALL)”
将可疑及多余的账号删除或禁用
历史命令 /root/.bash_history 位置
history -r 刷新缓存(可修改)
cat /root/.bash_history | more 查看历史命令
配置文件 .bashrc(可写入任何命令,用户登录即执行)
/etc/profile 优先级大于bashrc
网络 netstat –antlp | more 查看网络进程

ls -l /proc/$PID/exe

file /proc/$PID/exe 查看文件路径
服务 ss -antlp 查看所有服务
进程 使用ps aux命令和top命令,查看是否有异常进程
使用kill –g 进程名命令结束
开机启动项 使用chkconfig –list(CentOS7下使用:systemctl list -unit -files)、ls /etc/init.d/命令查看开机启动项中是否有异常的启动服务
使用chkconfig 服务名 off命令关闭(CentOS7下为:systemctl disable postfix.service)
定时任务 crontab -l 列出某个用户cron服务的详细内容
crontab –r 删除每个用户cron任务
crontab –e 使用编辑器编辑当前的crontab文件

注意查看:
/etc/spool/cron 、/etc/crontab、/etc/cron.d、/etc/cron.daily、cron.hourly、/cron.monthly/、cron.weekly/
第三方软件 软件漏洞
对软件权限做出限制
日志排查 /etc/log last | sort 查看最后登录时间
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件
/var/log/utmp 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息
/var/log/secure 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中

查看ssh日志:
cat /var/log/auth.log
登录成功记录
cat /var/log/auth.log
登录错误日志
cat /var/log/auth.log
查看ftp日志:
`cat /var/log/auth.log

Linux排查主要难点在于系统不同,日志位置也有所区别,且每个日志位置都需要自己寻找,使用命令查看。

Linux常见日志位置

日志 说明
/var/log/boot.log 记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息,记录系统启动的过程。可以通过该日志,查看服务启动成功或者失败。如果系统启动之后有什么异常也可以查看该日志
/var/log/lastlog 记录最后一次用户成功登录的时间、登录IP等信息
查看的某系统用户最后一次登录的记录,一些系统用户从来不登录最后一次就是Neverloggedin
不用直接查看该日志文件,通过命令:
lastlog
/var/log/messages 记录Linux操作系统常见的系统和服务错误信息
系统默认开启的日志记录,记录的内核消息、各种服务的公共消息,报错信息等。
可以通过该日志查看系统服务的运行情况。从该文件可以看出任何入侵企图或成功的入侵。具体内容包括:时间、地点、任务、事件等等。 对于这个文件,我们日常只需要关注一些错误和告警信息。
命令:
`egrep-ri ‘error
*/var/log/secure Linux系统安全日志,记录用户和工作组变化情况、用户登录认证情况
一般用来记录安全相关的信息,记录最多的是哪些用户登录服务器的相关日志。

例如:sshd会将所有信息(其中包括失败登录)记录在这里 如果该文件很大,说明有人在破解你的root密码 查看所有登陆失败用户及其登录次数:
`grep “Failed password” /var/log/secure
/var/log/btmp 记录Linux登录失败的用户、时间及远程IP地址
记录Linux登陆失败的用户、时间以及远程IP地址 该文件是一个二进制保存的文件,直接使用lastb命令查看。 如果该日志文件过大,可以清空该文件
/var/log/wtmp 该日志文件永久记录每个登录、注销及系统的启动、停机的时间
wtmp日志文件永久记录每个用户登录和退出、数据交换、关机及重启的信息。 wtmp文件被命令last和ac使用。 last命令:访问wtmp文件,显示自从文件第一次创建以来所有登陆过的用户

ac命令:统计登录的总时长
acroot:显示root用户登陆的总时长
/var/log/utmp 该日志文件记录有关当前登录的每个用户的信息
记录有关当前登录用户的信息在文件utmp中,utmp文件可以使用命令查询。
如:who、w等
who命令:访问utmp记录,显示当前正在登录的用户信息。
w:与who命令相似,但显示的信息更加详细