在取证这一块,通常的就是日志取证,技术要求更高的还有内存取证等 日志分析包括:系统日志分析、中间件日志分析、数据库日志分析
通常,系统自带的日志数量庞大,一般都挑重点分析
windows日志分析
windows事件日志
- windows事件日志包括系统,安全,应用程序记录
- 每个事件包含9个元素:时间、类型、用户、计算机、事件ID、来源、类别、描述、数据
- 存放路径:
C:\windows\system32\winevt\logs\
查看方法:开始->运行->输入eventvwr.msc打开事件查看器 事件查看器把日志分为两大类:windows日志、应用程序日志和服务日志
windows日志事件类型:应用程序、安全、setup、系统、forwarded event
应用程序日志:
- 包含应用程序或系统程序记录的事件,主要记录程序运行方面的事件
- 日志默认位置:
%SystemRoot%\System32\Winevt\Logs\Applocation.evtx
系统日志:
- 记录操作系统组件产生的事件,包括驱动程序、系统组件、应用程序崩溃以及数据丢失错误等
- 日志默认位置:
%SystemRoot%\System32\Winevt\Logs\System.evtx
安全日志:(重点)
- 包含安全性相关的事件,如用户权限变更、登录和注销、文件及文件夹访问等信息
- 日志默认位置:
%SystemRoot\System32\Winevt\Logs\Security.evtx
常见事件ID: 每个成功登录的事件都会标记一个登录类型,不同登录类型代表不同的方式
常见事件日志分析
常见windows事件:
- 用户登录/注销
- 远程访问事件(RDP)
- 无线网络接入
- USB介质移动
用户登录、注销
比如现在有一个事件,它有如下信息:
EventID=4624(登录成功) 登录类型:2 账户名称:administrator 记录时间:2020/2/7 xx:xx:xx 事件ID:4624 计算机:win2008
就代表以本地交互式登录本地主机,且登录成功
无线网络接入
- 事件ID:10000网络已连接、10001网络已断开
- windows事件日志位置:
Microsoft-Windows-NetworkProfile-Operational - 系统关联过的wifi\vpn都有记录
移动设备使用
- 事件ID:20001&20003(驱动安装,属于系统日志)、4663移动接入成功、4656设备接入失败
- 注册表:
UserPnP\DeviceInnstall - win7及以上:
C:\windows\INF\setupapi.dev.log
Linux日志分析
分类:
- 内核及系统日志:由系统服务rsyslog统一进行管理
- 用户日志:记录系统用户登录及退出系统的相关信息
- 程序日志:由相应的应用程序进行独立管理。如web,ftp服务
日志默认保存位置:/var/log/及其子目录
系统日志基础
日志优先级: 日志类型: 常见日志文件 lastlog,btmp,ytmp,wtmp是二进制文件,需要用命令查看 windows查看当前登录操作系统的用户:query user ac 用户名 查看用户登录的总时长
日志分析实例
分析安全日志:/var/log/secure
可以看到在日志文件记录登录失败有明显的Failed password for root
定位有多少IP在爆破主机的root账号: grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
grep "Failed password for root" 即筛选;| 前一个命令输出为后一个命令输入;awk '{print $n}' 以空格为分割符输出第n个字符串,比如n=1时输出Aug,n=2输出9,-F 命令指定以什么分隔,默认空格;sort 为排序;uniq 去重;-c 显示有多少个重复的;sort -n 以数量排序,加r 倒序;more 查看文本,和cat比能翻页
中间件日志分析
APACHE
apache日志存放位置:
- windows:apache安装目录的logs子目录
- linux默认安装下在
/var/log/httpd access_log 为访问日志;error_log 为错误日志. access_log和error_log差不多,就只举例access_log就行了
access_log内容: 200为状态码,1220为数据包长度,重点还是看图 在/etc/httpd/conf/httpd_conf 配置文件里写好了apache日志文件的格式
- 查看ip:
cat access_log | awk '{print $1}' - 显示指定时间以后的日志:
cat access_log | awk '$4>="[1/Jan/2020:00:00:00"' - 查看指定IP行为:
cat access_log | grep 192.168.3.3 | awk '{print $1"\t"$8}' |sort |uniq -c |sort -nr |less - 查看最近访问量降序排列文件:
cat access_log | tail 10000|awk '{print $7}'| sort |uniq -c |sort -nr|less
IIS
日志文件默认位置:
- IIS7.5:
%SystemDrive%\inetpub\logs\LogFiles - IIS6.0:
%systemroot%\system32\logfiles\w3svc1\
IIS日志常用字段:
IIS其实和apache差不多,只是格式有所区别。
mysql日志
mysql日志主要用到的有三种,错误日志、查询日志、慢查询日志
- 错误日志默认开启,对现阶段没啥用
- 查询日志(最有用的)记录增删改查信息,由于信息量大默认关闭,
show global variables 查看查询日志位置以及是否开启,如果关闭可以在my.cnf中开启,但是影响Mysql性能,一般只在开发环境开启 - 慢查询日志
- 慢查询日志是对调试程序最有用的日志,慢查询默认记录超过10s的查询语句,一般情况正常的web应用不会出现大量慢查询日志,所以最好开启
show glabal variables like '%slow%'; 查看慢查询日志位置及是否开启 对某些时间盲注贼有用
判断网站是否被入侵过
如果实在不会用linux命令行查找文本相关内容,那完全可以复制到windows然后ctrl+F嘛。查找入侵痕迹也很简单,比如sql在日志文件查看%20和单引号等在sql有关键作用的语句,前提是对方没有删掉相关日志。
用户下载数据库的记录: 可以看到来自甘肃省庆阳市电信(60.165.238.228)的朋友试图下载powereasy2006.mdb的数据库,但是状态码404没有找到界面,2为找不到指定文件 目录爆破的记录: 文件上传:
所以还是前面代码审计那一套,别人搞什么我们就看什么。
- select,insert,delete:查看sql注入
- .mdb查看用户下载mdb数据库
- upfile,upload,file:查找是否被挂木马
- post:上传信息到服务器
- 目录爆破:404多次重复
|