一、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命令相似,但显示的信息更加详细 |