WEB安全

渗透前的目标信息收集小结

前言:
信息收集分类:

1、主动式信息搜集(可获取到的信息较多,但易被目标发现)
2、通过直接发起与被测目标网络之间的互动来获取相关信息,如通过Nmap扫描目标系统。
3、被动式信息搜集(搜集到的信息较少,但不易被发现,如通过搜索引擎搜索)
4、通过第三方服务来获取目标网络相关信息。如通过搜索引擎方式来搜集信息。
搜集什么信息

1、whois信息
2、网站架构(语言、中间件、数据库、平台)
3、dns信息(通过查询dns可以检测是否存在dns域传送和域行走)
4、子域名搜集(搜索引擎和工具以及漏洞)
5、敏感目录及敏感信息、源码泄露(搜索引擎+工具、GitHub等)
6、系统漏洞(系统版本漏洞是否修补)
7、旁站查询(通过IP反查)
8、C端查询(确认大公司或组织网段内子站)
9、指纹信息(框架探测)
10、端口服务
11、备案信息(whois反查、)
12、真实ip(绕过CDN)
13、探测waf(后续可确定Bypass方式)
14、社工(朋友圈、微博、qq空间、求职、交易等社交平台)
15、企业信息(天眼查、企业信用信息公示系统、工业和信息化部ICP/IP地址/域名信息备案管理系统)

信息搜集的流程
上面我已经列举了需要搜集的信息,然后我给它们分了一下类。
我考虑到一个网站的组成是由域名、服务器、网站程序组成的。
因此:

首先入手域名方面:whois、子域名、备案信息;
其次是入手服务器方面:dns信息、端口服务、真实ip;
然后入手网站程序(web层)方面:网站架构、敏感目录及敏感信息、源码泄露(搜索引擎+工具)、脆弱系统(网络空间)、旁站查询、C端查询、指纹信息、探测waf;
最后入手企业方面:天眼查、企业信用信息公示系统

0x00:IP发现

  • 1.IP反查域名(查询旁站)

如果你的渗透目标网站是一台虚拟主机,那么通过IP反查到的域名信息往往很有价值, 因为一台物理服务器上面可能运行多个虚拟主机,这些虚拟主机具有不同的域名,但通常共用一个IP地址。如果你知道有哪些网站共用这台服务器,就有可能通过此台服务器上其他网站的漏洞获取服务器控制权,进而迂回获取渗透目标的权限,这种技术也称为“旁注”。

IP反查域名1.png

站点和工具:

 

  • 2.域名查询IP

知道一个站点的域名需要得到它的IP以便之后获取端口信息或扫描等后续工作。

域名查IP信息.png

站点和工具:

注:判断是否目标使用CDN(1).ping 目标主域,观察域名的解析情况,以此来判断是否使用了 CDN;(2).利用在线网站 17CE,进行全国多地区的 ping 服务器操作,然后对比每个地区 ping 出的 IP 结果,查看这些 IP 是否一致,如果都是一样的,极有可能不存在 CDN。如果 IP 大多不太一样或者规律性很强,可是尝试查询这些 IP 的归属地,判断是都存在 IP。在确认目标用了 CDN 的情况下:

  • 内部邮箱源(让服务器给你发邮件看邮件头IP)(最可靠)
  • 通过zmpap全网爆破查询真实IP(可靠)
  • 扫描网站测试文件
  • 分站域名(根据收集分站查看产生交互最多的站)
  • 国外访问(App Synthetic Monitor)
  • 查询域名解析记录(NETCRAFT)(查询域名历史IP)
  • 如果网站有 App,抓 App 的请求
  • 绕过 CloudFlare CDN 查找真实 IP(CloudFlareWatch)

 

  • 3.IP WHOIS查询

IP_WHOIS查询1.png

 

  •  4.C端存活主机探测
C段主机探测.png

也可以使用Nmap扫描:

  • 5.C段常见端口探测
  • (1)最笨的方法:C段导入到文件,nmap扫描。

-iL参数:扫描文件中列出的所有IP地址。nmap -iL ip.txt。配合其他自定义限制条件扫描。

  • (2)其他工具

神器masscan: https://github.com/robertdavidgraham/masscan

  • Masscan安装和使用:

http://zone.secevery.com/article/1098

0x01:域名发现

  • 1.子域名发现

  • (1)DNS枚举(根据字典爆破)

DNS暴力枚举.png

  • (2)自身泄露

 

  • (3)搜索引擎

googlehacking2.png
  • (4)第三方查询

--有许多拥有大量 DNS 数据集的第三方服务,可通过他们来检索给定域的子域。如VirusTotal,dnsdumpser

VirusTotal.png

脚本工具Sublist3r( https://github.com/aboul3la/Sublist3r) 使用各种资源来枚举子域。通过诸如 Google,Yahoo,Bing,百度和 Ask 等许多搜索引擎来枚举。Sublist3r 还使用 Netcraft,Virustotal,ThreatCrowd,DNSdumpster 和 ReverseDNS 等第三方服务来枚举子域。缺点:信息多很繁杂且有错误,许多站已经关闭,内容需要筛选。

  • (5)crossdomain.xml

利用跨域策略文件,以 http://www.sina.com.cn/crossdomain.xml为例:

crossxml.png
  • (6)Google HTTPS证书信息

Google透明度报告中的证书透明度项目是用来解决HTTPS证书系统的结构性缺陷,它能够让所有人查询各个网站的HTTPS证书信息,从而能发现签发了证书的子域名。利用SSL证书的注册登记发现子域名。

SSL证书.png

使用收集 CT(Certificate Transparency)日志的搜索引擎,是发现某个域证书最简单的方法。以下是一些流行的搜索引擎:

可以结合Masscan# ct.py - extracts domain names from CT Logs(shippedwith massdns) # massdns - will find resolvable domains & adds them to a file./ct.py icann.org | ./bin/massdns -r resolvers.txt -tA -q -a -o -w icann_resolvable_domains.txt -//读取文件里面的CT信息搜索还可以直接通过本地证书:大厂的SSL证书一般都是一证多用,根据这个特性,可以得到一些子域名.eg:

证书.png
SSL本地证书.png

使用SSL证书缺点很明显,没有注册SSL证书的子域名无法查到。

  • (7)自治系统编号(ASN)

使用dig或host来解析指定域的IP地址(可以得到IP所在组织的IP域范围)。使用IP查找ASN号码:https://asn.cymru.com/cgi-bin/whois.cgi

IP查询ASN.png

也可以使用域名查询ASN号码:https://bgp.he.net/

域名查询ASN.png

找到的ASN号码可用于查找域的网络块。使用Nmap脚本可以实现使用ASN号码来查找域的网络块。$ nmap --script targets-asn --script-args targets-asn.asn=XXXX

NmapASN查询域.png
  • (8)利用域传送漏洞

因为对DNS服务器配置不当,导致任意IP都可以直接向DNS服务器请求数据,从而导致该域名的所有子域名暴露,可以写脚本也可以通过网站查询DNS。

DNS域传送获取子域名.png

域传送漏洞漏洞很老旧不常见。kali下检测:[email protected]:~# dig +short @8.8.8.8 secevery.com ns

得到了目标ns服务器,接下来使用目标ns服务器尝试传送dig @dns24.hichina.com secevery.com axfr发现Transfer failed失败即不存在漏洞。Kali下dns子域探测工具:dnsmap,dnsenum,fierce。也可以Windows下nslookup查询:

nslookup确认.png
  • (9) FDNS(forward DNS,DNS转发)

FDNS数据集作为 Project Sonar 的一部分发布。这些数据是通过提取来自多个源的域名并且给每个域发送 ANY 请求来收集的。这些数据是 gzip 格式的 json 文件。我们可以解析数据集来查找给定域的子域。数据集是很大的(压缩后约 20 + GB,未压缩约有 300 + GB)。

# Command to parse& extract sub-domains for a given domain$ curl -silent https://scans.io/data/rapid7/sonar.fdns_v2/20170417-fdns.json.gz | pigz -dc | grep “.icann.org” | jqFDNS能搜索到的子域名比爆破和CT查询和存在域传送加起来都多。但文件过大使用起来很费事。

子域名发现多少.jpg
  • (10)zone walking(NSEC)区域行走

DNSSEC协议的一个重要功能是能根据"DNS中的已验证拒绝存在"权威的断言给定域名不存在,但它允许区域行走,可以从一个域到另一个域。协议这样写->https://tools.ietf.org/rfc/rfc7129.txt现在主流的NSEC3协议是NSEC协议的替代,但是仍然有很多域在使用NSEC。使用ldns-walk工具来检测使用NSEC域名TLD列表 http://data.iana.org/TLD/tlds-alpha-by-domain.txt安装之后$ ldns-walk domainname即可使用//linux下安装使用。wget https://www.nlnetlabs.nl/downloads/ldns/ldns-1.7.0.tar.gz 除了这些还有如网络深度爬虫等方法能探测子域名。

  • 2.关联域名发现
  • (1)注册人和邮箱反查域名

先whois获取注册人和邮箱,再通过注册人和邮箱反查域名。

注册人和邮箱反查域名.png

缺点很明显:除了大厂之外很多公司都是DNS解析的运营商注册的,查到的是运营商代替个人和小公司注册的网站信息。

  • (2)相似域名查询

根据目标公司名称来查找可能是目标资产的相似域名。

相似域名查询.png

0X02:端口信息探测

  • 1、快速判断端口是否开启:

a、http://coolaf.com/tool/port使用方式:        直接输入要测试的域名,然后指定要测试的端口。        不过每次只能指定50个端口。

端口信息.png

b、https://tool.lu/portscan/index.html    跟上一个工具差不多都一样,只不过每次能测试100个端口。使用方式也一样。

端口信息2.png

c、http://www.matools.com/port    没有说明端口限制,并且会显示端口的服务。只是每次扫描的时候,需要输入验证码。

  • 2、对服务器的信息进行详细的收集:

主机发现,生成存活主机列表:nmap -sn -T4 -oG Discovery.gnmap  192.168.10.0/24grep "Status: Up" Discovery.gnmap | cut -f 2 -d ' ' > LiveHosts.txt 端口发现,发现全部端口:nmap -sS -T4 -Pn -p 0-65535 -oN FullTCP -iL LiveHosts.txt        #一般选用这个,因为速度比较快。nmap -sU -T4 -Pn -p 0-65535 -oN FullUDP -iL LiveHosts.txt 发现大部分常用的端口:nmap -sS -T4 -Pn -oG TopTCP -iL LiveHosts.txtnmap -sU -T4 -Pn -oN TopUDP -iL LiveHosts.txtnmap -sS -T4 -Pn --top-ports 3674 -oG 3674 -iL LiveHosts.txt 系统和服务检测:nmap -O -sV -T4 -Pn -p U:53,111,137,T:21-25,80,139,8080 -oG OS_Service_Detect -iL LiveHosts.txt 系统扫描:nmap -O -T4 -Pn -oG OSDetect -iL LiveHosts.txtnmap -O --osscan-guess 192.168.1.134     服务版本侦测:nmap -sV -T4 -Pn -oG ServiceDetect -iL LiveHosts.txtNmap命令详见: http://zone.secevery.com/article/245

  • 0X03:网站信息收集
  • 1、指纹识别

代码框架识别、中间件、CMS识别:     https://www.whatweb.net/     能得到的目标网站的    IP、中间件类型以及版本、语言环境(带版本)

whatweb.png

http://www.yunsee.cn/finger.html    只能判断出一种语言环境,代码框架、中间件的版本信息。

yunsee.png

http://whatweb.bugscaner.com/look/    代码框架、web框架为ASP.NET、语言为PHP、中间件为IIS6.0   除此之外还有一些额外的信息:同ip网站CMS查询、icp备案查询、whois查询、网站地址、服务器的操作系统、子域名查询、网站CDN服务商查询、CDN缓存命中查询。    信息还是挺多的。与上边两个相比,我更倾向于选择第三个网站,云悉的信息那么少,大概是没有登陆的缘故吧。它的账号是要购买的。

1.png
2.png
3.png
  • 2、waf识别:

wafw00f    一个识别waf的很成熟的工具,使用方式也很简单。        github项目地址:https://github.com/EnableSecurity/wafw00f        kali上自带wafw00f,一条命令直接使用。建议最好在kali下使用,windows下的使用很麻烦。

wafw00f.png

nmap的扩展脚本,众所周知,nmap是一个端口扫描工具。但是它额外有的扩展模块,使得它具有了识别和绕过waf的能力。

nmap.png
  • 2、敏感路径探测
  • 1、Git源码泄露

成因及危害:当前大量开发人员使用git进行版本控制,对网站进行自动部署。如果配置不当,可能会将.git文件部署到线上环境,这就引起了git泄露漏洞。在网站安全维护方面,git和svn信息泄露,是非常常见也是非常致命的漏洞。会导致整个网站的源码泄露。    漏洞检测:        批量寻找:".git" intitle:"index of"

.git文件泄露_.png

对单个网站进行检测:         a、githack,github上的地址:https://github.com/lijiejie/GitHack           使用方法:python GitHack.py http://xxx.com/.git/           这个直接就可以获取到网站的源码和图片该工具建议在有git工具的linux环境下使用,我在                   windows10环境下使用的时候,会报Error 10060和Error 183

.git文件泄露1_.png
.git文件泄露2_.png

手工验证的方法,如下。在kali linux下,        wget --mirror --include-directories=/.git http://www.xxx.com/.git        cd www.xxx.com    www.xxx.com文件夹是自动创建的。        git reset --hard后续学习:https://blog.csdn.net/qq_36869808/article/details/88909961

  • 2、SVN源码泄露

介绍:跟git一样,都是用来版本迭代的一个功能。具体一点就是使用svn checkout功能来更新代码。    产生原因以及危害:没有配置好目录访问权限,从而导致该漏洞被人利用,整个网站的源码泄露。    批量寻找:".svn" intitle:"index of"    利用工具及过程:        工具:svnExploit        github地址:https://github.com/admintony/svnExploit        利用过程:            a、判断.svn的版本信息

1---小于1.7的_.png
2---大于1.7的_.png

前者版本小于1.7,后者版本大于1.7    版本小于1.7的:        python2 SvnExploit.py -u https://xxx.com/.svn    查看信息,把泄露的文件列出来。        python2 SvnExploit.py -u https://xxx.com/.svn --dump    将网站的源码下载下来。

3---小于1.7svn利用_.png
4---小于1.7svn利用_.png

版本大于1.7的,        1、列出所有的文件。        2、把所有的文件dump下来。

3---小于1.7svn利用_.png
6---.png

后续钻研:https://www.cnblogs.com/batsing/p/svn-bug.html

  • 3、网站文件备份

直接扫目录就可以得到,工具:7kbscan、御剑都可以。

网站源码泄露.png
  • 0X04:互联网信息收集
  • (1)google和GitHub

使用谷歌关键字。例如搜索site:github.com secevery.com搜索目标公司程序员上传到GitHub上的代码和敏感信息,可能泄露如数据库连接信息、邮箱密码、uc-key、阿里的osskey、甚至是网站源代码。

GitHub搜索.png

还可以site:GitHub.com svn(smtp等) @XX.com(user,password)等在后面添加限制脚本类型或者服务类型。

  • intext:后台登录

查询页面中含有后台管理的网站,这里还可以利用site:语句(下同)指定查找的网站(包含子域名)中页面含有后台登录的站点

后台登录.png
  • intitle:管理登录

查找网站标题中存在管理登录的页面

管理登录.png
  • filetype: pdf

查找网站中pdf格式的文件,也可以搜索网站sql或者压缩包等文件

  • inurl:  php?id=

查找url中带有php?id=的网站

  • filetype:php  site:secevery.com查找secevery中的PHP文件
类型限制.png
  • (2)shodan搜索引擎

shodan网络搜索引擎偏向网络设备(摄像头、路由器)以及服务器(端口、开启服务、服务器平台版本)的探测,具体内容可上网查阅,这里给出它的高级搜索语法。https://www.shodan.io/

路由探测.png

可以直接搜索到站点IP开启的端口、服务器版本及平台、开启服务、地理位置等搜索语法可以直接搜索到站点IP开启的端口、服务器版本及平台、开启服务、地理位置等搜索语法

  • hostname:  搜索指定的主机或域名,例如 hostname:”google”
  • port:  搜索指定的端口或服务,例如 port:”21”
  • country:  搜索指定的国家,例如 country:”CN”
  • city:  搜索指定的城市,例如 city:”NanYang”
  • org:  搜索指定的组织或公司,例如 org:”google”
  • isp:  搜索指定的ISP供应商,例如 isp:”China Telecom”
  • product:  搜索指定的操作系统/软件/平台,例如 product:”Apache httpd”
  • version:  搜索指定的软件版本,例如 version:”1.6.2”
  • geo:  搜索指定的地理位置,例如 geo:”31.8639, 117.2808”
  • before/after:  搜索指定收录时间前后的数据,格式为dd-mm-yy,例如 before:”11-11-15”
  • net:  搜索指定的IP地址或子网,例如 net:”210.45.240.0/24”

 

  • (3)censys搜索引擎

censys搜索引擎功能与shodan类似,偏向网络设备和服务器的信息探测。地址:https://www.censys.io/

服务器信息探测.png

搜索语法默认情况下censys支持全文检索。

  • 23.0.0.0/8 or 8.8.8.0/24  可以使用and or not
  • 80.http.get.status_code: 200  指定状态
  • 80.http.get.status_code:[200 TO 300]  200-300之间的状态码
  • location.country_code: DE  国家
  • protocols: (“23/telnet” or “21/ftp”)  协议
  • tags: scada  标签
  • 80.http.get.headers.server:nginx  服务器类型版本
  • autonomous_system.description: University  系统描述

 

  • (4)FoFa搜索引擎

FoFa搜索引擎偏向资产搜索。http://fofa.so

Image.png

搜索语法直接输入查询语句,将从标题,html内容,http头信息,url字段中搜索

  • title="abc" 从标题中搜索abc。
  • header="abc" 从http头中搜索abc。
  • body="abc" 从html正文中搜索abc。
  • domain="secevery.com" 搜索根域名带有secevery.com的网站。
  • host=".gov.cn" 从url中搜索.gov.cn,注意搜索要用host作为名称。
  • port="443" 查找对应443端口的资产。
  • ip="1.1.1.1" 从ip中搜索包含1.1.1.1的网站,注意搜索要用ip作为名称。 如果想要查询网段,可以是:ip="192.168.111.1/24",
  • protocol="https" 搜索制定协议类型(在开启端口扫描的情况下有效)。
  • city="Beijing" 搜索指定城市的资产。
  • region="Henan" 搜索指定行政区的资产。
  • country="CN" 搜索指定国家(编码)的资产。
  • cert="google.com" 搜索证书(https或者imaps等)中带有google.com的资产。
  • banner=users && protocol=ftp 搜索FTP协议中带有users文本的资产。
  • type=service 搜索所有协议资产,支持subdomain和service两种。
  • os=windows 搜索Windows资产。例: 搜索Windows资产
  • server=="Microsoft-IIS/7.5" 搜索IIS 7.5服务器。例: 搜索IIS 7.5服务器
  • app="海康威视-视频监控" 搜索海康威视设备,更多app规则。例: 搜索海康威视设备
  • after="2017" && before="2017-10-01" 时间范围段搜索。例: 时间范围段搜索
  • 高级搜索:可以使用括号 和 && || !=等符号,如
  • title="powered by" && title!=discuz
  • title!="powered by" && body=discuz
  • ( body="content=\"WordPress" || (header="X-Pingback" && header="/xmlrpc.php" && body="/wp-includes/") ) && host="gov.cn"
  • 新增==完全匹配的符号,可以加快搜索速度,比如查找qq.com所有host,可以是domain=="qq.com"
  • (5)钟馗之眼(Zoomeye)

钟馗之眼搜索引擎偏向web应用层面的搜索。地址:https://www.zoomeye.org/

Image.png

搜索语法

  • app:nginx  组件名
  • ver:1.0  版本
  • os:windows  操作系统
  • country:”China”  国家
  • city:”hangzhou”  城市
  • port:80  端口
  • hostname:google  主机名
  • site:thief.one  网站域名
  • desc:nmask  描述
  • keywords:nmask’blog  关键词
  • service:ftp  服务类型
  • ip:8.8.8.8  ip地址
  • cidr:8.8.8.8/24  ip地址段
  • (6)邮箱收集

--首先确定邮件服务器本身有没有什么错误配置,没有禁用VRFY或EXPN命令导致的用户信息泄露,如果有可以直接把目标的邮件用户都爆出来,也可以尝试弱口令。

第一手邮箱.png

--收集目标的各类webmail入口。
找目标的各种webmail入口,不一定有,但这也是为了后面一旦拿到密码尝试撞库的手段,如果用的是某种开源WEB邮件程序,也可以尝试找对应版本的exp。
--提取whois邮箱去搜索引擎搜索,拿到旧密码可以去社工库去撞库。
--直接从目标站点查找邮箱。一般的网站都有的"联系我们"之类的链接或许就是邮箱,当然如果是[email][email protected][/email]或者[email][email protected][/email]这种邮箱直接忽略,我们需要有互动的邮箱,拿到后都试一试撞一撞库和搜索引擎跑一跑。

邮箱3.png

---利用各种工具直接抓取目标邮箱
theharvester:一个比较老的邮箱抓取脚本,主要是从各种搜索引擎抓取邮箱,抓取后的文档杂乱需要自己筛选分析。
https://github.com/laramies/theHarvester下载或者Kali直接运行。
-d 参数指定目标域
-l 参数指定数量
-b 参数指定端口
-s 指定起始数值

theharvester收集邮箱.png

TheHarvester+Hydra可以大量扫描弱口令账户。
也可以使用metasploit的 auxiliary/gather/search_email_collector 模块:

msfconsole打开MSF控制台,输入use auxiliary/gather/search_email_collector,然后set domain XXmail.com设置目标邮件网站,然后show options显示搜索来源,exploit

MSF搜索邮箱.png

目前使用菜单内的google选项去搜索邮箱需要翻墙,直接用如图。

两种方法都可以将结果保存为文件然后使用hydra爆破。
(7)历史漏洞信息
虽然乌云关了但是镜像上面还有大量企业漏洞信息,此外CNVD,seebug等平台
也能查找一些企业历史漏洞信息。

乌云镜像.png

0X05:人力资源情报收集
(1)招聘信息
用google从招聘网站找到信息再去查找企业信息

招聘信息收集1.png

 

招聘信息收集2.png

通过招聘信息我们找到了公司全称和负责人构成和邮箱电话等信息。
通过这些信息可以与前面的WHOIS反查结合。

社会工程学方面的知识太繁杂就先不讨论了。
参考:
https://wh0ale.github.io/2019/02/22/SRC%E4%B9%8B%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86/
https://www.secpulse.com/archives/74312.html
https://www.freebuf.com/articles/web/190403.html
http://www.davex.pw/2016/07/01/How-To-Fuzz-Sub-Domain/
https://www.freebuf.com/articles/web/179043.html
https://cloud.tencent.com/developer/article/1180157
https://klionsec.github.io/2014/12/22/email-collector/
https://www.secpulse.com/archives/69237.html
https://yq.aliyun.com/articles/366927
https://www.secpulse.com/archives/29475.html
http://www.lijiejie.com/ds_store_exp_ds_store_file_disclosure_exploit/
https://zhuanlan.zhihu.com/p/22161675
https://zhuanlan.zhihu.com/p/22407076
https://www.jianshu.com/p/d2af08e6f8fb
https://blog.csdn.net/zvall/article/details/50115815

(1)

本文由 安全周 作者:SecJack 发表,转载请注明来源!

关键词:

热评文章

发表评论