渗透测试—信息收集
- 1. 收集域名信息
- 1.1. 域名注册信息
- 1.2. SEO信息收集
- 1.3. 子域名收集
- 1.3.1. 在线子域名收集
- 1.3.2. 子域名收集工具
- 1.4. 域名备案信息
- 1.5. ICP备案号查询
- 1.6. SSL证书查询
- 2. 收集真实IP
- 2.1. 超级ping
- 2.2. Ping
- 2.3. CDN绕过
- 3. 收集旁站或C段IP
- 3.1. 旁站或C段
- 3.2. 端口分析
- 4. 收集端口及服务
- 4.1. Nmap
- 4.1.1. 主机发现
- 4.1.2. 端口扫描
- 4.1.3. 版本探测
- 4.1.4. OS探测
- 5. 收集网站指纹
- 5.1. 在线网站
- 5.2. 工具类
- 6. 收集敏感信息
- 6.1. 目录信息收集
- 6.2. 代码管理工具信息泄露
- 6.2.1. Git源码泄露
- 6.2.2. SVN源码泄露
- 7. 综合性信息收集
- 7.1. Google hack(高级搜索)
- 7.2. 黑暗搜索引擎
- 7.2.1. shodan
- 7.2.2. FOFA
- 7.2.3. 钟馗之眼
- 7.3. ARL灯塔资产侦察系统
- 8. APP与小程序信息收集
1. 收集域名信息
关于域名的收集,一般情况下如果是授权测试的,那么基本上甲方都会将一下相关的信息罗列出来,但是也不排除会遇到一些直接给你一个域名,而不不会给那么详细信息的甲方,那么就需要你自己去对这些域名进行信息收集。
1.1. 域名注册信息
这里在查询的时候需要注意,有些大型企业或者某些企业可能会不让你查询这些信息,例如下面去查询百度的时候,就出现了违规域名。
https://whois.chinaz.com
而如果查询的是个人的域名则会出现,一些公司,而个人的情况下公司这里会显示注册人的名字拼音,包括一些其他的内容,这些就需要自己去看了。
当然这里还有很多可以查询这些信息的网站,这里就自己去尝试看看吧。
中国万网域名WHOIS信息查询地址:
https://whois.aliyun.com/西部数码域名wHOIS信息查询地址:
https://whois.west.cn/新网域名WHOIS信息查询地址:
https://whois.xinnet.com/纳网域名wHOIS信息查询地址:
http://whois.nawang.cn/中资源域名wHOIS信息查询地址:
https://www.zzy.cn/domain/whois.html三五互联域名wHOIS信息查询地址:
https://cp.35.com/chinese/whois.php新网互联域名wHOIS信息查询地址:
https://crm.dns.com.cn/show/domain/whois/index.do美橙互联域名wHOIS信息查询地址:
https://www.cndns.com/whois/index.aspx爱名网域名wHOIS信息查询地址:
https://www.22.cn/domain/
1.2. SEO信息收集
SEO能够展现出来的信息更多,具体的内容那些是自己需要的还需要自己去分辨,不单单可以查询公司类型的域名,也可以查询个人的域名。
https://seo.chinaz.com
1.3. 子域名收集
关于子域名是什么意思就不想介绍了,想必应该都知道。
1.3.1. 在线子域名收集
这里假设基于一个www.xxx.com
,这里还需要看看xxx.com
下除了www
还有哪些子域名,那么就可以使用爆破,这里就需要使用自己的平时收集的字典,当然,如果自己平常也没收集,那么可以使用工具或者一些网站来实现信息收集。
https://tool.chinaz.com/subdomain/
当然还有一些其他收集子域名的网站,例如下面这个网站,不单单可以收集子域名,还可以收集IP地址。
https://site.ip138.com/
如果自己想要去找查询子域名的网站,可以直接在浏览器中输入查询子域名。
当然还有一些是通过字典来爆破实现收集的。
https://scan.javasec.cn/
1.3.2. 子域名收集工具
收集工具,在GitHub
上有很多以及一些工具箱中都会含有子域名收集的工具,这里我也不想去找这些地址连接,在线的也够初学者使用的了,关于这些工具,可以在后面密码就能够接触到。
这里我就提供一个吧,自己去这个地址下载,同时别再回头问我说你给的工具有毒,你看看那个安全工具不会被报毒,服了…这也是我现在实在不敢提供直接下载好的工具,自己去连接下载吧。
https://www.webshell.cc/6384.html
下面几个下载连接自己去下载,自己去测试,GitHub
上面的项目都会有介绍,看不懂英文的自己使用翻译,同时很多软件都是需要java
环境和python
环境的,自行下载环境。
所有不确定的工具均放入虚拟机中运行,不要放物理机中,出现问题后果自负。
https://github.com/shmilylty/OneForAll
https://github.com/lijiejie/subDomainsBrute
还是一句话,子域名能不能爆破全,取决于字典大不大,GitHub上一搜一大堆字典,下面就是一个字典连接。
https://github.com/TheKingOfDuck/fuzzDicts
1.4. 域名备案信息
这里能够看到ICP备案是XXXX-1
,这里-1
就是说明这个备案下不单单只有这一个域名,还有其他的域名。
https://icp.chinaz.com
但是想要看该备案下还有那些域名发现要开VIP
,那么就没辙了。
1.5. ICP备案号查询
这里可以直接去官网查询,都是可以查询到的,同时点击详情后,能够看到相关的网站域名。
https://beian.miit.gov.cn/#/Integrated/recordQuery
1.6. SSL证书查询
这个能够查询到SSL
证书的状态。
https://myssl.com/
2. 收集真实IP
在测试过程中需要获取真实的IP
,如果获取到的是CDN
地址,是没什么意义的,比如你获取到的真实的IP,就可以直接测试那些端口开放了,同时针对这些端口所开放的服务,采取不同的手段来进行测试。
2.1. 超级ping
一般在下面IP
独立个数超过两个的话,基本上就有可能存在CDN
加速。
https://ping.chinaz.com/baidu.com
2.2. Ping
默认情况下你去ping一个地址的时候,返回的地址应该是差不多的,但是当变成很长一段的时候,大概率是经过跳转加速的,那么就可能存在CDN
。
2.3. CDN绕过
使用CDN
是需要花钱的,所以一般厂商都会在主站上实施CDN
,所以可以尝试找其他子域名,来绕过CDN
。同时绕CDN有时候是需要运气的,不是百分百能够绕过。
https://x.threatbook.com/v5/domain/wu1aoban.top
https://x.threatbook.cn/ ###微步在线
http://too1bar.netcraft.com/site_report?ur1=www.wu1aoban.top ###在线域名信息查询
http://viewdns.info/ ###DNS、IP等查询
https://too1s.ipip.net/cdn.php ###CDN查询IP
https://securitytrai1s.com/domain/wu1aoban.top/dns
3. 收集旁站或C段IP
有时候主站我们测试不了,我们就可以对旁站进行测试,由于某些大厂业务较多,可能会买很多的公网IP
,而且这些厂商在购买公网IP
的时候,不太可能会去说某一个网段买一个IP
,另外一个网段再买一个IP
的,基本上都是在一个网段中挑几个连续的或者直接买一个网段。
所以这时候就可以根据获取到的IP
地址进行旁站或C
段IP
的收集。
3.1. 旁站或C段
https://chapangzhan.com/
御剑工具集也可以队旁站进行测试,这些工具都可以通过工具箱等方式获取,这里公众号后台发送"御剑工具集"获取。公众号:剁椒鱼头没剁椒
3.2. 端口分析
端口: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 总结:未授权访问/爆破
4. 收集端口及服务
关于本部分内容,主要就是通过IP
地址获取到上面的端口,如何通过端口判断服务,通过服务的版本等等信息获取相关历史漏洞或者密码爆破等。
4.1. Nmap
Nmap
(网络映射器)是Gordon Lyon
最初编写的一种安全扫描器,用于发现计算机网络上的主机和服务,从而创建网络的“映射”。为了实现其目标,Nmap
将特定数据包发送到目标主机,然后分析响应Nmap
强大的网络工具,用于枚举和测试网络。
4.1.1. 主机发现
Nmap
主机发现过程是指网络主机的枚举,以收集有关它们的信息,以在渗透测试中构建攻击计划。
在主机发现过程中,Nmap
使用 Ping
等元素和内置脚本来查找操作系统、端口以及使用 TCP
和 UDP
协议运行的服务。如果指定,您可以启用 Nmap
脚本引擎,该引擎使用各种脚本来查找主机的漏洞。
Nmap
使用的主机发现过程利用原始 ICMP
数据包。
这里更多的功能我就不介绍了,可以直接去相应的手册中寻找即可。
nmap -PE -sn 10.1.1.199
常见参数:
-SL: List scan列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。
-sn: Ping scan只进行主机发现,不进行端口扫描。用的多。
-Pn∶将所有指定的主机视作开启的,跳过主机发现的过程。直接探测端口,通过端口探测结果判断主机是否存活
-PS/PA/PU/PY[port7ist]:使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。
#nmap -PS 192.168.2.0/24 #不指定端口的话会自动扫描常用端口(1000个),速度会慢。
-PE/PP/PM:使用ICMP echo,timestamp,and netmask 请求包发现主机。
-Po[protocol1ist]:使用IP协议包探测对方主机是否开启。
-n/-R : -n表示不进行DNS解析;-R表示总是进行DNS解析。
--dns-servers cserv1[, serv2],...>:指定DNS服务器。
--system-dns:指定使用系统的DNS服务器
--traceroute:追踪每个路由节点
例如这里可以扫描一下在192.168.3.1到100下有那些主机存活。
nmap -sn 192.168.3.1-100
4.1.2. 端口扫描
端口扫描是Nmap
的最基础的核心功能,用于确定目标主机的端口开放情况,默认情况下Nmap
会扫描1000
个最有可能开放的TCP
端口,Nmap
通过探测将端口划分为6个状态:
open:端口是开放的。
closed:端口是关闭的。
filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。
unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。
open|filtered:端口是开放的或被屏蔽。
closed|filtered :端口是关闭的或被屏蔽。
扫描方式分为3个状态:
开放扫描:会产生大量的审计数据,容易被对方发现,但其可靠性高;例如:TCP Connect类。 效率高
隐蔽扫描:能有效的避免入侵检测系统和防火墙的检测,但扫描使数据包容易被丢弃从而产生错误的探测信
息;例如:TCP FIN类。 效率低
半开放扫描:隐蔽性和可靠性介于前两者之间。例如:TCP SYN类。
常见参数:
-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
--scanflags <flags>: 定制TCP包的flags。
-sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
-sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。
-sO: 使用IP protocol 扫描确定目标机支持的协议类型。
-b <FTP relay host>: 使用FTP bounce scan扫描方式
-p <port ranges> 只扫描指定端口eg:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
-F 扫描比默认扫描更少的端口
--top-posts <number> 扫描<number>数量的最常见的端口
最基础的端口扫描,就是直接跟IP
,不带任何参数,说是不带,但是还是携带了默认参数,其他的使用方式自己去测试。
nmap IP地址
4.1.3. 版本探测
有时候我们希望可以知道正在运行什么邮件和域名服务器以及它们的版本。有一个精确的版本号对了解服务器有什么漏洞有巨大的帮助,在Nmap
中版本探测可以帮您获得该信息。
常见参数:
-sV: 指定让Nmap进行版本侦测
--version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
--version-light: 指定使用轻量侦测方式 (intensity 2)
--version-all: 尝试使用所有的probes进行侦测 (intensity 9)
--version-trace: 显示出详细的版本侦测过程信息。
nmap -sV IP地址
4.1.4. OS探测
Nmap使用TCP/IP
协议栈指纹来识别不同的操作系统和设备。在RFC
规范中,有些地方对TCP/IP
的实现并没有强制规定,由此不同的TCP/IP
方案中可能都有自己的特定方式。Nmap
主要是根据这些细节上的差异来判断操作系统的类型的。
这里我自己找设备没扫描出来,我就直接搞一张别人的图片。
nmap -O IP地址
5. 收集网站指纹
在渗透测试中,对目标服务器进行指纹识别是非常有必要的,因为只有识别出相应的web
容器或者CMS
,才能查看与其相关的漏洞,然后利用可用的漏洞进行相应的渗透测试。
5.1. 在线网站
https://www.yunsee.cn/ ##云悉
http://finger.tidesec.com/ ##潮汐
5.2. 工具类
御剑WEB扫描,当出现相关的CMS后就可以去百度搜索相关的CMS漏洞了。这里公众号后台发送"御剑工具集"获取。公众号:剁椒鱼头没剁椒
Wappalyzer
插件,是一款开发必备的网站技术嗅探工具,能够用来检测和分析当前网站的各种参数,比如平台架构、编程语言、网站环境、服务器配置、javascript
框架等。Wappalyzer
插件是一款功能强大、简单易操作的网站技术分析检测工具,能帮你对所访问网站上使用的技术一目了然。通过它,能够一键分析指定网站所采用的平台构架、统计工具、服务器配置、Web
框架、编程语言等参数。
作为开发者,当我们看到别人的网站有许多值得借鉴的地方时,也会很想探索一番,到底对方都使用了哪些技术配置。如果你是大神的话,可能很容易就能看出来,但对于许多普通人来说,借助第三方的网站技术分析工具,也能达到这个目的。
6. 收集敏感信息
由于发布网站时,服务器配置问题,导致目录能够在浏览器中打开,从而引起信息泄露,造成安全隐患。例如你在网站目录下放置1.txt
,而这个1.txt
中存放网站的密码,那么这样攻击者通过该手段这样就能够直接登录网站了。
https://zhuanlan.zhihu.com/p/110389472 ##参考链接
6.1. 目录信息收集
7kbstorm
,具体使用可以去GitHub
上看,其实不用说看界面也能看懂如何使用。
https://github.com/7kbstorm/7kbscan-WebPathBrute
6.2. 代码管理工具信息泄露
这里主要是出现在搭建网站的时候会出现源码泄露的情况,很多情况下我们都是对网站进行黑盒测试,而如果获取到源码后,那么漏洞不就相当于自己送过来的么。
6.2.1. Git源码泄露
Git
是一个开源的分布式版本控制系统,在执行git init
初始化目录的时候,会在当前目录下自动创建一个.git
目录,用来记录代码的变更记录等。发布代码的时候,如果没有把.git
这个目录删除,就直接发布到了服务器上,攻击者就可以通过它来恢复源代码。
https://github.com/lijiejie/GitHack
用法:
GitHack.py http://www.openssl.org/.git/
建议删除.git目录或者修改中间件配置进行对.git隐藏文件夹的访问。
6.2.2. SVN源码泄露
SVN
是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn
的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用‘导出’功能,而是直接复制代码文件夹到WEB
服务器上,这就使.svn
隐藏文件夹被暴露于外网环境,可以利用.svn/entries
文件,获取到服务器源码。
https://github.com/callmefeifei/SvnHack
用法:看官网介绍,主要我也没环境,有工具也无法测试。(借图)
python SvnHack.py -u http://trafficbonus.com/.svn/entries
建议删除web目录中所有.svn隐藏文件夹,开发人员在使用SVN时,严格使用导出功能,禁止直接复制代码。
7. 综合性信息收集
这里的收集就相对来说收集的跟全面,同时也是更多的都是采用网络,想要很好的进行信息收集,那么一定需要会fq,关于这技术自己想办法吧。
7.1. Google hack(高级搜索)
inurl: 用于查找含有该值的所有url网址网页。例:inurl:mail(可找一些免费邮箱)related::找出和该网址类似的网站,比如想知道和amazon.com类似的大型网络书店有哪些时输入amazon.com网址。例:related:amazon.comintext: 只搜索网页部分中包含的文字(也就是忽略了标题,URL等的文字).filetype: 搜索通过文件的后缀或者扩展名来搜索含有这类文件的网页intitle: 标题中存在关键字的网页allintitle: 搜索所有关键字构成标题的网页. 但是推荐不要使用link: 可以得到一个所有包含了某个指定URL的页面列表. 当我们使用link:URL提交查询的时候,Google会返回跟此URL做了链接的网站。例 [link:www.baidu.com],提交这个查询,我们将得到所有跟www.baidu.com这个网站做了链接的网站。(link是个单独的语 法,只能单独使用,且后面不能跟查询关键词,跟能跟URL)location: 当我们提交location进行Google新闻查询的时候,Google仅会返回你当前指定区的跟查询关键词相关的网页。例[ queen location:canada ],提交这个查询,Google会返回加拿大的跟查询关键词”queen”相匹配的网站。site: 搜索含有该域名的网页,google会限制尽在某个网站或者说域下面进行搜索。使用site进行站点搜索时,一般常见用法有:
site:ooxx.com filetype:xls # 支持组合搜索
site:xxx.com admin # 一般公司的后台系统都带有admin啊,login啊,内部系统啊之类的关键字
site:xxx.xxx login
site:xxx.xxx system
site:xxx.xxx 管理
site:xxx.xxx 登录
site:xxx.xxx 内部
例如搜索SQL
注入,那么SQL
注入最简单的判断就是有没有ID信息,那么这里就可以根据这个ID信息进行搜索。
inurl:.php?id= 公司
7.2. 黑暗搜索引擎
关于这些引擎的用法网站上都有详细的介绍,这里就不介绍了,直接就是给几个网站吧。
7.2.1. shodan
https://www.shodan.io/
参考语法:
hostname:搜索指定的主机或域名,例如 hostname:"google"
port:搜索指定的端口或服务,例如 port:"21"
country:搜索指定的国家,例如 country:"CN"
city:搜索指定的城市,例如 city:"Hefei"
org:搜索指定的组织或公司,例如 org:"google"
isp:搜索指定的ISP供应商,例如 isp:"China Telecom"
product:搜索指定的操作系统/软件/平台,例如 product:"Apache httpd"
version:搜索指定的软件版本,例如 version:"1.6.2"
geo:搜索指定的地理位置,参数为经纬度,例如 geo:"31.8639, 117.2808"
before/after:搜索指定收录时间前后的数据,格式为dd-mm-yy,例如 before:"11-11-15"
net:搜索指定的IP地址或子网,例如 net:"210.45.240.0/24"
7.2.2. FOFA
https://fofa.info/
语法都在界面中,可以自行去查找,不过需要注意免费的都查不了多少内容。
7.2.3. 钟馗之眼
同样这里也是有语法说明的,这里就不在赘述。
https://www.zoomeye.org/
7.3. ARL灯塔资产侦察系统
这里参考下面的文章即可。
ARL灯塔安装与使用
https://github.com/TophantTechnology/ARL/releases/tag/v2.6 ##下载地址
8. APP与小程序信息收集
关于这个两个方面,我在之前都已经有涉及写过,可以去合集中寻找即可,下面就是合集的地址。
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg3MDk0OTc1Nw==&action=getalbum&album_id=2916644331212488707#wechat_redirect