万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

0 阅读13分钟
域名
子域名
真实 ip
中间件
脚本语言
端口
服务器信息(端口、服务、真实 iP)网站信息(网站架构(操作系统、中间件、数据库、编程语言)、指纹信息、WAF、敏感目录、敏感文件、源码泄露、旁站查询、C 段查询)域名信息(whois、. 备案信息、子域名)
人员信息(姓名、职务、生日、联系电话、邮件地址)

安装(kali 中):blog.csdn.net/weixin_5312…

进入 root 用户:<font style="color:rgb(79, 79, 79);">su</font>查看是否已经安装 docker:<font style="color:rgb(79, 79, 79);">docker</font>

如果没有 docker 环境,自行安装 docker

github 克隆 ARL:<font style="color:rgb(79, 79, 79);">git clone </font><font style="color:rgb(79, 79, 79);">https://github.com/TophantTechnology/ARL</font>

进入文件夹:<font style="color:rgb(79, 79, 79);">cd ARL/docker</font>

修改文件:yaml 文件:<font style="color:rgb(79, 79, 79);">vim config-docker.yaml</font>

在 FOFA 下面添加 RISKIQ,注意空格和对齐

#Fofa API 配置项
FOFA:
  URL: "https://fofa.info"
  EMAIL: "xxxxxxxx@qq.com"
  KEY: "xxxxxxxxxxxxxxxxxxxxxxx"
 
RISKIQ:
  EMAIL: ""
  KEY: ""

在当前目录创建容器数据卷:<font style="color:rgb(79, 79, 79);">docker volume create --name=arl_db</font>

输入启动命令启动:<font style="color:rgb(79, 79, 79);">docker-compose up -d</font>

后续使用:

进入文件夹:<font style="color:rgb(79, 79, 79);">cd ARL/docker</font>

输入启动命令启动:<font style="color:rgb(79, 79, 79);">docker-compose up -d</font>

登录到 arl(默认端口:5003):<font style="color:rgb(79, 79, 79);">https://<IP>:5003</font>(注意是 https)

账号:admin 密码:arlpass

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

挖 src 之类的建议直接装到公网云服务器上,实时监测,不怕电脑关机卡掉之类的。也可以在公网搭靶场

个人也总结了一些现在的活动,可以参考下

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

  • 说明:

一款好用的命令行信息收集工具,支持 web 信息收集、目录扫描、子域名收集、端口扫描、poc 扫描等功能。

  • 下载:

niudaii.oss-cn-hangzhou.aliyuncs.com/resource.zi…

github.com/niudaii/zps…

将下载的 exe 文件放置到资源文件(config.yaml、resource/)的同目录下

  • 使用(使用 powershell!!):

查看说明 ./zpscan -h

Usage:
  zpscan [command]
 
Available Commands:
  alive       WEB 存活扫描
  crack       常见服务弱口令爆破
  dirscan     目录扫描
  domainscan  子域名收集
  expscan     exp 扫描
  help        Help about any command
  ipscan      端口扫描
  pocscan     poc 扫描
  webscan     web 信息收集
 
Flags:
      --debug               show debug output
  -h, --help                help for zpscan
  -i, --input string        single input(example: -i 'xxx')
  -f, --input-file string   inputs file(example: -f 'xxx.txt')
      --no-color            disable colors in output
  -o, --output string       output file to write log and results (default "result.txt")
      --result string       output file to write found results

web 信息收集 ./zpscan webscan -i 'http://yancy77.top/'

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

子域名收集./zpscan domainscan -i 'http://yancy77.top/'

项目地址:github.com/knownsec/Ku…

Kunyu(坤舆)是一款高效资产收集工具,使用方法与 MSF 有相似之处。工具调用了 ZoomEye 和 SeeBug 的 API,使得资产收集更加方便快捷,搜索结果一目了然。

安装依赖文件:<font style="color:rgb(77, 77, 77);">pip3 install -r requirements.txt</font>

安装 Kunyu:<font style="color:rgb(77, 77, 77);">python3 setup.py install</font>

设置 ZoomEye 和 SeeBug 的 API(必须):

<font style="color:rgb(77, 77, 77);">kunyu init --apikey "<your zoomeye key>" --seebug "<your seebug key>"</font>

ZoomEye 官方地址
SeeBug 官方地址

进入 Kunyu 控制台:<font style="color:rgb(77, 77, 77);">kunyu console</font> 或者 <font style="color:rgb(77, 77, 77);">kunyu</font>

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

常见使用:

先进入控制台:<font style="color:rgb(77, 77, 77);">kunyu console</font> 或者 <font style="color:rgb(77, 77, 77);">kunyu</font>

查看用户信息<font style="color:rgb(77, 77, 77);">info</font>

查找 IP 信息:<font style="color:rgb(77, 77, 77);">SearchHost <IP></font>``<font style="color:rgb(77, 77, 77);">SearchHost 222.22.2.2</font>

查找网站信息:<font style="color:rgb(77, 77, 77);">SearchWeb <url></font>``<font style="color:rgb(77, 77, 77);">SearchWeb www.baidu.com</font>

查找子域名:<font style="color:rgb(77, 77, 77);">SearchDomain < 主域名 ></font>``<font style="color:rgb(77, 77, 77);">SearchDomain baidu.com</font>

搜索 Icon 资产:<font style="color:rgb(77, 77, 77);">SearchIcon < 本地 Icon 文件地址 / 远程 Icon 文件地址 ></font>

查看 ThinkPhp 历史漏洞(举例):<font style="color:rgb(77, 77, 77);">Seebug Thinkphp</font>

项目地址:github.com/0x727/ShuiZ…

(总是报错,建议搭建 docker,ps: 未成功)

安装依赖文件:<font style="color:rgb(77, 77, 77);">pip3 install -r requirements.txt</font>

使用:

python3 ShuiZe.py -d domain.com 
收集单一的根域名资产
 
python3 ShuiZe.py --domainFile domain.txt   
批量跑根域名列表
 
python3 ShuiZe.py -c 192.168.1.0,192.168.2.0,192.168.3.0    
收集 C 段资产
 
python3 ShuiZe.py -f url.txt    
对 url 里的网站漏洞检测
 
python3 ShuiZe.py --fofaTitle XXX 大学 
从 fofa 里收集标题为 XXX 大学的资产,然后漏洞检测
 
python3 ShuiZe.py -d domain.com --justInfoGather 1  
仅信息收集,不检测漏洞
 
python3 ShuiZe.py -d domain.com --ksubdomain 0  
不调用 ksubdomain 爆破子域名

Fofa Quake Shodan Zoomeye 鹰图

quake.360.net/quake/#/ind…

hunter.qianxin.com/

fofa.info/

www.shodan.io/

www.zoomeye.org/

github.com/EASY233/Fin…

先安装相关库

配置(必要):可以在 config/config.py 中进行修改

# 设置线程数,默认 30
threads = 30
# 设置 Fofa key 信息
Fofa_email = ""
Fofa_key = ""  (不是密码)
# 普通会员 API 查询数据是前 100,高级会员是前 10000 条根据自已的实际情况进行调整。Fofa_Size = 100
# 设置 360quake key 信息,每月能免费查询 3000 条记录
QuakeKey = ""
# 是否选择在线跟新指纹库,默认为 True 每次程序都会检查一遍指纹库是否是最新
FingerPrint_Update = True

使用方法:

-u 对单个 URL 进行指纹识别
-f 对指定文件中的 url 进行批量指纹识别
-i 对 ip 进行 fofa 数据查询采集其 web 资产
-if 对指定文件中的 ip 批量调用 fofa 进行数据查询采集其 web 资产
-fofa 调用 fofa api 进行资产收集
-quake 调用 360 quake 进行资产收集
-o 指定输出方式默认不选择的话是 xlsx 格式,支持 json,xls。

常见使用:

python Finger.py -fofa

python Finger.py -quake

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

如 360 安全大脑:ti.360.net/#/homepage

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

  • whois 就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。通过 whois 来实现对域名信息的查询。
  • 查询方法:

(1) whois.chinaz.com/

(2) www.whois.com/whois/(荐)

(3) www.ename.com/

(4) 利用 kali 的 whois 命令

icp.chinaz.com/ 站长之家

如用 site:honeyjie.cn 来搜索 honeyjie.cn 的子域名

黑暗搜索语法:

intitle:搜索网页标题中包含有特定字符的网页。例如输入“intitle: cbi”,这样网页标题中带有 cbi 的网页都会被搜索出来。inurl:搜索包含有特定字符的 URL。例如输入“inurl:cbi”,则可以找到带有 cbi 字符的 URL。intext: 搜索网页正文内容中的指定字符,例如输入“intext:cbi”。这个语法类似我们平时在某些网站中使用的“文章内容搜索”功能。Filetype: 搜索指定类型的文件。例如输入“filetype:pdf”,将返回所有以 pdf 结尾的文件 URL。Site:找到与指定网站有联系的 URL。例如输入“Site:family.chinaok.com”。所有和这个网站有联系的 URL 都会被显示。通配符谷歌的通配符是星号 *
布尔逻辑:与或非:and, |, or

下载地址:gitee.com/shmilylty/O…

python 版本要求:python 3.8 以上版本

使用方法:python oneforall.py –-target 域名 run

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

注意:扫描结果将存放于 oneforall\results 文件下。

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

api 接口配置:config/api.py

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

下载地址:gitcode.net/mirrors/lij…

使用:python3 subDomainsBrute.py baidu.com

扫描结束后会在当前目录下生成域名.txt 文件

注:仅限 HTTPS 网站,因为只有 HTTPS 网站才有证书

crt.sh/
万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

tools.bugscaner.com/subdomain/

z.zcjun.com/?http=baidu…

ip.tool.chinaz.com/ 站长之家(单个,不能排除有 cdn)

www.itdog.cn/ping/

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

不同地区的响应 IP 不同,所以有 cdn

使用超级 ping 时尽量 ping 其顶级域名(去掉 www)

以 www.xueersi.com 为例,可以超级 ping 顶级域名 xueersi.com。原理:设 CDN 时在域名解析位置设置,访问顶级域名一般会主动跳转到二级域名,所以常常只将二级域名加 www 的设置 CDN,而顶级域名并没有设 CND。子域名同理:网站管理员由于资源,只对主站做了 cdn 服务,没有对分站做 CDN 服务,可以从分站入手,推算出主站的 ip 地址。

tools.ipip.net/cdn.php

# 可通过科学上网寻找国外结点请求网站。在网站上面有不同的国家 ip,利用这些 ip 访问网站,越是偏僻的国家,越可能没有部署 CDN,因此,越有可能是网站的真实 ip。

# 注:不一定准确,通常用于验证

get-site-ip.com/

site.ip138.com/

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

viewdns.info/

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

让对方服务器主动发邮件给你(注册、找回密码等功能)

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

旁站:同一服务器不同站点,如 123.123.123.10 下有 www.a.com 和 www.b.com 等
 
C 站:同网段不同服务器不同站点
如 123.123.123.10 下有 www.a.com 和 www.b.com 等
而 123.123.123.11 下有 www.c.com 和 www.d.com 等

一般同一个公司申请多个服务器时,会分配相同网段下的服务器

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

  • 利用 nmap扫描 C 段主机存活:

nmap -sn -PE -n 192.168.1.1/24 -oX out.xml

其中

-sn 不扫描端口 -PE ICMP 扫描

- n 不进行dns 解析 -oX 输出结果

  • 利用 Cwebscanner 来查询 C 段:

使用方法:python2 Cwebscan.py www.honeyjie.cn (-p80,443)

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

设计目的:快速扫描大型网络 / 单个主机。如何实现:使用原始 IP 报文来发现网络上有哪些主机,主机提供什么服务,操作系统,使用什么类型的报文过滤器 / 防火墙,以及其他功能。nmap 用途:常用于安全审核。许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息,管理服务升级计划。nmap 脚本引擎 NSE:可以添加自己的代码,打造自己的工具。
如果使用 Nmap 对台计算机进行审计,最终可以获得目标如下的信息。■目标主机是否在线。■目标主机所在网络的结构。■目标主机上开放的端口,例如 80 端口等。■目标主机所使用的操作系统,例如 Windows 7、Windows 10. Linux 2.6.18、Android 等。■目标主机上所运行的服务以及版本,例如 Apache htpd 22.14、OpenSSH 5.3p1、Debian 3、Ubuntu4 等。■目标主机上所存在的漏洞,例如弱口令、ms08067、ms10054 等。

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

#nmap 用法

最最常用:nmap -sV -O 192.168.0.100  // 查看端口以及操作系统类型
 
常用:nmap -sP 192.168.1.100        // 查看一个主机是否在线
nmap 192.168.1.100          // 查看一个主机上开放的端口
nmap -sV -O 192.168.0.100  // 判断目标操作系统类型
nmap -sS 192.168.1.100       // 半开放 syn 扫描
nmap -p 1-1000 192.168.1.100  // 扫描指定端口范围
nmap -p 80 192.168.1.100     // 扫描特定端口
nmap -sV 192.168.1.100  // 查看目标开放端口对应的协议及版本信息
 
 
1. nmap -sT 192.168.96.4  //TCP 连接扫描,不安全,慢
2. nmap -sS 192.168.96.4  //SYN 扫描, 使用最频繁,安全,快
3. nmap -Pn 192.168.96.4  // 目标机禁用 ping,绕过 ping 扫描
4. nmap -sU 192.168.96.4  //UDP 扫描, 慢, 可得到有价值的服务器程序
5. nmap -sI 僵尸 ip 目标 ip  // 使用僵尸机对目标机发送数据包
6. nmap -sA 192.168.96.4  // 检测哪些端口被屏蔽
7. nmap 192.168.96.4 -p <portnumber>  // 对指定端口扫描
8. nmap 192.168.96.1/24 // 对整个网段的主机进行扫描
9. nmap 192.168.96.4 -oX myscan.xml // 对扫描结果另存在 myscan.xml
10. nmap -T1~6 192.168.96.4  // 设置扫描速度,一般 T4 足够。11. nmap -sV 192.168.96.4  // 对端口上的服务程序版本进行扫描
12. nmap -O 192.168.96.4  // 对目标主机的操作系统进行扫描
13. nmap -sC <scirptfile> 192.168.96.4  // 使用脚本进行扫描,耗时长
14. nmap -A 192.168.96.4  // 强力扫描,耗时长
15. nmap -6 ipv6 地址   // 对 ipv6 地址的主机进行扫描
16. nmap -f 192.168.96.4  // 使用小数据包发送,避免被识别出
17. nmap –mtu <size> 192.168.96.4 // 发送的包大小, 最大传输单元必须是 8 的整数
18. nmap -D < 假 ip> 192.168.96.4 // 发送参杂着假 ip 的数据包检测
19. nmap --source-port <portnumber> // 针对防火墙只允许的源端口
20. nmap –data-length: <length> 192.168.96.4 // 改变发生数据包的默认的长度,避免被识别出来是 nmap 发送的。21. nmap -v 192.168.96.4  // 显示冗余信息(扫描细节)
22. nmap -sn 192.168.96.4  // 对目标进行 ping 检测,不进行端口扫描(会发送四种报文确定目标是否存活,)23. nmap -sP 192.168.96.4  // 仅仅对目标进行 ping 检测。24. nmap -n/-p 192.168.96.4  //- n 表示不进行 dns 解析,- p 表示要
25. nmap --system-dns 192.168.96.4  // 扫描指定系统的 dns 服务器
26. nmap –traceroute 192.168.96.4  // 追踪每个路由节点。27. nmap -PE/PP/PM: 使用 ICMP echo, timestamp, and netmask 请求包发现主机。28. nmap -sP 192.168.96.4       // 主机存活性扫描,arp 直连方式。29. nmap -iR [number]       // 对随机生成 number 个地址进行扫描。

nmap 192.168.1.100 // 查看一个主机上开放的端口

nmap -sV -O 192.168.0.100 // 查看端口以及操作系统类型

同样装到公网云服务器上。也可以在公网搭靶场。

个人也总结了一些现在的活动,可以参考下:

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

windows 系统:url 中字母区分大小写
Linux 系统:url 中字母不区分大小写
  • ttl 概念
TTL(生存时间)是网络发送的数据包中包含的计时器值,它告诉接收者在丢弃和过期数据(数据包)之前要保留或使用该数据包多长时间。对于不同的操作系统,TTL 值是不同的。因此,您可以根据 TTL 值确定操作系统。您可以通过 ping 地址来获取 TTL 值。每经过一个路由器,TTL 值减 1,当 TTL 值减到 0 时,路由器就会将这个包丢弃,这样就可以防止包在网路上无休止的传播发送 
#最好不用虚拟机 ping,因为虚拟机 ping 配置不好不通外网,ttl 值为主机的系统对应的 ttl

下面是默认操作系统的 TTL:

1、WINDOWS NT/2000   TTL:128

2、WINDOWS 95/98     TTL:32

3、UNIX              TTL:255

4、LINUX             TTL:64

5、WIN7              TTL:64

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

则该网站大概率为 Linux 系统

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

该网站大概率为 windows 系统

#nmap -O www.honeyie.cn // 对目标主机的操作系统进行扫描

#nmap -sV -O 192.168.0.100 // 查看端口以及操作系统类型

windows

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

linux

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

备注:不是所有的系统都可以用这种方式扫描出操作系统的类型、在 windows 的一些高版本中无法探测

如 wordpress 就是一种 cms。cms 就是内容管理系统,也可以理解成为网站建设系统。CMS 其实是一个很广泛的称呼,从一般的博客程序,新闻发布程序,到综合性的网站管理程序都可以被称为内容管理系统。简而言之,类似于模具,渗透测试中发现某站由 cms 搭建,就相当于对方脱了一半的裤子,暴露了很多信息出来, 可以根据搜索该 cms 类型的漏洞来寻找该网站的漏洞。cms 一般有 dedecms(织梦),dzcms,phpweb,phpwind,phpcms,ecshop,dvbbs,siteweaver,aspcms,帝国,zblog,wordpress 等。一般 cms 都有特定的文件,只需要识别特定的文件便可以判断。

使用方法:

扫描单个目标:whatweb www.xxx.com

扫描多个目标,并将结果保存到 txt 文档:新建 xxx 文件,输入多个目标地址,保存,

whatweb -i xxx –log-brief=111.txt

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

下载:github.com/F6JO/CmsVul…

使用:(必须带 https/http)

  • pip install -r requirements.txt
  • python CmsVulScan.py -u xxx.com
  • python CmsVulScan.py -u xxx.com -t 200
  • python CmsVulScan.py -f url.txt -t 200 -o results.txt

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

如:favicon.ico logo.png login.wsd bg_top.png 等等

把这些文件下载下来使用 cmd 计算 md5 值

举例:cmd 中运行 certutil -hashfile favicon.ico MD5

得到 32b016195f800b8d3e8d93fbd24583b4 |jingyi|

用指纹字典对照获取 cms 信息

渗透测试中发现某站由 cms 搭建,就相当于对方脱了一半的裤子,暴露了很多信息出来,可以根据搜索该 cms 类型的漏洞来寻找该网站的漏洞,称为 cms 漏洞

  • 可以根据 cms 来查找专门的扫描工具

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

  • 也可以直接在网上搜

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

Web 应用框架(Web application framework)是一种开发框架,用来支持动态网站、网络应用程序及网络服务的开发。其类型有基于请求的和基于组件的两种框架
CMS 就是将网站的栏目模型全部开发好了,用户可以直接使用了,它是一次开发
而框架只是面向程序员的,普通用户是用不了的,因为看不懂。框架就是将一些常用操作封装起来,并给合一些设计模式,用来规范和简化程序员的开发流程,是二次开发
PHP:Yii,Laravel,thinkphp
Java:shiro,struts,spring,maven
Python:flask,Django,Tornado

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

builtwith.com/

万字长文解析:构建从域名发现到框架识别的信息收集兵器谱

  • 可以根据 cms 来查找专门的扫描工具
  • 可以直接搜索框架相关漏洞
  • 利用漏洞平台查询