Web安全——信息搜集(一.1)
在网络空间安全领域共分为几个方向,分别是web、pwn、Misc、RE以及Crypto这五个大方向。而小编学习的就是其中最容易入门的Web安全。
就我个人的理解来讲,Web漏洞产生的原因更多的来自于网站管理者和代码编写者的不仔细所造成的漏洞事件,而也正是因为存在这些漏洞可能会导致网站用户信息泄露或者网站系统的入侵而造成不可挽回的财产损失。因此,我们需要通过Web渗透测试的手段对网站漏洞进行探测,从而使得在漏洞还未被有心之人利用之前进行修复。
那么在Web渗透测试过程中,最重要的一步就是进行信息搜集,我们搜集的内容包括目标网站的域名(子域名)、网站所有人、开放端口及服务等等信息,只有你收集的信息范围足够广,那么才更有可能发现对方网站的漏洞。
信息搜集手段
为了收集到我们需要的信息,我们需要综合使用多种手段,下面我们介绍几种较为实用的信息搜集工具。
工具一:域名查询——whois查询
这是一个用于查询域名IP和所有者信息的网站,通过这个工具,我们可以查询到域名的详细信息(包括所有人、所有人联系方式、创建时间和过期时间等信息)。在信息收集时具有一定的作用。
工具二:收集子域名——FOFA
我个人使用的收集子域名的工具就是使用的FOFA,在该工具中提供了许多语法,如下:
title=“beijing” 从标题中搜索“北京”
header=“elastic” 从http头中搜索“elastic”
body=“网络空间测绘” 从html正文中搜索“网络空间测绘”
fid=“sSXXGNUO2FefBTcCLIT/2Q==” 查找相同的网站指纹
domain=“qq.com” 搜索根域名带有qq.com的网站。
icp=“京ICP证030173号” 查找备案号为“京ICP证030173号”的网站
js_name=“js/jquery.js” 查找网站正文中包含js/jquery.js的资产
js_md5=“82ac3f14327a8b7ba49baa208d4eaa15” 查找js源码与之匹配的资产
cname=“ap21.inst.siteforce.com” 查找cname为"ap21.inst.siteforce.com"的网站
cname_domain=“siteforce.com” 查找cname包含“siteforce.com”的网站
cloud_name="Aliyundun"new 通过云服务名称搜索资产
icon_hash=“-247388890” 搜索使用此 icon 的资产
host=“.gov.cn” 从url中搜索”.gov.cn”
port=“6379” 查找对应“6379”端口的资产
ip=“1.1.1.1” 从ip中搜索包含“1.1.1.1”的网站
ip=“220.181.111.1/24” 查询IP为“220.181.111.1”的C网段资产
status_code=“402” 查询服务器状态为“402”的资产 查询网站类型数据
protocol=“quic” 查询quic协议资产 搜索指定协议类型(在开启端口扫描的情况下有效)
country=“CN” 搜索指定国家(编码)的资产。
region=“Xinjiang” 搜索指定行政区的资产。
city=“Ürümqi” 搜索指定城市的资产。
cert=“baidu” 搜索证书(https或者imaps等)中带有baidu的资产。
cert.subject=“Oracle Corporation” 搜索证书持有者是Oracle Corporation的资产
cert.issuer=“DigiCert” 搜索证书颁发者为DigiCert Inc的资产
cert.is_valid=true 验证证书是否有效,true有效,false无效 仅限FOFA高级会员使用
jarm=“2ad…83e81” 搜索JARM指纹
banner=“users” && protocol=“ftp” 搜索FTP协议中带有users文本的资产。
type=“service” 搜索所有协议资产,支持subdomain和service两种 搜索所有协议资产
os=“centos”= 搜索CentOS资产。
server==“Microsoft-IIS/10” 搜索IIS 10服务器。
app=“Microsoft-Exchange” 搜索Microsoft-Exchange设备
after=“2017” && before=“2017-10-01” 时间范围段搜索
asn=“19551” 搜索指定asn的资产。
org=“LLC Baxet” 搜索指定org(组织)的资产。
base_protocol=“udp” 搜索指定udp协议的资产。
is_fraud=falsenew 排除仿冒/欺诈数据
is_honeypot=false 排除蜜罐数据 仅限FOFA高级会员使用
is_ipv6=true 搜索ipv6的资产 搜索ipv6的资产,只接受true和false。
is_domain=true 搜索域名的资产 搜索域名的资产,只接受true和false。
is_cloud=truenew 筛选使用了云服务的资产
port_size=“6” 查询开放端口数量等于"6"的资产 仅限FOFA会员使用
port_size_gt=“6” 查询开放端口数量大于"6"的资产 仅限FOFA会员使用
port_size_lt=“12” 查询开放端口数量小于"12"的资产 仅限FOFA会员使用
ip_ports=“80,161” 搜索同时开放80和161端口的ip 搜索同时开放80和161端口的ip资产(以ip为单位的资产数据)
ip_country=“CN” 搜索中国的ip资产(以ip为单位的资产数据)。 搜索中国的ip资产
ip_region=“Zhejiang” 搜索指定行政区的ip资产(以ip为单位的资产数据)。 搜索指定行政区的资产
ip_city=“Hangzhou” 搜索指定城市的ip资产(以ip为单位的资产数据)。 搜索指定城市的资产
ip_after=“2021-03-18” 搜索2021-03-18以后的ip资产(以ip为单位的资产数据)。 搜索2021-03-18以后的ip资产
ip_before=“2019-09-09” 搜索2019-09-09以前的ip资产(以ip为单位的资产数据)。搜索2019-09-09以前的ip资产
(注:参考文献:网络安全入门——信息收集)
浏览器语法——Google Hacking
这个语法是谷歌所推出的为了对特定资源进行搜索的一个符合程序员使用的语法功能,其主要目的就是为了能够快速搜索定位我们需要的内容,比如特定的子域名、特定的标题等指定内容。
这里我放上自己的网站文章,这里介绍了几种较为常用的hacking语法,希望对读者有益,在这里就不再过多赘述了。
Google Hacking 语法介绍
端口扫描工具——nmap
端口作为网站的重要信息之一,对于如何打进目标网站具有极其重要的作用。那么怎样进行端口扫描就显得十分重要。这里介绍一种广泛使用的端口扫描器——Nmap。
Nmap是一款强大的能够自动对目标IP进行端口扫描的工具,通过扫描端口我们能够知道对方服务器开放了哪些服务。
- 22端口:远程连接,可以通过弱口令、暴力猜解和用户名枚举的方式进行攻击。
- 23端口:Telnet,可以通过弱口令进行暴力破解
- 3306端口:数据库默认端口,可以通过暴力破解和弱口令进行攻击。
- ……
指纹识别(CMS)
CMS是快速搭建网站的内容管理系统,系统模板。
Web应用框架:是快速二次开发的网站框架,比如网站和小程序等。
指纹识别的方式:
线探测cms指纹站点:http://whatweb.bugscaner.com/look/
云溪在线指纹识别: https://www.yunsee.cn
Whatweb: http://www.whatweb.net
潮汐指纹: http://finger.tidesec.net
插件: wappalyzer https://www.wappalyzer.com 非常好用,可以直接插件搜索
脚本: CMSeek: https://github.com/Tuhinshubhra/CMSeek
Webfinger: https://github.com/se55i0n/Webfinger
(注:参考文献:网络安全入门——信息收集)
目录扫描——dirsearch:
dirsearch是一款开源的目录扫描脚本,其工作原理是通过本身或者外部导入的常见网站目录库进行连接扫描,通过使用该脚本,可以很轻松的实现对网站敏感文件或者敏感目录的扫描,从而获得网站敏感信息或者借助某个目录存在的漏洞进行渗透。
dirsearch的下载可以在github上进行搜索下载。
操作系统的判定——大小写区分以及TTL的返回
在windows和Linux系统中,其最大的一个能够手工探测的区别就是windows对文件的拓展名时不区分大小写的,比如.php和.Php在windows下其实是一样的,但是在Linux下是由严格的大小写区分的。
除此之外,windows和Linux的另一个区别是TTL的返回值长度,如果返回为128,那么说明该操作系统是windows系统,如果返回为64,那么该系统为Linux系统。