Web安全-信息收集
信息收集
在平常的渗透测试的过程中,最重要也是最首要的一步就是信息收集,在这个阶段我们要尽可能的收集目标组织的信息,所谓“知己知彼、百战不殆”,我们越是了解目标,渗透起来就越容易。
收集域名信息
- whois 查询
- whois是一个标准的互联网协议,可用于收集网络注册信息,域名的注册、IP地址等信息。可以用于查询域名是否已被注册以及注册域名的详细信息的数据库(域名所有人、域名注册商等)。在whois查询中,得到注册人的姓名和邮箱可以用于后期通过搜索引擎、社交网站爆破字典等,一般的小站点域名的所有人往往就是管理员。
- kali系统下whois默认安装:whois example.domain
- 爱站工具网:https://whois.aizhan.com/
- 站长之家:https://whois.chinaz.com
- VirusTotal:https://www.virustotal.com/
- 备案信息查询
- ICP备案查询网:http://www.beianbeian.com
- 天眼查:http://www.tianyancha.com
收集敏感信息
- Google搜索敏感信息
- GitHub搜索敏感信息:寻找相关敏感信息,如数据库连接信息、邮箱密码、uc-key、阿里的osskey,有时还可以找到泄露的源代码等
- 乌云等漏洞平台搜索历史漏洞信息
- 云盘搜索:https://www.chaonengsou.com/
子域名收集
- oneforall:https://github.com/shmilylty/OneForAll (需配置api接口,运行时翻墙效果最佳)
- Layer子域名挖掘机:https://www.webshell.cc/6384.html
- Sublist3r:https://github.com/aboul3la/Sublist3r
- subDomainBrute:https://github.com/lijiejie/subDomainsBrute
- 在线子域名枚举:https://phpinfo.me/domain/ 、https://dns.aizhan.com
- 空间搜索引擎:fofa(证书、title、icon等)、shodan、钟馗之眼、傻蛋
- 搜索引擎:Google、百度、bing等
- 第三方聚合应用枚举:https://dnsdumpster.com
常用端口信息
- 常用工具
- Nmap
- 御剑高速TCP端口扫描
- Masscan
- ZMap
- Goby
端口 | 服务 | 入侵方式 |
---|---|---|
21 | ftp/tftp/vsftpd文件传输协议 | 爆破/嗅探/溢出/后门/下载 |
22 | ssh远程连接 | 爆破/openssh漏洞 |
23 | Telnet远程连接 | 爆破/嗅探/弱口令 |
25 | SMTP邮件服务 | 邮件伪造 |
53 | DNS域名解析系统 | 域传送/劫持/缓存投毒/欺骗 |
67/68 | dhcp服务 | 劫持/欺骗 |
110 | pop3 | 爆破/嗅探 |
139 | Samba服务 | 爆破/未授权访问/远程命令执行 |
143 | Imap协议 | 爆破 |
161 | SNMP协议 | 爆破/搜集目标内网信息 |
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爆破/反弹shell |
2049 | Nfs服务 | 配置不当 |
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 | 未授权访问/爆破 |
- web服务类
Code
1 | tomcat--80/8080/8009 |
- 数据库类
Code
1 | Mysql--3306 |
- 大数据类
Code
1 | Hadoop--50010 |
- 文件共享
Code
1 | Ftp--21 |
- 远程访问
Code
1 | SSH--22 |
- 邮件服务
Code
1 | SMTP--25/465 |
- 其他服务
Code
1 | DNS--53 |
指纹识别
在web渗透过程中,Web指纹识别是信息收集环节中一个比较重要的步骤,通过一些开源的工具、平台或者手工检测CMS系统是公开的CMS程序还是二次开发至关重要,能准确的获取CMS类型、Web服务组件类型及版本信息可以帮助安全工程师快速有效的去验证已知漏洞。对目标渗透测试过程中,目标的cms是十分重要的信息,有了目标的cms,就可以利用相关bug进行测试,进行代码审计等。
- 在指纹识别的学习过程中,有很多开源的工具和指纹库,如fofa、WhatWeb、w11scan、WebEye、御剑Web指纹识别、WebRobo、椰树、轻量web指纹识别
- 在线网站查询:
- BugScaner:http://whatweb.bugscaner.com/look/
- 云悉指纹:http://www.yunsee.cn/finger.html
- WhatWeb:https://whatweb.net
- Wapplyzer插件
- 识别方式
识别方式 |
---|
网站特有文件:如/templets/default/style/dedecms.css—dedecms |
网站独有文件的md5:如favicon.ico,但是该文件可以被修改导致不准确。 |
网站文件命名规则 |
返回头的关键字 |
网页关键字:如/data/sessions/index.html——dedecms |
Url特征 |
Meta特征 |
Script特征 |
robots.txt |
网站路径特征 |
网站静态资源 |
爬虫网站目录信息 |
查找真实IP
对应给定的目标,例如一个网站,首先获得的是目标域名,下一步就是找到域名背后的服务器ip,由于当前网站大多使用CDN(内容分发网络)对网站访问流量进行分流和一定程度的攻击防护,所以找出CDN背后的服务器真实ip就是一种“刚需”了。
- 验证是否有CDN
- ping和nslookup(解析对应多个 IP 地址)
- 多地 ping 服务(IP 地址不唯一):
- 绕过 CDN 查找网站真实 IP
- 查询历史DNS记录
- 1、查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:
- https://dnsdb.io/zh-cn/ ###DNS查询
- https://x.threatbook.cn/ ###微步在线
- http://toolbar.netcraft.com/site_report?url= ###在线域名信息查询
- http://viewdns.info/ ###DNS、IP等查询
- https://tools.ipip.net/cdn.php ###CDN查询IP
- 2、利用SecurityTrails(https://securitytrails.com/ ) 平台,攻击者就可以精准的找到真实原始IP。他们只需在搜索字段中输入网站域名,然后按Enter键即可,这时“历史数据”就可以在左侧的菜单中找到。
- 1、查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:
- 查询子域名:毕竟 CDN 还是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。常用查找子域名方法有:微步在线(https://x.threatbook.cn/ )、 Dnsdb查询法。(https://dnsdb.io/zh-cn/ )、 Google 搜索(Google site:baidu.com -www就能查看除www外的子域名)、各种子域名扫描器。
- 搜索引擎:常见的有以前的钟馗之眼,shodan,fofa搜索。以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip。
- 利用SSL证书寻找真实原始IP:对于目标网站的SSL证书,要查找其使用的IPv4主机,只需将”SHA1 fingerprint”(签名证书的sha1值)粘贴到Censys IPv4主机搜索中,即可找到证书,使用此方法可以轻松找到配置错误的Web服务器。
- 利用HTTP标头寻找真实原始IP:借助SecurityTrails这样的平台,任何人都可以在茫茫的大数据搜索到自己的目标,甚至可以通过比较HTTP标头来查找到原始服务器。
- 利用网站返回的内容寻找真实原始IP:如果原始服务器IP也返回了网站的内容,那么可以在网上搜索大量的相关数据。浏览网站源代码,寻找独特的代码片段。在JavaScript中使用具有访问或标识符参数的第三方服务(例如Google Analytics,reCAPTCHA)是攻击者经常使用的方法。
- 使用国外主机解析域名。
- 国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。
- 网站漏洞查找:
- 1、目标敏感文件泄露,例如:phpinfo之类的探针、GitHub信息泄露等。
- 2、XSS盲打,命令执行反弹shell,SSRF等。
- 3、无论是用社工还是其他手段,拿到了目标网站管理员在CDN的账号,从而在从CDN的配置中找到网站的真实IP。
- 网站邮件订阅查找:RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP 了。
- 用 Zmap 扫全网:需要找 xiaix.me 网站的真实 IP,我们首先从 apnic 获取 IP 段,然后使用 Zmap 的 banner-grab 扫描出来 80 端口开放的主机进行 banner 抓取,最后在 http-req 中的 Host 写 xiaix.me。
- F5 LTM解码法:当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码真实ip也可被获取,例如:Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000,先把第一小节的十进制数即487098378取出来,然后将其转为十六进制数1d08880a,接着从后至前,以此取四位数出来,也就是0a.88.08.1d,最后依次把他们转为十进制数10.136.8.29,也就是最后的真实ip。
- 查询历史DNS记录
目录扫描
网站目录和敏感文件扫描是网站测试中最基本的手段之一。如果通过该方法发现了网站后台,可以尝试暴库、SQL注入等方式进行安全测试;如果发现敏感目录或敏感文件,能帮我们获取如php环境变量、robots.txt、网站指纹等信息;如果扫描出了一些上传的文件,我们甚至可能通过上传功能(一句话恶意代码)获取网站的权限。
- 目录扫描原理:通过请求返回的信息来判断当前目录或文件是否真实存在。网站后台扫描工具都是利用目录字典进行爆破扫描,字典越多,扫描到的结果也越多。
- 工具:
- dirsearch:https://github.com/maurosoria/dirsearch
- yjdirscan(御剑目录扫描专业版):https://github.com/foryujian/yjdirscan
- 7kbscan-WebPathBrute:https://github.com/7kbstorm/7kbscan-WebPathBrute
- Dirmap:https://github.com/H4ckForJob/dirmap
- DirBuster:Kali Linux提供的目录扫描工具
- webdirscan:https://github.com/TuuuNya/webdirscan
社会工程学
- 社工库
- 邮件钓鱼
- 客服
- 构造字典
- …..
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 KB-AT的博客!