最近开始参加学校的web渗透测试科研实训,开始系统地学习web渗透测试,接触到了很多新的工具和术语,觉得网络安全知识体系涉及特别广泛,也特别复杂。同时我也觉得网络安全很有意思,我希望可以通过记录自己的学习过程做好备忘的同时,也把自己的学习路径和探索过程分享给大家。

web渗透第一步之信息收集

很多人在刚开始学习web渗透测试时往往会忽略网站信息收集这一步,觉得这一步不重要。但是信息收集是渗透测试的第一步,也是最重要的一步,只有掌握了网站足够的信息,才能在后续的渗透测试中得心应手。在了解如何收集信息之前,我们先了解一下网站是如何工作的。

网站是怎样工作的

网站是运行在计算机上的一系列应用程序,它有操作系统,应用程序以及服务器。
常见的网站环境;LNMP(Linux,nginx,mysql,php) WAMP(Windows,Apache,mysql,php)

当你在浏览器中输入要访问的URL,DNS服务器会将域名解析成IP地址,接着IP地址访问服务器内容(服务器、数据库、应用程序),最终将内容反馈至客户端的浏览器。
数据库包括要调用的数据,并存储在Web服务器上。这台服务器有真实的IP地址,每个人都能访问、Ping通它。每次页面请求或运行程序时,Web应用程序会在服务器上执行,而不是在客户的机器上。

该怎样入侵一个网站

入侵安装在计算机上的应用程序称为Web应用渗透测试,入侵带操作系统的计算机和应用程序称为服务端攻击,入侵人称为社会工程学攻击。在我们进行Web渗透之前,不是拿到目标就开始使用Webdirscan、SQLMAP、Caidao、Cobalt Strike等工具,而是需要先获取网站的综合(指纹)信息,获取的信息越多,越容易找到背后的漏洞或注入点。

信息收集的方式有两种:主动和被动。

  • 主动信息收集:通过直接访问,扫描网站,这种流量将流经网站
  • 被动信息收集:利用第三方服务对目标网站信息进行了解,如Google搜索、Shodan搜索等

    常见的搜索信息

  • 域名信息(域名注册商,注册人、电话、地址)
  • ip信息收集(真实域名、服务、端口、协议、cdn)
  • 技术使用:(框架、操作系统、数据库、编程语言)
  • 在同一台服务器上运行的其它旁站
  • DNS记录
  • 文件、C段、子域名、网站目录
    下面将对如何收集以上信息逐一介绍

    域名信息收集

    1.域名查询

    域名系统(Domain Name Server)是互联网的一项服务,他将方便记忆的域名映射为ip地址。

    域名解析

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

    2.Whois查询

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

不同域名后缀的Whois信息需要到不同的Whois数据库查询,如.com的Whois数据库和.edu的不同。每个域名或IP的Whois信息由对应的管理机构保存,例如以.com结尾的域名的Whois信息由.com运营商VeriSign管理,中国国家顶级域名.cn由CNNIC(中国互联网信息中心)管理。

Whois协议基本内容是:先向服务器的TCP端口43建立一个连接,发送查询关键字并加上回车换行,然后接收服务器的查询结果。
通过Whois查询可以获得域名注册者邮箱地址等信息,一般情况下对于中小型网站域名注册者就是网站管理员,利用搜索引擎对Whois查询到的信息进行搜索,获取更多域名注册者的个人信息。

Whois查询方法:

(1)Web接口查询

常见的信息收集网站包括

https://whois.domaintools.com 为例收集 shirong.ink 的信息:
whois信息收集

(2) 通过Whois命令查询

kali Linux内置whois查询工具,以shirong.ink为例:
kali_whois

(3) Python脚本whois查询

import urllib.request
req_whois = urllib.request.urlopen('http://whois.chinaz.com/doucube.com')
print(req_whois.read().decode())

import whois
data = whois.whois("sohu.com")
print(data)

3.备案信息查询

国内提供互联网信息的网站需要进行ICP备案和公安网备案。
ICP备案查询方法包括:

最后修改:2021 年 12 月 10 日
如果觉得我的文章对你有用,请随意赞赏