一、旁注:
安全圈里,有一个经典的名字,叫做”旁注“。
那么,旁注是什么呢?
简单来说,旁注,从其字面含义来理解,意为:从旁注入。旁注,我们可以理解为在同一服务器上的多个站点。在进行web站点架设的时候,很多时候由于成本等方面的原因,我们会在一个服务器上架设多个web站点,然后通过主机头对网站进行区分,使得可以通过不同域名访问到不同的web站点。
拿IIS6.0举例来说,在架设web站点时,可以通过指定站点根目录,而后在主机头设置添加相应信息用来实现多个web站点,在同一端口下可正常访问。在公网上面很多服务器都是直接在某一盘符下面,设置为web站点的绝对目录,然后在目录下建立对应域名的文件夹用以区分。一台服务器上面可能存在上百个站点。
二、IP逆向查询:
简言之就是,通过ping域名获取对方的IP地址,然后在域名网站上搜索该地址服务器下有多少域名,从其他域名入手对目标主机进行渗透,
以百度为例:
通过逆向查询可以得到此IP下的所有域名:
通常大多数网站都部署了CDN(内容分发网络),这即意味着通过ping命令得到的IP地址为假地址,而不是域名所在服务器的真正的地址,而是镜像网站地址,如果想要得到真实服务器IP地址,这时就牵扯到CDN绕过。
三、目录越权
为什么会有目录越权:
通过IP逆向查询可知,同一台服务器下可能存在多个网站,每一个网站分布在各自的文件夹下,网站搭建人员对不同站点文件夹分配不同的权限,这就意味着,在服务器上,每个网站文件夹都被分配了单独的区别于其他用户的账户及权限,一个用户只能访问一处网站的文件夹,而没有权限对其它网站文件夹进行读写等操作。
如何避免目录越权(每个站一个账户):
目标主机上已部署多个网站,现已拿到其中一个网站的webshell,如果管理员没有做避免目录越权设置,那么整台服务器上的所有网站都被拿下了!!
通过木马文件可以服务器上的所有文件夹下载下来!!
访问网站文件夹XYCMS
给该网站分配唯一账户从而限制其他用户访问:
创建一个用户名密码为test1/test1的用户,该用户不属于任何组!!
将服务器上另外的网站分配给此用户:
通过木马进行访问:
从而实现攻击者无法目录越权!!
四、CDN绕过
判断网站是否使用了CDN:
CDN,百度百科的解释为内容分发网络。我们可以这么理解:互联网是非常大的,而我的站点在架设的时候全世界的人都有可能来访问,但是由于互联网非常大,如果想访问我们站点的用户与我们的站点延迟非常大,导致网站首页打开都非常慢,这会直接影响到用户的访问体验,并且因此而流失掉的潜在客户是非常不值得的。
以上问题在互联网发展史中是真实存在的,是需要解决的,于是就出现了CDN,我们可以把CDN看作是我们web站点的镜像服务器,我们在站点架设好之后,只需要将DNS指向修改一下,就可以将所有用户的访问指向到CDN。CDN一般在全国各地都有,提高了用户访问速度;并且由于攻击者没有真实IP地址,哪怕攻陷了CDN也不会对我们的服务器有任何影响,所以CDN解决了访问速度以及提高安全性这两个问题。
在我们进行渗透的时候,经常会会遇到CDN,通过ping 域名即可判断出是否是CDN。
那么,既然有了CDN,那我们就要放弃吗?当然不会,我们要想办法找到CDN后面的真实服务器IP地址。下面介绍几个找到服务器真实IP地址的方法:
1、大型站点一般除了www的子域之外还会有mail、oa、crm等其他二级域名。我们这个时候可以在google搜索下site:XXX.com –www 或者site:xxx.com mail 来搜索其他的二级域名。通过其他的二级域名DNS解析所对应的IP地址来判断其拥有的IP地址段。一般情况下, www有可能是托管在其他地方但是mail服务器一般是企业自行运营维护。在获得其IP地址段之后,可以在浏览器地址栏通过直接访问IP地址或是使用nmap来进行整段扫描确认其真实IP地址。
2、通过多地ping来确认其真实IP地址;web站点架设的目的就是提供给人访问,有时候考虑到访问速度的问题会使用CDN提高访问速度,对于这种站点,可通过多地ping的方式,来判断其web服务器的真实IP地址。
多地ping工具:
http://ping.chinaz.com/
http://ping.aizhan.com/
http://ce.cloud.360.cn/
绕过CDN机制:
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平台,攻击者就可以精准的找到真实原始IP。他们只需在搜索字段中输入网站域名,然后按Enter键即可,这时“历史数据”就可以在左侧的菜单中找到。
https://securitytrails.com/domain/oldboyedu.com/dns
除了过去的DNS记录,即使是当前的记录也可能泄漏原始服务器IP。例如,MX记录是一种常见的查找IP的方式。如果网站在与web相同的服务器和IP上托管自己的邮件服务器,那么原始服务器IP将在MX记录中。
3、观看ip变化
http://toolbar.netcraft.com/site_report?url=www.oldboyedu.com
4、查询子域名,一般情况下子域名不会使用CDN(CDN需要花钱)
(1)微步在线(https://x.threatbook.cn/)
(2)Dnsdb查询法(https://dnsdb.io/zh-cn/)
(3)Google 搜索:Google site:baidu.com -www就能查看除www外的子域名
(4)各种子域名扫描器
(5)网络空间引擎搜索法,常见的有以前的钟馗之眼,shodan,fofa搜索。
以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip。
(6)利用SSL证书寻找真实原始IP
oldboyedu.com证书的搜索查询参数为:parsed.names:oldboyedu.com
只显示有效证书的查询参数为:tags.raw:trusted
https://censys.io/certificates?q=parsed.names%3Aoldboyedu.com+and+tags.raw%3Atrusted
Censys将向你显示符合上述搜索条件的所有标准证书,以上这些证书是在扫描中找到的。
要逐个查看这些搜索结果,攻击者可以通过单击右侧的“Explore”,打开包含多个工具的下拉菜单。What's using this certificate?> IPv4 Hosts
5、通过国外的域名搜索网站
国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。
6、利用网站漏洞查找
1)目标敏感文件泄露,例如:phpinfo之类的探针、"info.php", "phpinfo.php", "test.php", "l.php"、GitHub信息泄露等。
2)查看漏洞扫描报警信息,手工造成页面报错;
3)XSS盲打,命令执行反弹shell,SSRF等。
4)无论是用社工还是其他手段,拿到了目标网站管理员在CDN的账号,从而在从CDN的配置中找到网站的真实IP。
7、网站邮件订阅查找
RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP 了。
8、:用 Zmap 扫全网
这个我没试过不知道...据说 Zmap 44分钟扫描全网?
好吧,还是稍微详细说下吧,比如要找 xiaix.me 网站的真实 IP,我们首先从 apnic 获取 IP 段,然后使用 Zmap 的 banner-grab 扫描出来 80 端口开放的主机进行 banner 抓取,最后在 http-req 中的 Host 写 xiaix.me。
大概就这些了吧,其他的什么像 DDoS 把 CDN 流量打光的这种就算了吧,最好还是别干扰到人家网站的正常运转吧。
www.crimeflare.com/cfs.html#box
9、F5 LTM解码法
当服务器使用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
10、通过信息报错或访问相关测试页面