渗透信息收集(笔记)

记录自京东安全小课堂

SRC信息收集为了确定攻击面,也就是确定渗透测试目标。信息收集越充分,攻击的成功率也就越高。但是如果信息收集多而杂,信息利用过程中就很难找到有价值信息。

高价值点的信息:

  • 厂商组织架构
  •  域名
  • IP 段
  • 业务信息 

 厂商的组织架构

首先将公司架构吧,我们就以京东为例吧

企业的组织架构信息可通过开源信息获取。

常用的方法,通过维基百科,百度百科等确定企业的大体组织架构;

zh.wikipedia.org

baike.baidu.com

 

通过以上信息我们可以确定集团下的各个子公司。

如:京东到家,京东物流,京东金融科技等等。

这些子公司都是我们的目标

公司架构确定完成后,我们开始被动信息的收集

被动信息收集(域名)

被动信息收集是指不与目标直接交互,通过公开的渠道获取获取目标信息。

可从以下几点展开,DNS信息收集,https证书信息,搜索引擎,网络空间安全搜索引擎,基于备案资料信息收集。

DNS信息收集

国外常用的whois查询站点:

WHOIS Search, Domain Name, Website, and IP Tools - Who.is

Team Cymru IP to ASN Lookup v1.0

https://whois.arin.net/ui/query.do

国内常用的whois查询站点:

域名Whois查询 - 站长之家

站长工具_whois查询工具_爱站网

通过whois查询确定注册者,然后关联同一注册者的其他站点信息。

Reverse Whois Lookup - ViewDNS.info

域名Whois反查 - 站长之家

​curl https://api.recon.dev/search?domain=domain.com -s | jq -r '.[].domain' | sort -u | cut -d : -f 1,2

https证书信息

即通过https证书进行信息收集,可通过采用以下几种方式

基于证书透明度两个站点:

https://certspotter.com/api/v0/certs

https://crt.sh

为方便信息处理,可编写脚本处理:

crtFetch -d example.com

 我们看到就可以梳理出一部分子域名信息了

脚本位置:personalTools/crtFetch.py at master · 3stoneBrother/personalTools · GitHub

该脚本对在线站点获取的域名进行清洗,可获取到单域名SSL证书和通配符SSL证书两类。

有时候我们可能忽略的地方,有些企业的https证书中的相关域名可在浏览器证书中点击查看;

 

浏览一个站点可查看到该公司的其他域名

分享一个脚本。personalTools/sslinfo.py at master · 3stoneBrother/personalTools · GitHub

脚本:python sslinfo.py -d "jd.com"

搜索引擎技术

基于goolge hack技术可以查询到很多敏感信息。

更详细的用法可在这里查询:

Google Hacking Database (GHDB) - Google Dorks, OSINT, Recon

我们常用关键字查询:

site:搜索域名的范围

inurl:URL格式

intitle:搜索的网页标题

intext:搜索包含其中文字的网页

filetype:搜索文件的后缀或者扩展名

cache:搜索搜索引擎里关于某些内容的缓存,可能会在过期内容中发现有价值的信息

link:搜索某个网站的链接

info:查找指定站点的一些基本信息

【查找敏感目录地址】

site:xxx.com inurl:login|admin|manage|admin_login|system|user|auth|dev|test
site:xxx.com intitle:后台|管理|内部|登录|系统

【查找敏感文件】

site:xxx.com (filetype:doc OR filetype:ppt OR filetype:pps OR filetype:xls OR filetype:docx OR filetype:pptx OR filetype:ppsx OR filetype:xlsx OR filetype:odt OR filetype:ods OR filetype:odg OR filetype:odp OR filetype:pdf OR filetype:wpd OR filetype:svg OR filetype:svgz OR filetype:indd OR filetype:rdp OR filetype:sql OR filetype:xml OR filetype:db OR filetype:mdb OR filetype:sqlite)

 这个语法就比较长了,主要查找公司的一些敏感信息

后台:site:xxx.xxx admin|login|system|管理|登录|内部|系统|邮件|email|mail|qq|群|微信|腾讯|

这些信息,在社工的时候以下可能会用到。但是在SRC中渗透中一定要遵从行业测试规范。除特别批准外,严禁与漏洞无关的社工。还有其他的一些注意事项小伙伴们也一定要注意以下。

google hack 

以下可能是我们会忽略的几个关键字查询语句:

基于备案号,copyright信息查询

intext:"Tesla ©2020"

intext:"京ICP备11041704号-15"

这些也可以帮我们查找一些站点信息

## 可以正则的形式

site:dev.*.*/signin

site:*/recover-pass

site:smtp.*.*/login

site:/com:*

site:/216.75.*.*

基于端口或者端口范围查询

site:/com:8443/

site:/com:* 8000...9000

网络空间安全搜索引擎

常用的搜索引擎,有以下几个:

ZoomEye - Cyberspace Search Engine

网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统

Shodan Search Engine

利用如下常用语法,我们可以收取更多的信息:

org:"Tesla"

ssl:"Tesla"

http.component:"Drupal"

http.title:"Login"

http.favicon.hash:81586312

os:"windows" port:"3389" net:"107.160.1.0/24"

Apache city:"Hong Kong" port:"8080"  product:"Apache Tomcat/Coyote JSP engine"

这些常用语法,可以帮助我们找到一些目标信息

基于备案资料信息收集

通过企业组织架构查询到的关键词,利用备案信息可以大致确定各个站点的域名信息。

基于关键词就可以查找到域名信息

点击反查,可看到该公司的其他备案域名信息:

http://www.beianbeian.com/search-1/example.html

基于网页信息做一个正则过滤,便于批量处理

curl http://www.beianbeian.com/search-1/example.html | grep "</a><br></td>" |  grep -o "www.\w*.\w*" | sort | uniq | sed "s/www.//g"

 不断的根据网络备案/许可证号进行反查,即可梳理更多的资产信息。

确定企业的IP段

可基于https://bgp.he.net/站点进行收集。

输入公司名称可查询该公司的IP资产信息,然后正则匹配IP段:

cat aa.txt| grep -Eo "<td>.*?td>"| grep "href"| grep -Eo "([0-9]{1,3}[.]){3}[0-9]{1,3}/*[0-9]{0,2}" 

就可以得到公司的IP段信息了

基于APP、H5、公众号、小程序(业务)

以公众号信息为例进行说明:

基于公众号信息,我们可以挖掘到很多的厂商业务信息。公司的公众号信息可在sogou搜索引擎可以进行查询。

京东的相关微信公众号 – 搜狗微信搜索

为便于快速梳理,可用脚本处理。

python gongzhonghao.py -d "目标公司"

personalTools/gongzhonghao.py at master · 3stoneBrother/personalTools · GitHub

主动信息收集

通过被动信息收集到一批域名,IP信息。

以主动信息比较容易忽略的三级域名,甚至四级域名为例进行说明。通配符SSL证书往往是三级、四级域名高效爆破的目标,为批量处理,在crtFetch脚本中提取了需要进一步爆破的三级、四级域名。

就是刚才的那个脚本 以上的部分

然后进行域名爆破,爆破工具有很多,以gobuster为例进行演示:

gobuster dns -t 30 -w  sub_name.txt -i  -q –wildcard -d api.example.com| tee  domains-active.txt

 这些三级四级域名,防护往往会薄弱一些

域名是否存活可利用httprobe工具确定。

cat domain.txt | httprobe > domain-alive.txt 

 也可通过whatweb查看链接的服务器版本,标题等信息,处理结果如下图所示

为便于批量查看URL内容,我们可通过屏幕截图工具webscreenshot进行处理。

具体方法如下:首先将存活的站点截图到screenshots文件夹下面:

webscreenshot -i alive.txt -o screenshots -w 20 -m -a "X-FORWARDED-FOR:127.0.0.1"

 为便于浏览,我们将截图生成一个html文件便于在浏览器查看:

for I in $(ls -S); do echo "$I" >> index.html;echo "<img src=$I><br>" >> index.html; done

这样就按照图片大小在浏览器显示了, 在浏览器中打开 index.html文件,就可看到所有的网页截图了。效果如下图,所有存活站点都在一个页面展现出来。可根据站点内容做进一步的渗透测试。

为高效的发现新上线的业务,结合主动信息和被动信息收集,做一个监控工具,一旦有新的业务上线,第一时间感知。

这是我的域名监控系统,每当有新的站点上线,会有slack消息通知。

 

 

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>