一、收集域名信息
1.1域名注册信息
工具:站长之家
whois查询
SEO综合查询
1.2子域名收集
原理:字典爆破,通过字典中的各种字符串与主域名拼接,尝试访问。
站长之家 直接查询子域名 ip138.com
https://phpinfo.me/domain/ #属于破形式
多个子域名对应同一个ip地址:泛域名解析, *xxx.com ---ip (泛域名解析和CDN冲突)
(一)CDN概念
内容分发网络(Content Delivery Network,CDN)是一种网络架构,旨在提高用户对互联网上内容的访问速度和性能。CDN通过在全球各地部署大量的服务器节点,将内容缓存到离用户更近的服务器上,从而减少内容传输的距离,提高访问速度和响应时间。当用户请求访问某个网站或应用程序时,CDN会自动选择距离用户最近的服务器节点,从该节点提供内容,而不是直接从原始服务器获取内容。
子域名收集工具
subfinder
Subfinder 是一款专注于子域名收集的开源工具,旨在帮助安全专业人员、渗透测试人员和研究人员快速有效地发现目标域的子域名。该工具通过与多个子域名源(例如搜索引擎、DNS数据)集成,提供了一个全面的子域名搜集解决方案。
首先安装Golang
配置环境变量
查看版本 并且安装subFinder
subfinder -h 域名查看子域名
JSfinder
链接:https://github.com/Threezh1/isFinder
原理:通过查看页面js文件,提取其中的url,子域名
1.3域名备案信息查询
ICP备案是指网站在上线时需要把网站的信息提交到信息产业部、也叫做工信部来进行官方认证,等到官方认可网站合格之后会允予发放一个CP备案号,这个备案号可不要水看他。如果是企业网站,.ICP备案号则充当着重要的角色。举个例子,如果自己的企业网站需要进行推广,那么你在入驻推广平台的时候需要提交自己的网站信息!以及网站!CP备案号,如果自己的网站没有ICP备案号,那么肯定是无法通过审核的。通俗点说就是ICP备案就是网站的身份证号。如果自己的网站没有进行ICP备案,那么自己的网站将会在互联网里寸步难行。
一般在网站页面最下面会有备案号
1.4ssl证书查询
我们学过http和htps了,很清楚的知道,如果我们是一个公司,做了一个网站,想要使用https协议来传输数据,那么我们需要注册和安装ssl证书。ssl证书的申请是需要公司信息和域名信息的,所以我们可以通过s!证书的查询,也能获取一些信息.
查询网址:
https://myss1.com/ss1.htm1
https://www.chinass1.net/ssltoo1s/ss1-checker.htm1
二、收集真实ip
2.1判断是否开启cdn
首先判断是否开启cdn服务,通过超级ping来判断是否使用了cdn,绕过cdn
超级ping
超级ping能进行多地ping某个网址,可以理解为多个地域对同一个域名进行ping操作,就会看到大家ping出来的ip地址不同
如下图
通过直接ping和nslookup去查询
可以看到启用了cdn
dig
Dig是一个在linux命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。也能探测到某个域名对应的ip地址。dig 最基本的功能就是查询域名信息,因此它的名称实际上是“域名信息查询工具Domain Information Groper"的缩写。dig 向用户返回的内容可以非常详尽,也可以非常简洁,展现内容的多少完全由用户在查询时使用的选项来决定。
2.2绕过cdn
1.使用工具绕过,效果不佳
工具1: fuckcdm
GitHub - Tai7sy/fuckcdn: CDN真实IP扫描,易语言开发
工具2:w8fuckcdn
GitHub - boy-hack/w8fuckcdn: Get website IP address by scanning the entire net 通过扫描全网绕过CDN获取网站IP地址
2.历史DNS解析
这种历史记录查询,有可能能够找到它没有使用cdn之前的真实ip地址。
https://x.threatbook.com/v5/domain/wulaoban.top
https://dnsdb.io/zh-cn/ ###DNS查询
微步在线X情报社区-威胁情报查询_威胁分析平台_开放社区 ###微步在线
3.子域名
使用cdn需要花费额外的成本,不可能给所有网站全部配置cdn,总有子域名是直接指向源站的,这个源站ip和哪些使用cdn的网站,大概率是同一个网段,大公司买服务器都是一批一批的买,配对的公网ip一般都是一段一段的买,可能是一个C段,或者一个B段等等。
三、收集旁站和C段IP
旁站:一般是指的是同IP,也就是同服务器下的不同站点,比如我们前面使用IIS部署了多个网站在同一个ip下
什么是C段:比如在:127.127.127.4这个IP上面有一个网站 127.4这个服务器上面有网站我们可以想想.他是一个非常大的站几乎没什么漏洞!但是在他同C段 127.127.127.1~127.127.127.255 这 1~255上面也有服务器而且也有网站并且存在漏洞,那么我们就可以来渗透1-255任何一个站 之后提权来嗅探得到127.4这台服务器的密码,甚至3389连接的密码后台登录的密码 如果运气好会得到很多的密码...
3.1常用端口
ftp | 21 | |
ssh | 22 | |
telnet | 23 | 远程主机管理 |
smtp | 25 | 发邮件 |
pop3 | 110 | 收邮件 |
dns | 53 | |
smb | 445 | 文件共享 |
https | 443 | |
apache | 80 443 | |
nginx | 80 443 | |
tomcat | 8080 | |
weblogic | 7001 | |
mysql | 3306 | |
oracle | 1521 | |
postgresql | 5432 | |
redis | 6379 | |
mongdb | 27017 | |
vnc | 5900 | 远程控制工具 |
IIS | 80 | |
jboss | 8080 | |
rdp | 3389 |
四、收集端口和服务
4.1Namp扫描
Nmap (网络映射器)是Gordon Lyon最初编写的一种安全扫描器,用于发现计算机网络上的主机和服务,从而创建网络的"映射"。为了实现其目标,Nmap将特定数据包发送到目标主机,然后分析响应.NMAP强大的网络工具,用于枚举和测试网络,功能灵活强大,支持多种目标,大量计算机的同时扫描。并且开源,相关帮助文档十分详细,由于其具有强大的扫描机探测功能,已被成千上万安全专家使用Nmap参数众多,难以--记忆。
NMAP的功能包括:
主机发现-识别网络上的主机。例如,列出响应TCP和/或ICMP请求或打开特定端口的主机。
端口扫描-枚举目标主机上的开放端口。
版本检测-询问远程设备上的网络服务以确定应用程序名称和版本号。
OS检测-确定网络设备的操作系统和硬件特性。
可与脚本进行脚本交互-使用Nmap脚本引擎(NSE)和Lua编程语言:
漏洞检测
主机发现
主机发现的原理与Ping命令类似,但是手段不限于pi9g,,发送探测包到目标主机,如果收到回复,那么说明目标主机是开启的。Nmap支持十多种不同的主机探测方式,比如发送ICMP 的 ECHO/TIMESTAMP/NETMASK报文、发送TCP的SYN/ACK包、发送SCTP的INIT/COOKIE-ECHO包,用户可以在不同的条件下灵活选用不同的方式来探测目标机。有些时候ping是无法检测出对方主机是否存活的,因为对方主机可以通过防火墙禁用ping,那么你就ping不同它。比如windows的防火墙,一旦打开就不能ping通了。能ping通表示肯定在线,ping不通就说不准了。telnet也可以判断某个主机的端口是否开放了,比如te1net 192.168.2111 22、teinet192.168.2.111 445。telnet是一种应用层协议,建立在tcpp协议之上。icmp协议是网络层协议。SCTP是传输层协议,兼顾了udp和tcp的特点。
可以去官网下载,或者直接通过kali使用
-sL:List scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。
-sn:Ping scan 只进行主机发现,不进行端口扫描。 用的多。不仅仅发送ping探测包还会自动发送其他类型的数据包进行探测
-Pn:将所有指定的主机视作开启的,跳过主机发现的过程。直接探测端口,通过端口探测结果判断主机是否存活
-PS/PA/PU/PY[port1ist]:使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。
# nmap -PS 192,168.2.0/24 #不指定端口的话会自动扫描常用端口(1000个),速度会慢一些。
-PE/PP/PM:使用ICMP echo,timestamp,and netmask 请求包发现主机。
-Po[protoco1list]:使用IP协议包探测对方主机是否开启。
-n/-R:-n表示不进行DNS解析;
-R表示总是进行DNS解析。
--dns-servers<serv1[,serv2],...>:指定DNS服务器
--system-dns:指定使用系统的DNS服务器
--traceroute:追踪每个路由节点
端口扫描
端口扫描是Nmap最基本最核心的功能,用于确定目标主机的TCP/UDP端口的开放情况。默认情况下,Nmap会扫描1000个最有可能开放TCP端口。Nmap通过探测将端口划分为6个状态:
open:端口是开放的。
closed:端口是关闭的。
filtered:端口被防火墙或IDS/IPS屏蔽,无法确定其状态。
unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。
open|filtered:端口是开放的或被屏蔽。
closed|filtered :端口是关闭的或被屏蔽:
C段端口扫描
nmap -p 80,443,8000,8080 -Pn 152.136.221.120/200
-Pn:指定ip地址段
版本侦测
-sV:指定让Nmap进行版本侦测
nmap -sV ip
OS侦测
-o:指定Nmap进行os侦测。
Nmap使用TCP/P协议栈指纹来识别不同的操作系统和设备。在RFC规范中,有些地方对TCP/P的实现并没有强制规定,由此不同的
TCP/IP方案中可能都有自己的特定方式。Nmap主要是根据这些细节上的差异来判断操作系统的类型的。
漏洞探测
nmap漏洞库其实很小,没有多少能扫出来的洞,但是它也提供了漏洞扫描功能,我们一
般用专业的洞扫描工具来扫描。
nmap 目标(ip地址)--script=auth,vun #常见的一些漏洞扫描
五、收集网站指纹信息
Web指纹定义
:Web指纹是一种对目标网站的识别技术,通过识别网站所使用的服务器、运行的脚本、安装的CMS等信息对目标进行精准的分类和定位。Web指纹识别可以帮助安全研究人员在安全测试中快速了解目标网站的基本信息,有助于搜索其相关漏洞。
探测原理:通过向所探测的网站发送各种请求,根据网站的响应内容来判断网站的指纹信息
5.1在线网站
潮汐
TideFinger 潮汐指纹 TideFinger 潮汐指纹
5.2工具类
御剑、wappalyzer((浏览器插件)、御剑WEB指纹识别
安装火狐浏览器中的wappalyzer插件,打开后会自动识别网站的指纹信息
漏洞分类:
按照危害严重程度来分类:高危、中危、低危、信息,按照类型分类:硬件漏洞、操作系统漏洞、软件漏洞、框架漏洞、代码漏洞硬件:路由器、交换机等
软件漏洞:mysql、nginx、apache、lls、redis、ftp工具、ssh等等框架漏洞:
前端框架:bootstrap、jquery、vue、react等
java框架:struts2(简称s2)、spring、spring cloud等
php框架:thinkphp(简称tp)、1arave1、yii等等
python框架:django、flask、tornado等
go框架:beego、Echo、Gin等等
代码漏洞:whb网页代码,app代码、开源系统漏洞:dedeCMs、wordpress、 discuz等等。
其实所有的漏洞都是代码漏洞。框架漏洞和代码漏洞是我们统称web漏洞。
六、灯塔ARL资产信息收集
功能
1.域名资产发现和整理
2.IP/IP 段资产整理
3.端口扫描和服务识别
4.WEB 站点指纹识别
5.资产分组管理和搜索
6.任务策略配置
7.计划任务和周期任务
8.Github 关键字监控
9.域名/P 资产监控
10.站点变化监控
11.文件泄漏等风险检测
12.nuclei Poc 调用
安装
在centos7或者kali中拉去docker镜像安装