Web渗透基础-信息收集
信息收集是渗透测试的前期主要工作,是非常重要的环节,收集足够多的信息才能方便接下来的测试,信息收集主要是收集网站的域名信息、子域名信息、目标网站信息、目标网站真实IP、敏感/目录文件、开放端口和中间件信息等等。通过各种渠道和手段尽可能收集到多的关于这个站点的信息,有助于我们更多的去找到渗透点,突破口。
1.whois查询
说明:Whois是用来查询域名的IP以及所有者等信息的传输协议,WHOIS中包含域名注册者的姓名,邮箱 ,电话,地址,dns服务器等信息这些对我们渗透目标都很有用,然后在通过whois获取到的注册者和邮箱进行域名反查,可以获取更多的信息。
查询方式:
① kali命令查询
whois+域名
- ②在线查询
- Whois站长之家查询:http://whois.chinaz.com/
- 阿里云中国万网查询: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/
如:
2. 备案查询
说明:备案是指向主管机关报告事由存案以备查考。行政法角度看备案,实践中主要是《立法法》和《法规规章备案条例》的规定。根据中华人民共和国信息产业部第十二次部务会议审议通过的《非经营性互联网信息服务备案管理办法》精神,在中华人民共和国境内提供非经营性互联网信息服务,应当办理备案。未经备案,不得在中华人民共和国境内从事非经营性互联网信息服务。而对于没有备案的网站将予以罚款和关闭。
查询方式:
- 天眼查: https://beian.tianyancha.com/
- ICP备案查询网: https://www.beianx.cn/
- Icp备案管理系统:https://beian.miit.gov.cn/#/Integrated/index
- 商机宝:https://shangjibao.baidu.com/businessRecommand/dynamicRecommand?type=1&source=aqcicp
- 企查查:https://www.qcc.com/
3. 子域名
说明:子域名是顶级域名的下一级,子域名主要指的是二级域名。当一个网站比较大的情况下,直接通过顶级域名进行入手可能会比较困难,但是对于比较大的网站都可能会存在相当多的二级域名,并且顶级域名相对来说防范也比较严格,而二级域名可能就会存在防范不是那么严格的情况。
3.1子域名收集
① 在线收集:
证书查询:https://crt.sh/
按域搜索:https://searchdns.netcraft.com/
微步在线x情报社区:https://x.threatbook.com/
-
② 工具爆破
Layer子域名挖掘机
- ③ 命令爆破
Oneforall收集子域名:
python3 oneforall.py --target example.com run
3.2 端口扫描
① 工具扫描
Zenmap (Nmap可视化)
扫描结果:
- ② 命令扫描
Nmap:nmap 192.168.xx.xx
基本扫描:
1. 扫描单个IP:nmap <目标IP>。默认情况下,NMAP会尝试确定目标IP是否在线,并扫描其开放的端口。
2. 扫描特定端口:nmap -p <端口号> <目标IP>。可以指定一个或多个端口进行扫描。
3. 扫描端口范围:nmap -p <起始端口>-<结束端口> <目标IP>。例如,nmap -p 1- 65535 <目标IP>会扫描目标IP的所有端口。
扫描类型:
1.存活主机主机发现(-sn):不扫描端口,仅确认对方主机是否开启。
2. TCP连接扫描(-sT):这是最基本的扫描方式,通过尝试与每个端口建立TCP连接来确定端口是否开放。但这种方式可能较慢且易于被发现。
3. SYN扫描(-sS):也称为半开放扫描,仅发送SYN包到目标端口,不完成TCP三次握手。这种方式更快且更隐蔽。
4. UDP扫描(-sU):用于UDP端口的扫描,但通常比TCP扫描慢且不太可靠。
5. PING扫描(-sP):仅进行PING扫描,不进行端口扫描,用于检测目标是否在线。
高级扫描选项:
- 版本检测(-sV):尝试确定目标端口上运行的服务及其版本。
- 操作系统检测(-O):尝试识别目标主机的操作系统和详细信息。
- 脚本扫描(-sC):使用NMAP的NSE(Nmap Scripting Engine)脚本进行更复杂的扫描和测试。
- 强力扫描(-A):结合多种扫描和探测技术,包括版本检测、操作系统检测和脚本扫描,提供详尽的扫描结果。
扫描速度和性能:
- 设置扫描速度(-T):nmap -T[0-5] [目标IP]。数字越大,扫描速度越快,但可能更容易被防火墙或IDS检测到。
- 使用小数据包(-f):发送更小的数据包,以避免被防火墙或IDS检测到。
输出和保存:
- 保存扫描结果:可以使用-oN(正常输出)、-oX(XML输出)等选项将扫描结果保存到文件中。
- 显示冗余信息(-v):增加输出的详细程度,-v选项可以多次使用以增加更多细节。
其他常用命令:
- 对整个网段进行扫描:nmap [网段],例如nmap 192.168.1.0/24。
- 跳过主机发现(-Pn):如果确信目标主机在线,可以使用此选项跳过主机发现阶段,直接进行端口扫描。
扫描结果:
open(开放的):端口是开放的;
closed(关闭的):端口是关闭的;
filtered(被过滤的):端口被防火墙屏蔽,无法确
定其状态;
unfiltered(未被过滤的):端口没有被屏蔽,但是
否开放需要进一步确定;
open|filtered(开放或被过滤的):无法确定端口
是开放的还是被屏蔽的;
closed|filtered(关闭或被过滤的):无法确定端口
是关闭的还是被屏蔽的。
Fscan:fscan -h <ip> -nobr -nopoc
-nobr:不爆破
-nopoc:不扫描攻击 -np:不使用PING扫描,速度变慢,但可能扫出更多结果 -o xxx.txt :把扫描结果输出在当前目录下的xxx.txt
注意:FSCAN不仅用于信息收集,其也是具有强大渗透攻击功能的漏洞扫描利用脚本。 若直接使用fscan.exe -h <目标IP或网段>这条命令,FSCAN会对目标发送大量的请求进行扫描和爆破攻击。
常用命令:
fscan.exe -h 192.168.x.x //默认使用全部模块
fscan.exe -h 192.168.x.x -rf id_rsa.pub //redis 写私钥
fscan.exe -h 192.168.x.x -c whoami //ssh爆破成功后,命令执行
fscan.exe -h 192.168.x.x -p 1433,3306,6379 //仅扫描数据库端口
fscan.exe -h 192.168.x.x -h 192.168.1.1/24 //扫描C段
fscan.exe -h 192.168.x.x -h 192.168.1.1/16 //扫描B段
fscan.exe -h 192.168.x.x -h 192.168.1.1/8 //扫描A段的192.x.x.1和192.x.x.254,方便快速查看网段信息
fscan.exe -h 192.168.x.x -hf ip.txt //以文件的形式批量导入目标IP
最常用的命令:fscan.exe -h <目标IP或网段> -nobr -nopoc
3.3Cms指纹识别
查询方式:
①在线查询:
TideFinger 潮汐指纹查询:http://finger.tidesec.com/
- ② 浏览器插件Wappalyzer
- ③ 命令查询:Ehole
ehole.exe finger -u 单个目标
ehole.exe finger -l target.txt (多个目标)(target.txt文件中包含多个目标地址)
结果:【网址|指纹|中间件|状态码|长度|网站标题】
-
-
3.4 真实ip
-
CDN:CDN的全称Content Delivery Network,即内容分发网络,CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问的网络中,在用户访问网站时,由距离最近的缓存服务器直接响应用户请求。
绕过cdn找真实ip:
-
超级ping:多个地点Ping服务器,网站测速 - 站长工具
4. 搜索引擎
常用语法:
intitle:页面标题里查找关键字
filetype :查找指定文件类型
inurl:在url中查找关键字
intext:网页内容查找关键字
link :搜索链接到某个网站的链接
- Fofa、Hunter鹰图
Fofa:网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统
Hunter:鹰图平台(hunter)-奇安信网络空间测绘系统
常用语法:
"系统" && org="China Education and Research Network Center"
org="China Education and Research Network Center"
查找ip的c段:ip="202.201.1.1/24" && status_code="200"
"系统" && org="China Education and Research Network Center" && status_code="200"
= 等于 ==强等于 !=不等于(没有)
&& 与 || 或
5. 敏感目录和文件
说明:识别和评估Web服务器上存在的目录和文件。攻击者使用Web目录扫描工具来发现潜在的漏洞和敏感信息,如配置文件、备份文件和未受保护的管理界面。这些信息可能被用于进一步的攻击,如目录遍历、文件包含漏洞和权限提升。
扫描方式:
- 工具扫描:
御剑
- 命令扫描:
Dirsearch : disearch -u 目标网址
常用命令:
- python3 dirsearch.py -u https://target //默认方式扫描单个url
- python3 dirsearch.py -e php,js -u https://target //使用文件拓展名为php和js的字典扫描目标
- python3 dirsearch.py -e * https://target //使用全量字典扫描
- python3 dirsearch.py -e php,txt,js -u https://target -r //采用递归扫描
- python3 dirsearch.py -e php,txt,js -u https://target -r -R 3 //采用递归扫描递归层数为三层
- python3 dirsearch.py -u https://target -t 2 //扫描线程设置为2
6. 移动端信息收集
微信小程序和公众号和app收集
7. 社工信息收集
关于人的社工分析有很多维度的信息都值得被关注。但不管怎样,开展身份信息社工工作往往都是从一些关于人的最基本的信息开始的,身份信息的收集过程就是尽可能使用有限信息关联出其他信息的过程。
- 关于人的信息,简单分为两大类。
- 第一类,基本信息。如:姓名,昵称,手机号码,邮箱地址,各类证件,社交账号。这类信息能在溯源中帮助确定人的身份。是人在进行社交过程中不可避免使用的信息,用来在社会中表明他的身份,是在社会中生活的名片。
2. 第二类,其他信息。如:居住地、爱好、家庭状况、婚姻状态、职业。这类信息能帮助我们 更好的了解一个人的生活习惯与生活状态,代表人的特点。在生成定制化的社工字典时很有 用。
- 常用的信息收集方法。
社工库:“社工库”是运用社会工程学进行攻击的时候积累的各方面数据 的结构化数据库。这个数据库里有大量信息,甚至可以找到每个 人的各种行为记录,比如酒店开房记录、个人身份证、姓名和电 话号码。
8. Js未授权端口发现
Kali命令:
URLFinder: urlfinder.exe -u <目标>
将识别出的JS接口复制进一个txt文件中(例:7.txt),然后丢给Ehole批量识别,注意状态码为200的网址,可以访问看看。
9. 其他泄露
1.robots.txt
介绍:Robots是网址和爬虫之间的协议,网站通过robots协议(robots.txt)来告诉搜索引擎哪些页面可以进行抓取。
利用:在网站目录后加上robots.txt即可
2. crossdomin.xml
3. sitemap.xml
4. 后台目录
5. 网站安装包
6. 网站上传目录
7. mysql管理页面
8. phpinfo(PHP探针)
PHP中提供了phpinfo()函数,该函数返回 PHP 的所有信息,包括了 PHP 的编译选项及扩充配置、PHP 版本、服务器信息及环境变量、PHP 环境变量、操作系统版本信息、路径及环境变量配置等信息。其函数定义为:<?php phpinfo(); ?>
9. 网站文本编辑器
10. 测试文件
11. 网站备份文件(.rar、zip、.7z、.tar.gz、.bak)
12. DS_Store 文件
DS_Store是Mac下Finder用来保存如何展示文件/文件夹的数据文件,每个文件夹下对应一个。如果将。DS_Store上传部署到服务器,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。
漏洞利用工具:ds_store_exp:https://github.com/lijiejie/ds_store_exp
工具利用命令:ds_store_exp.py http://www.example.com/.DS_Store (下载备用文件直接加)
方法:在网址后面加 /.DS_Store,会下载一个DS_Store文件,将该文件用010编辑器打开
13. vim编辑器备份文件(.swp)
当Linux用户在使用vim编辑文件却意外退出的情况下生成备份文件,文件名格式为.filename.swp
14. WEB—INF/web.xml文件
15 .git
16 .svn
SVN是一个开放源代码的版本管理系统。同.git一致,由于管理员操作不规范将隐藏文件 .svn/entries 或 wc.db 暴露,从而获得服务器源码。
利用工具:dvcs-ripper
工具利用命令:rip-svn.pl -v -u http://www.example.com/.svn/
17. Hg
Mercurial 是一种轻量级分布式版本控制系统,使用 hg init的时候会生成.hg,其中包含代码和分支修改记录等信息。
利用工具:dvcs-ripper
工具利用命令:rip-hg.pl -v -u http://www.example.com/.hg/
18.Cvs
CVS代表协作版本系统或者并发版本系统,是一种版本控制系统,方便软件的开发和使用者共同协作。利用攻击主要是针对 CVS/Root以及CVS/Entries目录,直接就可以看到泄露的信息。
利用工具:dvcs-ripper·
工具利用命令:rip-cvs.pl -v -u http://www.example.com/CVS/