本文作者初入安全行业,入职行业某云安全公司,得到了职业导师的指点,从基础入手学习网络安全,此文章是作者学习web中间件的iis笔记,从搭建—安全配置—日志分析进行深入的分析和学习,仅以此文分享给更多的同样在路上的安全行业从业者

Web中间件学习篇

本篇主要从IIS、Apache、Nginx、Tomcat四种常见中间件的IIS入手,介绍相关安全知识,遵循“中间件简介→如何搭建网站→安全配置分析→安全日志分析”的顺序进行学习,旨在梳理常见Web中间件的知识点,为Web安全学习打好基础。

IIS篇

作者:古月蓝旻@安全之光

IIS简介

IIS是Internet Information Services的缩写,意为互联网信息服务,是由微软公司提供的基于
运行Microsoft Windows的互联网基本服务。
最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和
Windows Server 2003一起发行,但在Windows XP Home版本上并没有IIS。
IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,
分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)
上发布信息成了一件很容易的事。
IIS最经典的版本是IIS6.0,最常见于Windows Server 2003系统中;IIS7.0则常见于
Windows Server 2008中。
目前(2017年)最新的版本是IIS10.0,常见于Windows Server 2016中。

IIS站点搭建

IIS相对于其它Web中间件而言,略有不同,使用了较多图形化界面操作进行相关配置,主要分为以下几步:

  1. 安装IIS服务
  2. 部署站点
  3. 修改站点配置

下面开始详细介绍如何搭建一个完整的IIS站点

环境介绍

操作系统:Windows Server 2003 Enterprise Edition
IIS版本:IIS 6.0
站点类型:Asp

搭建步骤

安装IIS服务

依次点开 开始→控制面板→添加或删除程序,在应用服务器 前打勾,点击详细信息

勾选Internet信息服务(IIS),点击详细信息,然后添加IIS组件中的Web、FTP、NNTP和SMTP等全部四项服务

一路下一步安装即可

部署站点

启动IIS服务后,依次点开开始→控制面板→管理工具→Internet服务管理器(IIS管理器),打开IIS管理器

可以看见里面有一个默认站点,默认路径为C:\Inetpub\wwwroot

我们可以不用管它,另起一个站点,首先在Asp源码站点随意下载一个Asp源码包,再在C:\Inetpub\wwwroot路径下新建一个qing文件夹

然后在Internet服务管理器(IIS管理器)中新建一个网站

网站描述随意,在IP地址和端口配置中,选择网站IP地址为本机IP

网站路径指定为刚刚创建的qing文件夹

网站权限设置由于本例需要运行asp,因此勾选如下权限,写入权限一般情况下不勾选,下一步即可完成创建

此时将下载好的asp程序源码复制粘贴到qing文件夹中

修改站点配置

此时如果仅仅想打开qing文件夹下的html文件是可以的,但是还是无法动态运行asp,并且我们还想做到打开站点后默认页面为index.asp,这个时候就需要我们进一步设置了

首先右键我们新建新建的站点qing,选择属性,在主目录标签页选择如下的权限,同时点击配置

选项标签页勾选启用父路径,在调试标签页勾选 调试标志下的两条,选择确定

!

文档标签页,在启用默认内容文档处添加index.asp,实现打开站点后默认页面为index.asp的效果,然后将其一路上移至第一个默认内容文档,最后一路确定

此时还是不行的,还需要返回上级,找到Web服务拓展,根据下图所示,允许部分Web服务拓展

此时完成全部配置,打开浏览器(本机或同局域网均可),访问站点url即可

不得不说IIS6.0配置站点还是比较麻烦的,但是如果不按照步骤配置会出现以下症状:

  • asp无法解析,以源码形式显示
  • 您没有权限查看该页面
  • 该页无法显示

IIS日志分析

Web日志是网站分析和网站数据仓库的数据最基础来源,也是网站被入侵排查入侵者和查找相关漏洞的关键所在,了解其格式和组成将有利于更好地进行数据的收集、处理和分析。

对于IIS而言,其日志格式种类较多,默认为W3C拓展日志文件格式,该内容可在站点属性中查看

选择W3C拓展日志文件格式后,点击旁边的属性

  • 常规标签页可以看见日志按照多长时间划分、日志的默认路径、日志文件名的规则,
  • 高级标签页可以看见日志记录的字段和其含义(仅限于W3C拓展日志文件格式)

我们可以打开其中一份日志文件,可以看见其中记录了大量访问信息包括:访问时间 服务端名称 服务端IP 访问者IP等信息

完整字段含义如下:

顺便一提,由于不同的 Windows 版本,IIS日志路径不一样,所以分别如下:

Windows Server 2003 IIS日志路径:C:\Windows\System32\LogFiles

Windows Server 2008 R2 IIS日志路径:C:\inetpub\logs\LogFiles

IIS日志分析工具

这么直接看日志的效率还是非常低,所以还是需要相关的工具辅助一下,工具还是比较多,下面介绍两个比较好用的

Log Parser

微软官方出品,老牌日志分析工具,虽是老牌工具,但是目前只有英文版和日文版,附上下载地址:log parser下载

用法还是比较尴尬的,首先需要将日志文件拷贝至log parser目录下,然后运行该程序,居然打开了一个命令行界面…

用法格式:

LogParser.exe -i:日志原输入格式 -o:输出格式 "选择相应想查看的字段"

默认显示10行,可以选择All rows查看全部,选择Auto Resize自动调节显示宽度

关于Log Parser详细的使用说明附上一篇文章,此处不详细展开了:IIS分析工具详解

网站日志分析器

国产的工具还是比较好用的,介绍一款秋式网站分析器

可以选择分析单个日志和日志文件夹,在查看明细处可以看见日志中访问网站IP的次数

双击该IP可以查看具体的访问内容

IIS日志分析Web攻击行为

IIS日志有一个重要作用就是分析Web攻击行为,

sql注入攻击

下面使用IIS日志分析sqlmap对网站进行sql注入攻击。

首先使用sqlmap随便攻击一处网址url

此时查看日志文件,可以看见大量的访问记录,同时记录了访问的IP、攻击payload、sqlmap的user-agent等等

xss攻击

下面使用IIS日志分析burp suite对网站进行xss跨站攻击。

首先使用burp suite随意拦截一处网址url,并在id字段标记,使用xss-fuzzing攻击

可以看见其中一个payload攻击成功

此时查看日志文件,同样可以看见大量的xss攻击记录

post方式访问

上述的sql注入攻击和xss攻击由于使用GET方式访问页面,因此所有的payload都被完整记录下了,如果使用POST方式访问页面,并传递一些信息,IIS日志中能否记录呢?

我们将GET改为POST并添加hello qingteng

此时查看日志可以看见确实记录了这次访问,但是没有找到其中的hello qingteng

因此使用IIS日志可以记录GET攻击的详细路径,但是无法记录POST方式攻击的详细内容。

IIS篇主要介绍了IIS6的相关知识点,其实单就微软阵营而言:目前IIS7占有率更高,而最新的IIS10也有崭露头角的趋势。web服务器市场占有率可以参考netcraft每月更新的web服务器市场占有率报告,这里附上一篇作为结尾:2017年7月web服务器市场占有率报告

作者:安全之光