0x00 域名介绍
域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。
例如:学院域名:51cto.com 对于edu.51cto.com 以及www.51cto.com是该域名对应的子域名,而edu和www都是对应的主机头。浏览网站过程:(从DNS服务器获得指定域名对应的IP地址),也称之为DNS解析
DNS解析过程涉及到递归查询和迭代查询
递归查询---由主机和local dns服务器完成的交互查询
迭代查询---由local dns服务器和.域的dns服务器-->.COM域的dns服务器-->sina.com域的dns服务器
0x01 whois 介绍
whois是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)
不同域名后缀的whois信息需要到不同的whois数据库查询。如.com的whois数据库和.edu的就不同。每个域名或IP的WHOIS信息由对应的管理机构保存,例如,以.com结尾的域名的WHOIS信息由.com域名运营商VeriSign管理,中国国家顶级域名.cn域名由CNNIC(中国互联网络信息中心)管理
WHOIS协议。其基本内容是,先向服务器的TCP端口43建立一个连接,发送查询关键字并加上回车换行,然后接收服务器的查询结果。
0x02 whois 查询
Whois查询的重要性:通过Whois查询可以获得域名注册者邮箱地址等信息。一般情况下对于中小型网站域名注册者就是网站管理员。利用搜索引擎对Whois查询到的信息进行搜索,获取更多域名注册者的个人信息。
Whois查询方法:
1、Web接口查询:
https://whois.aliyun.com/、 https://www.whois365.com/cn/ http://whois.chinaz.com/ 、https://whois.aizhan.com/
2、通过Whois命令行查询。 在Kali linux下自带了Whois查询工具,通过命令 whois 域名 进行查询。
0x03 备案查询
ICP备案介绍:Internet Content Provider网络内容提供商。 《互联网信息服务管理办法》指出互联网信息服务分为经营性和非经营性两类。国家对经营性互联网信息服务实行许可制度;对非经营性互联网信息服务实行备案制度。未取得许可或者未履行备案手续的,不得从事互联网信息服务。在中华人民共和国境内提供非经营性互联网信息服务,应当依法履行备案手续。未经国家机关单位许可备案,不得在中华人民共和国境内从事非经营性互联网信息服务。 备案好处:为了防止在网上从事非法的网站经营活动,打击不良互联网信息的传播,如果网站不备案的话,很有可能被查处以后关停。
ICP备案查询方法:
Web接口查询: ICP备案查询 - 站长工具 ICP备案查询_备案号查询_网站备案查询 - 天眼查
0x05 子域名介绍
顶级域名:是".com"、".net"、".org"、".cn"等等。
子域名(Subdomain Name),凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。 我国在国际互联网络信息中心正式注册并运行的顶级域名是.cn,这也是我国的一级域名。在顶级域名之下,我国的二级域名又分为类别域名和行政区域名两类。类别域名共6个, 包括用于科研机构的.ac;用于工商金融企业的.com;用于教育机构的.edu;用于政府部门的.gov;用于互联网络信息中心和运行中心的.net;用于非盈利组织的.org。而行政区域名有34个,分别对应于我国各省、自治区和直辖市。
例如:www.snnu.edu.cn
0x06 子域名的重要性
子域名是某个主域的二级域名或者多级域名,在防御措施严密情况下无法直接拿下主域,那么就可以采用迂回战术拿下子域名,然后无限靠近主域。
例如:
www.xxxxx.com 主域不存在漏洞,并且防护措施严密。
而二级域名 edu.xxxxx.com存在漏洞,并且防护措施松散。
主域上了CDN,可能子域名没上,可能找到真实IP
0x07 子域名挖掘方法
1、子域名挖掘工具 如:Maltego CE、wydomain、subDomainsBrute、dnsmaper、Layer子域名挖掘机。 2、搜索引擎挖掘 如: 在Google中输入 site:sina.com 3、第三方网站查询:http://tool.chinaz.com/subdomain、https://dnsdumpster.com/ 4、证书透明度公开日志枚举:https://crt.sh/ 、http://censys.io/
5、其他途径:https://phpinfo.me/domain 、http://dns.aizhan.com
6、通过oenforall,或者网络空间引擎,fofa,zoomeye,奇安信鹰图平台等
0x08 刷洞思路
针对某个具体SRC进行挖洞,如果直接针对主域进行渗透测试很可能是很难达到挖掘的效果。此时可以搜集对应的子域名,然后批量探测某些具体漏洞,从而更加快速容易的发现一些漏洞。之后将漏洞提交对应SRC获取奖金。 针对补天刷洞思路:对应没有指定厂商的刷洞,可以根据某些具体漏洞,通过URL采集获取目标,编写探测脚本批量探测,快速高效的刷洞。 注意:无论如何,都要保持警惕,不要触及不该触及的内容,不要影响公司业务,只做漏洞探测内容,确定存在漏洞即可。适可而止。 挖洞高峰期:在互联网上曝出某些新漏洞的时候,会有大量的该漏洞提交到漏洞平台获取奖金。
0x09 CMS指纹识别
CMS(内容管理系统),又称整站系统或文章系统。用于网站内容管理。用户只需要下载对应的CMS软件包,部署搭建,就可以直接利用CMS,简单方便。但是各种CMS都具有其独特的结构命名规则和特定的文件内容,因此可以利用这些内容来获取CMS站点的具体软件CMS与版本。 常见CMS:dedecms(织梦)、Discuz、Phpcms等。
CMS识别工具: 1、在线工具 http://whatweb.bugscaner.com/look/ 、 http://www.yunsee.cn/finger.html
潮汐指纹识别:TideFinger 潮汐指纹 TideFinger 潮汐指纹
2、本地工具 whatweb、 御剑web指纹识别程序(https://pan.baidu.com/share/link?shareid=437376&uk=3526832374)、 大禹CMS识别程序 https://github.com/Ms0x0/Dayu
现在有一些指纹识别的插件也还蛮好用的
0x10 CMS漏洞查询
对于查询到的CMS可以利用 https://bugs.shuimugan.com 网站查询指定CMS的漏洞。
通过cnvd漏洞库,漏洞文库,网上复现文章,进行漏洞查找与复现
0x11 敏感目录收集
针对目标Web目录结构和敏感隐藏文件探测是非常重要的。在探测过程中很有可能会探测出后台页面、上传页面、数据库文件、甚至是网站源代码文件压缩包等。
探测工具: 1、御剑后台扫描工具 2、wwwscan命令行工具 3、dirb命令行工具 4、dirbuster扫描工具
5、dirsearch 扫描工具
6、7kbscan-webpathbrtue
0x12 端口介绍
如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。 例如计算机中的80端口、21端口、23端口等。 在计算机中每一个端口代表一个服务。在Windows命令行中使用 netstat -anbo 显示开放端口。
0x13 端口信息收集
对于收集目标机器端口状态可以使用工具来进行测试。工具原理:使用TCP或者UDP等协议向目标端口发送指定标志位等的数据包,等待目标返回数据包,以此来判断端口状态。 1、使用nmap 探测。 nmap -A -v -T4 目标 2、使用masscan探测。 3、使用在线网站探测 http://tool.chinaz.com/port/。 4、goby扫描,railgun扫描工具,御剑高速端口扫描工具
0x14 端口攻击
针对不同的端口具有不同的攻击方法。 例如:针对远程连接服务端口 对于扫描到的端口可以在搜索引擎中查找对应的攻击方法进行测试。
端口
端口说明
攻击方法
22
SSH远程连接
爆破、SSH隧道及内网代理转发、文件传输
23
Telnet远程连接
爆破、嗅探、弱口令
3389
rdp远程桌面
Shift后门、爆破
5900
VNC远程连接
弱口令、RCE
5632
PcAnywhere远程连接
嗅探、代码执行
0x15 端口防御
对于端口攻击来说只要端口开放并且可以连通,那么就可以利用对应的方式进行攻击测试。 防御措施: 1、关闭不必要的端口; 2、对重要业务的服务端口设置防火墙; 3、加强员工信息安全意识,经常性更换用户密码; 4、经常更新软件,打补丁(patch)。
0x16 敏感信息收集的重要性
针对某些安全做的很好的目标,直接通过技术层面是无法完成渗透测试。在这种情况下,可以利用搜索引擎搜索目标暴露在互联网上的关联信息。例如:数据库文件、SQL注入、服务器配置信息、甚至是通过Git找到站点泄露源代码、以及Redis等未授权访问、robots.txt等敏感信息。从而达到渗透测试的目的。 知己知彼,百战不殆。某些情况下,收集到的信息会对后期进行测试起到帮助重要。如果通过收集敏感信息直接获得了目标系统的数据库访问权限,那么渗透测试任务也就结束一大半了。因此在进行技术层面情况下的测试之前,应该先进行更多的信息收集。
0x17 Google hacking 语法
google hack是指使用Google等搜索引擎对某些特定的网络主机漏洞(通常是服务器上的脚本漏洞)进行搜索,以达到快速找到漏洞主机或特定主机的漏洞的目的。
Google hacking数据库:https://www.exploit-db.com/google-hacking-database/ 例如:查询Access数据:filetype:mdb "standard jet" (password | username | user | pass)
关键字
含义
site
指定搜索域名 例如:site:baidu.com
inurl
指定URL中是否存在某些关键字 例如:inurl:.php?id=
intext
指定网页中是否存在某些关键字 例如:intext:网站管理
filetype
指定搜索文件类型 例如:filetype:txt
intitle
指定网页标题是否存在某些关键字 例如:intitle:后台管理
link
指定网页链接 例如:link:baidu.com 指定与百度做了外链的站点
info
指定搜索网页信息 info:baidu.com
0x18 HTTP响应收集server
通过HTTP或HTTPS与目标站点进行通信中,目标响应的报文中Server头和X-Powered-By头会暴露目标服务器和使用的编程语言信息,通过这些信息可以有针对的利用漏洞尝试。
获取HTTP响应的方法: 1、利用工具 如:浏览器审计工具、Burpsuite等代理截断工具。 2、编写Python脚本 requests库 参考链接:http://www.python-requests.org/en/master/
import requests r = requests.get('目标') print(r.headers)
0x19 github 信息泄露
Github是一个分布式的版本控制系统,目前拥有140多万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。众所周知,当今是大数据时代,大规模数据泄露事情一直在发生,从未停止过,但有些人不知道的是很多时候一些敏感信息的泄露其实是我们自己无意中造成的,然而一个小疏忽,往往却造成一系列连锁反应。Github上敏感信息的泄露,就是一个典型的例子,Github虽然方便开发者,但其中也埋藏着一些安全隐患。 Github之邮件配置信息泄露:site:Github.com smtp、site:Github.com smtp @qq.com Github之数据库信息泄露:site:Github.com sa password、site:Github.com root password、 site:Github.com User ID=’sa’;Password Github之svn信息泄露:site:Github.com svn、site:Github.com svn username
Github之综合信息泄露:site:Github.com password、site:Github.com ftp ftppassword、 site:Github.com 密码、site:Github.com 内部
0x20 .git 信息泄露
Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 https://git-scm.com/ 通过git init创建一个仓库。
Git信息泄露原理
通过泄露的.git文件夹下的文件,还原重建工程源代码。
解析.git/index文件,找到工程中所有的: ( 文件名,文件sha1 )
去.git/objects/ 文件夹下下载对应的文件
zlib解压文件,按原始的目录结构写入源代码 渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注射等安全漏洞。
Git实验环境搭建 将git init 目录下的内容部署到http服务器上,保留.git目录。git add 文件名、git commit -m “版本信息”
Git信息泄露利用
下载 git clone https://github.com/lijiejie/GitHack.git
使用 GitHack.py http://网址/.git/
0x21 CDN介绍
CDN的全称是Content Delivery Network,即内容分发网络。
0x22 判断CDN存在
通过Ping判断是否存在CDN。
通过设置代理或者利用在线ping网站来使用不同地区的Ping服务器来测试目标。 http://ping.chinaz.com/
0x23 绕过CDN方法
如果目标没有使用CDN,可以直接利用ping获得IP地址。或者利用在线网站:http://www.ip138.com/
如果目标使用CDN,需要绕过CDN来获取真实IP地址。 1、内部邮箱源 收集到内部邮箱服务器IP地址 2、网站phpinfo文件 phpinfo.php 3、分站IP地址,查询子域名 CDN很贵,很有可能分站就不再使用CDN。 4、国外访问 https://asm.ca.com/en/ping.php 5、查询域名解析记录 https://viewdns.info/ ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名
6、censys.io 等网络空间引擎查找关键字
7、APP客户端/SSRF漏洞/DOS CDN可能会成回源模式
0x24 验证真实IP
利用IP地址对Web站点进行访问,如果正常标题是真实IP地址。否则不为真。