(2)各个盘下的 temp(tmp)相关目录下查看有无异常文件 :Windows 产生的临
时文件
(3)Recent 是系统文件夹, 里面存放着你最近使用的文档的快捷方式, 查看用
户 recent 相关文件,通过分析最近打开分析可疑文件:
【开始】➜【运行】➜【%UserProfile%\Recent】
(4)根据文件夹内文件列表时间进行排序, 查找可疑文件。当然也可以搜索指
定日期范围的文件及文件
Server 2008 R2:
(5)查看文件时间, 创建时间、修改时间、访问时间,黑客通过菜刀类工具改
变的是修改时间。所以如果修改时间在创建时间之前明显是可疑文件
2.1.6.1.2、进程排查
(1)netstat -ano 查看目前的网络连接,定位可疑的 ESTABLISHED
netstat 显示网络连接、路由表和网络接口信息;
参数说明:
常见的状态说明:
建立连接
对方主动关闭连接或网络异常导致连接中断
(2)根据 netstat 定位出的 pid,再通过 tasklist 命令进行进程定位
tasklist 显示运行在本地或远程计算机上的所有进程;
(3)根据 wmic process 获取进程的全路径 [任务管理器也可以定位到进程路
径]
很多种类的病毒都依赖网络进行传播和复制,并感染局域网中的大量终端。
可以通过开放端口进行分析,有助于病毒对象的确认;
下面提供一些常用的病毒使用的端口信息,可以作为参考:
2.1.6.1.3、系统信息排查
(1)查看环境变量的设置
【我的电脑】 ➜【属性】 ➜【高级系统设置】 ➜【高级】 ➜【环境变量】
排查内容: temp 变量的所在位置的内容; 后缀映射 PATHEXT 是否包含有非 windows 的后缀;有没有增加其他的路径到 PATH 变量中(对用户变量和系统变
量都要进行排查);
(2)Windows 计划任务
【程序】➜【附件】➜【系统工具】➜【任务计划程序】
(3)Windows 帐号信息,如隐藏帐号等
【开始】➜【运行】➜【compmgmt.msc】➜【本地用户和组】➜【用户】 (用
户名以$结尾的为隐藏用户,如: admin$)
命令行方式: net user,可直接收集用户信息(此方法看不到隐藏用户) ,若需查
看某个用户的详细信息,可使用命令➜net user username;
(4)查看当前系统用户的会话
使用➜ query user 查看当前系统的会话, 比如查看是否有人使用远程终端登录
服务器;
logoff 踢出该用户;
(5)查看 systeminfo 信息,系统版本以及补丁信息
例如系统的远程命令执行漏洞 MS17 -010(永恒之蓝)、MS08 -067、MS09 -001 …
若进行漏洞比对,建议自建使用 Windows -Privilege-Escalation -Exploit;
Github 源码: https://github.com/neargle/win-powerup-exp-index
2.1.6.1.4、工具排查
(1) PC Hunter
PC Hunter 是一个 Windows 系统信息查看软件
PC Hunter 数字签名颜色说明:
黑色:微软签名的驱动程序;
蓝色:非微软签名的驱动程序;
红色:驱动检测到的可疑对象,隐藏服务、进程、被挂钩函数;
PS:最简单的使用方法, 根据颜色去辨识➜➜➜可疑进程, 隐藏服务、被挂钩函 数: 红色,然后根据程序右键功能去定位具体的程序和移除功能。根据可疑的进
程名等进行互联网信息检索然后统一清除并关联注册表;
(2) ProcessExplorer
Windows 系统和应用程序监视工具;
(3) Microsoft Network Monitor
一款轻量级网络协议数据分析工具;
2.1.6.1.5、日志排查
(1)Windows 登录日志排查
a)打开事件管理器
【开始】 ➜【管理工具】 ➜【事件查看】
【开始】 ➜【运行】 ➜【eventvwr】
b)主要分析安全日志,可以借助自带的筛选功能
可以把日志导出为文本格式, 然后使用 notepad++ 打开, 使用正则模式去匹配
远程登录过的 IP 地址,在界定事件日期范围的基础。
正则:
这样就可以把界定事件日期事件快速检索出来进行下一步分析;
2.1.6.2、 Linux 排查
2.1.6.2.1、文件排查
1)敏感目录的文件分析[类/tmp 目录,命令目录/usr/bin /usr/sbin 等]
ls 用来显示目标列表
2) 查看 tmp 目录下的文件➜➜➜ ls –alt /tmp/
如图,发现多个异常文件,疑似挖矿程序病毒:
对已发现的恶意文件进行分析, 查看 559.sh 脚本内容: 脚本先是杀掉服务器 上 cpu 占用大于 20%的进程,然后从远程 27.155.87.26 (福建,黑客所控制的一
个 IDC 服务器)下载了病毒程序并执行;
3) 查看开机启动项内容➜➜➜ls -alt /etc/init.d/,/etc/init.d 是 /etc/rc.d/init.d
的软链接
4) 安时间排序查看指定目录下文件➜➜➜ls -alt | head -n 10
针对可疑文件可以使用 stat 进行创建修改时间、访问时间的详细查看,若
修改时间距离事件日期接近,有线性关联,说明可能被篡改或者其他。
5) 查看历史命令记录文件~/.bash_history
查找~/.bash_history 命令执行记录,主要分析是否有账户执行过恶意操作
系统;命令在 linux 系统里,只要执行过命令的用户,那么在这个用户的 HOME
目录下,都会有一个.bash_history 的文件记录着这个用户都执行过什么命令;
那么当安全事件发生的时候, 我们就可以通过查看每个用户所执行过的命令,
来分析一下这个用户是否有执行恶意命令, 如果发现哪个用户执行过恶意命令,
那么我们就可以锁定这个线索,去做下一步的排查;
6) 查看操作系统用户信息文件/etc/passwd
查找/etc/passwd 文件, /etc/passwd 这个文件是保存着这个 linux 系统所有 用户的信息, 通过查看这个文件, 我们就可以尝试查找有没有攻击者所创建的用 户,或者存在异常的用户。我们主要关注的是第 3 、4 列的用户标识号和组标识 号, 和倒数一二列的用户主目录和命令解析程序。一般来说最后一列命令解析程 序如果是设置为 nologin 的话, 那么表示这个用户是不能登录的, 所以可以结合 我们上面所说的 bash_history 文件的排查方法。首先在/etc/passwd 中查找命令 解释程序不是 nologin 的用户, 然后再到这些用户的用户主目录里, 找到
bash_history,去查看这个用户有没执行过恶意命令。
/etc/passwd 中一行记录对应着一个用户, 每行记录又被冒号(:)分隔为 7 个字段,
其格式和具体含义如下:
7) 查看新增文件
find:在指定目录下查找文件
find ./ -mtime 0 -name "*.php"(查找 24 小时内被修改的 php 文件)
find / -ctime 2 (查找 72 小时内新增的文件)
PS:-ctime 内容未改变权限改变时候也可以查出;
8) 特殊权限的文件查看
查找 777 的权限的文件➜➜➜ find / *.jsp -perm 4777
9)隐藏的文件(以 "."开头的具有隐藏属性的文件)
PS:在文件分析过程中, 手工排查频率较高的命令是 find grep ls 核心目的是为
了关联推理出可疑文件;
10)查看分析任务计划
crontab -u < -l, -r, -e>
. 通过 crontab – l 查看当前的任务计划有哪些, 是否有后门木马程序启动相
关信息;
. 查看 etc 目录任务计划相关文件, ls /etc/cron*
2.1.6.2.2 、进程排查
1)用 netstat 网络连接命令,分析可疑端口、可疑 IP、可疑 PID 及程序进程
netstat 用于显示与 IP、TCP 、UDP 和 ICMP 协议相关的统计数据, 一般用于检验
本机各端口的网络连接情况。
选项参数:
netstat –antlp | more
说明:
如图,可查看到本地 mysql 数据库有外部连接行为:
2)根据 netstat 定位出的 pid,使用 ps 命令,分析进程
ps aux | grep pid | grep –v grep
将 netstat 与 ps 结合:
2.1.6.2.3、日志排查
1)查看系统用户登录信息
a)使用 lastlog 命令, 系统中所有用户最近一次登录信息。
b) 使用 lastb 命令,用于显示用户错误的登录列表;
c) 使用 last 命令,用于显示用户最近登录信息(数据源为/var/log/wtmp,
var/log/btmp);
utmp 文件中保存的是当前正在本系统中的用户的信息。
wtmp 文件中保存的是登录过本系统的用户的信息。
/var/log/wtmp 文 件 结 构 和 /var/run/utmp 文 件 结 构 一 样 , 都 是 引 用
/usr/include/bits/utmp.h 中的 struct utmp;