域名信息收集
获取域名的注册信息,包括该域名的DNS服务器信息和注册人的联系信息等。
Whois
信用信息查询
企业信息及资产
获取目标企业的微信公众号、微博、备案站点、软件著作权等信息
APP
通过当前APP查询同开发商应用,得到目标所有APP应用
子域名收集
DNS 常见记录类型:
1
2
3
4
5
6
7 >A记录 IP地址记录,记录一个域名对应的IP地址
>AAAA记录 IPv6地址记录,记录一个域名对应的IPv6地址
>CNAME记录 别名记录,记录一个主机的别名
>MX记录 电子邮件交换记录,记录一个邮件域名对应的IP地址
>NS记录 域名服务器记录 ,记录该域名由哪台域名服务器解析
>PTR记录 反向记录,也即从IP地址到域名的一条记录
>TXT记录 记录域名的相关文本信息
泄露
robots.txt
corssdomain.xml
跨站策略文件
流量分析
Github 泄露
搜索引擎
Google 、Bing
site:*.wikimedia.org -www -store -jobs -uk
网络资产搜索引擎
Shodan
Zoomeye
Fofa
domain=Your_domain
云溪
在线工具
查询网
DNSDB
第三方 DNS 服务
VirusTotal
VirusTotal会运行DNS复制功能,通过存储用户访问URL时执行的DNS解析来构建数据库。
要检索子域名的信息,只需将域名放在搜索栏中即可
DNS dumpster
Sublist3r
Sublist3r使用许多搜索引擎(如Google,Yahoo,Bing,Baidu和Ask)进行子域名探测。
Sublist3r还使用Netcraft,Virustotal,ThreatCrowd,DNSdumpster和ReverseDNS进行子域名探测。
使用
-d your_domain
证书透明
证书透明(CT)是证书颁发机构(CA)必须将其发布的每个SSL/TLS证书发布到公共日志的项目。
SSL/TLS证书通常包含域名,子域名和电子邮件地址
获取子域名的方法
证书中的「使用者可选名称」字段值
通过资产搜索引擎收集的证书信息
-
可以使用postgres客户端访问CT日志数据
$ psql -h crt.sh -p 5432 -U guest certwatch
工具:
-
命令:
./bin/massdns -r lists/resolvers.txt -t AAAA domains.txt > results.txt
- domain.txt 为域名
TIPS:使用CT进行子域名探测的缺点是CT日志中找到的域名可能不存在,因此无法解析为IP地址,可以通过
|
把查询结果传给 massdns 进一步解析-
向域名A记录IP的443端口发送请求,获取证书支持的域名和子域名
A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。
用户可以将该域名下的网站服务器指向到自己的web server上。
同时也可以设置域名的子域名。
通俗来说A记录就是服务器的IP,域名绑定A记录就是告诉DNS,当你输入域名的时候给你引导向设置在 DNS的A记录所对应的服务器
工具:
Findomain
1 | findomain-windows.exe -t baidu.com |
字典枚举
御剑子域名挖掘器
DNSRecon
kali 自带
置换扫描
使用已知域/子域名的排列组合来识别新的子域名
[altdns]($ python altdns.py -i icann.domains -o data_output -w icann.words -r -s results_output.txt)
$ python altdns.py -i icann.domains -o data_output -w icann.words -r -s results_output.txt
AS 号码查询
AS 号码帮助识别属于组织的网络块,而该网络快又可能具有有效域
步骤:
获取 AS Number
使用nmap进行查找
1
nmap --script targets-asn --script-args targets-asn.asn=Your_asn > netblocks.txt
DNS 域传送漏洞
域传送是一种DNS事务,DNS服务器将其全部或部分域文件的副本传递给另一个DNS服务器。
但是许多DNS服务器却被错误配置成只要收到AXFR请求,就向对方进行域传送。
如果未安全地配置域传输送,则任何人都可以对指定名称的服务器启动域传送并获取域文件的副本。
根据设计,域文件包含有关域和保存在域中的大量主机信息
正确配置:
1
2
3allow-transfer {ipaddress;}; 通过ip限制可进行域传送的服务器
allow-transfer { key transfer; }; 通过key限制可进行域传送的服务器
Windows 下对漏洞的利用
nslookup命令进入交互式shell
server命令 参数设定查询将要使用的DNS服务器
ls命令列出某个域中的所有域名
漏洞存在则直接输出相关DNS信息
Linux:dig
1 | dig +multi AXFR @@1.1.1.1 your_domain |
Kali:dnswalk
1 | dnswalk your_domain. |
- TIPS:这里需要域名的完整形式,即
.
不能省略
nmap
1 | nmap --script dns-zone-transfer --script-args dns-zone-trans |
- TIPS:DNS域传送漏洞也是属于高危漏洞
DNSSEC
由于DNSSEC处理不存在域名的方式,可以”遍历”DNSSEC域并枚举该域中的所有域名
探测工具:
ldns-walk
1 | # 安装 |
一些DNSSEC域使用NSEC3做记录,该记录使用散列域名来防止攻击者收集纯文本域名。
攻击者可以收集所有子域名hash值并将hash值离线破解。
工具:
自动收集NSEC3 HASH 并破解
nsec3walker
nsec3map
公开域名库
Forward DNS
1 | curl -silent https://scans.io/data/rapid7/sonar.fdns_v2/20170417-fdns.json.gz | pigz -dc | grep ".icann.org" | jq |
子域名变化监控
主要用于漏洞赏金
Sublert
TIPS:
直接使用DNS解析准确率会高些,因为有些业务还未上架,通过浏览器访问可能返回错误
综合收集工具
Oneforall
1 | → docker pull shmilylty/oneforall |
1 | --brute=BRUTE |
真实 IP 收集
如果挖掘的目标购买了CDN服务,可以直接ping目标的域名,但得到的并非真正的目标Web服务器,只是最近的一台目标节点的CDN服务器,这就导致了我们没法直接得到目标的真实IP段范围。
CDN
CDN的全称是Content Delivery Network,即内容分发网络。
其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上
国内CDN
阿里云
腾讯云
百度云
网宿科技(ChinanNet Center)
蓝汛
金山云
UCloud
网易云
世纪互联
七牛云
京东云国外CDN
Akamai(阿卡迈)
Limelight Networks(简称LLNW)
AWS Cloud(亚马逊)
Google(谷歌)
Comcast(康卡斯特)
判断是否存在CDN
小站点一般没有
ping
1 | # 存在CDN |
1 | # 不存在CDN |
nslookup
不同DNS服务器
1 | >nslookup www.dfle.com.cn 8.8.8.8 |
如果解析结果不一致,则存在CDN
这里尝试了几个CDN的站,解析结果都一致,存在一定的误判
默认解析
如果解析出多个结果,则可能存在CDN
1 | >nslookup www.baidu.com |
多地ping
如果IP大多不太一样或者规律性很强,可以尝试查询这些IP的归属地,判断是否存在CDN
CDN绕过
内部邮箱源
一般的邮件系统都在内部,没有经过CDN的解析,通过利用目标网站的邮箱注册、找回密码或者RSS订阅等功能,查看邮件、寻找邮件头中的邮件服务器域名IP,ping这个邮件服务器的域名,就可以获得目标的真实IP。
- TIPS:区分第三方公共邮件服务器
国外请求
很多时候国内的CDN对国外得覆盖面并不是很广,故此可以利用此特点进行探测。通过国外代理访问就能查看真实IP了,或者通过国外的DNS解析,可能就能得到真实的IP。
国外DNS服务器
1 | > nslookup www.jd.com 8.8.4.4 |
APP应用
分析APP流量获取到真实IP
在线查询
分站域名(子域名) & C段查询
很多网站主站的访问量会比较大,所以主站都是挂CDN的,但是分站可能没有挂CDN,可以通过ping二级域名获取分站IP, 可能会出现分站和主站不是同一个IP但在同一个C段下面的情况,从而能判断出目标的真实IP段。
C段查询:
在线查询
工具
- K8_C段旁注工具6.0
- nmap
- IISPutScaner
- 小米范Web查找器
网络资产搜索引擎
Shodan、Fofa、zoomeye
使用C段搜索语法
ip="120.1.1.1/24"
信息泄露
- 配置文件
- phpinfo
- 测试文件
- GitHub泄露
SSRF
让目标服务器发起请求,连接VPS,通过端口监听可以查看到真实IP
端口信息
常见端口及渗透思路
端口:21 服务:FTP/TFTP/VSFTPD 总结:爆破/嗅探/溢出/后门
端口:22 服务:ssh远程连接 总结:爆破/openssh漏洞
端口:23 服务:Telnet远程连接 总结:爆破/嗅探/弱口令
端口:25 服务:SMTP邮件服务 总结:邮件伪造
端口:53 服务:DNS域名解析系统 总结:域传送/劫持/缓存投毒/欺骗
端口:67/68 服务:dhcp服务 总结:劫持/欺骗
端口:110 服务:pop3 总结:爆破/嗅探
端口:139 服务:Samba服务 总结:爆破/未授权访问/远程命令执行
端口:143 服务:Imap协议 总结:爆破161SNMP协议爆破/搜集目标内网信息
端口:389 服务:Ldap目录访问协议 总结:注入/未授权访问/弱口令
端口:445 服务:smb 总结:ms17-010/端口溢出
端口:512/513/514 服务:Linux Rexec服务 总结:爆破/Rlogin登陆
端口:873 服务:Rsync服务 总结:文件上传/未授权访问
端口:1080 服务:socket 总结:爆破
端口:1352 服务:Lotus domino邮件服务 总结:爆破/信息泄漏
端口:1433 服务:mssql 总结:爆破/注入/SA弱口令
端口:1521 服务:oracle 总结:爆破/注入/TNS爆破/反弹shell2049Nfs服务配置不当
端口:2181 服务:zookeeper服务 总结:未授权访问
端口:2375 服务:docker remote api 总结:未授权访问
端口:3306 服务:mysql 总结:爆破/注入
端口:3389 服务:Rdp远程桌面链接 总结:爆破/shift后门
端口:4848 服务:GlassFish控制台 总结:爆破/认证绕过
端口:5000 服务:sybase/DB2数据库 总结:爆破/注入/提权
端口:5432 服务:postgresql 总结:爆破/注入/缓冲区溢出
端口:5632 服务:pcanywhere服务 总结:抓密码/代码执行
端口:5900 服务:vnc 总结:爆破/认证绕过
端口:6379 服务:Redis数据库 总结:未授权访问/爆破
端口:7001/7002 服务:weblogic 总结:java反序列化/控制台弱口令
端口:80/443 服务:http/https 总结:web应用漏洞/心脏滴血
端口:8069 服务:zabbix服务 总结:远程命令执行/注入
端口:8161 服务:activemq 总结:弱口令/写文件
端口:8080/8089 服务:Jboss/Tomcat/Resin 总结:爆破/PUT文件上传/反序列化
端口:8083/8086 服务:influxDB 总结:未授权访问
端口:9000 服务:fastcgi 总结:远程命令执行
端口:9090 服务:Websphere 总结:控制台爆破/java反序列化/弱口令
端口:9200/9300 服务:elasticsearch 总结:远程代码执行
端口:11211 服务:memcached 总结:未授权访问
端口:27017/27018 服务:mongodb 总结:未授权访问/爆破
扫描工具
nmap
绕过FirewallD
通过不同的协议(TCP半连接、TCP全连接、ICMP、UDP等)的扫描绕过Firewalld的限制
1
2
3
4
5
6
7nmap -sP 192.33.6.128
nmap -sT 192.33.6.128
nmap -sS 192.33.6.128
nmap -sU 192.33.6.128
nmap -sF 192.33.6.128
nmap -sX 192.33.6.128
nmap -sN 192.33.6.128多IP扫描
1
2
3
4
5
6
7
8
9
10
11
12# 扫描整个子网
nmap 192.168.6.1/24
nmap 192.168.1-30.1-254
# 扫描一个小范围
nmap 192.168.6.2-10
# 扫描txt内的ip列表
nmap -iL text.txt
# 扫描除某个目标外
nmap 192.168.6.1/24 -exclude 192.168.6.25收集端口信息
1
nmap -T4 -A -v -Pn 192.168.1.1/24 -p 21,22,23,25,80,81,82,83,88,110,143,443,445,512,513,514,1433,1521,2082,2083,2181,2601,2604,3128,3306,3389,3690,4848,5432,5900,5984,6379,7001,7002,8069,8080,8081,8086,8088,9200,9300,11211,10000,27017,27018,50000,50030,50070 -oN nmap_result.txt
扫描端口并标记可爆破服务
1
nmap 127.0.0.1 --script=ftp-brute,imap-brute,smtp-brute,pop3-brute,mongodb-brute,redis-brute,ms-sql-brute,rlogin-brute,rsync-brute,mysql-brute,pgsql-brute,oracle-sid-brute,oracle-brute,rtsp-url-brute,snmp-brute,svn-brute,telnet-brute,vnc-brute,xmpp-brute
判断常见的漏洞并扫描端口
1
nmap 127.0.0.1 --script=auth,vuln
精确判断漏洞并扫描端口
1
nmap 127.0.0.1 --script=dns-zone-transfer,ftp-anon,ftp-proftpd-backdoor,ftp-vsftpd-backdoor,ftp-vuln-cve2010-4221,http-backup-finder,http-cisco-anyconnect,http-iis-short-name-brute,http-put,http-php-version,http-shellshock,http-robots.txt,http-svn-enum,http-webdav-scan,iis-buffer-overflow,iax2-version,memcached-info,mongodb-info,msrpc-enum,ms-sql-info,mysql-info,nrpe-enum,pptp-version,redis-info,rpcinfo,samba-vuln-cve-2012-1182,smb-vuln-ms08-067,smb-vuln-ms17-010,snmp-info,sshv1,xmpp-info,tftp-enum,teamspeak2-version
Masscan
Zmap
御剑高速TCP端口扫描
Masnmapscan
masnmapscan整合了masscan和nmap两款扫描器,masscan扫描端口,nmap扫描端口对应服务,二者结合起来实现了又快又好地扫描。并且加入了针对目标资产有防火墙的应对措施。
网络空间搜索引擎
Shodan、Fofa、Zoomeye
指纹识别
在漏洞挖掘中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的Web容器或者CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。
指纹识别:Web应用、服务器、操作系统等等
在线平台
工具
- 御剑Web指纹识别
- WhatWeb
- Test404轻量CMS指纹识别+v2.1
- 椰树
CMS 识别
目录(后台)
- 7kbscan-WebPathBrute
- DirMap
- dirsearch
- Test404轻量后台扫描器+v2.0
- 御剑
基于Fuzz:
泄露
敏感信息
- 攻击者通过构造特殊URL地址,触发系统web应用程序报错,在回显内容中,获取网站敏感信息;
- 攻击者利用泄漏的敏感信息,获取网站服务器web路径,为进一步攻击提供帮助。
robots.txt 利用
.hg
源码泄露
漏洞成因
hg init的时候会生成
.hg
工具
dvcs-ripper
- eg.
rip-hg.pl -v -u http://www.am0s.com/.hg/
- eg.
.git
源码泄露
漏洞成因
在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。
在发布代码的时候,把.git这个目录没有删除,直接发布了。
使用这个文件,可以用来恢复源代码。
工具
GitHack
-
printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" | cat - .git/objects/filename | gunzip
Git Object 格式 告诉我们,git object 是把文件内容做了 deflate 压缩后存储的。我们知道 gzip 也是用的 zlib 的 deflate 压缩,不过 gz 文件有特殊的头尾。与其写一段代码调用 gzip 库,不如把 gzip 的文件头给补上,直接调用 gunzip 来解压。(浏览器返回的 HTTP 请求经常也是 deflate 压缩啊,从抓包记录里解压这个是必备技能啊)
\x1f\x8b\x08\x00\x00\x00\x00\x00
这串字符是res1
2import gzip
ret = gzip.decompress(res).decode("utf-8")
.DS_Store
文件泄漏
漏洞成因
在发布代码时未删除文件夹中隐藏的.DS_store,被发现后,获取了敏感的文件名等信息。
http://www.xxxxx.com/.ds_store
工具
dsstoreexp
使用
python ds_store_exp.py http://www.xxxx.com/.DS_Store
SVN
概述
Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。
互联网上越来越多的控制服务从CVS转移到 Subversion。
Subversion使用服务端—客户端的结构,当然服务端与客户端可以都运行在同一台服务器上。在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion的客户端程序,管理着受控数据的一部分在本地的映射(称为“工作副本”)。
在这两端之间,是通过各种仓库存取层(Repository Access,简称RA)的多条通道进行访问的。这些通道中,可以通过不同的网络协议,例如HTTP、SSH等,或本地文件的方式来对仓库进行操作。
工具
dvcs-ripper
rip-svn.pl -v -u http://www.xxx.com/.svn/
Seay-Svn
WEB-INF/web.xml 泄露
概述
WEB-INF是
Java
的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问主要文件/目录
/WEB-INF/web.xml
Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/
含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
/WEB-INF/lib/
存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
/WEB-INF/src/
源码目录,按照包名结构放置各个 java 文件
/WEB-INF/database.properties
数据库配置文件
漏洞成因
通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。
在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取
漏洞检测以及利用
通过找到
web.xml
文件,推断 class 文件的路径,最后直接获取 class文件,在通过反编译 class文件,得到网站源码。一般情况,jsp 引擎默认都是禁止访问
WEB-INF
目录的,Nginx 配合Tomcat做均衡负载或集群等情况时,问题原因其实很简单,Nginx不会去考虑配置其他类型引擎(Nginx不是jsp引擎)导致的安全问题而引入到自身的安全规范中来(这样耦合性太高了),修改Nginx配置文件禁止访问WEB-INF
目录就可以修补:location ~ ^/WEB-INF/* { deny all; }
或者
return 404;
CVS泄漏
漏洞利用测试的目录
http://www.xxx.com/CVS/Root
返回根信息
http://www.xxxx.com/CVS/Entries
返回所有文件的结构
取回源码的命令
bk clone http://www.xxx.com/name dir
把远端一个名为 name 的 repo clone到本地名为dir的目录下。
查看所有的改变的命令,转到download的目录
bk changes
工具
dvcs-ripper
rip-bzr.pl -v -u http://www.xxxx.com/.bzr/
备份文件
- 漏洞成因
- 服务器管理员错误地将网站或者网页的备份文件放置到服务器web目录下
- 编辑器在使用过程中自动保存的备份文件或者临时文件因为各种原因没有被删除而保存在web目录下
1 | .rar |
词典
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72/_index.html
/a.zip
/web.zip
/web.rar
/1.rar
/bbs.rar
/www.root.rar
/123.rar
/data.rar
/bak.rar
/oa.rar
/admin.rar
/www.rar
/2014.rar
/2015.rar
/2016.rar
/2014.zip
/2015.zip
/2016.zip
/2017.zip
/1.zip
/1.gz
/1.tar.gz
/2.zip
/2.rar
/123.rar
/123.zip
/a.rar
/a.zip
/admin.rar
/back.rar
/backup.rar
/bak.rar
/bbs.rar
/bbs.zip
/beifen.rar
/beifen.zip
/beian.rar
/data.rar
/data.zip
/db.rar
/db.zip
/flashfxp.rar
/flashfxp.zip
/fdsa.rar
/ftp.rar
/gg.rar
/hdocs.rar
/hdocs.zip
/HYTop.mdb
/root.rar
/Release.rar
/Release.zip
/sql.rar
/test.rar
/template.rar
/template.zip
/upfile.rar
/vip.rar
/wangzhan.rar
/wangzhan.zip
/web.rar
/web.zip
/website.rar
/www.rar
/www.zip
/wwwroot.rar
/wwwroot.zip
/wz.rar
/index.php.swp
/index.php.bak
/index.php.swo
工具
- Test404网站备份文件扫描器 v2.0 (Windows)
- ihoneyBakFileScan
第三方平台泄露
代码托管平台
Github
通过搜索网站域名、网站JS路径、网站备案、网站下的技术支持等进行敏感信息查询
gitee
公网网盘
一般直接搜索厂商名
凌风云搜索
公开文件
Google Hacking
1 | site:target.com filetype:.doc | .docx | .xls | .xlsx | .ppt | .pptx | .odt | .pdf | .rtf | .sxw | .psw | .csv |
snitch
Snitch可以针对指定域自动执行信息收集过程。此工具可帮助收集可通过Web搜索引擎找到的指定信息。
使用
1
python snitch.py -C "site:whitehouse.gov filetype:pdf" -P 100
Google Hacking
后台地址
1 | site:target.com intext:管理 | 后台 | 后台管理 | 登陆 | 登录 | 用户名 | 密码 | 系统 | 账号 | login | system |
上传点
1 | site:target.com inurl:file |
注入点
1 | site:target.com inurl:php?id= |
SQL 报错
1 | site:target.com intext:"sql syntax near" | intext:"syntax error has occurred" | intext:"incorrect syntax near" | intext:"unexpected end of SQL command" | intext:"Warning: mysql_connect()" | intext:”Warning: mysql_query()" | intext:”Warning: pg_connect()" |
编辑器
1 | site:target.com inurl:ewebeditor |
目录遍历
1 | site:target.com intitle:index.of |
phpinfo
1 | site:target.com ext:php intitle:phpinfo "published by the PHP Group" |
配置文件
1 | site:target.com ext:.xml | .conf | .cnf | .reg | .inf | .rdp | .cfg | .txt | .ora | .ini |
数据库文件
1 | site:target.com ext:.sql | .dbf | .mdb | .db |
日志文件
1 | site:target.com ext:.log |
备份/历史文件
1 | site:target.com ext:.bkf | .bkp | .old | .backup | .bak | .swp | .rar | .txt | .zip | .7z | .sql | .tar.gz | .tgz | .tar |
公开文件泄露
1 | site:target.com filetype:.doc | .docx | .xls | .xlsx | .ppt | .pptx | .odt | .pdf | .rtf | .sxw | .psw | .csv |
邮箱信息
1 | site:target.com intext:@target.com |
自动化工具:
Infoga
社工信息
1 | site:target.com intitle:账号 | 密码 | 工号 | 学号 | 身份证 |
JS获取敏感接口
JSFinder
LinkFinder
1 | # 基础用法 |
历史漏洞
WAF 识别
- wafw00f (kali)
参考
声明
- 博主初衷为分享网络安全知识,请勿利用技术做出任何危害网络安全的行为,否则后果自负,与本人无关!
- 部分学习内容来自网络,回馈网络,如涉及版权问题,请联系删除 orz
Author: AMao
Link: https://passenger-amao.github.io/2020/07/17/%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86/
Copyright: 本站所有文章均采用 署名-非商业性使用-相同方式共享 4.0 国际(CC BY-NC-SA 4.0) 许可协议。转载请注明出处!