推广 热搜: 行业  机械  设备    系统  教师  经纪    参数  蒸汽 

日志分析篇

   日期:2024-11-11     移动:http://dgaty.xhstdz.com/mobile/quote/79852.html

0x01 Windows事件日志简介

Windows系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。

日志分析篇

Windows主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志。

系统日志

 

Copy

应用程序日志

 

Copy

安全日志

 

Copy

系统和应用程序日志存储着故障排除信息,对于系统管理员更为有用。 安全日志记录着事件审计信息,包括用户验证(登录、远程访问等)和特定用户在认证后对系统做了什么,对于调查人员而言,更有帮助。

0x02 审核策略与事件查看器

Windows Server 2008 R2 系统的审核功能在默认状态下并没有启用 ,建议开启审核策略,若日后系统出现故障、安全事故则可以查看系统的日志文件,排除故障,追查入侵者的信息等。

PS:默认状态下,也会记录一些简单的日志,日志默认大小20M

设置1:开始 → 管理工具 → 本地安全策略 → 本地策略 → 审核策略,参考配置操作

null

设置2:设置合理的日志属性,即日志最大大小、事件覆盖阀值等

null

查看系统日志方法

  1. 在**“开始”菜单上,依次指向“所有程序”“管理工具”,然后单击“事件查看器”**

  2. 按 “Window+R,输入 ”eventvwr.msc“ 也可以直接进入“事件查看器

    null

0x03 事件日志分析

对于Windows事件日志分析,不同的EVENT ID代表了不同的意义,摘录一些常见的安全事件的说明

事件ID说明4624登录成功4625登录失败4634注销成功4647用户启动的注销4672使用超级用户(如管理员)进行登录4720创建用户

每个成功登录的事件都会标记一个登录类型,不同登录类型代表不同的方式

登录类型描述说明2交互式登录(Interactive)用户在本地进行登录。3网络(Network)最常见的情况就是连接到共享文件夹或共享打印机时。4批处理(Batch)通常表明某计划任务启动。5服务(Service)每种服务都被配置在某个特定的用户账号下运行。7解锁(Unlock)屏保解锁。8网络明文(NetworkCleartext)登录的密码在网络上是通过明文传输的,如FTP。9新凭证(NewCredentials)使用带/Netonly参数的RUNAS命令运行一个程序。10远程交互(RemoteInteractive)通过终端服务、远程桌面或远程协助访问计算机。11缓存交互(CachedInteractive)以一个域用户登录而又没有域控制器可用

关于更多EVENT ID,详见微软官方网站上找到了“Windows Vista 和 Windows Server 2008 中的安全事件的说明”。

原文链接 :https://support.microsoft.com/zh-cn/help/977519/description-of-security-events-in-windows-7-and-in-windows-server-2008

案例1:可以利用eventlog事件来查看系统账号登录情况

  1. 在**“开始”菜单上,依次指向“所有程序”“管理工具”,然后单击“事件查看器”**

  2. 在事件查看器中,单击**“安全”**,查看安全日志

  3. 在安全日志右侧操作中,点击**“筛选当前日志”**,输入事件ID进行筛选。

    4624 --登录成功 4625 --登录失败 4634 – 注销成功 4647 – 用户启动的注销 4672 – 使用超级用户(如管理员)进行登录

我们输入事件ID:4625进行日志筛选,发现事件ID:4625,事件数175904,即用户登录失败了175904次,那么这台服务器管理员账号可能遭遇了暴力猜解。

null

案例2:可以利用eventlog事件来查看计算机开关机的记录

1、在**“开始”菜单上,依次指向“所有程序”“管理工具”,然后单击“事件查看器”**

2、在事件查看器中,单击**“系统”**,查看系统日志

3、在系统日志右侧操作中,点击**“筛选当前日志”**,输入事件ID进行筛选。

其中事件ID 6006 ID6005、 ID 6009就表示不同状态的机器的情况(开关机)。 6005 信息 EventLog 事件日志服务已启动。(开机) 6006 信息 EventLog 事件日志服务已停止。(关机) 6009 信息 EventLog 按ctrl、alt、delete键(非正常)关机

我们输入事件ID:6005-6006进行日志筛选,发现了两条在2018/7/6 17:53:51左右的记录,也就是我刚才对系统进行重启的时间。

null

0x04 日志分析工具

Log Parser

Log Parser(是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志、注册表、文件系统、Active Directory。它可以像使用 SQL 语句一样查询分析这些数据,甚至可以把分析结果以各种图表的形式展现出来。

Log Parser 2.2下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=24659

Log Parser 使用示例:https://mlichtenberg.wordpress.com/2011/02/03/log-parser-rocks-more-than-50-examples/

null

基本查询结构

 

Copy

使用Log Parser分析日志

1、查询登录成功的事件

 

Copy

2、查询登录失败的事件

 

Copy

3、系统历史开关机记录

 

Copy

LogParser Lizard

对于GUI环境的Log Parser Lizard,其特点是比较易于使用,甚至不需要记忆繁琐的命令,只需要做好设置,写好基本的SQL语句,就可以直观的得到结果。

下载地址:http://www.lizard-labs.com/log_parser_lizard.aspx

依赖包:Microsoft .NET framework 4 .5,下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=42642

查询最近用户登录情况

null

Event Log Explorer

Event Log Explorer是一款非常好用的Windows日志分析工具。可用于查看,监视和分析跟事件记录,包括安全,系统,应用程序和其他微软Windows 的记录被记载的事件,其强大的过滤功能可以快速的过滤出有价值的信息。

下载地址:https://event-log-explorer.en.softonic.com/

null

参考链接

Windows日志分析 https://mp.weixin.qq.com/s/ige5UO8WTuOOO3yRw-LeqQ

0x00 前言

Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。 本文简介一下Linux系统日志及日志分析技巧。

0x01 日志简介

日志默认存放位置:/var/log/

查看日志配置情况:more /etc/rsyslog.conf

日志文件说明/var/log/cron记录了系统定时任务相关的日志/var/log/cups记录打印信息的日志/var/log/dmesg记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息/var/log/mailog记录邮件信息/var/log/message记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件/var/log/btmp记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看/var/log/lastlog记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看/var/log/wtmp永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看/var/log/utmp记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询/var/log/secure记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中

比较重要的几个日志: 登录失败记录:/var/log/btmp //lastb 最后一次登录:/var/log/lastlog //lastlog 登录成功记录: /var/log/wtmp //last 登录日志记录:/var/log/secure

目前登录用户信息:/var/run/utmp //w、who、users

历史命令记录:history ​ 仅清理当前用户: history -c

0x02 日志分析技巧

A、常用的shell命令

Linux下常用的shell命令如:find、grep 、egrep、awk、sed

小技巧

1、grep显示前后几行信息:

 

Copy

2、grep 查找含有某字符串的所有文件

 

Copy

3、如何显示一个文件的某几行

 

Copy

4、find /etc -name init

 

Copy

5、只是显示/etc/passwd的账户

 

Copy

6、sed -i ‘153,$d’ .bash_history

 

Copy

B、日志分析技巧

A、/var/log/secure

 

Copy

2、/var/log/yum.log

软件安装升级卸载日志

 

Copy

ox01 Web日志

Web访问日志记录了Web服务器接收处理请求及运行时错误等各种原始信息。通过对WEB日志进行的安全分析,不仅可以帮助我们定位攻击者,还可以帮助我们还原攻击路径,找到网站存在的安全漏洞并进行修复。

我们来看一条Apache的访问日志

 

通过这条Web访问日志,我们可以清楚的得知用户在什么IP、什么时间、用什么操作系统、什么浏览器的情况下访问了你网站的哪个页面,是否访问成功。

本文通过介绍Web日志安全分析时的思路和常用的一些技巧。

0x02 日志分析技巧

在对WEB日志进行安全分析时,一般可以按照两种思路展开,逐步深入,还原整个攻击过程。

第一种:确定入侵的时间范围,以此为线索,查找这个时间范围内可疑的日志,进一步排查,最终确定攻击者,还原攻击过程。

第二种:攻击者在入侵网站后,通常会留下后门维持权限,以方便再次访问,我们可以找到该文件,并以此为线索来展开分析。

常用分析工具

Window下,推荐用 EmEditor 进行日志分析,支持大文本,搜索效率还不错。

Linux下,使用Shell命令组合查询分析。

Shell+Linux命令实现日志分析,一般结合grep、awk等命令等实现了几个常用的日志分析统计技巧。

Apache日志分析技巧

 

Copy

0x03 日志分析案例

Web日志分析实例:通过nginx代理转发到内网某服务器,内网服务器某站点目录下被上传了多个图片木马,虽然II7下不能解析,但还是想找出谁通过什么路径上传的。

在这里,我们遇到了一个问题:由于设置了代理转发,只记录了代理服务器的ip,并没有记录访问者IP?这时候,如何去识别不同的访问者和攻击源呢

这是管理员日志配置不当的问题,但好在我们可以通过浏览器指纹来定位不同的访问来源,还原攻击路径。

1、定位攻击源

首先访问图片木马的记录,只找到了一条,由于所有访问日志只记录了代理IP,并不能通过IP来还原攻击路径,这时候,可以利用浏览器指纹来定位。

null

浏览器指纹

 

2、搜索相关日志记录

通过筛选与该浏览器指纹有关的日志记录,可以清晰地看到攻击者的攻击路径。

null

3、对找到的访问日志进行解读,攻击者大致的访问路径如下

 

Copy

打开网站,访问Xzuser.aspx,确认攻击者通过该页面的进行文件上传了图片木马,同时,发现网站了存在越权访问漏洞,攻击者访问特定URL,无需登录即可进入后台界面。通过日志分析找到网站的漏洞位置并进行修复。

0x04 日志统计分析技巧

统计爬虫

 

Copy

统计浏览器

 

Copy

IP 统计

 

Copy

统计网段

 

Copy

统计域名

 

Copy

HTTP Status

 

Copy

URL 统计

 

Copy

文件流量统计

 

Copy

URL访问量统计

 

Copy

脚本运行速度

查出运行速度最慢的脚本

 

Copy

IP, URL 抽取

 

Copy

常见的数据库攻击包括弱口令、SQL注入、提升权限、窃取备份等。对数据库日志进行分析,可以发现攻击行为,进一步还原攻击场景及追溯攻击源。

0x01 MSSQL日志分析

首先,MSSQL数据库应启用日志记录功能,默认配置仅限失败的登录,需修改为失败和成功的登录,这样就可以对用户登录进行审核。

null

登录到SQL Server Management Studio,依次点击 管理–SQL Server 日志

null

双击日志存档文件即可打开日志文件查看器,并可以对日志进行筛选或者导出等操作。

null

另外,MSSQ提供了一个工具SQL Server Profiler ,方便查找和发现SQL执行的效率和语句问题。

null

日志分析案例

在日志文件查看器中,选择筛选,在筛选设置中源设置为“登录”,应用筛选器,确定。

null

筛选后的结果,可以很清晰的识别用户登录信息,记录内容包括用户登录时间、登录是否成功、登录使用的账号以及远程登录时用户使用的IP地址。

如下图:客户端:192.168.204.1进行尝试弱口令登录,并发现其中有一条登录成功的记录。

null

0x02 SQL注入入侵痕迹

在利用SQL注入漏洞的过程中,我们会尝试利用sqlmap的–os-shell参数取得shell,如操作不慎,可能留下一些sqlmap创建的临时表和自定义函数。我们先来看一下sqlmap os-shell参数的用法以及原理

1、构造一个SQL注入点,开启Burp监听8080端口

 

HTTP通讯过程如下

创建了一个临时表sqlmapoutput,调用存储过程执行系统命令将数据写入临时表,然后取临时表中的数据展示到前端。

通过查看数据库中最近新建的表的结构和内容,可以判断是否发生过sql注入漏洞攻击事件。

检查方法

1、数据库表检查

2、检查xp_cmdshell等存储过程

xp_cmdshell在mssql2005之后的版本中是默认禁止的,查看xp_cmdshell是否被启用。

`Exec master.dbo.xp_cmdshell ‘whoami’

3、需要结合web日志,通过查看日志文件的大小以及审计日志文件中的内容,可以判断是否发生过sql注入漏洞攻击事件。

常见的数据库攻击包括弱口令、SQL注入、提升权限、窃取备份等。对数据库日志进行分析,可以发现攻击行为,进一步还原攻击场景及追溯攻击源。

0x01 Mysql日志分析

general query log能记录成功连接和每次执行的查询,我们可以将它用作安全布防的一部分,为故障分析或黑客事件后的调查提供依据。

 

Copy

比如,当我访问 /test.php?id=1,此时我们得到这样的日志

 

Copy

我们按列来解析一下

 

Copy

0x02 登录成功/失败

我们来做个简单的测试吧,使用我以前自己开发的弱口令工具来扫一下,字典设置比较小,2个用户,4个密码,共8组。

null

MySQL中的log记录是这样子

 

Copy

你知道在这个口令猜解过程中,哪个是成功的吗

利用爆破工具,一个口令猜解成功的记录是这样子的

 

Copy

但是,如果你是用其他方式,可能会有一点点不一样的哦。

Navicat for MySQL登录

 

Copy

命令行登录

 

Copy

这个差别在于,不同的数据库连接工具,它在连接数据库初始化的过程中是不同的。通过这样的差别,我们可以简单判断出用户是通过连接数据库的方式。

另外,不管你是爆破工具、Navicat for MySQL、还是命令行,登录失败都是一样的记录。

登录失败的记录

 

Copy

利用shell命令进行简单的分析

 

Copy

在日志分析中,特别需要注意一些敏感的操作行为,比如删表、备库,读写文件等。关键词:drop table、drop function、lock tables、unlock tables、load_file() 、into outfile、into dumpfile。

敏感数据库表:SELECT * from mysql.user、SELECt * from mysql.func

0x03 SQL注入入侵痕迹

在利用SQL注入漏洞的过程中,我们会尝试利用sqlmap的–os-shell参数取得shell,如操作不慎,可能留下一些sqlmap创建的临时表和自定义函数。我们先来看一下sqlmap os-shell参数的用法以及原理

1、构造一个SQL注入点,开启Burp监听8080端口

 

HTTP通讯过程如下

null

创建了一个临时文件tmpbwyov.php,通过访问这个木马执行系统命令,并返回到页面展示。

tmpbwyov.php

&1 ";function f($n){global n)and!in_array(z);}if(f(‘system’)){ob_start();system(w=ob_get_contents();ob_end_clean();}elseif(f(‘proc_open’)){c,array(array(pipe,r),array(pipe,w),array(pipe,w)),w=NULL;while(!feof(w.=fread(y);}elseif(f(‘shell_exec’)){c);}elseif(f(‘passthru’)){ob_start();passthru(w=ob_get_contents();ob_end_clean();}elseif(f(‘popen’)){c,r);x)){while(!feof(w.=fread(x);}elseif(f(‘exec’)){c,w=join(chr(10),w=0;}print "

 

";?>

`

创建了一个临时表sqlmapoutput,调用存储过程执行系统命令将数据写入临时表,然后取临时表中的数据展示到前端。

通过查看网站目录中最近新建的可疑文件,可以判断是否发生过sql注入漏洞攻击事件。

检查方法

1、检查网站目录下,是否存在一些木马文件

null

2、检查是否有UDF提权、MOF提权痕迹

检查目录是否有异常文件

mysqllibplugin

c:/windows/system32/wbem/mof/

检查函数是否删除

本文地址:http://dgaty.xhstdz.com/quote/79852.html    物流园资讯网 http://dgaty.xhstdz.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号