信息收集
范围:IP 域名? 内外网 整个站点还是部分模块?
渗透到什么程度?修改上传?提权?
确定需求:web应用的漏洞?业务逻辑漏洞?权限漏洞?…
信息搜集需要搜集什么?
脚本语言类型 服务器OS类型 目录结构 开源否 数据库类型 链接的页面 用到的框架
搜索获得后台 未授权页面 敏感url
基础信息:IP,网段,域名,端口
系统信息:操作系统版本
应用信息:各端口的应用,例如web应用,邮件应用等
版本信息:所有探测到的版本
服务信息:服务器类型、版本
人员信息:域名注册人员信息,web应用中网站发帖人的id,管理员姓名等
防护信息:试着看能否探测到防护设备
域名信息收集
1.whois信息收集
查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)
注册商、注册人、邮件、DNS解析服务器、注册人联系电话
命令:
whois xxx.com
在线:
站长工具whois查询:http://tool.chinaz.com/ipwhois
爱站网whois查询:https://whois.aizhan.com/
国外的who.is:https://who.is/
微步:https://x.threatbook.cn/
2.企业备案信息
天眼查:https://www.tianyancha.com/
ICP备案查询网:http://www.beianbeian.com/
国家企业信用信息公示系统:http://www.gsxt.gov.cn/index.html
获取真实ip
1.判断是否存在CDN
1、使用超级 ping,通过不同定位地点的 ping 测试,看返回的 IP 是否不同
2、利用 Nslookup 查询域名,看是否返回多个应答 IP
3、反查域名IP,看结果是否有大量不相关的域名存在
4、观察请求响应的返回数据的头部,是否有 CDN 服务商标识
5、判断 IP 是否在常见 CDN 服务商的服务器 IP 段上
6、若 asp 或者 asp.net 网站返回头的 server 不是 IIS、而是 Nginx,则多半使用了nginx反向代理到
CDN
1.1 多地ping
全球Ping测试:https://www.wepcc.com/
站长工具Ping检测:http://ping.chinaz.com/
爱站网Ping检测:https://ping.aizhan.com/
海外ping:https://www.host-tracker.com/v3/check/
1.2观察请求包响应头
国内:阿里云 CDN、百度云 CDN、七牛云 CDN、又拍云 CDN、腾讯云 CDN、Ucloud、360 CDN、网宿科技、
ChinaCache、帝联科技
国外:CloudFlare【可以使用CloudFair工具】、StackPath、Fastly、Akamai、CloudFront、
Edgecast、CDNetworks、Google Cloud CDN、CacheFly、Keycdn、Udomain、CDN77
2.绕过CDN,寻找真实IP
收集子域名信息
一般只有主站做CDN加速 而子域名可能跟主站在同一个服务器或者C段上 通过查询子域名的 IP 信息来辅助判断主站的真实 IP 信息(子域名:指在一个域名下创建的二级域名如,news.example.com中的“news”就是一个子域名,它是example.com的一个子集)
查询DNS与IP绑定的历史记录
探测使用CDN之前的IP 可能会发现之前真实的IP信息
dnsdb:https://dnsdb.io/zh-cn/
viewdns:https://viewdns.info/iphistory/
微步在线:https://x.threatbook.cn/【针对 IP、域名 进行综合查询威胁情报、历史记录、子域名解析、
DNS解析等】
SecurityTrails:https://securitytrails.com/ 【IP历史/DNS解析记录/子域名】
Complete DNS:https://completedns.com/ 【IP历史/DNS解析记录/子域名】
WhoISrequest:https://whoisrequest.com/
Netcraft:https://netcraft.com/
Viewdns:https://viewdns.info/ 【IP溯源、历史 DNS解析】
Whoisxmlapi:https://reverse-ip.whoisxmlapi.com/
通过邮件
一般大型网站自己部署架设的邮件服务器如果向外部用户发送邮件的话,如果中间未经任何数据处理和防护措施,那么邮件头部的源码中会包含此邮件服务器的真实 IP 地址。常见的邮件触发点:
RSS 订阅
邮箱注册、激活处
邮箱找回密码处
产品更新的邮件推送
某业务执行后发送的邮件通知
员工邮箱、邮件管理平台等入口处的忘记密码
奇淫技巧:通过发送邮件给一个不存在的邮箱地址,比如 000xxx@domain.com ,因为该用户不存在,所以发送将失败,并且还会收到一个包含发送该电子邮件给你的服务器的真实 IP 通知
另外,养成收集站点邮箱账号收集的习惯(因为好多官方后台都是用内部邮箱账号登录的,指不定哪天你就得到一个进后台的机会)可用来进行爆破或者弱口令登录以及撞库攻击
(1)通过说明文档以及网站页面收集,或者网站发表者以及留言板信息处收集账号
(2)通过 teemo,metago,burpusite,awvs,netspker 或者 google 语法收集
(3)搜索相关 QQ 群收集相关企业员工的社交账号
海外 DNS 查询
CDN 服务商并没有做海外市场的 CDN ,所以可以通过寻找小众、冷门的海外 DNS 查询,看是否能获得真实 IP
敏感文件泄露
服务器日志文件
探针文件,例如phpinfo
网站备份压缩文件
.DS_Store
.hg
.git
SVN
Web.xml
另外 字典非常重要,往往疏忽的点就在一台边缘服务器。
//Google搜索语法搜索.git敏感信息:
site:Github.com smtp
site:Github.com smtp @qq.com
site:Github.com smtp @126.com
site:Github.com smtp @163.com
site:Github.com smtp @sina.com.cn
//获取数据库信息泄露:
site:Github.com sa password
site:Github.com root password
3.找到真实IP后的利用
1、通过修改 hosts 文件,将域名和 IP 绑定
2、如使用 burpsuite 测试,可以在 Project options ——> Connections ——> Hostname Resolution 中增加域名和 IP 记录。
旁站查询
第三方服务
站长工具同IP网站查询:http://s.tool.chinaz.com/same
webscan:https://www.webscan.cc/
云悉:https://www.yunsee.cn/
微步在线:https://x.threatbook.cn/
在线旁站查询|C段查询|必应接口C段查询:http://www.bug8.me/bing/bing.php
搜索引擎
bing:
https://cn.bing.com/search?q=ip:x.x.x.x
fofa:
ip="x.x.x.x"
//**fofa**:用于查找资产 网页、摄像头、打印机、数据库、操作系统等资产(对全球网络资产进行探测)
fofa用法
搜索"baidu"
title="baidu"
body:网页源代码的共同特征 / 筛选是否拥有域名(is_domain=true)和证书是否可信
(cert.is_valid=true)
body="loading-wrap" && body="balls" && is_domain=true && cert.is_valid=true
增加筛选国家:
body="loading-wrap" && body="balls" && is_domain=true && cert.is_valid=true &&
country="US"
网站标题(title)、网站原文(body)、筛选类语法(is_domain、cert.is_valid)、国家(country)和连接符 和 (&&)、应用程序(app) app=“WordPress” 或者apache/nginx/tomcat
FOFA Feature IDFOFA平台上的FID特征是FOFA自己聚合多个关键特征形成的标签,而不是网站原有的标签
title=“chatgpt”举例,可以看到,FID识别到了不同框架搭建的chatgpt的网站,也可以直接用FID帮你找到更多拥有相同特征的资产
c段主机查询
C 段主机是指与目标服务器在同一 C 段网络的其他服务器。攻击目标的 C 段存活主机是信息收集的重要步骤,很多企业的内部服务器可能都会在一个 C 段网络中
nmap扫c段
nmap -sn x.x.x.x/24
nmap -Pn //不走icmp协议,可绕过防火墙禁止ping
搜索引擎查询c段
google:
site:x.x.x.*
bing:
http://cn.bing.com/search?q=ip:x.x.x.x/24
FOFA:
ip="x.x.x.x/24"
在线c段查询
在线旁站查询|C段查询|必应接口C段查询:http://ww7.bug8.me/bing/bing.php
查旁站:https://chapangzhan.com/
云悉:https://www.yunsee.cn/
webscan:http://www.webscan.cc/
站长之家:http://s.tool.chinaz.com/same
本地c段扫描
httpscan:https://github.com/zer0h/httpscan
小米范web查找器Goby:https://gobies.org/
bufferfly:https://github.com/dr0op/bufferfly
cscan:https://github.com/z1un/cscan
子域名查询
枚举发现子域名
在线子域名查询:(不推荐)https://phpinfo.me/domain/
OneForAll:https://github.com/shmilylty/OneForAll
knock:https://github.com/guelfoweb/knock
Layer子域名挖掘机:https://github.com/euphrat1ca/LayerDomainFinder
水泽:https://github.com/0x727/ShuiZe_0x727
subDomainsBrute:https://github.com/lijiejie/subDomainsBrute 【支持泛解析】
//泛解析:将所有子域名都解析到同一个IP地址或域名上
ESD:https://github.com/FeeiCN/ESD
Xray:【自带的 subdomain 子域名发掘功能】
Bypass-firewalls-by-DNS-history:https://github.com/vincentcox/bypass-firewalls-byDNS-history
【通过探测 DNS 历史记录,搜索旧的 DNS A Record,收集子域,并检查服务器是否对该域名进行答复】
tip:在https://github.com/上也可以搜索子域名
搜索引擎发现子域名
google/baidu:
site:xxx.com
//Google还支持额外的减号运算符,以排除我们对“网站:wikimedia.org -www -store ”不感兴趣的子域名
FOFA:
doamin="xxx.com"
第三方聚合服务发现子域名
第三方聚合平台聚合了大量的DNS数据集 可通过它们检索给定域名的子域名 Netcraft、Virustotal、
ThreatCrowd、DNSdumpster 和 ReverseDNS 等获取子域信息
Sublist3r:https://github.com/aboul3la/Sublist3r
OneForAll:https://github.com/shmilylty/OneForAll
VirusTotal:https://www.virustotal.com/#/home/search
DNSdumpster:https://dnsdumpster.com/
SubDomainTools:https://ruo.me/sub
证书透明性信息发现子域名
通过证书透明性,可以检测由证书颁发机构错误颁发的 SSL 证书,可以识别恶意颁发证书的证书颁发机构。因为它是一个开放的公共框架,所以任何人都可以构建或访问驱动证书透明性的基本组件,CA 证书中包含了域名、子域名、邮箱等敏感信息,存在一定的安全风险
如何查找证书?
使用搜索引擎来收集计算机的CT日志,查询和获取公共 CT 日志中与特定域名或 IP 地址相关的证书信息【 CT 日志包含了与该计算机相关的 SSL/TLS 证书信息,例如证书颁发机构、证书有效期、公钥和域名等。用搜索引擎搜索 CT 日志,以了解特定计算机的证书使用情况和漏洞信息】
在线网站:
https://crt.sh/
https://censys.io/
https://developers.facebook.com/tools/ct/
https://google.com/transparencyreport/https/ct/
https://transparencyreport.google.com/https/certificates
https://developers.facebook.com/tools/ct/
https://censys.io/中,证书搜索:parsed.names: xxx.com and tags.raw: trusted
命令行:
openssl s_client -connect 123.123.123.123:443 | grep subject
curl -v https://123.123.123.123 | grep 'subject'
本地工具:
ctfr:https://github.com/UnaPibaGeek/ctfrOneForAll:
https://github.com/shmilylty/OneForAll
#https://crt.sh/网站查询的python脚本
import requests
import reTIME_OUT = 60
def get_SSL(domain):
domains = []
url = 'https://crt.sh/?q=%25.{}'.format(domain)
response = requests.get(url,timeout=TIME_OUT)
ssl = re.findall("<TD>(.*?).{}</TD>".format(domain),response.text)
for i in ssl:
i += '.' + domain
domains.append(i)
print(domains)
if __name__ == '__main__':
get_SSL("baidu.com")
DNS 域传送发现子域名等方式
DNS 服务器分为:主服务器、备份服务器和缓存服务器。在主备服务器之间同步数据库,需要使用 “DNS 域传送”。
域传送是指备份服务器从主服务器拷贝数据,并用得到的数据更新自身数据库。若 DNS 服务器配置不当,可能导致攻击者获取某个域的所有记录。造成整个网络的拓扑结构泄露给潜在的攻击者,包括一些安全性较低的内部主机,如测试服务器。
利用 nmap 漏洞检测脚本 dns-zone-transfer 进行检测:
nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=xxx.edu.cn -p
53 -Pn dns.xxx.edu.cn
Linux dig命令进行测试:
dig xxx.com nsdig axfr @dns xxx.com
端口扫描
1.namp
-sS (TCP SYN扫描)
-sT (TCP connect()扫描)
-sU (UDP扫描)
-sN;
-sF;
-sX (TCP Null,FIN,and Xmas扫描)
-Pn (不通过ICMP探测)
详细文档:https://nmap.org/man/zh/
2.masscan
https://github.com/robertdavidgraham/masscan
目录扫描
可获得如网站的测试页面、后台地址、常见第三方高危组件路径等
但是目前多数网站都有云 waf、主机防护等,对于频繁访问的 IP 会封禁处理。对于云 waf,找到网站真实 IP是很关键的,其余的情况基本都可以修改开源工具代码利用 IP 代理池或控制访问频率的方式进行探测
敏感文件、目录
常见的:
(1)Git
(2)hg/Mercurial
(3)svn/Subversion
(4)bzr/Bazaar
(5)Cvs
(6)WEB-INF泄露
(7)备份文件泄露、配置文件泄露
dirsearch:https://github.com/maurosoria/dirsearch
dirmap:https://github.com/H4ckForJob/dirmap
御剑目录扫描:https://github.com/foryujian/yjdirscan
dirb:https://tools.kali.org/web-applications/dirb
(2)爬虫(AWVS、Burpsuite等)
(3)搜索引擎(Google、Github等)
(4)wwwscan
(5)BBscan(一位巨佬写的python脚本:https://github.com/lijiejie/BBScan )
(6)GSIL(也是一位巨佬写的python脚本:https://github.com/FeeiCN/GSIL )
IP代理池:
ProxyPool:https://github.com/Python3WebSpider/ProxyPool
指纹识别
CMS 识别、框架识别、中间件识别、WAF 识别 操作系统,中间件,脚本语言,数据库,服务器,web容器?【其中CMS识别包括 关键字识别、特定文件及路径识别、CMS网站返回的响应头信息识别】
1.cms识别
作用 :利用已公开漏洞进行渗透测试、白盒代码审计
1.1 特定关键字识别
CMS 的首页文件、特定文件可能包含了 CMS 类型及版本信息,通过访问这些文件,将返回的网页信息(如
Powered by XXCMS)与扫描工具数据库存储的指纹信息进行正则匹配,判断 CMS 的类型。
也可能前端源码中或 meta 标签中的 content 字段存在一些 CMS 特征信息 wordpress/thinkphp等等框架
1.2 特定文件及路径识别
比如WordPress 会有特定的文件路径 /wp-admin、/wp-includes 等,有些 CMS 的 robots.txt 文件也可能包
含了CMS 特定的文件路径,与扫描工具数据库存储的指纹信息进行正则匹配,判断 CMS 的类型。
CMS 会有一些 JS、CSS、图片等静态文件,这些文件一般不会变化,可以利用这些特定文件的 MD5 值作为
指纹信息来判断 CMS 的类型。
1.3、响应头信息识别
应用程序会在响应头 Server、X-Powered-By、Set-Cookie 等字段中返回 Banner 信息或者自定义的数据字段,通过响应头返回的信息,可以对应用进行识别。有些 WAF 设备也可以通过响应头信息进行识别判断。当然 Banner 信息并不一定是完全准确的,应用程序可以自定义自己的 Banner 信息
工具:
whatweb:https://github.com/urbanadventurer/WhatWeb
wappalyzer:https://github.com/AliasIO/wappalyzer
Glass:https://github.com/s7ckTeam/Glass
御剑指纹识别、Webrobot工具
只支持如WordPress, Joomla, Drupal的工具:
CMSScan:https://github.com/ajinabraham/CMSScan
CMSmap:https://github.com/Dionach/CMSmap
云悉:https://www.yunsee.cn/bugscaner
bugscaner在线cms识别:http://whatweb.bugscaner.com/look/
google hacking语法
$site表示域名或者IP地址
目录遍历:
site:$site intitle:index.of
//用于搜索 Web 服务器上的目录索引页面,这些页面通常包含服务器上可访问的文件列表
配置文件泄露:
site:$site ext:xml | ext:conf | ext:cnf | ext:reg | ext:inf | ext:rdp | ext:cfg |
ext:txt | ext:ora | ext:ini
//发现某个网站上包含的敏感信息或配置信息,例如数据库连接信息、密码、IP 地址等
数据库文件泄露:
site:$site ext:sql | ext:dbf | ext:mdb
日志文件泄露:
site:$site ext:log
备份和历史文件:
site:$site ext:bkf | ext:bkp | ext:bak | ext:old | ext:backup
登录页面:
site:$site inurl:login
//指定搜索结果的 URL 中必须包含 "login" 关键词
SQL错误:
site:$site intext:"sql syntax near" | intext:"syntax error has occurred" |
intext:"incorrect syntax near" | intext:"unexpected end of SQL command" |
intext:"Warning: mysql_connect()" | intext:"Warning: mysql_query()" |
intext:"Warning: pg_connect()"
//intext:搜索结果的正文中要拥有
公开文件信息:
site:$site ext:doc | ext:docx | ext:odt | ext:pdf | ext:rtf | ext:sxw | ext:psw |
ext:ppt | ext:pptx | ext:pps | ext:csv
//帮助用户发现某个网站上包含的敏感信息或配置信息,例如报告、财务信息、客户数据等
phpinfo():
site:$site ext:php intitle:phpinfo "published by the PHP Group"
//查找包含 PHP 配置信息的页面,从而了解 PHP 服务器的配置和漏洞信息
//ext:php指定php文件
//"published by the PHP Group":phpinfo() 函数的输出中
搜索粘贴站点:
site:pastebin.com | site:paste2.org | site:pastehtml.com | site:slexy.org |
site:snipplr.com | site:snipt.net | site:textsnip.com | site:bitpaste.app |
site:justpaste.it | site:heypasteit.com | site:hastebin.com | site:dpaste.org |
site:dpaste.com | site:codepad.org | site:jsitor.com | site:codepen.io |
site:jsfiddle.net | site:dotnetfiddle.net | site:phpfiddle.org |
site:ide.geeksforgeeks.org | site:repl.it | site:ideone.com | site:paste.debian.net
| site:paste.org | site:paste.org.ru | site:codebeautify.org | site:codeshare.io |
site:trello.com $site
//查找包含指定域名或 IP 地址的粘贴内容
搜索Github、Gitlab: //指定要搜索的代码托管站点
site:github.com | site:gitlab.com $site.
//查找包含指定域名或 IP 地址的代码仓库
在线Google Hacking利用:https://tools.zjun.info/googlehacking/
社工信息搜集
网络 ID(现用和曾用)、真实姓名、手机号、电子邮箱、出生日期、身份证号、银行卡、支付宝账号、QQ号、微信号、家庭地址、注册网站(贴吧、微博、人人网等)等信息。
在目标相关网页中可能会存在招聘信息、客服联系等,可以利用招聘或客服聊天的方式进行钓鱼、木马植入等。搜集到相关的人员信息后可以制作社工字典,有如下在线或本地工具:
bugku密码攻击器:https://www.bugku.com/mima/
白鹿社工字典生成器:https://github.com/z3r023/BaiLu-SED-Tool
社工库查询:telegram上面