Web安全-信息收集

信息收集


前言:在渗透测试过程中,信息收集是非常重要的一个环节,此环节的信息将影响到后续成功几率,掌握信息的多少将决定发现漏洞的机会的大小,换言之决定着是否能完成目标的测试任务。也就是说:渗透测试的思路就是从信息收集开始,你与大牛的差距也是这里开始的

image


Part1:信息收集-架构、搭建、WAF等

# CMS识别技术
网上有现成的CMS识别平台

# 源码获取技术

# 架构信息获取

# 站点搭建分析
搭建习惯-目录型站点
搭建习惯-端口类站点
搭建习惯-子域名站点
搭建习惯-类似域名站点
搭建习惯-旁注[同服务器不同站点,又称同IP站点查询],C段站点[C段查询]
搭建习惯-搭建软件特征站点

# WAF 防护分析
什么是WAF应用?
如何快速识别WAF?
识别WAF对于安全测试的意义

案例演示:

▲sti.blcu-bbs-目录型站点分析

sti.blcu.edu.cn/ 和 sti.blcu.edu.cn/bbs 这两个站点的区别仅仅在于一个目录,任意一个出现问题就都得遭殃

▲web.0516jz-8080-端口类站点分析

不同的端口对应不同的站点,但是归根到底他们两个还是在同一台服务器上,任意一个站点出现安全问题都会导致服务器出现安全问题。

image

image

▲goodlift-www.bbs-子域名两套 CMS

主站 www.goodlift.net 和子域名 bbs.goodlift.net 是用不同的CMS搭建的,这个时候就存在了一个问题,这两个网站就有可能不在同一台服务器上面。

▲jmlsd-cn.com.net等-各种常用域名后缀

▲weipan-qqyewu-查询靶场同服务器站点[同IP站点查询]

▲weipan-phpstudy-查询特定软件中间件等

我们用phpstudy搭建的在F12这里查看到的Server信息是一样的,我们就可以去佛法搜索Server信息,然后查到的就都是用phpstudy搭建的。【其它中间件也类似】

image

wafw00f-shodan(X-Powered-By: WAF)-147.92.47.120

识别WAF方法:

①按F12查询到数据包中出现 X-Powered-By: WAF 的,基本上就是有WAF

②用工具wafw00f

image

使用教程://www.cnblogs.com/qingchengzi/articles/13451885.html

涉及资源:

//www.shodan.io/

//www.webscan.cc/

//github.com/EnableSecurity/wafw00f


Part2:信息收集-APP及其他资产

前言:在安全测试中,若 Web无法取得进展,或者无WAF的情况下,我们需要借助APP或者其他资产再进行信息收集,从而开始后续渗透,那么其中的信息收集就尤为重要,接下来我们就用案例讲解试试吧。

# APP 提取一键反编译提取【工具:漏了个大洞】
# APP 抓数据包进行工具配合【模拟器+Burp】
# 各种第三方应用相关探针技术
# 各种服务接口信息相关探针技术

案例演示:

APP 提取及抓包及后续配合

某APK一键提取反编译

image

利用Burp历史抓更多URL

image

实际案例Web服务测试【//www.caredaily.com/】

image

从网站表面看存在漏洞的可能性比较小,因为这个网站上面的功能都比较简单

那么我们接下来就从这5个方面开始进行信息收集

image

我们直接去fofa、shodan、zoomeye进行域名搜索

image

我们注意到这里8000端口出现了OpenSSH服务,我们就可以去搜对应版本存在的漏洞,去验证

image

我们又注意到他这27017开了MongoDB,那么就可能存在MongoDB数据库相关的漏洞,我们也可以去进行尝试

image

这个地方又可以成为一个攻击点。其他端口也类似,端口代表着服务,有服务就代表可能存在相应的服务的漏洞,我们就可以先记录下来,然后最后统一对各个点进行攻击。

我们还可以搜索它的目录站点、子域名站点、旁注/C段站点进一步扩大我们的攻击面【利用工具:7kbScan御剑扫描、Layer子域名挖掘机、同IP站点查询】

最后讲一下类似域名怎么找?

我们可以用接口查,第①步就是查找备案信息【需要VIP】

image

通过对备案公司的查询,我们可以查到该公司还注册了几个别的域名:
//hkaspire.net///hkaspire.cn/

//hkaspire.net/ 这个网站我们发现这里可以点击,点击之后跳转到一个新的页面 //hkaspire.net:8080/login

image

image

这其实也是可以成为一个攻击面的
他这里其实还暴露了很多,类似于探针信息,phpinfo信息

image

针对这个WDCP登陆系统,我们也可以直接在网上搜漏洞,进行漏洞测试

针对这个 //hkaspire.cn/ 网站,这也是个系统,我们也可以进行漏洞测试

与此同时,这个域名//hkaspire.cn/也涉及到新的IP地址,我们也可以针对这个IP地址进行测试【进行fofa的搜索】

同样进行这5步的测试

image

所以能做的事情是很多的

这样还没完,我们可以拿这种网站的标题去百度|谷歌搜索

image

image

像是域名差不多的都可以进行测试

我们还可以去搜索域名的关键字【尽量用Google去搜索】

image

这个是我们通过谷歌搜到的 //caredaily.xyz/

image

我们查看其robots.txt可以查到其一些路径

我们进这个Install看看

image

然后我们发现它使用youdiancms搭建的

image

然后我们就又可以去百度搜索youdiancms漏洞

这搜到的信息已经足够多了,而且我们每个得到的域名对应的每个IP,每个端口都要扫,我们会拿到相当多信息,足够我们进行渗透测试

涉及资源

//fofa.so/

//tool.chinaz.com

//www.shodan.io/

//www.zoomeye.org/

//nmap.org/download.html


Part3:信息收集-资产监控拓展

# Github监控
便于收集整理最新的EXP和POC
便于发现相关测试目标的资产

# 各种子域名查询

# 全球节点请求CDN
枚举爆破或解析子域名对应
便于发现管理员相关的注册信息

# 黑暗引擎相关搜索
fofa,shodan,zoomeye

# 微信公众号接口获取

# 内部群|内部应用|内部接口

▲各种子域名查询方法

image

▲监控最新的 EXP 发布及其他

# Title: wechat push CVE-2020
# Date: 2020-5-9
# Exploit Author: weixiao9188
# Version: 4.0
# Tested on: Linux,windows
# coding:UTF-8
import requests
import json
import time
import os
import pandas as pd
time_sleep = 20 #每隔20秒爬取一次
while(True):
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400"}
    #判断文件是否存在
    datas = []
    response1=None
    response2=None
    if os.path.exists("olddata.csv"):
        #如果文件存在则每次爬取10个
        df = pd.read_csv("olddata.csv", header=None)
        datas = df.where(df.notnull(),None).values.tolist()#将提取出来的数据中的nan转化为None
        response1 = requests.get(url="//api.github.com/search/repositories?q=CVE-2020&sort=updated&per_page=10",
                                 headers=headers)
        response2 = requests.get(url="//api.github.com/search/repositories?q=RCE&ssort=updated&per_page=10",
                                 headers=headers)

    else:
        #不存在爬取全部
        datas = []
        response1 = requests.get(url="//api.github.com/search/repositories?q=CVE-2020&sort=updated&order=desc",headers=headers)
        response2 = requests.get(url="//api.github.com/search/repositories?q=RCE&ssort=updated&order=desc",headers=headers)

    data1 = json.loads(response1.text)
    data2 = json.loads(response2.text)
    for j in [data1["items"],data2["items"]]:
        for i in j:
            s = {"name":i['name'],"html":i['html_url'],"description":i['description']}
            s1 =[i['name'],i['html_url'],i['description']]
            if s1 not in datas:
                #print(s1)
                #print(datas)
                params = {
                     "text":s["name"],
                    "desp":" 链接:"+str(s["html"])+"\n简介"+str(s["description"])
                }
                print("当前推送为"+str(s)+"\n")
                print(params)
                requests.get("//sc.ftqq.com/XXXX.send",params=params,timeout=10)
                #time.sleep(1)#以防推送太猛
                print("推送完成!")
                datas.append(s1)
            else:
                pass
                #print("数据已处在!")
    pd.DataFrame(datas).to_csv("olddata.csv",header=None,index=None)
    time.sleep(time_sleep)

▲ 黑暗引擎实现域名端口等收集

▲ 全自动域名收集枚举优秀脚本使用

工具:teemo和Layer子域名挖掘机

以xxxxxx为例,从标题,域名等收集
以xxxxxx为例,全自动脚本使用收集

teemo.py

image

▲ SRC中的信息收集全覆盖


Part4:信息收集-补充部分

信息收集过程中需要收集的其他信息

1.whois信息【域名注册时留下的信息】

网址: //whois.chinaz.com/(站长之家)
      //www.whois.com/(国外网站)

通过whois我们可以找到更多的域名,一般来说主站的安全是比较强的,我们可以去搞分站,而且我们还有可能查到邮箱,通过邮箱我们也可以做很多的事。

2.CMS指纹识别

//s.threatbook.cn/
//finger.tidesec.com/ 潮汐指纹【推荐】

常见端口和服务对应关系:

445-局域网文件共享服务【永恒之蓝】
3389-远程桌面
80-web搭建默认端口
3306-MySQL默认端口
21-Ftp
22-SSH服务
1433-SQL Server默认端口
6379-Redis数据库默认端口
8888-宝塔默认端口

nmap的使用:

nmap+ip #最简单的使用方法
nmap+ip/24 #C段探测
nmap -p [port1,port2,...] [ip] #探测指定端口
nmap -p 1-65535 [ip] #全端口扫描
nmap -v [ip] #执行命令的同时显示每一步具体做了什么
nmap -Pn [ip] #目标禁ping时可以使用
nmap -h #查看所有命令
nmap -O [ip] #探测主机是什么操作系统
nmap -A [ip] #最强指令,把所有的扫描|探测方法都用上

网站状态码对应信息:

200-网站正常访问
302-重定向
404-页面不存在
403-权限不足,但是页面存在
502-服务器内部错误

谷歌hacking语法:

filetype:指定文件类型
inurl:指定url包含内容
site:指定域名
intitle:指定title包含内容
intext:指定内容

inurl:/admin/index #这种很容易找到别人的后台
inurl:/admin.php #这种就很容易找到admin.php的内容

site:edu.cn inurl:.php?id=123 #找SQL注入站点时可以这么找
Tags: