DNS信息查询
DNS简介
DNS
DNS:(Domain Name System)域名系统,提供域名与IP地址之间的映射
协议:TCP/UDP
端口:53
域名长度:每一级域名长度的限制是63个字符,域名总长度不能超过253个字节
域名系统
每个域名都由标号序列组成,而各标号之间用点(“.”)隔开。
域名服务器
(1)根域名服务器
根域名服务器是最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的IP地址。
根域名服务器也是最重要的域名服务器,不管是哪个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器。
因特网上有13个根域名服务器,尽管我们将这13个根域名服务器中的每个都视为单个服务器,但每个“服务器”实际上是冗余服务器的集群,以提供安全性和可靠性。
需要注意的是,根域名服务器用来管辖顶级域(如.com), 通常它并不直接把待查询的域名直接转换成IP地址,而是告诉本地域名服务器下一步应当找哪个顶级域名服务器进行查询。
(2)顶级域名服务器
这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。
收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP地址)。
(3)授权域名服务器(权限域名服务器)
每台主机都必须在授权域名服务器处登记。为了更加可靠地工作,一台主机最好至少有两个授权域名服务器。
实际上,许多域名服务器都同时充当本地域名服务器和授权域名服务器。
授权域名服务器总能将其管辖的主机名转换为该主机的IP地址。
(4)本地域名服务器
本地域名服务器对域名系统非常重要。
每个因特网服务提供者(ISP), 或一所大学,甚至一所大学中的各个系,都可以拥有一个本地域名服务器。
当一台主机发出DNS查询请求时,这个查询请求报文就发送给该主机的本地域名服务器。
事实上,我们在Windows系统中配置“本地连接”时,就需要填写DNS地址,这个地址就是本地DNS (域名服务器)的地址。
DNS查询过程
1.在浏览器中输入www.mail.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
2.如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
3.如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
4.如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
5.如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询。具体又分为两种查询方式。
递归查询与迭代查询
递归查询:
所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,
向其根域名服务器发出查询请求报文(即替主机查询),而不是让主机自己进行下一步查询。
然后跟域名服务器会层层获取ip,直到得到本地域名服务器所需要的地址或者报错信息返回给本地域名服务器。
本地域名服务器再将根域名服务器返回的信息发送给本地主机。
因为此方法给根域名服务造成的负载过大,所以在实际中几乎不使用。
迭代查询:
迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。
然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。
顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。
最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机
DNS记录
A记录
A(Address)记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置域名的子域名。通俗来说A记录就是服务器的IP,域名绑定A记录就是告诉DNS,当你输入域名的时候给你引导向设置在DNS的A记录所对应的服务器。 简单的说,A记录是指定域名对应的IP地址。
NS记录
NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。注册域名时,总有默认的DNS服务器,每个注册的域名都是由一个DNS域名服务器来进行解析的,DNS服务器NS记录地址一般以以下的形式出现: ns1.domain.com、ns2.domain.com等。 简单的说,NS记录是指定由哪个DNS服务器解析你的域名。
MX记录
MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。例如,当Internet上的某用户要发一封信给 user@mydomain.com 时,该用户的邮件系统通过DNS查找mydomain.com这个域名的MX记录,如果MX记录存在, 用户计算机就将邮件发送到MX记录所指定的邮件服务器上。
CNAME记录
CNAME(Canonical Name )别名记录,允许将多个名字映射到同一台计算机。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为 “host.mydomain.com”(A记录),它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL, 这两个别名的全称就“www.mydomain.com”和“mail.mydomain.com”,实际上他们都指向 “host.mydomain.com”。
TXT记录
TXT记录,一般指某个主机名或域名的说明,如:admin IN TXT “管理员, 电话:XXXXXXXXXXX”,mail IN TXT “邮件主机,存放在xxx , 管理人:AAA”,Jim IN TXT “contact: abc@mailserver.com”,也就是您可以设置 TXT 内容以便使别人联系到您。 TXT的应用之一,SPF(Sender Policy Framework)反垃圾邮件。SPF是跟DNS相关的一项技术,它的内容写在DNS的TXT类型的记录里面。MX记录的作用是给寄信者指明某个域名的邮件服务器有哪些。SPF的作用跟MX相反,它向收信者表明,哪些邮件服务器是经过某个域名认可会发送邮件的。SPF的作用主要是反垃圾邮件,主要针对那些发信人伪造域名的垃圾邮件。例如:当邮件服务器收到自称发件人是spam@gmail.com的邮件,那么到底它是不是真的gmail.com的邮件服务器发过来的呢,我们可以查询gmail.com的SPF记录,以此防止别人伪造你来发邮件。
收集DNS信息
原因
- 确定企业网站运行规模
- 可以从DNS中收集子域名、IP等
- 控制网站解析
使用工具收集记录信息
windows中:nslookup
Linux中:dig
A记录
C:\Users\44880>nslookup
> www.mail.qq.com
┌──(root?kali)-[~]
└─# dig www.mail.qq.com
NS记录
┌──(root㉿kali)-[~]
└─# dig -t NS www.mail.qq.com
#参数说明
-t:用来指定查询的种类
MX记录
┌──(root㉿kali)-[~]
└─# dig -t MX qq.com
CNAME记录
┌──(root㉿kali)-[~]
└─# dig -t CNAME mail.qq.com
TXT记录
┌──(root㉿kali)-[~]
└─# dig -t TXT www.mail.qq.com
whois工具
查询域名的IP以及所有者等信息
┌──(root?kali)-[~]
└─# whois baidu.com
Domain Name: BAIDU.COM
Registry Domain ID: 11181110_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.markmonitor.com
Registrar URL: http://www.markmonitor.com
Updated Date: 2022-01-25T09:00:46Z
Creation Date: 1999-10-11T11:05:17Z
Registry Expiry Date: 2026-10-11T11:05:17Z
Registrar: MarkMonitor Inc.
Registrar IANA ID: 292
Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
Registrar Abuse Contact Phone: +1.2086851750
Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
Name Server: NS1.BAIDU.COM
Name Server: NS2.BAIDU.COM
Name Server: NS3.BAIDU.COM
Name Server: NS4.BAIDU.COM
Name Server: NS7.BAIDU.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
在线工具
https://www.iana.org/whois
https://www.arin.net/
https://who.is/
https://centralops.net/co/
http://www.17ce.com/
CDN
简介
CDN的全称是Content Delivery Network,即内容分发网络。
CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
说白了,CDN就是缓存服务器,存储网站的静态资源,提高网站相应速度和用户体验
获取
下面我们通知站长工具来ping
这里ping的是www.baidu.com
然后返回的测试结果中有很多个地址,这其中有些是真实的IP,有些是CDN代理提供的地址,真实的地址是直接访问这个ip就会跳转到百度主站上,而CDN代理地址因为可能会带了很多的网站,所以直接访问无法正常跳转
绕过
DDoS攻击
这是最简单粗暴的,因为CDN是需要花钱的,如果我给CDN代理充值量1万元,可以代理一百万次,那么我们通多DDoS攻击发起海量的请求,将代理费耗尽,CDN就不会再为网站提供服务了,此时就可以获取到真实的地址。此方法肯定是不推荐大家使用的,不法分子才会考虑。
海外ping
有些网站在国内做了CDN,而在国外没有做CDN,此时通过海外ping测试的结果就是真实的ip
当然有的做了海外CDN,有的没有做这不是绝对的,只是有概率而已。
如图这种国外测试返回的ip地址并不相同那就大概率是做了CDN的,如果国外测试结果返回的ip是一样的那很可能就是真实的ip地址了
DNS历史记录
在线搜索地址:https://viewdns.info/
获取到了大量的ip地址,就可以进行测试了,这些都是此域名之前使用过的ip
神器fofa
整改中,这个是渗透测试人员的神器,但是现在在整改,就不介绍了,如果之后能恢复使用大家自行百度就好
子域名收集
简介
子域名(或子域;英语:Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。
收集子域名原因
- 子域名枚举可以在测试范围内发现更多的域或子域,这将增大漏洞发现的记录
- 有些隐藏的、被忽略的子域上运行的应用程序可能帮助我们发现重大的漏洞
- 在同一个组织的不同域或应用程序中往往存在相同的漏洞
子域名收集方法
爆破
原理:通过字典匹配枚举存在的域名
工具
kali:subDomainBrute、dnsmap
widows:fuzzDomain
注意:禁止对非授权域名进行探测、爆破,避免触犯国家相关法律规定。
下载工具
┌──(root㉿kali)-[~]
└─# git clone https://github.com/lijiejie/subDomainsBrute.git /root/subDB
正克隆到 '/root/subDB'...
remote: Enumerating objects: 271, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 271 (delta 12), reused 21 (delta 10), pack-reused 239
接收对象中: 100% (271/271), 1.12 MiB | 1.76 MiB/s, 完成.
处理 delta 中: 100% (144/144), 完成.
#在GitHub上获取到了链接,然后在Linux上进行下载,需要加命令git和参数clone不要直接复制链接就回车
#进入目录
┌──(root㉿kali)-[~]
└─# cd /root/subDB
┌──(root㉿kali)-[~/subDB]
└─#
#查看文件
┌──(root㉿kali)-[~/subDB]
└─# ll -al
总用量 56
drwxr-xr-x 5 root root 4096 7月 6 22:44 .
drwx------ 24 root root 4096 7月 6 22:44 ..
drwxr-xr-x 2 root root 4096 7月 6 22:44 dict
drwxr-xr-x 8 root root 4096 7月 6 22:44 .git
-rw-r--r-- 1 root root 22 7月 6 22:44 .gitignore
drwxr-xr-x 2 root root 4096 7月 6 22:44 lib
-rw-r--r-- 1 root root 2528 7月 6 22:44 README.md
-rw-r--r-- 1 root root 19347 7月 6 22:44 screenshot.png
-rw-r--r-- 1 root root 4536 7月 6 22:44 subDomainsBrute.py
#其中比较关键的文件一个是dict目录一个是subDomainsBrute.py脚本文件
┌──(root㉿kali)-[~/subDB]
└─# ls dict #这个是存放字典的目录
dns_servers.txt next_sub.txt subnames_full.txt
next_sub_full.txt subnames_all_5_letters.txt subnames.txt
#给脚本文件可执行权限
┌──(root㉿kali)-[~/subDB]
└─# chmod +x subDomainsBrute.py
#使用脚本进行爆破
┌──(root㉿kali)-[~/subDB]
└─# python3 subDomainsBrute.py sangfor.com.cn -w
[+] SubDomainsBrute v1.5 https://github.com/lijiejie/subDomainsBrute
[+] Validate DNS servers
[+] Server 119.29.29.29 < OK > Found 5
[+] 5 DNS Servers found
[+] Run wildcard test
[+] Start 6 scan process
[+] Please wait while scanning ...
All Done. 40 found, 52516 scanned in 122.2 seconds.
Output file is sangfor.com.cn.txt
#因工具需使用python3中的部分模块(python2中可能不存在),所以在前面指定使用python3执行。
#参数说明
-w:通配符测试失败后强制扫描
#扫描完成后会生成一个文件用于存放扫描结果
#查看扫描结果
┌──(root㉿kali)-[~/subDB]
└─# cat sangfor.com.cn.txt
163navy.sangfor.com.cn 121.46.23.237
0629.sangfor.com.cn 121.46.23.237
01.sangfor.com.cn 121.46.23.237
analysis.sangfor.com.cn 121.46.8.163
cm.sangfor.com.cn 120.237.110.190
mirror.sangfor.com.cn 114.118.7.28
pps.sangfor.com.cn 113.105.88.60
rp.sangfor.com.cn 121.46.23.232
001.sangfor.com.cn 121.46.23.237
000.sangfor.com.cn 121.46.23.237
13.sangfor.com.cn 121.46.23.237
bj.sangfor.com.cn 82.156.165.248
data.sangfor.com.cn 113.105.88.60
page.sangfor.com.cn 142.0.165.173
qc.sangfor.com.cn 121.32.254.196
mx2.sangfor.com.cn 222.126.229.182
007.sangfor.com.cn 121.46.23.237
00o00.sangfor.com.cn 121.46.23.237
143masti.sangfor.com.cn 121.46.23.237
bak.sangfor.com.cn 113.105.88.225
bbs2.sangfor.com.cn 121.46.130.90
download.sangfor.com.cn 103.254.188.178, 103.254.188.179, 103.254.188.48, 122.228.91.100, 122.228.91.20, 122.228.91.87, 122.228.91.94, 43.243.235.38
pop3.sangfor.com.cn 115.236.119.65, 183.136.182.4
1fitchick.sangfor.com.cn 121.46.23.237
4loc.sangfor.com.cn 121.46.23.237
2khtarblog.sangfor.com.cn 121.46.23.237
activity.sangfor.com.cn 118.180.33.224, 118.180.33.225, 118.180.33.226, 118.180.33.231, 119.84.36.238, 119.84.36.239, 119.84.36.240, 119.84.36.241, 119.84.36.242, 119.84.36.243, 119.84.36.244, 119.84.36.248, 125.74.34.239, 125.74.34.240, 223.221.217.210, 223.221.217.211
channel.sangfor.com.cn 211.162.75.61
rm.sangfor.com.cn 113.105.88.152
sep.sangfor.com.cn 121.46.4.52
1236bj.sangfor.com.cn 121.46.23.237
0755-oopp.sangfor.com.cn 121.46.23.237
1greek.sangfor.com.cn 121.46.23.237
bbs.sangfor.com.cn 121.46.130.30
ct.sangfor.com.cn 202.105.147.78
show.sangfor.com.cn 121.12.76.25
000999888.sangfor.com.cn 121.46.23.237
118m.sangfor.com.cn 121.46.23.237
19.sangfor.com.cn 121.46.23.237
m.sangfor.com.cn 121.46.130.66
搜索引擎
谷歌语法
是使用搜索引擎,比如谷歌来定位因特网上的安全隐患和易攻击点。
常用的谷歌语法:
搜索到的结果都是其子域名
使用theHarvester工具
#常用参数说明
-d:指定域名
-g:使用google搜索
-s:使用shodan搜索
-b:指定某一种或全部(all)搜索。如果要使用shodan、github等引擎搜索,需要设置对应的API-key,对应的文件是api-keys.yaml,路径为/etc/theHarvester目录下。
#国内google使用不了
┌──(root?kali)-[~/subDB]
└─# theHarvester -d qq.com -g
#使用bing进行搜索
┌──(root㉿kali)-[~/subDB]
└─# theHarvester -d qq.com -b bing
#对于这种输出内容很多的,各人习惯我会导出到一个文件中,便于后续查看
┌──(root?kali)-[~/subDB]
└─# theHarvester -d qq.com -b bing > ziyumin.txt
此工具不仅可以搜索子域名,还可以进行dns爆破参数-c
aquaton工具
aquatone是一个工具集合,通过3个工具的配合,完成目标子域名和相关信息收集。
工具的安装
#下载工具
┌──(root?kali)-[~]
└─# apt install -y gem ruby
#切换到alternatives目录下
┌──(root㉿kali)-[~]
└─# cd /etc/alternatives
#通过gem安装aquatone工具
┌──(root㉿kali)-[/etc/alternatives]
└─# gem install aquatone
Fetching multi_xml-0.6.0.gem
Fetching aquatone-0.5.0.gem
Fetching httparty-0.14.0.gem
Fetching childprocess-0.7.1.gem
Successfully installed multi_xml-0.6.0
When you HTTParty, you must party hard!
Successfully installed httparty-0.14.0
Successfully installed childprocess-0.7.1
Successfully installed aquatone-0.5.0
Parsing documentation for multi_xml-0.6.0
Installing ri documentation for multi_xml-0.6.0
Parsing documentation for httparty-0.14.0
Installing ri documentation for httparty-0.14.0
Parsing documentation for childprocess-0.7.1
Installing ri documentation for childprocess-0.7.1
Parsing documentation for aquatone-0.5.0
Installing ri documentation for aquatone-0.5.0
Done installing documentation for multi_xml, httparty, childprocess, aquatone after 0 seconds
4 gems installed
#验证是否安装成功
┌──(root㉿kali)-[/etc/alternatives]
└─# aquatone-discover --help
Usage: aquatone-discover OPTIONS
-d, --domain DOMAIN Domain name to assess
--nameservers NAMESERVERS Nameservers to use
--fallback-nameservers NAMESERVERS
Nameservers to fall back to
--[no-]ignore-private Ignore hosts resolving to private IP addresses
--set-key KEY VALUE Save a key to key store
工具的使用
Aquatone按功能分为四个部分:aquatone-discover,aquatone-scan、aquatone-gather 和 aquatone-takeover,具体功能分别如下:
- aquatone-discover:使用被动收集或字典爆破方式发现子域名
- aquatone-scan:完成子域名扫描后,可扫描域名开放端口、HTTP header、HTML body、截图等信息并生成报告
- aquatone-gather:对扫描结果中的IP进行访问请求和网页截图,搜集信息
- aquatone-takeover:检测域名是否存在子域名劫持风险
aquatone-discover
#使用aquatone-discover命令,对已授权目标域名进行信息探测
┌──(root㉿kali)-[/etc/alternatives]
└─# aquatone-discover -d sangfor.com.cn -t 1 -s 2
#参数说明
-d:指定了目标域名
-t:指定线程
-s:指定发送查询包的时间间隔(每隔两秒)
上方第一部分,为扫描过程中的实时回显,中间部分是按照所属C段解析出了几台主机;最下方显示将结果信息存放到对应路径的文件中(以两种不同的格式,存放了域名和IP的对应关系)
扫描完成后,会在目录中生成结果文件夹,名称与目标域名一致。
aquatone-scan
减少扫描的目标,仅导出www.sanfor.com.cn域名信息,在sangfor.com.cn文件夹下,按照对应格式,编写两个文件(hosts.txt和hosts.json),主要是json格式的文件,用于接下来的端口扫描。
#编辑文件
┌──(root㉿kali)-[~/aquatone/sangfor.com.cn]
└─# vim hosts.json
{"www.sangfor.com.cn":"192.168.239.254"}
┌──(root㉿kali)-[~/aquatone/sangfor.com.cn]
└─# cat hosts.txt
www.sangfor.com.cn,192.168.239.254
#进入目录下进行扫描
┌──(root㉿kali)-[/etc/alternatives]
└─# cd /root/aquatone/sangfor.com.cn
#执行aquatone-scan
┌──(root㉿kali)-[~/aquatone/sangfor.com.cn]
└─# aquatone-scan -d sangfor.com.cn -p 22,3389,80,21
__
____ _____ ___ ______ _/ /_____ ____ ___
/ __ `/ __ `/ / / / __ `/ __/ __ \/ __ \/ _ \
/ /_/ / /_/ / /_/ / /_/ / /_/ /_/ / / / / __/
\__,_/\__, /\__,_/\__,_/\__/\____/_/ /_/\___/
/_/ scan v0.5.0 - by @michenriksen
Loaded 1 hosts from /root/aquatone/sangfor.com.cn/hosts.json
Probing 4 ports...
80/tcp 192.168.239.254 www.sangfor.com.cn
3389/tcp 192.168.239.254 www.sangfor.com.cn
21/tcp 192.168.239.254 www.sangfor.com.cn
Wrote open ports to file:///root/aquatone/sangfor.com.cn/open_ports.txt
Wrote URLs to file:///root/aquatone/sangfor.com.cn/urls.txt
#查看扫描结果
┌──(root㉿kali)-[~/aquatone/sangfor.com.cn]
└─# ls
hosts.json hosts.txt open_ports.txt urls.txt
#会生成两个文件(open_ports.txt和urls.txt)
┌──(root㉿kali)-[~/aquatone/sangfor.com.cn]
└─# cat open_ports.txt
192.168.239.254,80,3389,21
┌──(root㉿kali)-[~/aquatone/sangfor.com.cn]
└─# cat urls.txt
http://www.sangfor.com.cn/
http://www.sangfor.com.cn:21/
http://www.sangfor.com.cn:3389/
C段扫描
扫描原因
- 收集C段内部属于目标的IP地址
- 内部服务只限IP访问,没有映射域名
- 更多的探测主机目标资产
找软柿子捏,比如说百度主站,看着就无从下手,那就可以试试C端扫描找一些同属于百度的,但是很冷门或者一看就很古老的网站进行测试,然后万一获取到一些用户名密码等说不定在主站也可以登录
扫描方法
NMAP
#扫描C段主机存活状况
┌──(root㉿kali)-[~]
└─# nmap -sn -PE -n 192.168.239.0/24 -oN c.txt
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-07 02:10 EDT
Nmap scan report for 192.168.239.1
Host is up (0.00021s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.239.2
Host is up (0.00013s latency).
MAC Address: 00:50:56:FB:BB:BC (VMware)
Nmap scan report for 192.168.239.254
Host is up (0.00067s latency).
MAC Address: 00:0C:29:3A:86:7E (VMware)
Nmap scan report for 192.168.239.132
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.01 seconds
#参数说明
-sn:不扫描端口
-PE:ICMP扫描
-n:不进行dns解析
-oN:标准输出
#扫描C段主机的特定端口的闭合情况
┌──(root㉿kali)-[~]
└─# nmap -sS -Pn -p 80 192.168.239.0/24
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-07 02:13 EDT
Nmap scan report for 192.168.239.1
Host is up (0.00011s latency).
PORT STATE SERVICE
80/tcp closed http
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.239.2
Host is up (0.00015s latency).
PORT STATE SERVICE
80/tcp closed http
MAC Address: 00:50:56:FB:BB:BC (VMware)
Nmap scan report for 192.168.239.254
Host is up (0.00072s latency).
PORT STATE SERVICE
80/tcp open http
MAC Address: 00:0C:29:3A:86:7E (VMware)
Nmap scan report for 192.168.239.132
Host is up (0.000027s latency).
PORT STATE SERVICE
80/tcp closed http
Nmap done: 256 IP addresses (4 hosts up) scanned in 8.55 seconds
Masscan
#C段扫描
┌──(root㉿kali)-[~]
└─# masscan -p 80 192.168.239.254/24 --rate 10000 -oL out.txt
Starting masscan 1.3.2 (http://bit.ly/14GZzcT) at 2022-07-07 06:36:02 GMT
Initiating SYN Stealth Scan
Scanning 256 hosts [1 port/host]
#参数说明
-p:指定端口
--rate:发包速率
-oL:输出简单列表
-oX:输出xml
-oJ:输出json格式
-oL:输出简单列表
#查看扫描结果
┌──(root㉿kali)-[~]
└─# cat out.txt
#masscan
open tcp 80 192.168.239.254 1657175762
# end
#不想扫描某一个端口可以直接范围扫描
┌──(root㉿kali)-[~]
└─# masscan --ports 0-65532 192.168.239.254/24 --rate 10000 -oL out2.txt
Starting masscan 1.3.2 (http://bit.ly/14GZzcT) at 2022-07-07 06:37:28 GMT
Initiating SYN Stealth Scan
Scanning 256 hosts [65533 ports/host]
┌──(root㉿kali)-[~]
└─# masscan --ports 3389,139,3306,443,445 192.168.239.1/24 --rate 10000 -oL out4.txt
Starting masscan 1.3.2 (http://bit.ly/14GZzcT) at 2022-07-07 07:22:07 GMT
Initiating SYN Stealth Scan
Scanning 256 hosts [5 ports/host]
#参数说明
--ports:指定端口范围
#查看扫描结果
┌──(root㉿kali)-[~]
└─# cat out2.txt
#masscan
open tcp 3389 192.168.239.254 1657175864
open tcp 139 192.168.239.254 1657176032
open tcp 3306 192.168.239.254 1657176105
open tcp 445 192.168.239.254 1657176126
open tcp 49153 192.168.239.254 1657176402
open tcp 49158 192.168.239.254 1657176418
open tcp 49156 192.168.239.254 1657176489
open tcp 135 192.168.239.254 1657176628
open tcp 80 192.168.239.254 1657176646
open tcp 21 192.168.239.254 1657176724
open tcp 49152 192.168.239.254 1657177177
open tcp 47001 192.168.239.254 1657177471
open tcp 49154 192.168.239.254 1657177473
open tcp 49157 192.168.239.254 1657177486
open tcp 49155 192.168.239.254 1657177542
# end
┌──(root㉿kali)-[~]
└─# cat out4.txt
#masscan
open tcp 3389 192.168.239.254 1657178527
open tcp 139 192.168.239.254 1657178527
open tcp 139 192.168.239.201 1657178527
open tcp 445 192.168.239.201 1657178527
open tcp 445 192.168.239.254 1657178527
open tcp 3306 192.168.239.254 1657178527
# end
#如果有一些地址不想扫描,可以进行绕过
┌──(root㉿kali)-[~]
└─# vim haha.txt
192.168.239.201
┌──(root㉿kali)-[~]
└─# masscan --ports 3389,139,3306,443,445 192.168.239.1/24 --rate 10000 --excludefile haha.txt -oL out4.txt
haha.txt: excluding 1 ranges from file
Starting masscan 1.3.2 (http://bit.ly/14GZzcT) at 2022-07-07 07:25:06 GMT
Initiating SYN Stealth Scan
Scanning 255 hosts [5 ports/host]
#参数说明
--excludefile:将IP地址或范围列入黑名单,以防止其被扫描
┌──(root㉿kali)-[~]
└─# cat out4.txt
#masscan
open tcp 139 192.168.239.254 1657178706
open tcp 445 192.168.239.254 1657178706
open tcp 3306 192.168.239.254 1657178706
open tcp 3389 192.168.239.254 1657178706
# end
注意:
扫描选项中必须添加端口可以-p指定具体,可以--ports指定范围
目标主机是ip地址,不是域名
指纹识别
系统指纹识别
方法一
通过TCP/IP数据包发到目标主机,由于每个操作系统类型对于处理TCP/IP数据包都不相同,所以可以通过之间的差别判断操作系统类型。
#通过nmap进行操作系统指纹识别
┌──(root㉿kali)-[~]
└─# nmap -sS -O -Pn 192.168.239.254
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-05 21:39 EDT
Nmap scan report for 192.168.239.254
Host is up (0.0015s latency).
Not shown: 987 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open ftp
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3389/tcp open ms-wbt-server
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown
49156/tcp open unknown
49157/tcp open unknown
49159/tcp open unknown
MAC Address: 00:0C:29:3A:86:7E (VMware)
Device type: general purpose
Running: Microsoft Windows 7|2008|8.1
OS CPE: cpe:/o:microsoft:windows_7::- cpe:/o:microsoft:windows_7::sp1 cpe:/o:microsoft:windows_server_2008::sp1 cpe:/o:microsoft:windows_server_2008:r2 cpe:/o:microsoft:windows_8 cpe:/o:microsoft:windows_8.1
OS details: Microsoft Windows 7 SP0 - SP1, Windows Server 2008 SP1, Windows Server 2008 R2, Windows 8, or Windows 8.1 Update 1
Network Distance: 1 hop
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.16 seconds
#nmap识别操作系统指纹必须使用端口,所以不允许添加-sn参数
┌──(root㉿kali)-[~]
└─# nmap -sS -O -Pn -sn 192.168.239.254
-sL and -sn (skip port scan) are not valid with any other scan types
QUITTING!
#参数说明
-sS:使用SYN进行扫描
-O:识别操作系统
-Pn:跳过主机发现
-sn:禁用端口扫描
#在OS details处显示了可能的操作系统版本
方法二
端口服务识别,因为每个操作系统都有特有的服务和端口,如
- windows桌面连接使用的3389端口
- windows的smb协议使用445端口
#通过nmap探测服务很版本信息
┌──(root㉿kali)-[~]
└─# nmap -sS -sV 192.168.239.254
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-05 21:57 EDT
Nmap scan report for 192.168.239.254
Host is up (0.00062s latency).
Not shown: 987 closed tcp ports (reset)
PORT STATE SERVICE VERSION
21/tcp open ftp Microsoft ftpd
80/tcp open http Microsoft IIS httpd 7.5
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
3389/tcp open ms-wbt-server?
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49154/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
49156/tcp open msrpc Microsoft Windows RPC
49157/tcp open msrpc Microsoft Windows RPC
49159/tcp open msrpc Microsoft Windows RPC
MAC Address: 00:0C:29:3A:86:7E (VMware)
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 89.86 seconds
#查看详细的探测信息
┌──(root㉿kali)-[~]
└─# nmap -sS -sV 192.168.239.254 -Pn -vv
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-05 21:59 EDT
NSE: Loaded 45 scripts for scanning.
Initiating ARP Ping Scan at 21:59
Scanning 192.168.239.254 [1 port]
Completed ARP Ping Scan at 21:59, 0.01s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 21:59
Completed Parallel DNS resolution of 1 host. at 22:00, 6.59s elapsed
Initiating SYN Stealth Scan at 22:00
Scanning 192.168.239.254 [1000 ports]
Discovered open port 21/tcp on 192.168.239.254
Discovered open port 3389/tcp on 192.168.239.254
Discovered open port 445/tcp on 192.168.239.254
Discovered open port 135/tcp on 192.168.239.254
Discovered open port 49156/tcp on 192.168.239.254
Discovered open port 49152/tcp on 192.168.239.254
Discovered open port 49154/tcp on 192.168.239.254
Discovered open port 80/tcp on 192.168.239.254
Discovered open port 139/tcp on 192.168.239.254
Discovered open port 49157/tcp on 192.168.239.254
Discovered open port 49155/tcp on 192.168.239.254
Discovered open port 49153/tcp on 192.168.239.254
Discovered open port 49159/tcp on 192.168.239.254
Completed SYN Stealth Scan at 22:00, 1.36s elapsed (1000 total ports)
Initiating Service scan at 22:00
Scanning 13 services on 192.168.239.254
Service scan Timing: About 46.15% done; ETC: 22:02 (0:01:02 remaining)
Completed Service scan at 22:01, 81.20s elapsed (13 services on 1 host)
NSE: Script scanning 192.168.239.254.
NSE: Starting runlevel 1 (of 2) scan.
Initiating NSE at 22:01
Completed NSE at 22:01, 0.02s elapsed
NSE: Starting runlevel 2 (of 2) scan.
Initiating NSE at 22:01
Completed NSE at 22:01, 0.01s elapsed
Nmap scan report for 192.168.239.254
Host is up, received arp-response (0.00095s latency).
Scanned at 2022-07-05 22:00:04 EDT for 83s
Not shown: 987 closed tcp ports (reset)
PORT STATE SERVICE REASON VERSION
21/tcp open ftp syn-ack ttl 128 Microsoft ftpd
80/tcp open http syn-ack ttl 128 Microsoft IIS httpd 7.5
135/tcp open msrpc syn-ack ttl 128 Microsoft Windows RPC
139/tcp open netbios-ssn syn-ack ttl 128 Microsoft Windows netbios-ssn
445/tcp open microsoft-ds syn-ack ttl 128 Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
3389/tcp open ms-wbt-server? syn-ack ttl 128
49152/tcp open msrpc syn-ack ttl 128 Microsoft Windows RPC
49153/tcp open msrpc syn-ack ttl 128 Microsoft Windows RPC
49154/tcp open msrpc syn-ack ttl 128 Microsoft Windows RPC
49155/tcp open msrpc syn-ack ttl 128 Microsoft Windows RPC
49156/tcp open msrpc syn-ack ttl 128 Microsoft Windows RPC
49157/tcp open msrpc syn-ack ttl 128 Microsoft Windows RPC
49159/tcp open msrpc syn-ack ttl 128 Microsoft Windows RPC
MAC Address: 00:0C:29:3A:86:7E (VMware)
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Read data files from: /usr/bin/../share/nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 89.43 seconds
Raw packets sent: 1098 (48.296KB) | Rcvd: 1001 (40.080KB)
#参数说明
-sV:版本/服务探测
-vv:显示详细的探测信息,v越多越详细
中间件指纹识别
方法一
通过HTTP返回消息,提取server字段
方法二
通过端口服务探测中间件
方法三
通过构造错误信息(不存在的路径和畸形数据),服务器返回错误界面,返回信息查看中间件
Web程序指纹识别
开发语言识别
- 后缀名识别:如 .asp 、.php、.jsp(如果无法通过后缀名识别,可以通过抓包查看与后台交互点,如:登录、查询)
- http返回消息头:x-Powered-By
- cookie:PHPSESSIONID——>php,JSPSESSIONID——>jsp,ASPSESSIONID——>asp
开发框架识别
- php的thinkPHP框架识别方法是特定ico图标
- action后缀:90%几率是struts2或者webwork
- do后缀:50%几率是spring mvc
- url路径/action/xxx:70%几率是struts2
- form后缀:60%几率是spring mvc
- vm后缀:90%几率是VelocityViewServlet
- jsf后缀:99%几率是Java Server Faces
第三方组件
一般包括流量统计、文件编辑器、模版引擎
识别方法:一般目录扫描
- FCKeditor
- CKEditor
CMS程序
- 特定文件夹
dede/
admin/admin_Login.aspx
- powered by(页面最下方有一行版权所有谁谁谁)
-
网站favicon图标
数据库
- 常规判断:asp——>sql server,php——>mysql,jsp——>oracle
- 网站错误信息
- 端口服务:1443——>sql server;3306——>mysql,1521——>oracle
在线探测
浏览器插件wappalyzer
可以探测内容管理系统,平台,开发语言,框架甚至更多
在线网站探测
在线自动探测目标网站的数据库,开发语言,操作系统,web容器,CMS,开发框架
云悉:https://www.yunsee.cn/
防火墙指纹识别
防火墙的分类
- 基于主机的防火墙(一个运行在单独目标计算机上的防火墙,比如,你的计算机中现在运行的防火墙)
- 基于网络的防火墙(一个用于保护整个网络,并且被部署在网络节点上的防火墙)
端口响应状态
- Open port(防火墙允许少数端口打开)
-
Closed Port(由于防火墙的缘故,大部分的端口被关闭)
-
Filtered(Nmap不确定端口是否打开或者关闭)
-
Unfiltered(Nmap能够访问这个端口,但是不清楚这个端口打开的状态)
方法一
#通过nmap进行主机防火墙的扫描
┌──(root㉿kali)-[~]
└─# nmap -sS -Pn 192.168.239.10 #通过SYN进行扫描
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-05 23:45 EDT
Nmap scan report for 192.168.239.10
Host is up (0.0018s latency).
Not shown: 994 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp closed ssh #很多closed的接口,肯定是有防火墙的
23/tcp closed telnet
80/tcp open http
179/tcp closed bgp
646/tcp closed ldp
8443/tcp open https-alt
MAC Address: 00:E0:FC:68:2A:0B (Huawei Technologies)
Nmap done: 1 IP address (1 host up) scanned in 4.95 seconds
┌──(root㉿kali)-[~]
└─# nmap -sA -Pn 192.168.239.10 #通过ACK进行扫描
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-05 23:53 EDT
Nmap scan report for 192.168.239.10
Host is up (0.0012s latency).
All 1000 scanned ports on 192.168.239.10 are in ignored states.
Not shown: 1000 filtered tcp ports (no-response) #接口都被过滤了,大概率有防火墙
MAC Address: 00:E0:FC:68:2A:0B (Huawei Technologies)
Nmap done: 1 IP address (1 host up) scanned in 21.26 seconds
┌──(root㉿kali)-[~]
└─# nmap -sA -Pn 192.168.239.254 #通过ACK进行扫描
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-05 23:54 EDT
Nmap scan report for 192.168.239.254
Host is up (0.000073s latency).
All 1000 scanned ports on 192.168.239.254 are in ignored states.
Not shown: 1000 unfiltered tcp ports (reset) #接口未被过滤,大概率没有防火墙
MAC Address: 00:0C:29:3A:86:7E (VMware)
Nmap done: 1 IP address (1 host up) scanned in 8.01 seconds
#通过nmap进行web防护墙的扫描,使用nmap自带的脚本
┌──(root㉿kali)-[~] #waf指纹识别脚本
└─# nmap --script http-waf-fingerprint.nse study.edu.sangfor.com.cn
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-05 23:26 EDT
Nmap scan report for study.edu.sangfor.com.cn (121.46.25.216)
Host is up (2.2s latency).
Not shown: 988 closed tcp ports (reset)
PORT STATE SERVICE
42/tcp filtered nameserver
80/tcp open http
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
443/tcp open https
445/tcp filtered microsoft-ds
514/tcp filtered shell
593/tcp filtered http-rpc-epmap
1025/tcp filtered NFS-or-IIS
1068/tcp filtered instl_bootc
1434/tcp filtered ms-sql-m
4444/tcp filtered krb524
Nmap done: 1 IP address (1 host up) scanned in 748.14 seconds
┌──(root㉿kali)-[~] #waf发现脚本
└─# nmap --script http-waf-detect.nse study.edu.sangfor.com.cn
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-06 00:01 EDT
Nmap scan report for study.edu.sangfor.com.cn (121.46.25.216)
Host is up (0.0060s latency).
Not shown: 998 filtered tcp ports (no-response) #998个端口被过滤
PORT STATE SERVICE
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 38.85 seconds
方法二
sqlmap -u "domain" --identify-waf
目录扫描
扫描原因
网站目录本质上就是我们的文件夹,不同的文件夹放着不同的文件。
进行目录扫描是为了扩大测试范围,找到更多能利用的点。
扫描方法
御剑工具——7kbscan
使用很简单,扫描目标处填写URL,然后选择字典类型,显示结果等。然后点击开始,然后扫描结果就会在下面显示