0%

电子数据取证之日志分析

日志分析—-计算机、网络和其他IT系统生成审计跟踪记录或记录系统活动的日志。日志分析是对这些记录的评估,帮助公司缓解各种风险并满足合规性法规。日志分析主要分成两种:Web日志分析、系统日志分析。

一、WEB日志分析
1.日志格式类型:

既然要进行分析日志,首先我们得先了解一下日志的格式到底有哪些?
目前比较常见的WEB日志格式主要有两类:

●Apache的NCSA日志格式,NCSA格式分为:

NCSA普通日志格式(CLF)
NCSA扩展日志格式(ECLF)

●IIS的W3C日志格式

除了格式不同之外,一般的分析方法基本相似,因此接下来以NCSA普通日志格式进行演示。
为了可以更好的演示,这边使用的是NCSA普通日志格式,它的格式如下:
enter description here

2.常用日志分析方法:
1).特征字符分析

特征字符分析法:顾名思义,就是根据攻击者利用的漏洞特征,进行判断攻击者使用的是哪一种攻击。
常见的类型有以下:SQL注入、XSS跨站脚本攻击、恶意文件上传、一句话木马连接等。

(1)SQL注入:

漏洞特征:存在SQL注入语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
●通过报错注入、布尔盲注、时间盲注判断是否存在注入:
⊙字符型
■ 参数后加单引号,报错:sql1.php?name=admin’
■ 参数后加’ and ’1′=’2和’ and ’1′=’2,访问正常:sql1.php?name=admin’ and ’1′=’1 /sql1.php?name=admin’ and ’1′=’2
■ 参数后加’ and sleep(3) –,是否延迟3秒打开:sql1.php?name=admin’ and/or sleep(3)–
⊙数字型
■ 参数后加单引号,报错:sql2.php?id=1
■ 参数后加and 1=1和and 1=2,访问正常:sql2.php?id=1 and 1=1/sql2.php?id=1 and 1=2
■ 参数后加and sleep(5),是否延迟3秒打开:sql2.php?id=1 and sleep(5)
● 通过各种注入语句进行SQL注入攻击:
☉联合查询注入
■ union select
■ order by
☉报错注入(常见报错注入函数)
■ floor()
■ extractvalue()
■ updatexml()
■ geometrycollection()
■ multipoint()
■ polygon()
■ multipolygon()
■ linestring()
■ multilinestring()
■ exp()
⊙常见数据库类型判断
■ ACCESS
and (select count (*) from sysobjects)>0返回异常
and (select count (*) from msysobjects)>0返回异常
■ SQLSERVER
and (select count (*) from sysobjects)>0返回正常
and (select count (*) from msysobjects)>0返回异常
and left(version(),1)=5%23参数5也可能是4
■ MYSQL
id=2 and version()>0返回正常
id=2 and length(user())>0返回正常
id=2 CHAR(97, 110, 100, 32, 49, 61, 49)返回正常
■ Oracle
and length (select user from dual)>0返回正常
(2) XSS跨站脚本攻击:

漏洞特征:明显的js恶意执行代码,常见的XSS跨站脚本攻击中存在的一些代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
●  标签
■ <script>
■<body>
■<input>
■<img>
■<a>
■<svg>
■<BGSOUND>
■<LINK>
■<META>
■<TABLE>
■<DIV>
■<IFRAME>
■<FRAMESET>
■<STYLE>
■<OBJECT>
■ ……
● 常用触发事件
■ oninput
■ onload
■ oncut
■ onclick
■ onerror
■ onmouseover
■ onfocus
■ onblur
■ poster
■ onscroll
■……
● 常用恶意代码
■ prompt
■ confirm
■ alert
■ javascript
eval
■ expression
window.location
■……
(3)恶意文件上传:

通常存在于upload、file等出现类似字样的文件,均可能存在恶意文件上传,具体还需结合日志进行判断,一般是判断后续是否有出现Webshell等一些可以的web操作,可通过查看下图,发现在file.php页面的前后日志中,有存在一个带着日期的php页面,很可能就是利用file.php上传的文件,服务器自动生成名字,因此判断此处可能存在恶意文件上传。
一般地,如果Post请求的数据未被显示出来,则需要我们通过访问的链接以及上下文的访问详情确认此处是否存在恶意文件上传

(4)一句话木马(Webshell):

一般名字可疑的文件,如带日期字样的页面(.php、.asp、.aspx、.ash、.jsp等)、一串随机值的页面等,并且是通过Post请求,同时会返回一定的数据,此时可判断可能存在一句话木马、webshell等恶意文件,有些日志可能还有post请求参数,可结合参数,更准确地判断出是否存在一句话木马、webshell等恶意文件。

2).访问频率分析

访问频率分析:不难理解,就是通过查看攻击者访问的频率来判断攻击者使用的是哪一种攻击。
常见的类型有有以下:SQL盲注、敏感目录爆破、账号爆破、Web扫描。

(1)SQL盲注:

一般访问比较有规律,基本都包含SQL语句,并且大体都相似,有个别字符不同,具体情况可参考下图:

enter description here

不难发现,上图中语句中除了包含SQL语句外,并且最后几个字符不同,其他都是一致的,因此可推测出此处为SQL盲注。

(2)敏感目录爆破:

一般会有大量的探测目录,一般以Head方法为主进行探测,具体情况可参考下图:

enter description here

发现在上图中,存在大量的HEAD请求方法,并且基本访问的页面返回的状态码为404。

(3)账号爆破:

通常都是对一个登录页面进行大量post请求,并且返回值基本相似,具体情况可参考下图:

enter description here

从上图可以很容易看出,明显是个登录页面,并且访问频率较高,都是通过post方法进行请求,访问值均一样,幸运的是此处出现了一个302状态码,说明攻击者已经爆破到账号密码了,故可判断此处应该为账号爆破。

(4)Web扫描:

一般来说,访问的目标比较离散,并且来源地址相对固定,同时访问的结果大多数也都是失败的,并且在参数中有比较明显的扫描器特征字段

常见扫描器在url上的特征:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

● AWVS 10.511
acunetix-wvs-test-for-some-inexistent-file
by_wvs
acunetix_wvs_security_test
acunetix
acunetix_wvs
acunetix_test
wvs_test
● Netsparker
netsparker
Netsparker
ns: netsparker
●Appscan
Appscan
● Webinspect
HP404
● Rsas
nsfocus
● Nessus
nessus
Nessus
● Sqlmap
sqlmap

enter description here

根据之前讲到的条件,发现上图满足访问目标比较离散、并且源地址是固定,而且其中还带有wvstest字样。

二、系统日志分析
1.Linux系统日志分析

Linux的系统日志一般存放在/var/log目录下,常见的日志(列举部分)有以下:

enter description here

(1)/var/log/messages

用于记录系统相关信息,如执行程序、系统错误、启动信息等,一般我们会使用message进行查看可疑程序执行的可疑操作,系统在执行程序时出现错误等
日志格式:日期 时间 主机 执行的程序[进程ID]:具体信息

enter description here

(2)/var/log/boot.log

用于记录系统启动信息的日志,一般用于查看在系统启动时所有相关信息.

enter description here

(3)/var/log/lastlog

用于记录了用户近期登陆情况,直接查看lastlog,可能信息不太明显,但是也可以使用lastlog命令进行查看,会比较详细:

enter description here

(4) /var/log/cron

Linux的计划任务相关信息的日志,我们也会使用它来找寻攻击者可能会写入的一些恶意计划任务,其中可能会带有一些恶意软件等相关信息。

enter description here

(5)/var/log/secure

linux 的安全日志,被用于记录用户工作的安全相关问题以及登陆认证情况

enter description here

2.Windows操作系统日志分析

Windows日志一般在事件查看器中可以进行查看,通常分为五个:应用程序、安全、Setup、系统、转发事件。并且这五个中又以应用程序、安全以及系统日志较为常见。

(1)应用程序日志

此日志顾名思义便是记录了应用程序的运行情况,包括运行出错、甚至于出错的原因。

enter description here

它指出了错误应用程序名称、版本、具体时间错,并且还指出了错误的模块以及异常代码,故而,我们可以通过这些信息,进行对应的故障排查,具体如何排查可通过适当的资料等进行。

(2)安全日志

此处的安全日志和Linux的安全日志相似,但是它只记录用户登陆情况、用户访问时间以及访问是否授权等,通过它我们可以轻松的发现是否存在爆破风险(一般在短时间内发现大量登陆失败,即可认为该账号被爆破了)

enter description here

enter description here

它详细到可以发现使用者信息、登陆类型、登陆失败的账户、失败信息、进程信息、内网信息以及详细身份验证信息等,十分方便。它在操作系统中保存在Security.evtx文件下,我们也可以通过双击它打开安全日志。

(3)系统日志

系统日志则是记录了操作系统安装的应用程序软件相关的事件。它包括了错误、警告及任何应用程序需要报告的信息等.

enter description here

相比于Linux 的日志,Windows对于系统日志的记录,也是挺详细的,我们可以通过它来进行一些分析判断,它存在于System.evtx文件中。