Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drops Wiki -- 服务配置(四) #83

Open
PyxYuYu opened this issue Feb 27, 2017 · 0 comments
Open

Drops Wiki -- 服务配置(四) #83

PyxYuYu opened this issue Feb 27, 2017 · 0 comments
Labels

Comments

@PyxYuYu
Copy link
Owner

PyxYuYu commented Feb 27, 2017

There is only one happiness in life, to love and be loved.

0x01 Drops Wiki

  • 服务配置
    • 配置产生漏洞
    • HTTP Server
      • 解析漏洞
        • 错误配置及利用
          • 解析漏洞是指 Web 服务器因对 HTTP 请求处理不当导致将非可执行的脚本、文件当作可执行的脚本、文件等执行,该漏洞一般配合服务器的文件上传功能使用,以获得服务器的权限
          • 解析漏洞有以下几种
            • IIS 5.X/6.0 解析漏洞
              • 目录解析:在网站下建立文件夹的名称中带有 .asp.asa 等可执行脚本文件后缀为后缀的文件夹,其目录内的任何扩展名的文件都被 IIS 当作可执行文件来解析并执行
                 http://www.xxx.com/xx.asp/xx.jpg
              
              • 文件解析:在 IIS 6.0 下,分号后面的不被解析,也就是说在 IIS 6.0 下,xx.asp;.jpg 将被当做 xx.asp 解析并执行
                 http://www.xxx.com/xx.asp;.jpg
              
              • IIS 6.0 默认的可执行文件有 aspasacercdx 四种
            • IIS 7.0/IIS7.5/Nginx < 8.03 畸形解析漏洞
              • 在默认 Fast-CGI 开启状况下,访问以下网址,服务器将把 xx.jpg 文件当做 php 解析并执行
                 http://www.xxx.com/xx.jpg/.php
              
            • Nginx < 8.03 空字节代码执行漏洞
              • 影响范围:Nginx 0.5, 0.6, 0.7 <= 0.7.65, 0.8 <= 0.8.37
              • 访问以下网址,服务器将把 xx.jpg 文件当作 php 解析并执行
                 http://www.xxx.com/xx.jpg%00.php
              
            • Apache 解析漏洞
              • Apache 对文件解析是从右到左开始判断解析,如果文件的后缀为不可识别,就再往左判断,解析,如 xx.php.owf.rar ,由于 Apache 无法解析 rarowf 后缀,但能够解析 php 后缀,因此 Apache 会将 xx.php.owf.rar 当作 php 格式的文件进行解析并执行
              • 访问以下网址,服务器将把 xx.php.owf.rar 文件当作 php 解析并执行
                 http://www.xxx.com/xx.php.owf.rar
              
            • CVE-2013-4547 Nginx 解析漏洞
              • 访问以下网址,服务器将把 xx.jpg 文件当作 php 解析并执行
                 http://www.xxx.com/xx.jpg (非编码空格) \0.php
              
            • 使用 .htaccess 将任意文件作为可执行脚本解析
              • 如果在 Apache.htaccess 可被执行,且可被上传,那可尝试在 .htaccess 中写入
                 <FilesMatch ".(jpg)$"> SetHandler application/x-httpd-php </FilesMatch>
              
              • 这将把目录下的所有后缀为 jpg 的文件当作可执行的 php 脚本并执行
        • 修复方案
          • 升级 Web 服务器版本或安装相应的官方补丁
      • 目录遍历
        • 错误配置及利用
          • Web 服务器目录浏览的功能被开启时,若客户端浏览器在请求未指定文档名称且 Web 服务器无法返回默认文档时便会启用目录浏览,显示一个列出目录内容的网页,或者当网站的代码存在缺陷,导致可以获取到服务器目录内容、结构,进而影响网站的敏感信息,威胁系统安全
          • 该漏洞的成因主要包括两类
            • Web 服务器的配置引起的目录遍历
            • 网站代码缺陷引起的目录遍历
          • IISNginx 默认不开启目录遍历的功能,而 Apache 默认开启了目录遍历的功能
          • Web 服务器目录遍历的功能被开启的时,若客户端浏览器在请求未指定文档名称且 Web 服务器无法返回默认文档时,便会启用目录浏览,显示一个列出目录内容的网页
          • 网站代码的缺陷也会引起目录遍历,常见的是一些开源的编辑器的页面未授权访问,以及一些限制被绕过
          • 因各种原因的导致的目录遍历,将对系统安全形成巨大的威胁,其将造成网站上非可执行文件的泄漏,进而导致网站的数据库连接信息等泄漏
        • 修复方案
          • 网站代码缺陷引起的目录遍历
            • 对网站代码进行更新,升级
          • Web 服务器配置引起的目录遍历
            • Apache 禁止目录浏览
              • 配置 httpd.conf
                • Options Indexes FollowSymLinks 改为 Options -Indexes FollowSymLinks
            • Nginx 禁止目录浏览
              • 配置 nginx.conf , 找到 WebServer 配置处2,删除类似内容
                 location /soft/ {
                 root /var/www; 此处为soft的上一级目录
                 autoindex on;
                 autoindex_exact_size off;
                 autoindex_localtime on;
                 }
              
              • 保存退出,重启 Nginx 服务器即可
                 [root@localhost Soft]#ps aux | grep -v grep | grep nginx | awk '{print $2}' | xargs kill -9  #结束进程
                 [root@localhost Soft]#nginx  #启动进程
              
            • IIS 禁止目录
              • appcmd set config /section:directoryBrowse /enabled:false
      • Padding Oracle Attack
        • 错误配置及利用
          • Padding Oracle 又名 MS10-070 , 是 ASP.NET 中由于加密填充验证过程中处理错误不当,导致存在一个信息泄漏漏洞,成功利用此漏洞的攻击者可以读取服务器加密的数据,例如视图状态,此漏洞还可以用于数据篡改,如果成功利用,可用于解密和篡改服务器加密的数据,虽然攻击者无法利用此漏洞来执行恶意攻击代码或直接提升他们的用户权限,但此漏洞可以用于信息搜集,这些信息可用于进一步攻击受影响的系统
          • Padding Oracle 攻击中,攻击者只需要一个合法密文,即可通过不断向网站发送篡改过的密文,观察是否有 Padding 异常错误提示,网站中的异常错误提示可能直接显示在网页当中,也可能只是 HTTP 状态码,根据两个不同的 HTTP 状态码做对比即可,而不需要其他任何详细信息,如果有异常错误提示即可不断地给网站提供密文,让解码程序出现错误提示,再而不断地修正,从而最终获得混淆之前的中间密文,拿到中间密文之后,可以通过构造 IV (初始化向量),使得中间密文被逆向混淆之后得到的明文为指定内容,从而达到攻击目的,在这过程中 Padding Oracle 攻击并没有破解掉加密算法的密钥,也没有能力对任意密文做逆向解密,只是可以利用一个有效密文,生成一个解密后得到任意指定内容明文的伪造密文
        • 漏洞检测及利用
          • 检测工具:PadBuster.plWebconfig Bruter.pl
          • 使用方法
             Padbuster.pl http://www.xxx.com/WebResource.axd?d=XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 16 -encoding 3 -plaintext "|||~/web.config"
          • XXXXXXXXXXXXXXXXhttp://www.xxx.com/WebResource.axd?d=XXXXXXXXXXXXXXXX 中参数 d 的值,16 为每个数据块的字节数,分为 816encoding 参数有4中,分别是 0=Base641=Lower HEX2=Upper HEX3=.NET UrlToken4=WebSafe Base64plaintext 为想读取内容的文件,本次这里以 web.config 为例,之后按程序提示进行操作,若网站存在 Padding Oracle 漏洞,最终将返回 web.configURL 的加密地址
             Webconfig Bruter.pl http://www.xxx.com/ScriptResource.axd XXXXXXXXXXXXXXXX 16
          • XXXXXXXXXXXXXXXXPadbuster.pl 得到的加密地址
          • 访问
             http://www.xxx.com/ScriptResource.axd?d=XXXXXXXXXXXXXXX
          
          • XXXXXXXXXXXXXXXXWebconfig Bruter.pl 得到的加密地址,服务器会返回目标文件的内容(此处为 web.config 文件)
        • 修复方案
          • 安装微软官方补丁
      • J2EE 架构配置
        • 错误配置及利用
          • J2EE 架构
            • SSH Struts2
      • host 绑定的不安全因素
        • 错误配置及利用
          • host 主机头绑定是很多网站常用的一种一机多站的实现方法,相对于使用不同端口来实现一机多站要安全许多,因为端口可以通过暴力手段找到,而 host 绑定就要难破解很多,因为需要 IP 和主机名的对应
          • 很多网站为了方便管理和节省服务器成本,将内网站点和外网站点放置在统一服务器下,使用一机多站来进行隔离
          • 很多情况下一台服务器安装两块网卡,分别接入外网和内网,方便公网访问公开站点,内网访问管理站点,并绑定 host
             xxx.com为公开站点,并且指向IP为公网网卡
             admin.xxx.com为管理站点,并且指向内网网卡
          
          • 看上去好像管理站点 admin.xxx.com 必须在内网才能访问但是却忽略了 host 绑定的问题,但是当我们将外网 IP 地址强制绑定到 admin.xxx.com 的时候 Web 服务器又没有做来源检查,那么我们就可以通过外网访问到本来应该只有内网才能访问的管理站点,并且由于是内网站点,很多情况下管理员为了方便都是弱密码,或者直接未授权访问等
          • 漏洞利用可以直接使用域名的暴力猜解
            • 将外网 IP 和内网 IP 的域名全部记录下来
               xxx.com         ip    1.1.1.1
               admin.xxx.com   ip    10.0.0.1
            
            • 再使用工具将内网域名绑定到外网站点的 IP 上,写入 hosts 文件
               1.1.1.1 admin.xxx.com
            
            • 即可访问到内网站点
    • 其他服务
      • DNS 域传送漏洞
        • 错误配置及利用
          • 默认的 bind 允许任何人来同步数据,所有的 DNS 解析记录都会被泄漏,直接暴漏整体网络结构
        • 修复方案
          • 只需在相应的 zoneoptions 中添加 allow-transfer 限制可以同步的服务器就可以了,可以有两种方式:限制 IP、使用 key 认证
          • 使用限制 IP 的方法
             vim /etc/named.conf
             #在options中添加
             allow-transfer {192.168.5.6;};
          
          • 或者
             vim /etc/named.rfc1912.zones
             #对应的zone中添加
             allow-transfer {192.168.5.1;};
          
        • 漏洞检测及发现
          • 手工检测方法,使用 dig 直接请求
             dig @192.168.5.6 test.com axfr
          • 自动检测方法,调用 nmap 进行扫描
             nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=test.com -p 53 -Pn 192.168.5.6
          
      • Squid
        • 错误配置及利用
          • 未配置权限直接使用进入内网
            • 作为一个 Squid 代理服务器,未做任何验证,就可以使用,可以直接访问内网
          • 配置不当导致敏感信息泄漏
            • 访问
               http://ip/cgi-bin/cachemgr.cgi
            
            • 或者
               squidclient -h ip -p port mgr:info
            
            • 在没有做任何限制的时候,可以查看 Squid 的一些基本信息
        • 修复方案
          • 配置密码
          • 信息泄漏
            • 对于 cachemgr.cgi 泄漏的话,可以直接删除 cgi 或者做一个 401 认证
    • 未修复公开漏洞
      • 心脏滴血(openssl
      • bash 漏洞(shellshock
      • PHP-CGIRCE
@PyxYuYu PyxYuYu added the Wiki label Feb 27, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant