1.1 域名是什么
域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的 Internet 上某一台 计算机 或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
由于 IP地址 具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和 IP地址 相互 映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的 IP地址 数串。
1.2 注册域名
国内域名注册服务商
万网(阿里云旗下)
新网
...
国外域名注册服务商
NameSilo
GoDaddy
...
1.3 二级域名、多级域名
子域名(或子域,英语:Subdomain)是在 域名系统 等级中,属于更高一层域的域。比如,mail.example.com 和 calendar.example.com 是 example.com 的两个子域,而 example.com 则是 顶级域 .com 的子域。
凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。
1.4 域名的分类
国际域名
- .com - 商业公司
- .net - 网络服务
- .org - 组织机构
- .gov - 政府部门
- .edu - 教育机构
- .mil - 军事领域
- .int - 国际组织
国别域名
- .cn - 中国
- .uk - 英国
- .us - 美国
新顶级域名
- .biz
- .info
- .name
- .pro
- .aero
- .coop
- .museum
- ...
1.5 域名联系人信息
Whois
用于查询域名所有者、到期日、所属注册商等详细 WHOIS 信息。
查询网站
Whois.com - Domain Names & Identity for Everyone
域名WHOIS查询 - WhoisSoft
域名Whois查询 - 站长之家
在线域名Whois查询,网站Whois反查-在线站长工具 bugscaner
whois查询-中国万网
域名信息查询 - 腾讯云
国家域名whois - CNNIC(只能查询 .cn 域名)
终端工具
whois | Kali Linux Tools
域名反查
可以使用邮箱、注册人、电话,ICP备案信息等进行反向查询。
域名Whois反查 - 站长之家
ICP备案
ICP备案,是为了防止在网上从事非法的网站经营活动,打击不良互联网信息的传播,国家对互联网信息服务实行的备案制度。
《互联网信息服务管理办法》指出互联网信息服务分为经营性和非经营性两类。国家对经营性互联网信息服务实行许可制度;对非经营性互联网信息服务实行备案制度。未取得许可或者未履行备案手续的,不得从事互联网信息服务。
《非经营性互联网信息服务备案管理办法》于2005年3月20日起施行。办法指出在中华人民共和国境内提供非经营性互联网信息服务,应当依法履行备案手续。未经国家机关单位许可备案,不得在中华人民共和国境内从事非经营性互联网信息服务。
备案信息查询
ICP/IP地址/域名信息备案管理系统
ICP备案查询 - 站长工具
1.6 企业信息查询
企业信用信息公式系统
天眼查-商业查询平台_企业信息查询_公司查询_工商查询_企业信用信息系统
企查查-工商信息查询-公司企业注册信息查询-全国企业信用信息公示系统
爱企查首页 - 专业企业查询平台 - 查企业 - 查老板 - 查风险 - 工商信息查询系统
1.7 子域名信息
子域名通常用于其他业务系统,意味着更多的测试点。
在线子域名查询
在线子域名查询 - phpinfo.me
子域名查询|ip反查域名 - DNSGrep
子域名字典枚举工具
subDomainBrute
Layer子域名挖掘机
Sublist3r
theHarvester
Teemo
1.8 DNS
域名系统(英文:Domain Name System,缩写:DNS)是 互联网 的一项服务。它作为将 域名 和 IP地址 相互 映射 的一个 分布式数据库 ,能够使人更方便地访问互联网。DNS使用 UDP 端口 53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
本地 hosts 与 DNS 有什么关系
Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从 Hosts 文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交 DNS 域名解析服务器进行 IP 地址的解析。
需要注意的是,Hosts 文件配置的映射是静态的,如果网络上的计算机更改了请及时更新 IP 地址,否则将不能访问。
DNS 解析类型
类型
作用
A
将域名指向一个 IPv4 地址
CNAME
指向另一个域名
MX
用于邮件服务器,相关参数由邮件注册商提供
TXT
附加文本信息,常用于域名验证
NS
域名服务器记录,可将指定域名交由其他 DNS 服务器解析管理
AAAA
将域名指向一个 IPv6 地址
SRV
用 DNS 做服务发现,可以将端口映射到指定的子域名上
DNS 在线解析
DNS 在线解析
Ping.cn-DNS在线查询工具
域名解析查询(A/Txt/Cname/Mx/Srv/AAAA记录)
DNS 解析工具
nslookup
证书反查
crt.sh | Certificate Search
域名信息综合收集
网站信息综合查询
Netcraft
OSINT 收集工具
Maltego
2.1 Ping
Ping(Packet Internet Groper,因特网包探索器),用于测试网络是否正常,也可以 ping 域名获取对应的服务器 IP。(如果服务器使用了 CDN 则返回的是 CDN 加速节点的 IP)
2.2 nslookup
nslookup(name server lookup,域名服务器查找)
2.3 ipwhois
Whois - CNNIC
2.4 什么是 CDN
CDN的全称是 Content Delivery Network,即 内容分发网络。CDN 是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN 的关键技术主要有内容存储和分发技术。
来源链接:什么是阿里云CDN
2.5 常见的 CDN 服务提供商
国外 CDN 服务提供商
CloudFlare
CloudFront
StackPath
...
国内 CDN 服务提供商
帝联
蓝讯
网宿
七牛云
腾讯
百度
阿里云
...
2.6 获取 CDN 之后的真实 IP
通过 DNS 解析历史
Netcraft
DNS History
通过子域名
处在主域名和子域名上的业务都在同一台服务器上而子域名没有做 CDN 加速时可以用此方法。
国外主机解析
针对只做了国内加速或在国外没有加速节点的服务器,当国外主机访问时则直接解析到主机。
国外 DNS 解析服务
Website uptime monitoring service, check is site down - Host-tracker
WebPageTest - Website Performance and Optimization Test
Website Speed Test | Pingdom Tools
其他方法
- 网络空间搜索引擎
-
- Fofa
- Censys
- Shodan
- ...
- 邮件
- APP 抓包
- 微信服务号抓包
- ...
Windows
Linux
测试目标机器端口开放状态
常用端口列表
common-ports.pdf
攻击方向
端口
说明
攻击方向
21/22/69
FTP/SFTP 文件传输协议
允许匿名上传、下载、爆破和嗅探
2049
NSF(Network File System)
配置不当
139
Samba 文件共享协议
爆破、未授权访问、RCE
389
LDAP 目录访问协议
注入、允许匿名访问、弱口令
22
SSH
爆破、SSH 隧道及内网代理转发、文件传输
23
Telnet
爆破、嗅探、弱口令
3389
RDP 远程桌面
爆破
5900
VNC
爆破、弱口令
5632
PcAnywhere 远程控制服务
密码抓取、代码执行
80/443/8080
常见的 Web 服务端口
Web 攻击、爆破、漏洞利用
7001/7002
Weblogic 控制台
Java 反序列化、弱口令
8080/8089
Jboss/resin/jetty/Jenkins
反序列化、弱口令
9090
Websphere 控制台
Java 反序列化、弱口令
4848
Glassfish 控制台
弱口令
1352
Lotus domino 邮件服务
弱口令、信息泄露、爆破
10000
Webmin-web 控制面板
弱口令
3306
MySQL 数据库
注入、提权、爆破
1433
MSSQL数据库
注入、提权、SA 弱口令
1521
Oracle 数据库
注入、反弹 Shell、TNS 爆破
5432
PostgreSQL数据库
注入、弱口令、爆破
27017/27018
MongoDB 数据库
未授权访问、爆破
6379
Redis 数据库
未授权访问、弱口令
5000
Sysbase/DB2 数据库
注入、爆破
53
DNS 域名解析服务
允许区域传送、DNS 劫持、缓存投毒、DNS 欺骗
67/68
DHCP 动态主机配置协议
劫持、欺骗
161
SNMP 简单网络管理协议
爆破、搜集目标内网信息
2181
Zookeeper
未授权访问
8069
Zabbix
RCE、SQL 注入
9200/9300
Elasticsearch
RCE
11211
Memcached
未授权访问
512/513/514
Linux Rexec
rlogin 登录、爆破
873
Rsync
匿名访问、文件上传
3690
SVN
SVN 泄露、未授权访问
50000
SAP Management Console
RCE
Nmap
- 主机扫描 (Host Discovery);
- 端口扫描 (Port Scanning);
- 操作系统、软件版本探测 (Operating System Detection, Version Detection)。
使用方法
在线扫描服务
在线端口检测,端口扫描,端口开放检查-online tool-postjson
masscan
与 nmap 相似,同时还可以与 nmap 无缝衔接。
masscan | Kali Linux Tools
nbtscan
用于探测内网主机。
nbtscan | Kali Linux Tools
通过关键特征,识别出目标的 CMS 系统、服务器、开发语言、操作系统、CDN、WAF 的类别和版本等信息。
识别对象
- CMS 信息:如 Discuz、织梦CMS、帝国CMS、PHPCMS、ECshop 等;
- 前端技术:如 jQuery、Bootstrap、Vue、ACE 等;
- 开发语言:如 PHP、Java、Ruby、Python、C# 等;
- Web 服务器:如 Apache、Nginx、IIS、lighttpd 等;
- 应用服务器:如 Tomcat、Jboss、Weblogic、Websphere 等;
- CDN 信息:如 Cloudflare、帝联、蓝讯、网宿、七牛云、阿里云等;
- WAF 信息:D盾、云锁、宝塔、安全狗、360 等。
CMS 指纹识别
CMS(Content Management System,内容管理系统)
各类开源 CMS
- 企业建站系统:Metinfo(米拓)、蝉知、SiteServer CMS 等;
- B2C 商城系统:商派 Shopex、ECshop、HiShop、XpShop 等;
- 门户建站系统:DedeCMS(织梦)、帝国CMS、PHPCMS、动易、CmsTop 等;
- 博客系统:WordPress、Z-Blog 等;
- 论坛社区:Discuz、PHPwind、WeCenter 等;
- 问答系统:Tipask、Whatsns 等;
- 知识百科系统:HDwiki;
- B2B 门户系统:Destoon、B2Bbuilder、友邻B2B 等
- 人才招聘网站系统:骑士CMS、PHP云人才管理系统等;
- 房产网站系统:FangCMS等;
- 在线教育建站系统:Kesion、EduSoho等;
- 电影网站系统:苹果CMS、ctcms、movcms等;
- 小说文学建站系统:杰奇CMS等;
版权信息
像是在页面底部,或者是 Title 处的版权声明信息。
特定文件 MD5 值
默认的 CSS、JS、图片等文件的 MD5 值,下载文件后计算即可得出。
网页源代码
浏览器用 F12 快捷键启动开发者工具,再用 Ctrl+F 查找功能搜索关键词。
再以 WordPress 为例,用户上传的图片和文件都会存储在目录下
通过特定文件分析
搜索引擎使用爬虫(Spider,又称蜘蛛)爬取网站页面制作成索引,就可以让用户在搜索引擎中通过关键字搜索到。而网站也有一些不希望被搜索引擎搜索到的页面或文件(如管理后台),这时就定义了一个 robots.txt 文件,该文件是网站和搜索引擎之间的协商,由网站管理员定义,告知爬虫哪些文件或目录允许或不允许收录。
CMSprint
该项目收集了主流 CMS 系统的特定文件 MD5 值,可以结合这份数据开发一套识别 CMS 系统的脚本。
Lucifer1993/cmsprint - Github
whatweb
whatweb 是一款 CMS 识别工具,集成在 Kali Linux 的工具集中。
whatweb | Kali Linux Tools
CMSeek
Kali 环境下可以使用 apt 直接安装。
Tuhinshubhra/CMSeeK - Github
Wappalyzer
一款识别 Web 网站技术栈的浏览器插件,支持 Chrome/Edge,Firefox 等浏览器。
Find out what websites are built with - Wappalyzer
whatruns
与 Wappalyzer 相似,但识别的正确率要低一些。
WhatRuns — Discover What Runs a Website
bugscaner
在线 CMS 识别服务。
在线指纹识别,在线cms识别小插件--在线工具
御剑指纹扫描器
Windows 平台下的老牌工具(需要安装 .NET Framework 3.5)。
Test404 轻量级 CMS 指纹识别
较为小众的轻量化 CMS 指纹识别工具,可以导入文件批量探测。
CDN 指纹识别
Ping
注意 PING wordpress.org(198.143.164.252) 这部分,如果存在 CDN 则可能显示的是 CDN 节点的域名。
nslookup
多尝试几次 nslookup,可能每次得到的 IP 地址都不一样,则可以判断是否存在 CDN。
多地点 ping
多个地点Ping服务器,网站测速 - 站长工具
lbd
lbd(load balance detector,负载均衡探测器)
注意是 "lbd" 而不是 "ldb"。
cdn.chinaz.com
各地CDN节点测速结果 - CDN云观测 - 站长工具
www.cdnplanet.com
CDN Finder - CDN Planet
w8fuckcdn
通过扫描全网绕过CDN获取网站IP地址
boy-hack/w8fuckcdn - Github
xcdn
尝试找出cdn背后的真实ip
3xp10it/xcdn - Github
WAF
WAF(Web Application Firewall,Web 应用防火墙),用于网站安全的防护,可以过滤 HTTP/HTTPS 请求,拦截恶意攻击。
ModSecurity
一款开源的跨平台 Web 应用程序防火墙(WAF)引擎,支持 Apache,IIS 和 Nginx。
- SQL Injection (SQLi):阻止SQL注入
- Cross Site Scripting (XSS):阻止跨站脚本攻击
- Local File Inclusion (LFI):阻止利用本地文件包含漏洞进行攻击
- Remote File Inclusione(RFI):阻止利用远程文件包含漏洞进行攻击
- Remote Code Execution (RCE):阻止利用远程命令执行漏洞进行攻击
- PHP Code Injectiod:阻止PHP代码注入
- HTTP Protocol Violations:阻止违反HTTP协议的恶意访问
- HTTPoxy:阻止利用远程代理感染漏洞进行攻击
- Shellshock:阻止利用Shellshock漏洞进行攻击
- Session Fixation:阻止利用Session会话ID不变的漏洞进行攻击
- Scanner Detection:阻止黑客扫描网站
- Metadata/Error Leakages:阻止源代码/错误信息泄露
- Project Honey Pot Blacklist:蜜罐项目黑名单
- GeoIP Country Blocking:根据判断IP地址归属地来进行IP阻断
SpiderLabs/ModSecurity - Github
WAF 类型
- 硬件型 WAF(厂商安装)
- 云 WAF(配合云服务器使用,提供商有 阿里云、腾讯云、华为云...)
- 软件型 WAF(部署在 Apache、Nginx 等 HTTP 服务器上)
WAF 厂商
- 宝塔
- 知道创宇
- 安全狗
- 腾讯云
- 阿里云
WAF 指纹识别
0xInfection/Awesome-WAF -Github
Everything about web application firewalls (WAFs). 🔥
Foreword: This was originally my own collection on WAFs. I am open-sourcing it in the hope that it will be useful for pentesters and researchers out there. You might want to keep this repo on a watch, since it will be updated regularly. "The community just learns from each other." #SharingisCaring
"关于web应用程序防火墙(WAF)的一切。"
一个关于 WAF 特征的仓库。
wafw00f
The Web Application Firewall Fingerprinting Tool.
— From Enable Security
一款非常热门的 Web应用程序防火墙指纹工具,Kali Linux 内置。
wafw00f | Kali Linux Tools
enablesecurity/wafw00f - Github
nmap 识别 WAF
sqlmap 识别 WAF
默认就会执行识别 WAF 操作,识别成功则会提示。
Google hacking
运算符
- 完全匹配
-
- 用双引号括住,例如 "Burp Suite"
- 任意关键词
-
- 在两个关键词中间添加 "OR",如 "管理 OR 登录"
- 筛选结果
-
- 用 "-xxx",除去包含 "xxx" 的搜索结果
- 限定数字范围
-
- 在数字之间添加 "..",如 1..100
高级语法
- 搜索指定网站的内容
-
- site:example.com
- 搜索网页内容
-
- intext:Powered by Discuz
- allintext
- 搜索网页标题
-
- intitle:后台登录
- allintitle
- 搜索 URL
-
- inurl:index.php?id=1
- allinurl
- 指定文件类型
-
- filetype:pdf
Google Hacking Database
Google Hacking 的语法收集
Google Hacking Database (GHDB) - Google Dorks, OSINT, Recon
BullsEye0/google_dork_list - Github
OSINT
OSINT Framework
Shodan
Shodan 是最早的互联网设备搜索引擎,与 Google, Bing 等搜索引擎不同,Shodan 收录的范围更大,包括服务器的系统版本、运行的服务,端口开放信息等。
过滤器
详细参考 Filter Reference - Shodan
- 指定国家
-
- country:"CN"
- 指定城市
-
- city:"Changsha"
延伸阅读 一些有趣的Shodan搜索
Censys
Zoomeye
Fofa
鹰图
集成框架
Kunyu
Kunyu (坤舆),名字取自 <坤舆万国全图> ,测绘实际上是一个地理信息相关的专业学科,针对海里的、陆地的、天上的地理信息进行盘点。同样应用于网络空间,发现未知、脆弱的资产也是如此,更像是一张网络空间地图,用来全面描述和展示网络空间资产、网络空间各要素及要素之间关系,以及网络空间和现实空间的映射关系。所以我认为“坤舆”还是比较贴合这个概念的。
Kunyu(坤舆),旨在让企业资产收集更高效,使更多安全相关从业者了解、使用网络空间测绘技术。
knownsec/Kunyu - Github
DiscoverTarget
尽可能花更少的时间,使用All in one工具收集更多的信息-URL采集。 集360、百度、谷歌、Shodan、Zoomeye、Censys、Fofa于一体一键运行获取目标URL、IP等信息。
coco413/DiscoverTarget - Github
Saucerframe
saucerframe是一个基于python3的开源批量POC检测框架,默认使用协程异步请求,支持多线程并发,支持多种指定目标方式,可用于批量POC检测,也可根据需要扩展功能。
saucer-man/saucerframe - Github
为什么要进行目录扫描
网站管理员在部署网站时可能会因为粗心而把敏感文件放在网站的根目录下,或没有更改 HTTPD 配置而导致目录泄露。
文件扫描思路
基本原理
域名后面拼接文件或目录名,访问并确认 HTTP 状态,如果为 200/403 则能证明该文件存在。
递归
针对文件夹进行递归测试,逐层返回信息。
字典
使用预先收集或制作的文件/目录列表进行自动化测试,任意一条匹配成功即可。
爆破
使用 a-zA-Z1-9 等各类字符组合,并从 1 - x 位逐个尝试。
爬虫
根据 robots.txt 的内容进行探测。
FUZZ
模糊测试,主要针对参数。
目录扫描字典
- wordlists
- Seclists
目录扫描工具
dirb
DirBuster
由 OWASP 推出,现已并入 OWASP ZAP 项目,DirBuster 则不再维护。
ZAP
OWASP 新出品的漏洞扫描综合工具。
御剑后台扫描
Burp Suite
Intruder 模块下指定 payload 和爆破模式
绕过 WAF/IDS
- Proxy
- 网络空间搜索(测绘)引擎
防御
- 设置访问权限;
- 删除敏感文件;
- 使用 WAF/IDS。
什么是版本控制系统
版本控制系统(Version Control System)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
VCS 的发展阶段
- 本地 VCS
-
- 直接存储在本机上,对于个人项目非常实用,但无法多人协作开发,如果更改了同一段代码则会冲突。
- 集中式 VCS
-
- 集中式版本控制系统 CVCS(Centralized Version Control Systems);
- 并行的版本控制系统 CVS(Concurrent Version System);
- SVN(Subversion);
- 解决了本地 VCS 无法协同开发的痛点,适合多人协作。
- 分布式 VCS
-
- 相较于集中式 VCS 更为安全,不需要担心作为 VCS 的服务器损坏。
Git
- Github
- 码云
- Coding
Git 使用方法
Git 为什么会泄露重要信息
- 将私有仓库或密钥文件错误的提交到了 Github;
- 部署项目时, .git/ 文件夹也被打包进去,并且放在网站的根目录下;
关于在 .git/ 文件夹中较为重要的文件
适用于上文提到的第二种方式。
- .git/logs/HEAD:存储了 git 的日志信息,可以找到历史 Commit;
- .git/index:暂存了 git add 操作的文件;
- .git/refs/stash:暂存了 git stash 操作的文件;
- .git/refs/heads/master:记录了 master 最后一次提交的 hash;
- git/objects/pack/.pack:压缩文件。
Gtihub 搜索技巧
适用于上文提到的第一种方式。
- 查询文件名中包含指定关键字的代码:
-
- kali in:file
- 查询路径/用户/组织名称中包含指定关键字的代码:
-
- kali in:path
- 上述两种方式组合使用:
-
- kali in:path,file
- 指定程序开发语言:
-
- shodan language:python
- 查询文件名为指定关键字,且开发语言为 php 的代码:
-
- filename:config.php language:php
- 查询标签数量大于等于 5 的仓库:
-
- kali topics:>=5
- 查询小于 1KB 的文件:
-
- kali size:<1000
- 查询 Star 总数在 10 到 50 之间:
-
- kali stars:10..50
- 查询最近一次更新时间大于某日的仓库:
-
- kali pushed:>2022-4-1
- 查询最后一次更新时间在两个时间段之内的仓库:
-
- kali pushed:2021-4-1..2022-4-1
- 查询仓库的创建时间大于等于指定日期:
-
- kali created:>=2022-4-1
- 筛选不需要的结果,如:排除开发语言为 Java 的仓库
-
- kali pushed:2021-4-1..2022-4-1 -language:java
Git 仓库利用流程和工具
寻找 .git/ 文件夹
- 目录扫描
- robots.txt
- Google hacking
-
- intitle:"Index of /.git"
下载 .git/ 到本机
- BugScanTeam/GitHack - Github
-
- 使用方法:
- lijiejie/GitHack - Github
-
- 使用方法:
- wangyihang/githacker - Github
-
- 使用方法:
- WangWen-Albert/JGitHack - Github
用 git 命令获取
集成上述功能的 Git 利用工具
- gakki429/Git_Extract - Github
-
- 使用方法: