信息收集
1.信息收集分为主动收集和被动收集,主动收集会被防守方发现,被动收集不会被发现。
- 主动信息收集:通过直接访问、扫描网站,这种流量将流经网站
- 被动信息收集:利用第三方的服务对目标进行访问了解,比例:Google搜索、Shodan搜索等
1.被动收集:Google hacking (谷歌黑语法)
site:可以限制你搜索范围的域名.
inurl:用于搜索网页上包含的URL,这个语法对寻找网页上的搜索,帮助之类的很有用.
intext: 只搜索网页部分中包含的文字(也就是忽略了标题、URL等的文字)
intitle: 查包含关键词的页面,一般用于社工别人的webshell密码
filetype:搜索文件的后缀或者扩展名
intitle:限制你搜索的网页标题.
【例子】
搜索敏感文件:
site:xxx.com filetype:doc intext:pass
site:xxx.com filetype:xls intext:pass
site:xxx.com filetype:inc
搜索管理后台:
site:xxx.com 管理
site:xxx.com intitle:管理|后台|admin|login
搜索敏感web路径:
site:xxx.com intitle:sql.php
site:xxx.com intitle:phpinfo.php
2.网络组件fofa.info:
fofa语法-网站有
2.主动收集
3.子域名,dns查询:
- 通过爆破子域名进行查询,如 Layer子域名爆破机、subDomainBrute,在线子域名查询网站
- 通过查询DNS服务器,查询该域下的解析记录
- 通过HTTPS证书来查询(只适用于https网站) ,就是通过https证书查询子域名
- 通过google查询
- 公司敏感信息查询,企查查,天眼查等等…
子域名挖掘
1.layer子域名爆破机
2.OneForAll github项目地址
绕过cdn找真实IP
还有一个就是通过域名查ip,有些时候网站做了cdn,就找不到真实ip,如果想进一步渗透的话必须先找到真实ip。
这里不再赘述了,篇幅有限直接给出文章:大佬文章
4.在渗透测试的信息收集阶段,可以去Github和码云上搜索与目标有关的信息,或者就有意想不到的收获。(有些开发人员将代码上传到代码库的时候,有可能连一些重要的配置信息也上传了)
Github的搜素语法:
in:name test #仓库标题搜索含有关键字test
in:descripton test #仓库描述搜索含有关键字
in:readme test #Readme文件搜素含有关键字
stars:>3000 test #stars数量大于3000的搜索关键字
stars:1000..3000 test #stars数量大于1000小于3000的搜索关键字
forks:>1000 test #forks数量大于1000的搜索关键字
forks:1000..3000 test #forks数量大于1000小于3000的搜索关键字
size:>=5000 test #指定仓库大于5000k(5M)的搜索关键字
pushed:>2019-02-12 test #发布时间大于2019-02-12的搜索关键字
created:>2019-02-12 test #创建时间大于2019-02-12的搜索关键字
user:test #用户名搜素
license:apache-2.0 test #明确仓库的 LICENSE 搜索关键字
language:java test #在java语言的代码中搜索关键字
user:test in:name test #组合搜索,用户名test的标题含有test的
【二】知道了网站域名,子域名,域名对应ip,就可以进行网站的信息收集了,首先识别网站指纹
1.whatweb(kali自带)
2.火狐插件(Wappalyzer)
3.网站查询:比如云悉指纹 https://www.yunsee.cn/
【三】扫描网站目录:
1.先看一下有没有robots.txt目录,里面一般都是比较重要的东西
2.git泄露,/.git 这些特殊目录
3.看看有没有备份文件
4.工具扫描,dirsearch dir gobuster 御剑;
目录扫描重点在于字典;字典需要平时不断积累,遇到奇葩的目录就加进去,不断更新扩大字典