可能很多人都不理解为什么信息收集与web渗透有什么关系,其实信息收集在渗透过程中起到了很重要的作用。古人云知己知彼方能百战不殆,在进行真实的渗透过程中,首先要做的就是提前收集攻击目标的信息,通过对信息的收集分析,从而确定攻击方向、攻击范围以及攻击手段等等等等。在真实攻防过程中,做好信息收集工作,甚至能达到事半功倍的效果。
此外,由于笔者非网络安全科班出生,笔者所学未成体系,本文内容结合购课自学内容以及实战参与网络攻防演习的经历来写的,对相关术语理解表述有误等情况难免发生,望各位读者海涵指正。
收集内容
信息资产
笔者将web渗透过程中收集到如下的内容合称为信息资产
- 网站域名
- 网站子域名信息
- 目标网站信息
- 目标网站真实IP
- 目标网站开放端口
- 目标网站中间件(web容器)信息(如apache等)
- 网站目录结构
- 服务器相关信息
- 网站指纹
- 传输协议,通用漏洞
首先,我们来说网站域名信息,目标站的主域名在攻防过程中应该是确定的。其实从域名中可以获得很多有用的信息,例如网站的拥有者是谁?甚至可以查出网站所有者的邮箱,然后再通过其他途径可以查询到运营者的相关信息,进而实施我们经常听到的一种攻击手段——“社工攻击”。
其次,网站子域名的收集也及其重要,在真实的业务环境下,目标各站直接都有想不到的联系!主站的攻击难度高的情况下,选择攻击子域名下的网站没准就能得到不少的收获,甚至在拿下子网站的情况下做到攻陷全网,拿下攻防的全部分数而让对手找不到北!
另外,目标网站的真实IP可能会被隐藏,最常见的例如采用CDN技术,如www.t00ls.net这个网站,打开cmd窗口ping一下,你会发现ping的目标网址并非tools网站,这是由于网站采用了CDN技术,要找到真正的IP还得下一番功夫。
此外,通过一些工具可以判断网站所用的web中间件(或者叫web容器),确定网站所用的web容器及其版本,然后在去搜集该版本所存在的漏洞也不失为一个方向。
最后,收集网站的目录结构也十分重要,网站的目录结构有利于后期攻击过程找到渗透点。
人员信息
- whois信息、姓名等
说一千道一万,网站最大的bug还是人!人员的误操作往往是形成网站被攻击的主要原因。这些网站的所属人员具有较高的权限,通过分析其上网行为,以及日常行为,可以指定针对性极强的社工攻击,例如投放钓鱼邮件等,听所在阿里的攻防演习中,还有一种最无解的攻击方式,那就是拉电闸,当然笔者作为外围人员只能看到其中的热闹,看到阿里应急方案的强悍而已。
此外,在攻防过程中,由于相关人员造成的失误有很多,这主要是由于相关人员安全意识淡薄,而这些成员甚至包括网站的运行维护成员!同时也说明,安全意识也是十分重要的一环!
信息收集方法
基础信息收集
笔者将一些不是很难获取的信息称之为基础信息,或者表层信息、公开信息,如一个目标网站的注册者,网站IP以及DNS解析等,这些信息获取难度不是很高,基本就是只要会搜索技巧的人都能找出想要的情报。
whois查询
要知道网站注册商、注册人等,利用whois是最好的方式,找到网站的域名后,可通过各whois网站进行查询,whois查询站很多,下文就简单罗列几个笔者觉得还行的。
- 站长之家:http://whois.chinaz.com/
- 中国万网:https://whois.aliyun.com/
- 国外whois:https://who.is/
在输入域名后,网站会详细的显示网站的注册商、注册人、邮箱、DNS、注册人联系电话等等,如果其中一个网站查不到,可以换一个网站查询。
网站备案查询
在我国,网站所有者都需要向国家申请备案,如果需要查询企业备案信息如(单位名称、备案编号、网站负责人、电子邮箱、联系电话、法人等)可以在以下几个网站进行查询
- 天眼查: https://www.tianyancha.com/
- ICP备案查询网:http://www.beianbeian.com/
- 爱站备案查询:https://icp.aizhan.com/
- 域名助手备案信息查询: http://cha.fute.com/index
注意,这两部分并非是独立的,在搜集过程中往往是结合使用。此外,在搜索过程中,注意搜索技巧,拓宽搜索渠道和搜索方式,例如可以通过不断更换搜索关键词的方式获取更多的信息等,这些都需要收集者要有灵活的思维和处理方式。
网站信息收集
这里主要收集的信息包括网站的子域名、隐藏域名,我们常常将这些东西称之为“资产”。
子域名收集
为什么要搜集网站的子域名?在收集之前,要明确,子域名中通常包含了办公系统、邮件系统、论坛、商城甚至是网站后台等资产。正如前文所说,收集子域名能够扩大测试范围,增加渗透点和渗透几率。
收集子域名前,先找到目标站点,在官网中可能找到相关资产,例如读者随便进入一个学校网站,一般在网站的底部都会有一些软连接。
总结来说,查找目标域名信息的方式有以下几种
- FOFA:输入
itle="公司名称"
- 百度:输入
intitle=公司名称
- google :输入
intitle=公司名称
- 站长之家:直接搜索名称或者网站域名即可,http://tool.chinaz.com/
- 钟馗之眼:使用
site=域名
即可,https://www.zoomeye.org/
找到主站可利用以下几种在线的方式查询子域名
- https://phpinfo.me/domain/
- https://www.t1h2ua.cn/tools/
- IP138查询子域名https://site.ip138.com/moonsec.com/domain.htm
- 使用Hackertarget查询:https://hackertarget.com/find-dns-host-records/
- 360测绘空间:https://quake.360.cn/,用法——
domain:".freebuf.com"
当然,可以以使用相关脚本,如
- SubDomainBrute
- Sublist3r
- OneForALL
- WyDomain
- FuzzDomain
此外,很多时候访问资产IP得到401、403、404、500的响应,但是域名请求却能访问正常的业务系统,这是因为大多数都是需要帮等host才能正常访问,这时我们就可以通过域名加资产IP段的方式进行捆绑碰撞,可能有意外收获。详细请看:https://mp.weixin.qq.com/s/fuASZODw1rLvgT7GySMC8Q
如果需要查询dns,可是使用
端口扫描
再确认目标大致的IP段后,就需要对IP的开放端口进行探测。为什么要探测端口呢?因为端口和对外的服务是绑定的,就相当于去办事大厅办事,开放的端口会各司其职,遇到特殊情况窗口会增加或者减少,即对外的服务会增加或者减少。
端口扫描可以使用如下几种工具:
- msscan
- 御剑
- nmap
当然还可以使用在线端口检测的方式,嘿嘿,作为菜鸟,在线的方式是一个隐藏自身ip的好办法
通过扫描,得到端口数据到底有啥用?要知道有啥用,就得先知道端口对应的服务。
- web类端口
- 80
- 80-89
- 8000-9090
- 数据库类端口
- 1433 MSSQL
- 1521 Oracle
- 3306 MySQL
- 5432 PostgreSQL
- 特殊服务类端口
- 443 SSL网页浏览端口,主要用于HTTPS服务
- 873 Rsync服务,该服务存在未授权访问漏洞
- 5984 CouchDB,同样存在未授权访问漏洞
- 6379 redis未授权漏洞
- 7001、7002 WebLogic弱口令,反序列
- 9200,9300 elasticsearch 参考WooYun: 多玩某服务器ElasticSearch命令执行漏洞
- 11211 memcache未授权访问
- 27017,27018 Mongodb未授权访问
- 50000 SAP命令执行
- 50070,50030 hadoop默认端口未授权访问
而我们常常关注的端口有,也可以查看https://www.cnblogs.com/xunta/p/10995230.html的博客
- 21 ftp
- 22 ssh
- 23 Telent
- 2601,2604 zebra路由,默认密码维zebra
- 3389 远程桌面
常见的端口及其攻击方法见下表:
端☐号 | 服务 | 攻击方法 |
---|---|---|
21/22/69 | fp/ttp文件传输协议 | 爆破嗅探溢出后门 |
22 | ssh远程连接 | 爆破OpenSSH ; 28个退格 |
23 | telnet远程连接 1 | 爆破嗅探 |
25 | smtp邮件服务 | 邮件伪造 |
53 | DNS域名系统 | DNS区域传输DNS劫持DNS缓 存投毒DNS欺骗深度利用:利 用DNS隧道技术刺透防火墙 |
67/68 | dhcp | 劫持欺骗 |
110 | pop3 | 爆破 |
139 | samba | 爆破未授权访问远程代码执行 |
143 | imap | 爆破 |
161 | snmp | 爆破 |
389 | Idap | 注入攻击未授权访问 |
512/513/514 | linuxr | 直接使用rlogin |
873 | rsync | 未授权访问 |
1080 | socket | 爆破:进行内网渗透 |
1352 | lotus | 爆破:弱☐令信息泄漏源代码 |
1433 | mssql | 爆破:使用系统用户登录注入攻 击 |
1521 | oracle | 爆破: TNS注入攻击 |
2049 | nfs | 配置不当 |
2181 | zookeeper | 未授权访问 |
3306 | mysql | 爆破拒绝服务注入 |
3389 | rdp | 爆破Shift后门 |
4848 | glassfish | 爆破:控制台弱☐令认证绕过 |
5000 | sybase/DB2 | 爆破注入 |
5432 | postgresql | 缓冲区溢出注入攻击爆破:弱☐ 令 |
5632 | pcanywhere | 拒绝服务代码执行 |
5900 | vnc | 爆破:弱☐令认证绕过 |
6379 | redis | 未授权访问爆破:弱☐令 |
7001 | weblogic | Java反序列化控制台弱☐令控制 台部署webshell |
8069 | zabbix | 远程命令执行 |
8080-8090 | web | 常见web攻击控制台爆破对应服 务器版本漏洞 |
9090 | websphere控制台 | 爆破:控制台弱☐令Java反序例 |
92/93 | elasticsearch | 远程代码执行 |
11211 | memcacache | 未授权访问 爆破未授权访向 水游费全类验强 |
27017 | mongodb | 爆破未授权访问 |
真实IP查找
如果读者需要查找真实的服务器,那么就必须要获取真实ip,然后再根据真实IP继续查询旁站。很多时候,主站虽然使用了CDN技术,但是子域名可能没有做CDN,当主站和子域名都在一个ip段中,那么也通过子域名的真实ip来确定主站ip。
可以使用多地ping以确认是否使用CDN技术,某些在线网站提供了多地ping的服务
该网站的历史DNS解析记录有可能会暴露真实IP,这不失为一种快速查找真实IP的方式,但是并不是所有的网站都能查到,可以使用
- DNSDB:https://dnsdb.io/zh-cn/
- 微同步在线:https://x.threatbook.cn/
- https://tools.ipip.net/cdn.php
- https://viewdns.info/ 该网站不需要登陆,唯一确定就是英文页面,不大友好
此外,如果网站存在phpinfo泄露,可以在phpinfo中的SERVER_ADDR或_SERVER[“SERVER_ADDR"]找到真实ip
也可以通过绕过CDN的方式,可参考https://www.cnblogs.com/qiudabai/p/9763739.html
旁站和C段
为什么要收集旁站?因为旁站往往存在业务功能站点,攻防过程中可以先收集已有IP的旁站,再探测C段,确认C段目标后,再在C段的基础上收集一次旁站。什么是C站?什么是旁站?可参考https://www.cnblogs.com/renhaoblog/p/13026361.html
查询旁站的网站有
- http://stool.chinaz.com/same
- https://chapangzhan.com/
- https://blog.csdn.net/qq_36119192/article/details/84029809
- FOFA
- https://c.webscan.cc/
读者须知:
本文所记知识点,主要为暗月web培训课中所提及知识点,文中有对相关知识点的理解,但更多是对课堂内容的记录,如果本文有误请以你的版本为准,同时欢迎各位读者点评指正。
声明:请读者遵守相关法律,严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 网络不是法外之地,如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 。