萌生出再写一系列文章的想法,虽然有一些系列还没完成,或者说完成的很基础。但还是想着写出来分享~ 因为这是我的乐趣,并不是想为这个行业做多少贡献,为多少爱好者提供帮助,而是做自己喜欢的事。不是什么客,也不是什么帽子~
1
iis日志初探
作为一名安全人员,除了前阶段的渗透攻击,后阶段的日志清除、分析然后做出安全响应也是及其重要的。到后面的阶段,熟练掌握日志的分析不止可以帮助你溯源甚至你还能搭建一个蜜罐诱捕猎物。
首先要了解iis日志的路径
2003下,路径为:C:WINDOWSsystem32LogFiles
2008下,路径为:C:inetpublogsLogFiles
本文以2003为例,实际上掌握了2003,后续的多差不多~
打开iis管理器,右键属性
在网站选项卡点击属性,可以看到日志文件的位置。
如果在IIS6.0中启用了日志记录,并使用W3C扩展日志文件格式,查看日志时你会发现记录的时间总是比本地时间晚8小时
原因是IIS中使用的时间是(GMT)格林威治标准时间,而我们本地通常是使用(GMT 08:00)北京时间,两者相差8小时。这样导致的问题是按天记录日志时,同一天的日志文件中记录的实际是当天08:00至第二天07:59的访问日志,这要注意下。
每个网站都有对应自己的标识符
网站对应的的日志文件夹以“W3SVC 标识符”为名称命名
有一些标识符是一串随机的字符串,为了方便管理。我们经常修改为特定的编号。
怎么修改呢?
首先需要断开IIS的连接,然后在"控制面板---管理工具---服务"中停止IISAdmin相关服务。
打开C:WINDOWSsystem32inetsrvMetaBase.xml
比如我们要修改xss这个网站对应的标识符。
1.打开Metabase Explorer - 找到W3SVC节点
2.把站点标识重命名。
3.编辑站点的root节点下面的AppRoot的/LM/W3SVC/XXXXX/Root, 把XXXXX位置的值换成你新的标识的值。
PS:我就是没改AppRoot, IIS改后就找不到路径。
为了保证不会出错,我们用notepad打开,然后搜索906155全部替换掉
更改完别忘记启动下IISAdmin服务~
更改完成,我们看到文件夹也变了。
2
iis日志的管理与分析
为了方便和安全起见,建议使用微软官方的管理工具IIS 6.0 Resource Kit Tools来对日志进行分析。下载链接:https://www.microsoft.com/en-us/download/details.aspx?id=17275
更改标识符可以用IIS 6.0 Resource Kit Tools中的 Metabase Explorer
IIS 6.0 Resource Kit Tools安装完会集成很多工具
接下来就是日志的分析。
方法1:
直接找到日志文件用excel处理
1、找到日志文件,复制之后,选定A
2、在上面的工具栏里选择数据→分列
3、分隔符号,点击下一步
4、选择空格,去掉Tab键前面的钩,点击完成。
网站的iis日志就这样被拆分出来了,之后自己再调整一下表格的列宽、升降序等即可。
在截图中,日志的创建方式是每天产生一个新文件,按日期来生成文件名(这是默认值)。
说明:IIS使用UTC时间,所以我勾选了最下面的复选框,告诉IIS用本地时间来生成文件名。
点击【高级】选项卡,将出现以下对话框:
注意:【发送的字段数】和【接收的字节数】默认是没有选择的。建议勾选它们。
至于其它字段,你可以根据需要来决定是否要勾选它们。
日志记录了:
1. 请求发生在什么时刻,
2. 哪个客户端IP访问了服务端IP的哪个端口,
3. 客户端工具是什么类型,什么版本,
4. 请求的URL以及查询字符串参数是什么,
5. 请求的方式是GET还是POST,
6. 请求的处理结果是什么样的:HTTP状态码,以及操作系统底层的状态码,
7. 请求过程中,客户端上传了多少数据,服务端发送了多少数据,
8. 请求总共占用服务器多长时间、等等。
方法2:
这里提供另一种方法提取、整理日志,用微软的Log Parse。
下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=24659
一般选择输出格式为 SQL ,步骤为三。
1、查看命令:
2、导入数据库:
3、"SELECT * FROM 'C:UsersAdministratorDownloads170109.log' to MyMVC_WebLog" -i:IISW3C -o:SQL -oConnString:"Driver={SQL Server};server=localhostsqlexpress;database=test;Integrated Security=SSPI" -createtable:ON
其中:C:UsersAdministratorDownloads170109.log 为日志地址;需要在localhostsqlexpress实例中创建test数据库。
然后就可以根据sql语句进行分析了
3
代码实现日志文件的分析
这里为了节省时间我写了个批处理直接生成日志的结果,选择的字段大家可以自行选择。
git项目地址:https://github.com/lonelyvaf/Log-analysis/
运行时候要和日志文件通过一个目录,省去了冗长的命令构造。
后续会写一些脚本或者小程序做为分析工具,有兴趣的朋友可以一起做。