web渗透信息收集


一.了解web结构

1:网站是安装在电脑上的应用程序,它有操作系统,应用程序和服务器例如wamp包含的  web服务器:Apache   数据库:MySQL  编程语言:php

2:网站的访问:用户通过url访问,dns服务器将域名解析为ip地址,ip地址访问服务器内容(数据库,服务器,应用程序),最终将结果反馈到用户的浏览器上。数据库包括要调用的数据,并存储在Web服务器上,这台服务器有真实的IP地址,每个人都能访问、Ping通它。每次页面请求或运行程序时,Web应用程序会在服务器上执行,而不是在客户的机器上。

3:如何入侵一个网站:入侵安装在计算机上的应用程序称为Web应用渗透测试,入侵带操作系统的计算机和应用程序称为服务端攻击,入侵人称为社会工程学攻击。拿到一个网站,明确到渗透目标,不要拿到目标就开始使用各种工具,而是应尽可能多的去获取该网站的信息,收集到的信息越多,越容易找到漏洞。

主动信息收集:通过直接访问、扫描网站,这种流量将流经网站

被动信息收集:利用第三方的服务对目标进行访问了解,如Google搜索、Shodan搜索等

4:常见的信息收集:

ip地址信息:服务,端口,协议,cdn

域名信息:邮箱,联系人,地址,电脑

技术使用:框架,服务器,数据库,编程语言

在同一台服务器的其他网站\旁站

DNS记录

文件,子域,C段,目录

 

二.域名信息收集

1:域名查询

域名系统:DNS(domain name system)是互联网的一项服务,它作为一个将域名和ip地址相互映射的分布式数据库。将域名转换为ip地址的系统。

域名解析:举一个例子,eastmount.org作为一个域名就和IP地址198.35.26.96相对应。DNS就像是一个自动的电话号码簿,我们可以直接拨打198.35.26.96的名字eastmount.org来代替电话号码(IP地址)。DNS在我们直接调用网站的名字以后就会将像eastmount.org一样便于人类使用的名字转化成像198.35.26.96一样便于机器识别的IP地址。再如51cto.com域名,edu.51cto.com和www.51cto.com是该域名对应的子域名,而edu(教育网)和www(万维网)是对应的主机名。

2:whois查询

Whois是用来查询域名的IP以及所有者等信息的传输协议。简单说,Whois就是一个用来查询域名是否已经被注册,以及注册域名信息的数据库(如域名所有人、域名注册商、注册商邮箱等)。不同的域名后缀需要到不同的whois数据库查询。

Whois协议基本内容是:先向服务器的TCP端口43建立一个连接,发送查询关键字并加上回车换行,然后接收服务器的查询结果。

通过Whois查询可以获得域名注册者邮箱地址等信息,一般情况下对于中小型网站域名注册者就是网站管理员,利用搜索引擎对Whois查询到的信息进行搜索,获取更多域名注册者的个人信息。

whois查询方法:

(1)web接口查询:

常见的信息收集网站包括:

  • Whois站长之家:http://whois.chinaz.com/
  • 微步在线:https://x.threatbook.cn/
  • 阿里云中国万网:https://whois.aliyun.com/
  • Whois Lookup查找目标网站所有者信息:http://whois.domaintools.com/
  • Netcraft Site Report显示目标网站使用的技术:http://toolbar.netcraft.com/site_report?url=
  • Robtex DNS查询显示关于目标网站的全面的DNS信息:https://www.robtex.com/
  • 全球Whois查询:https://www.whois365.com/cn/
  • 站长工具爱站查询:https://whois.aizhan.com/
  • 爱站网ping检测\IP反查域:https://dns.aizhan.com/
  • DNS服务器解析:http://tool.chinaz.com/nslookup
  • 多地ping 检查dns是否存在:http://ping.chinaz.com/ping.chinaz.com
  • 同ip查旁站:http://s.tool.chinaz.com/same

通过不同的查询系统,收集到的信息不同,尽可能收集到多的信息为后面的渗透做准备。

3.备案信息查询

ICP备案是指网络内容提供商(Internet Content Provider),《互联网信息服务管理办法》指出需要对网站进行备案,未取得许可不得从事互联网信息服务。

ICP查询网站:

  • https://www.beian88.com/
  • http://beian.miit.gov.cn/publish/query/indexFirst.action
  • https://www.tianyancha.com/
  • http://www.beianbeian.com/

 

三.web站点信息收集

1.cms指纹识别

在渗透测试中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的Web容器或者CMS(内容管理系统),才能查找与其相关的漏洞,然后才能进行相应的渗透操作。CMS又称整站系统。常见的CMS有:WordPress、Dedecms(织梦)、Discuz、PhpWeb、PhpWind、Dvbbs、PhpCMS、ECShop、、SiteWeaver、AspCMS、帝国、Z-Blog等。

CMS又称为整站系统或文章系统,用于网站内容管理。用户只需要下载对应的CMS软件包,就能部署搭建,并直接利用CMS。但是各种CMS都具有其独特的结构命名规则和特定的文件内容,因此可以利用这些内容来获取CMS站点的具体软件CMS与版本。

(1):在线识别

  • BugScaner:http://whatweb.bugscaner.com/look/
  • 云悉指纹:http://www.yunsee.cn/finger.html
  • WhatWeb:https://whatweb.net/
  • BGP:he.bgp.net

(2):本地工具

  • 御剑Web指纹识别程序
  • 大禹CMS识别程序(https://github.com/Ms0x0/Dayu)

2.cms漏洞查询

对于查询到的cms,可以到漏洞平台搜索该cms的漏洞

3.敏感目录信息

针对目标Web目录结构和敏感隐藏文件探测是非常重要的,在探测过程中很可能会探测到后台页面、上传页面、数据库文件,甚至是网站源代码文件等。补充谢公子大佬的内容,扫描网站目录结构可以看看是否可以遍历目录,或者敏感文件泄漏,包括:

  • 后台目录:弱口令,万能密码,爆破
  • 安装包:获取数据库信息,甚至是网站源码
  • 上传目录:截断、上传图片马等
  • mysql管理接口:弱口令、爆破,万能密码,然后脱裤,甚至是拿到shell
  • 安装页面 :可以二次安装进而绕过
  • phpinfo:会把你配置的各种信息暴露出来
  • 编辑器:fck、ke等
  • iis短文件利用:条件比较苛刻 windows、apache等

常见的探测工具包括:

  • 御剑后台扫描工具
  • wwwscan命令行工具
  • dirb命令工具
  • dirbuster扫描工具
  • dirmap扫描工具
  • dirsearch扫描工具

文件robots.txt

同时,提到网站敏感目录我们就不得不提robots.txt文件。robots.txt文件是专门针对搜索引擎机器人robot 编写的一个纯文本文件。我们可以在这个文件中指定网站中不想被robot访问的目录。从而让我们网站的部分或全部内容不被搜索引擎收录,或者让搜索引擎只收录指定的内容。

因此可以利用robots.txt让Google的机器人访问不了我们网站上的重要文件,Google Hack的威胁也就不存在了。假如编写的robots.txt文件内容如下,其中“Disallow”参数后面的是禁止robot收录部分的路径,例如我们要让robot禁止收录网站目录下的“data”文件夹,只需要在Disallow参数后面加上 /data/ 即可。如果想增加其他目录,只需按此格式继续添加。文件编写完成后将其上传到网站的根目录,就可以让网站远离Google Hack。

然而,虽然robots文件目的是让搜索蜘蛛不爬取想要保护的页面,但是如果我们知道了robots文件的内容的话,我们就可以知道目标网站哪些文件夹不让访问,从侧面说明这些文件夹是很重要。

4.WordPress测试

WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架构属于自己的网站,也可以把WordPress当作一个内容管理系统CMS来使用。针对WordPress测试,可以使用WpScan工具对其进行安全测试。

 

四.端口信息收集

1:端口

如果把IP地址比作一间房子,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(2^16)个门之多。端口是通过端口号来标记的,端口号只有整数,范围从0到65536(2^16-1 )。

计算机常见的端口号包括:

  • HTTP服务器默认端口号为:80/tcp(木马Executor开放此端口)
  • HTTPS服务器默认端口号为:443/tcp、443/udp
  • Telnet(远程登录)默认端口号为:23/tcp(木马Tiny Telnet Server所开放的端口)
  • FTP默认端口号为:21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash等所开放的端口)
  • TFTP(Trivial File Transfer Protocol)默认端口号为:69/udp
  • SSH(安全登录)、SCP(文件传输)、端口号重定向,默认端口号为:22/tcp
  • SMTP(E-mail)默认端口号为:25/tcp(木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口)
  • POP3 Post Office Protocol(E-mail)默认端口号为:110/tcp
  • Webshpere应用程序默认端口号为:9080
  • TOMCAT默认端口号为:8080
  • MySQL数据库默认端口号为:3306
  • Oracle 数据库默认的端口号为:1521
  • WIN2003远程登录默认端口号为:3389
  • MS SQL*SERVER数据库server默认的端口号为:1433/tcp、1433/udp

对于收集目标及其端口状况可以使用工具来进行,其工作原理都是使用TCP或UDP等协议向目标端口发送指定标志位等数据包,等待目标返回数据包,以此来判断端口状态。后续作者,准备通过Python编写相关的代码。

这篇文章主要通过工具采集端口信息,包括:

  • 使用Nmap采集,命令为:nmap -A -v -T4 目标
  • 使用masscan采集,命令为:masscan -p80 目标

2:旁站和C段

旁站指的是同一服务器上的其他网站,很多时候,有些网站可能不是那么容易入侵。那么,可以查看该网站所在的服务器上是否还有其他网站。如果有其他网站的话,可以先拿下其他网站的webshell,然后再提权拿到服务器的权限,最后就自然可以拿下该网站了!

对于红蓝对抗和护网,C段扫描比较有意义。对于单独网站的渗透测试,C段扫描意义不大。C段指的是同一内网段内的其他服务器,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务器。旁站和C段在线查询地址:

  • http://www.webscan.cc/
  • https://phpinfo.me/bing.php
  • https://scan.top15.cn

旁站扫描能扫描与该IP地址挂靠的其他网站,这有利于Web渗透,可能旁站存在漏洞。

3:端口攻击

针对不同的端口具有不同的攻击方法,因为每个端口就是记录服务器或目标系统的大门,只要打开这个大门,就可以进入目标系统。例如:针对远程连接服务端口的攻击方法如下,因为23号端口Telnet远程连接是明文传递信息的,可以通过爆破、嗅探、弱口令等方法实施攻击。

这里推荐大家:当我们扫描到目标网站的端口号时,可以在搜索引擎中查找对应的攻击方法进行测试,也可以在乌云漏洞库(http://www.anquan.us/)或CVE库中搜索。

4:防御

对于端口攻击来说,只要端口开放并且可以连通,就可以利用对应的方式进行攻击测试。这里提供的防御措施包括:

  • 关闭不必要的端口;
  • 对重要业务的服务端口设置防火墙;
  • 加强员工信息安全意识,经常性更换用户密码,避免弱口令爆破;
  • 经常更新软件,打补丁(Patch);
  • 利用CVE网站的漏洞信息,提高自身网站的安全。

五.敏感信息收集

针对某些安全做得很好的目标,直接通过技术层面是无法完成渗透测试的。在这种情况下,可以利用搜索引擎目标暴露在互联网上的关联信息。例如:数据库文件、SQL注入、服务配置信息,甚至是通过Git找到站点泄露源代码,以及Redis等未授权访问、Robots.txt等敏感信息,从而达到渗透目的。

在某些情况下,收集到的信息会对后期进行测试起到帮助重要。如果通过收集敏感信息直接获取了目标系统的数据库访问权限,那么渗透测试任务就结束了一大半。因此在进行技术层面情况下的测试之前,应该先进行更多的信息收集,尤其是针对敏感信息的。

1:Google hacking

Google Hack是指使用Google、百度等搜索引擎对某些特定网站主机漏洞(通常是服务器上的脚本漏洞)进行搜索,以达到快速找到漏洞主机或特定主机的漏洞的目的。常见方法包括:

Google提供了强大的搜索功能,可以获取精准的结果。如果访问不了,也可以通过百度获取相关内容,但是结果远没有谷歌精准,很多无关的广告及视频会返回给你。示例如下:

  • intitle:eastmount 搜索网页标题包含eastmount字符的网页。
  • inurl: login.asp?id= 搜索包含特定字符“login.asp?id=”的URL。常用示例为inurl:login.asp、inurl:asp?id=、inurl:login.asp。
  • intext:cbi 搜索网页正文内容包含特定字符cbi的网页。
  • filetype:ppt 搜索制定类型的文件,返回所有以ppt结尾的文件URL。
  • site:baidu.com 找到与指定网站有联系的URL。

2:http响应收集server信息

通过HTTP或HTTPS与目标站点进行通信中,目标响应的报文中Server头和X-Powered-By头会暴露目标服务器和使用的编程语言信息,通过这些信息可以有针对的利用漏洞尝试。

获取HTTP响应的基本方法包括:

  • 利用工具,如浏览器审计工具、BurpSuite、Fiddler等代理截断工具获取
  • 编写Python脚本文件,如requests库

右键浏览器审查元素,获取Network中Headers信息。

六:真实ip地址识别

1.CDN

CDN全称是Content Delivery Network,即内容分发网络。其原理如下:某些大型网站在全国都会有很多用户,这些用户常常会向网站发送不同的请求,那么不同地域会具有不同的缓冲服务器来接收用户发送的流量。如果用户发送流量没有任何交互的数据,只是请求首页的话,此时根据用户所在地区来确定访问的高速缓存服务器,高速缓存服务器会返回对应的响应到用户的浏览器当中。当用户填写数据,需要交互时才会将请求发送到真实的服务器,CDN通常存在用户很多的大型流量网站,通过它来解决我们服务器的瓶颈。

2.判断CDN存在

可以通过Ping来判断网站是否存在CDN,www.xxxx.com和xxxx.com返回ip不一样则使用了CDN

也可以通过设置代理或利用在线Ping网站来使用不同地区的Ping服务器来测试目标,不同的检测点相应的ip不同

3.绕过CDN

如果目标没有使用CDN: 可以直接利用ping获取IP地址,或者利用在线网站获取

如果目标使用CDN: 需要绕过CDN后去真实IP地址,方法如下:

  • 内部邮箱源:收集到内部邮箱服务器IP地址
  • 网站phpinfo文件:phpinfo.php
  • 分站IP地址,查询子域名:CDN很贵,很有可能分站就不再使用CDN
  • 国外访问:https://asm.ca.com/en/ping.php
  • 查询域名解析记录:https://viewdns.info/

通过国内网站(https://viewdns.info/)获取IP地址

4.验证ip地址

对得到的ip进行访问,如果正常则说明为真实ip,否则为假的

 

七.总结

之前看过很多篇信息收集的文章,一直没有做过记录,感觉这篇文章总结的很全面就记录下来学习一下。

再附上大佬对我说的话:第一 给你aa.com不是让你去看ip的 ip很有可能都是cdn 给你aa.com是让你去知道你要渗透的目标,然后根据域名定位公司,控股100%子公司,这是第一步,你要收集的你渗透的资产,
第二步才是主公司子域名,控股公司子域名,以及一些大目标很有可能全是外网c段甚至b段,他们分布的ip段,剩下的就和你说的差不多,但是日一个web最开始是肯定看web容器 服务器系统 操作语言的,当然能直接看出cms更好, 收集完子域名后 判断存活,去重,然后利用一些已知的漏洞攻击(cms框架漏洞,sql注入,上传,爆破,xss,rce)等等,如果获取到一个权限,一定要很小心,别一开始就扫描什么的,先把能收集的信息收集到极致,在开始为下一步渗透做准备,其实渗透测试就是信息收集的过程,你记住,渗透就是一直收集信息,打不下来就继续收集。

参考:https://cloud.tencent.com/developer/article/1685126

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM