用户视角下的信息探测

1.whois信息

首先,获得了域名。比如www.baidu.com。

域名由DNS服务器负责解析,并告知用户浏览器目标站点的IP地址。域名均由域名提供商对公众开放,可由个人或企业出资购买,获得域名的使用权。

whois是用来查询域名的IP以及所有者等信息的传输协议。

通过whois可以查出目标域名是否被注册以及注册域名所有人的详细信息。

whois信息中包含了注册商、注册人、注册人邮箱、域名注册日期、域名到期日期等信息。可以看到,其中的大量信息均为真实信息,并且这些信息对外公开。但某些情况下,域名所有人并不希望自己的注册信息被他人获取,如从事部分灰色产业的人员或者个人特定应用等。这种情况下,域名所有人可开启隐私保护功能,实现对个人信息的保护。

当然了,隐私保护是一项增殖业务,如果账户欠费或转让,当前域名状态就失去了保护,所以查询当前域名的历史whois信息,可能获取其中的有效内容。

whois信息的作用非常大,比如可利用其对应的注册信息进行反向查询,发现当前域名所有者其他的域名情况,在针对某些站点进行特征追踪时效果良好。

如利用注册人邮箱实现whois信息反查。

也许可以看到,相同的邮箱注册了多个域名。再尝试访问这些域名。

综上所述,针对要防护的目标站点,域名的whois信息作为攻击者最先获得的内容,可从中找到域名所有人的基础信息,如姓名、常用邮箱、电话等。以常用邮箱为例,攻击者有可能将邮箱信息放入社工库进行查询,以获得更广泛的信息,甚至可能发现此邮箱对应的活动内容以及当前邮箱在其他地点(很多站点支持邮箱作为用户名来注册)所用的密码等内容,这将对后续的攻击过程提供非常大的便利。

whois信息攻击方式

2.利用搜索引擎发现敏感信息

这个过程中极少与站点产生交互行为,也就有了很好的隐蔽措施。

通过搜索引擎的基本语法及搜索思路展开测试。

1.常用操作符

搜索引擎会支持多种类型的操作符,以方便用户对目标信息进行更精确的查找。这也就为攻击者提供了信息查询的方便。目前主流的搜索引擎的查询语法中,常用的操作符有以下几种:

操作符 含义
+ 联合查询
- 忽略某个字
* 通配符,可代表多个字母
. 单一通配符
“ ” 精准查询
~ 同义词

2.inurl

用于搜索在目标URL中出现关键字的信息。

想查询格式为php的管理页面,其关键字为“admin”“php”。这时,可利用空格方式进行连接,如“inurl php id”,从而实现匹配url中的所有关键字。

inurl admin这种一般就是找后台

所以要么通过隐藏后台,要么添加允许连接IP的白名单等手段来提升安全性。

3.title

关键字“tittle管理后台”、“tittle人员信息”

4.filetype

用于指定查询文件的后缀名,如bak、sql、ini、xls、htaccess等。

一般来说,这类信息涉及站点的备份信息、数据库信息、表格等内容。假设管理员没有及时删除,并且此信息恰好被搜索引擎收录,则会展示相应的结果。这类敏感信息会使攻击者更全面地了解目标站点的特征及有效内容。

5.site

site用于在指定网站内搜索有效信息,可直接使用“site:域名+关键字”来查找当前目标站点中指定的内容信息。

如site:www.baidu.com asddasads

6.cache

利用搜索引擎之前缓存的信息进行查询。利用搜索引擎之前缓存的信息进行查询。

7.daterange

使用daterange关键词指定搜索的日期。但此方法使用起来比较麻烦,并且目前主流的搜索引擎均都自带时间控制,可在搜索引擎的筛选栏中选择所需要的部分。

综合利用搜索引擎

1.使用缓存匿名浏览

利用缓存可以看到更新之前的页面,也可以匿名获取到网站服务器的数据拷贝(在此必须要选择只查看文本,不然仍会向服务器发送访问请求)。

cache:xxx.com/xxx.html

这样做的优点是:目标网站并没有真实的访问记录,只是在搜索引擎缓存的数据中进行查询。在某些特定场景,如APT攻击中,可能会有较大的用途。

2.获取特殊信息

网站上线后并没有将原有的备份文件或SQL文件删除,还存在于网站的目录中。这样会导致网站的某些重要的信息隐藏在某个页面的角落里,使用搜索引擎可以高效地查找这些信息,使用filetype:sql或者ini、bak、log等还可以查找网站的隐私文件。

site:XXX.cn fi letype:sql

.bak这类属于备份文件

site: xxx.com filetype:xls

“site powered by limbo cms” site:”xxx.com”

搜索引擎可帮助更多用户了解及访问网站,但是其中的信息也会被搜索引擎收录。

作为系统管理员的话,也可以定期搜索网站特定内容,对重要信息进行处理,避免被攻击者发现。

3.后台管理页面、目录列表或特殊页面

后台管理页面

如果攻击者发现后台登录页面,第一反应就是采取爆破等手段进行攻击,或者在前台利用SQL注入、XSS存储跨站等手段获取管理员账号信息后进行登录。因此,后台管理页面应尽量不被攻击者发现。

目录列表

正常情况下,访问一个网站会发起一个HTTP请求,Web服务器会根据请求中的URL路径来响应对应的页面。因此,用户每一次访问的页面应该只是服务器Web目录的某个页面或文件(如PDF等格式)。但是,如果Web服务器存在目录列举的问题,可导致用户端直接观察到当前目录的所有文件及结构,这样会极大暴露目标站点的信息。

intitle:index of "server at"

列目录在文件服务器中非常常见,可方便用户快速寻找所需要的文件并下载。但针对普通站点来说,如果可看到站点的相关的目录,攻击者就可快速了解站点结构,并且可对其中的重要文件或页面进行下载,

专项搜索用法汇总

Zoome eye搜索

3.真实IP地址发现手段

出现域名与真实IP不对应的情况。这主要是Web站点为了提高用户的访问速度,使用了CDN(内容分发网络)技术。

CDN的特点是可以将内容在本地展示,并配合CDN的网络在全国各地做内容缓存分发。这样,用户直接访问的域名对应的IP地址为CDN地址,而非目标Web站点的真实地址。当初步获取到目标IP地址后,可利用目前互联网上的CDN地址段查询接口确认当前访问的地址是否为CDN。

获取目标Web系统的真实IP地址经常利用的方式如下。

1.查找分站的IP

由于CDN为收费服务,部分网站的某些分站由于访问量较小,因此选择仅在主站上配置CDN服务器,而分站并不配置。因此,可以遍历目标站点的分站地址,并找到分站地址对应的IP,再通过扫描C段的80端口,从而找到主站的IP地址。

C段是指IPv4地址中的第三个部分,通常用于标识特定的网络。例如,在地址192.168.0.0/24中,C段是0,表示这个地址是一个属于C段的地址。子网掩码是24

之所以是C段扫描,是因为范围更小,就2^8=256-2=254个主机地址,更具有针对性,资源消耗也少

如果此网站有邮件服务器且没有使用公共SMTP服务器,也可以尝试DNS的MX记录,很多时候也会有相应收获。

2.尝试服务器主动发起联系

让服务器主动联系,就可以轻松知道服务器的IP地址。比如,服务器发送注册或者验证码邮件,在邮件头就可以知道IP地址。但目前有很多第三方验证码及验证邮件发送平台,因此需对这种方式下得到的地址进行后续人工判断,确认地址归属。

3.ping xxx

很多人喜欢使用xxx.com(裸域)访问网站,所以部分网站为了给用户良好的体验并且不让搜索引擎认为域名已被劫持,通常都是给xxx.com(裸域)使用301重定向至www.xxx.com。xxx.com与www.xxx.com是不同的两条解析记录,很可能存在xxx.com没有使用CDN的情况。

C:\Users\67538>ping www.baidu.com

正在 Ping www.a.shifen.com [36.152.44.96] 具有 32 字节的数据:
来自 36.152.44.96 的回复: 字节=32 时间=34ms TTL=56
来自 36.152.44.96 的回复: 字节=32 时间=32ms TTL=56

C:\Users\67538>ping baidu.com

正在 Ping baidu.com [39.156.66.10] 具有 32 字节的数据:
来自 39.156.66.10 的回复: 字节=32 时间=51ms TTL=53
来自 39.156.66.10 的回复: 字节=32 时间=51ms TTL=53

可看到直接ping www.baidu.com返回的是www.a.shifen.com,这是百度的一个别名,用以提升各地用户的访问速度。

4.phpinfo

phpinfo包含了当前服务器的真实信息

5.XSS

如果目标站点存在存储型XSS攻击漏洞,那么就可利用XSS漏洞实现针对真实IP地址的发现。在实际情况中,如果管理员打开特殊构造的页面,且管理员与服务器在同一个网段,再结合扫描即可找到真实IP。

但JavaScript本身并没有获取本地IP地址的能力,一般需要第三方软件来完成。比如,客户端安装了Java环境(JRE),那么XSS就可以通过调用Java Applet的接口获取客户端的本地IP地址。在XSS攻击框架“Attack API”中,就有一个获取本地IP地址的API。

这样做的好处在于可以由服务器主动响应攻击代码,并自动发送真实IP地址。但是使用环境较为苛刻,必须要求有存储型XSS漏洞,且漏洞会被管理员或者内部人员触发。

当然了,既然存储型XSS漏洞存在的话,一般是直接利用存储型XSS漏洞获取管理员权限并寻找后台地址进行登录尝试

知道管理员的账号和密码的前提下,获取到cookie,然后放到请求头中,发给服务器。

6.全网扫描

利用分布式扫描工具进行全网扫描,并进行特征分析及提取,进而确定目标的真实地址。

1)找到开启了80端口的主机。

2)找到host为www.xxx.com的IP。

3)再扫一次抓取特征,通过去除错误页面、空页面等方法得到真实IP。

在这个过程中,会进行大量的端口扫描,因此对带宽占用非常大,并且大量发包在现有网络中会被认为攻击行为。但这是一种有效寻找目标真实IP的方法。

7.CDN服务商

如果知道目标站点的CND服务商,那么可想办法进入CDN服务商的管理后台得到真实IP,如利用管理员的弱密码等。通常的方式是利用管理员的公共信息,并在社工库中进行查询,以寻找是否有弱密码等。这种方式的成功率不高,但也确实存在此类场景。

方法总结

获取真实ip方法总结

4.真实物理地址

国内大量的IP地址只能分配到一个物理社区或单位,并在网关处利用私网地址来通过当前的物理地址进行网络访问。

正是基于这种状况,目前真实地理位置查询仅能追查到公网IP地址的分配点上,也就是共用同一个IP地址的社区或单位。

下面提供了一些目前有效的查询网址:

·http://ip.chacuo.net

·http://www.ipip.net

·http://ip.chinaz.com

·http://ip.qq.com/cgi-bin

·http://iptogeo.sinaapp.com

·http://ip.taobao.com/index.php

·http://ip.taobao.com/service/getIpInfo.php

·http://int.dpool.sina.com.cn/iplookup/iplookup.php

当然弄了,实际攻击过程中,发现真实物理地址并没有太多价值。如果要跑到服务器所在地,当地连WIFI或社工手段的话,也不是不行。

5.目标端口开放情况

这里所说的端口是指TCP/IP协议支持的0~65535端口,可采用TCP UDP方式来传输数据。

在Web应用中,HTTP协议默认利用TCP80端口,HTTPS协议默认利用443端口进行数据传输。

一般情况下,常利用NMAP进行端口扫描。目前也有像ZMAP等新兴工具,metaspoilt也可用于端口扫描,大量漏洞扫描工具均有此类功能。

NMAP比较常用,以NMAP为例

利用NMAP可扫描目标的端口开放情况、对应版本、操作系统等多种信息。NMAP可扫描目标站点的端口开放情况及对应业务,

1.获取远程主机的系统类型及开放端口

Nmap -sS -P0 -sV -O <target>

这里的<target>可以是单一IP或主机名、域名、子网。其中参数的意义为:

·-sS:进行TCP SYN扫描(又称半连接扫描)。

·-P0:允许用户关闭ICMP pings。

·-sV:打开系统版本检测。

·-O:尝试识别远程操作系统。

除此之外,还可以添加其他选项,实现信息的多方面输出:

·-A:同时打开操作系统指纹和版本检测。

·-v:详细输出扫描情况。

2.列出开放了指定端口的主机列表

nmap -sT -p 80 -oG – 192.168.1.* | grep open

3.在局域网络寻找所有在线主机

nmap -sP 192.168.0.*

也可使用以下命令:

nmap -sP 192.168.0.0/24

这里的*(星号)表示该位为1~254,/24代表子网掩码。

4.Ping指定范围内的IP地址

nmap -sP 192.168.1.100-254

5.在某段子网上查找未占用的IP

nmap -T4 -sP 192.168.2.0/24 && egrep "00:00:00:00:00:00" /proc/net/arp

6.使用诱饵扫描方法来扫描主机端口

nmap –sS 192.168.0.10 –D 192.168.0.2

常用端口扫描汇总

6.目标版本特征发现

中间件版本等信息对攻击者来说非常重要,攻击者会利用获取的目标中间件信息来寻找合适的渗透手段。

通常,攻击者在观察目标时,会利用非正常手段导致目标报错,诱使目标返回错误页面。中间件默认的错误页面中多包含中间版版本等信息。

对用户而言,他们没有必要知道当前服务器的版本信息、报错等内容。因此不推荐输出这些内容。建议隐藏这类中间版本,报错直接给个404就完事了。

多数情况下,运维人员会修改默认的错误页面,或者强制访问错误后直接跳转到首页或断开当前连接。这样就可以防止攻击者通过观察报错页面得到站点的基本信息。这种情况下,可利用扫描工具(如NMAP)进行尝试,也可发现目标的一些中间件特征。

其原理就是获取目标服务器的响应包头,并针对其中的server字段信息进行判断。大多数中间件都会在server字段中填写当前服务器的版本内容。

7.web漏扫工具

使用Web漏洞扫描工具的好处在于其检查速度及范围远远高于人工检查,并且可同时针对多个站点进行扫描,对效率提升有极大帮助。

其缺点在于,Web漏洞扫描器并不能完全发现所有漏洞,对很多隐藏很深的漏洞会出现误报及漏报的情况。因此,Web扫描器并非万能。攻击者通常先利用Web漏洞扫描器进行初步、全面的探测,之后再利用人工方式针对疑似点进行进一步渗透尝试。

综上,Web漏洞扫描工具的用法非常简单,输入目标地址、配置相应参数后即可自动化开展扫描。针对Web扫描器的扫描行为,可通过识别http头的server信息进行阻断,或者对各类漏洞测试语句进行过滤。而避免漏洞出现是最根本的方式。

8.分站信息查找

分站有助于清晰地划分业务逻辑及功能。很多情况下,由于主站访问量很大并且非常重要,运维人员会投入大量精力去管理主站,这在一定程度上会忽视分站安全

在各大互联网公司的SRC(应急响应中心)或漏洞提交平台,可看到其中的绝大部分漏洞均为分站下的漏洞情况。

攻击者在面对对主站渗透攻击过程受阻时,会考虑针对分站的漏洞开展攻击,实现迂回攻击的效果。因此,分站极易成为网站整体安全的短板。

下面是分站寻找方式的总结

大量分站由于没有收录而无法被搜索引擎获取。如果需要获取详细信息,可利用各类子域名爆破类等工具进行自动化爆破尝试

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2023-2025 是羽泪云诶
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信