1.定义
信息收集是指收集有关目标应用程序和系统的相关信息。这些信息可以帮助攻击者了解目标系统的架构、技术实现细节、运行环境、网络拓扑结构、安全措施等方面的信息,以便我们在后续的渗透过程更好的进行。
2.分类
主动信息收集和被动信息收集
区别:
(1)收集方式不同
主动信息收集是指通过主动扫描、探测等方式主动获取目标系统的信息,例如使用漏洞扫描工具、网络嗅探器等;而被动信息收集则是指利用公开的信息和数据、搜索引擎、目录遍历等方式被动地获取目标系统的信息。
(2)风险控制不同
主动信息收集可能会对目标系统造成一定的干扰和影响,例如在目标系统中生成大量的日志、影响系统性能等,因此需要进行风险控制和安全测试。而被动信息收集不会对目标系统造成任何影响,不需要进行风险控制和安全测试。
(3)收集的信息内容不同
主动信息收集通常可以获取更多的目标系统信息,包括端口信息、服务类型、漏洞信息等。被动信息收集则主要是通过公开信息和数据收集目标系统的基本信息,例如域名、IP地址、网站结构、相关人员信息等。
(4)实施难度不同
主动信息收集需要具备一定的技术和工具支持,例如熟悉网络和系统原理、掌握扫描工具的使用方法等。而被动信息收集则相对简单,只需要利用搜索引擎和相关工具即可。
3.收集哪些信息
在Web安全测试和漏洞挖掘中,信息收集通常会收集以下几类信息:
(1)域名信息:域名是Web应用程序的入口,了解目标域名的IP地址、Whois信息、DNS记录等可以帮助测试人员了解目标网站的基本信息,例如网站的拥有者、运营商、服务器位置等。
(2)端口信息:端口是Web应用程序提供服务的入口,了解目标端口的开放情况、服务类型等可以帮助测试人员发现可能存在的漏洞和攻击向量。
(3)网站结构信息:了解目标网站的结构、目录和文件组织方式,可以帮助测试人员找到可能存在的漏洞和敏感信息。
(4)子域名信息:Web应用程序通常有多个子域名,了解目标网站的所有子域名可以帮助测试人员发现更多的攻击面。
(5)Web服务器信息:了解目标Web服务器的类型、版本和配置可以帮助测试人员发现可能存在的漏洞和攻击向量。
(6)Web应用程序信息:了解目标Web应用程序的类型、版本和功能可以帮助测试人员发现可能存在的漏洞和攻击向量。
(7)敏感信息:敏感信息包括用户账号、密码、数据库信息、配置文件等,了解目标网站的敏感信息可以帮助测试人员评估目标网站的安全性,
(8)相关人员信息:了解目标网站的管理员、开发人员等相关人员信息可以帮助测试人员发现漏洞和攻击向量,并为后续的渗透测试提供有价值的信息。
4.域名信息收集
域名:域名是Internet上用于标识一台计算机或一组计算机的名称,它是由多个部分组成的一个字符串。通常,域名的组成部分是以点号分隔开来的,最后一个部分是顶级域名,例如.com,.org,.cn等。域名的组成部分从右到左逐级递增,表示越来越具体的层级。例如,顶级域名是最右边的部分,表示的是域名的最高级别,然后是二级域名,三级域名,直到最左边的部分是主机名或者子域名。域名的使用是为了方便人们记忆互联网上的计算机和网络资源,使人们能够通过简单的域名来访问相应的网站和网络服务,而不必记住那些复杂的IP地址。因此,域名已成为互联网的重要组成部分,对于互联网的运作和发展起到了重要的作用。
DNS:DNS(Domain Name System)也叫域名系统,它用于将域名转换为IP地址,以便互联网上的计算机可以相互通信。在互联网上,每台计算机都有一个唯一的IP地址,这个IP地址由32位二进制数表示,例如192.168.1.1。然而,人们很难记住这样的数字串,因此就有了域名的概念。域名是一种易于记忆的字符串,例如www.example.com。每个域名对应着一个或多个IP地址,可以通过DNS系统将域名解析为对应的IP地址。
(1)WHOIS
WHOIS是一个用于查询域名注册信息的协议和数据库。该协议定义了一种用于查询和检索注册信息的格式,可以通过WHOIS查询工具或命令行来进行查询。
A.whois查询
WHOIS查询可以提供域名所有者的姓名、电子邮件地址、联系电话、注册时间、到期时间、域名服务器等信息。需要注意的是,一些域名注册商允许域名所有者隐藏其WHOIS信息,因此并不是所有的域名都可以通过WHOIS查询获取到所有的注册信息。
站长工具_whois查询工具_爱站网爱站网whois查询(whois.aizhan.com)提供最专业的whois信息查询站长工具站,最准确的域名whois信息查询,汉化版域名whois信息查询,支持域名Whois实时查询https://whois.aizhan.com/
Whois Lookup, Domain Availability & IP Search - DomainToolsResearch domain ownership with Whois Lookup: Get ownership info, IP address history, rank, traffic, SEO & more. Find available domains & domains for sale.https://whois.domaintools.com/
Global WHOIS Searchhttps://www.whois365.com/
从上图中可以看到域名的持有人姓名拼音以及邮箱账号,然后还可以通过得到的邮箱账号去反向查询这个人名下的其他域名。
B.whois反查
(2)备案
备案是指将网站信息(包括域名、网站名称、网站所在地等)注册在国家相关管理部门,以便于监管和管理互联网信息内容。备案的主要目的是确保网站内容合法、健康,不传播违法信息,保障国家安全和公共利益。
备案查询
备案查询是指查询网站是否已经进行了备案。在中国大陆,所有开设网站的主办单位都必须进行备案,否则将被视为违法行为。
https://icplishi/https://icplishi/
ICP备案查询网 - 网站备案查询 - 工信部域名备案查询实时数据ICP备案查询网,工业和信息化部ICP/IP地址/域名信息备案查询平台、工信部网站备案查询。提供ICP备案查询,网站备案查询,域名备案查询,查备案号,API调用,不用输验证码,速度快,数据实时更新https://www.beianx.cn/
(3)子域名
子域名是指在主域名下创建的二级域名,例如blog.example.com、shop.example.com等。主域名是指一个网站的最高级别的域名,例如example.com,而子域名则是在主域名下创建的二级域名。子域名可以用来区分不同的服务或功能,方便网站管理和维护。
子域名查询
子域名查询是指査询一个域名下所有的子域名。这可以帮助网站管理员和安全人员了解自己网站的子域名情况,及时发现并处理潜在的安全风险。
证书透明度
证书透明度(Certifcate Transparency,CT)是由Google提出的一种公开透明的证书签发和验证机制。它的目的是增强证书的安全性和透明性,避免恶意的证书签发和使用。证书透明度要求证书颁发机构(CA)公开记录所有颁发的SSL/TLS证书,包括证书的颁发者、使用者、有效期等信息,并通过公开的日志服务器来存储和共享这些证书信息。
crt.sh | Certificate SearchFree CT Log Certificate Search Tool from Sectigo (formerly Comodo CA)https://crt.sh/
JSFinder是一款用作快速在网站的js文件中提取URL,子域名的工具。
GitHub - Threezh1/JSFinder: JSFinder is a tool for quickly extracting URLs and subdomains from JS files on a website.JSFinder is a tool for quickly extracting URLs and subdomains from JS files on a website. - Threezh1/JSFinderhttps://github.com/Threezh1/JSFinder
网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统FOFA 是白帽汇推出的一款网络空间搜索引擎,它通过进行网络空间测绘,能够帮助研究人员或者企业迅速进行网络资产匹配,例如进行漏洞影响范围分析、应用分布统计、应用流行度排名统计等。https://fofa.info/
钟馗之眼
ZoomEye - Cyberspace Search Enginehttps://www.zoomeye.org/
360QUAKE
360网络空间测绘 — 因为看见,所以安全360网络空间测绘 — 因为看见,所以安全https://quake.360.cn/
其他各种工具
OneForAll GitHub - shmilylty/OneForAll: OneForAll是一款功能强大的子域收集工具OneForAll是一款功能强大的子域收集工具. Contribute to shmilylty/OneForAll development by creating an account on GitHub.https://github.com/shmilylty/OneForAll
Subdomainsbrute GitHub - lijiejie/subDomainsBrute: A fast sub domain brute tool for pentestersA fast sub domain brute tool for pentesters. Contribute to lijiejie/subDomainsBrute development by creating an account on GitHub.https://github.com/lijiejie/subDomainsBrute
Sublist3r GitHub - aboul3la/Sublist3r: Fast subdomains enumeration tool for penetration testersFast subdomains enumeration tool for penetration testers - aboul3la/Sublist3rhttps://github.com/aboul3la/Sublist3r
ESDGitHub - FeeiCN/ESD: Enumeration sub domains(枚举子域名)Enumeration sub domains(枚举子域名). Contribute to FeeiCN/ESD development by creating an account on GitHub.https://github.com/FeeiCN/ESD
dnsbrute GitHub - Q2h1Cg/dnsbrute: a fast domain brute toola fast domain brute tool. Contribute to Q2h1Cg/dnsbrute development by creating an account on GitHub.https://github.com/Q2h1Cg/dnsbrute
Anubis GitHub - jonluca/Anubis: Subdomain enumeration and information gathering toolSubdomain enumeration and information gathering tool - jonluca/Anubishttps://github.com/jonluca/Anubis
subdomain3 GitHub - yanxiu0614/subdomain3: A new generation of tool for discovering subdomains( ip , cdn and so on)A new generation of tool for discovering subdomains( ip , cdn and so on) - yanxiu0614/subdomain3https://github.com/yanxiu0614/subdomain3
teemo GitHub - bit4woo/teemo: A Domain Name & Email Address Collection ToolA Domain Name & Email Address Collection Tool. Contribute to bit4woo/teemo development by creating an account on GitHub.https://github.com/bit4woo/teemo
Sudomy GitHub - screetsec/Sudomy: Sudomy is a subdomain enumeration tool to collect subdomains and analyzing domains performing automated reconnaissance (recon) for bug hunting / pentestingSudomy is a subdomain enumeration tool to collect subdomains and analyzing domains performing automated reconnaissance (recon) for bug hunting / pentesting - screetsec/Sudomyhttps://github.com/screetsec/Sudomy
ARL灯塔资产管理系统 https://github.com/TophantTechnology/ARLhttps://github.com/TophantTechnology/ARL
子域名监控 nullSRC子域名资产监控. Contribute to LangziFun/LangSrcCurise development by creating an account on GitHub.https://github.com/LangziFun/LangSrcCurise
5.IP信息收集
(1)域名查询IP
通过域名查询到的IP再进行IP地址反查可能得到目标主机的其他域名。一个IP地址可以对应多个域名这是因为多个域名可以指向同一个IP地址。
站长工具 IP/IPV6查询,服务器地址查询-站长工具快速查询用户的IP和浏览器、操作系统。可以批量查询IP地址所在地,可以解域名的多个P地址。已完美支持IPv6查询。https://ip.tool.chinaz.com/
查询网
ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名https://site.ip138.com/
但是有时候通过域名查询到的ip并不是唯一的,不是真实的IP,而是CDN的IP
A.CDN
CDN是内容分发网络(Content Delivery Network)的缩写,是一种通过在网络各处放置节点服务器来缩短用户对内容访问的距离,从而提高用户访问速度和访问质量的技术方案。
CDN的作用是优化网站或移动应用的访问速度和用户体验,通过将内容存储在距离用户更近的节点服务器上,减少了用户请求内容时的网络传输距离,提高了内容访问速度,同时也减轻了源服务器的负担保证了服务器的高可用性和稳定性。常见的CDN内容包括静态文件(如图片、视频、CSS、JS文件等)和动态内容(如AP1、动态页面等)等。、
B.CDN绕过
1.查询子域名的IP
CDN 流量收费高,所以很多站长可能只会对主站或者流量大的子站点做了CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的IP 来辅助查找网站的真实IP.
2.国外地址请求
一些站点由于服务对象基本在国内,或者成本原因,在国外一些地方没有CDN服务,如果用国外的服务器去请求站点域名,则会访问到站点的真实地址
3.查询历史DNS记录
通过查找历史DNS记录可以找到域名之前使用过的IP地址,包括被替换或删除的IP地址
4. 更多方法
CDN绕过技术总汇 - FreeBuf网络安全行业门户近日HVV培训以及面试,有人问了CDN该如何绕过找到目标真实IP,这向来是个老生常谈的问题,而且网上大多都有,但是有些不够全面,今天把绕过CDN全理一理。术语叫做“深入浅出”。https://www.freebuf.com/articles/web/332264.html
(2)IP反查域名
站长工具
网站IP查询_IP反查域名_同IP网站查询 - 站长工具IP反查域名是通过IP查询相关联的域名信息的功能。它提供IP地址历史上绑定过的域名信息,以及域名历史上解析过的IP地址列表。https://stool.chinaz.com/same
(3)同C段查询
同C段IP查询可以用于发现网络中其他主机或设备的IP地址,从而扩大目标范围,或者用于查找目标系统的弱点和漏洞.
GitHub - se55i0n/Cwebscanner: 快速扫描C段web应用,获取请求状态code、server、title信息快速扫描C段web应用,获取请求状态code、server、title信息. Contribute to se55i0n/Cwebscanner development by creating an account on GitHub.https://github.com/se55i0n/Cwebscanner
使用前先下载所需模块 python3 -m pip install -r requirements.txt
使用 python3 Cwebscan.py torch.yijinglab.com
6.端口信息收集
(1)端口
在计算机网络中,端口是一种逻辑地址,用于标识在一台计算机中运行的应用程序或服务。每个端口都有一个数字标识,称为端口号,取值范围为0到65535。其中0到1023为系统保留端口,通常只用于特定的服务和应用程序,而1024到65535为用户端口,用于一般应用程序和服务。通过使用端口号,计算机可以在同一IP地址上同时运行多个应用程序或服务,每个应用程序或服务都使用不同的端口。例如,Web服务器通常使用80端口,SMTP服务器使用25端口,SSH服务器使用22端口等等。当一个请求到达计算机时,它包括目标IP地址和目标端口号,计算机会根据目标端口号将请求交给相应的应用程序或服务进行处理。
(2)端口扫描
Nmap
Network Mapper,是一款开放源代码的网络探测和安全审核的工具。
https://nmap.org/man/zh/https://nmap.org/man/zh/
A.Nmap功能
1.检测网络存活主机(主机发现)
2.检测主机开放端口(端口发现或枚举)
3.检测相应端口软件(服务发现)版本
4.检测操作系统,硬件地址,以及软件版本
5.检测脆弱性的漏洞(nmap的脚本)
B.端口状态
Open:端口开启,数据有到达主机,有程序在端口上监控
Closed:端口关闭,数据有到达主机,没有程序在端口上监控
Filtered:数据没有到达主机,返回的结果为空,数据被防火墙或IDS过滤UnFiltered:数据有到达主机,但是不能识别端口的当前状态
Open|Filtered:端口没有返回值,主要发生在UDP、IP、FIN、NULL和Xmas扫描中
Closed|Filtered:只发生在IP ID idle扫描
C.Nmap用法
基础用法:
nmap -A -T4 192.168.1.1
A:全面扫描\综合扫描
T4:扫描速度,共有6级,T0-T5
不加端口会默认扫描1000个最常用的TCP端口和1000个最常用的UDP端口。
单一主机扫描:namp 192.168.1.2
多主机扫描:nmap 192.168.1.1 192.168.1.10
主机范围扫描:namp 192.168.1.1-100
IP地址列表扫描:nmap –iL target.txt
扫描特定主机上的80,21,23端口:
nmap –p 80,21,23 192.168.1.1
扫全部端口:
nmap -sS -v -T4 -Pn -p 0-65535
• -sS:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快,效率高(一个完整的tcp连接需要3次握手,而-sS选项不需要3次握手)
优点:Nmap发送SYN包到远程主机,但是它不会产生任何会话,目标主机几乎不会把连接记入系统日志。(防止对方判断为扫描攻击),扫描速度快,效率高,在工作中使用频率最高
缺点:它需要root/administrator权限执行
• -Pn:扫描之前不需要用ping命令,有些防火墙禁止ping命令。可以使用此选项进行扫描
• -iL:导入需要扫描的列表
扫常用端口及服务信息:
系统扫描
nmap -O -T4 -Pn ip
版本检测
nmap -sV -T4 -Pn ip
7.网站信息收集
(1)操作系统信息
A.ping判断:windows的TTL值一般为128,Linux则为64。
TTL大于100的一般为windows,几十的一般为linux。
B.nmap -0参数
C.windows大小写不敏感,linux则区分大小写
(2)WEB容器信息
A.F12查看响应头Server字段
B.whatweb
C.wappalyzer
(3)后端语言
A. php
B.jsp
C.asp/aspx
(4)CMS信息
Onlinetools https://github.com/iceyhexman/onlinetoolshttps://github.com/iceyhexman/onlinetools
(5)敏感文件
敏感文件通常包括配置文件、日志文件、备份文件、数据库文件等,这些文件可能包含有关系统的敏感信息,如登录凭据、数据库密码、加密密钥等、
敏感文件收集一般通过爆破的方式发现敏感文件,比如御剑、BBscan、以及Burp Suite的Intruder。
Dirsearch
https://github.com/maurosoria/dirsearchhttps://github.com/maurosoria/dirsearch
7kbscan-WebPathBrute
https://github.com/7kbstorm/7kbscan-WebPathBrutehttps://github.com/7kbstorm/7kbscan-WebPathBrute
Dirmap
https://github.com/H4ckForJob/dirmaphttps://github.com/H4ckForJob/dirmap
A.github泄需
开发人员将代码上传到网站,在上传的时候,没有删除重要的一些信息。如邮箱信息,SVN信息,内部账号和密码,数据库连接信息,服务器配置信息等。尤其是邮箱信息和内部账号和密码。这类信息可以通过在github上搜索公司的一些特定信息,查看是否有程序员将这些信息上传到了github上。
如公司的域名为:niniub.com,则可以在github上用这个信息去进行搜索,看看是否有包含该类关键字的文件。这类安全漏洞只能靠人员的安全意识进行防护,没有其它方法进行。
B.git泄露
当前大量开发人员使用git进行版本控制,对网站进行自动部署。如果配置不当,可能会将.git文件部署到线上环境,这就引起了git泄露漏洞,从而导致整个网站的源码泄露。
GitHack ttps://github.com/lijiejie/GitHackhttps://github.com/lijiejie/GitHack
C.svn泄露
跟git一样,都是用来版本迭代的一个功能。如果没有将.svn版本控制的目录进行删除恶意用户就可以使用这个目录下的文件,来恢复源码。从而可以获取如数据库密码,源码漏洞等信息
svnExploit https://github.com/admintony/svnExploithttps://github.com/admintony/svnExploit
(6)WAF信息
WAF(Web Application FireWall)Web应用防火墙。可以通俗的理解为:用于保护网站,防黑客、防网络攻击的安全防护系统;是最有效、最直接的Web安全防护产品。
wafw00f https://github.com/EnableSecurity/wafw00fhttps://github.com/EnableSecurity/wafw00f
kali自带该工具
wafwg0f http://www.example.com
nmap也自带了waf识别功能
nmap -p80,443 --script http-waf-detect ip
nmap -p80,443 --script http-waf-fingerprint ip
看图识waf 干货 | 常见WAF拦截页面总结https://mp.weixin.qq.com/s/PWkqNsygi-c_S7tW1y_Hxw
8.Google hacker
Googlehacker是指利用谷歌搜索引擎进行攻击或破解的黑客。Google hacker通常具备丰富的编程经验和深厚的安全技术知识,能够快速、有效地构造有效的搜索语句,以获取敏感信息或漏洞。
(1) Google hacking
Google hacking原指利用Google搜索引擎搜索信息来进行入侵的技术和行为;现指利用各种搜索引擎搜索信息来进行入侵的技术和行为。Google hacking通常通过构造特殊的搜索语句,让谷歌搜索引擎返回敏感信息或漏洞。Google hacking可以利用搜索引擎的强大能力,快速、有效地获取目标系统的信息,从而实现攻击目标。Google hacking需要黑客具备一定的技术知识和搜索技巧,才能构造出有效的搜索语句
A.常用语法
intext 在正文中搜索指定的关键字
inur1 在URL中搜索指定的关键字
intitle 在标题中搜索指定的关键字
site 搜索包含关键词的站点
filetype 搜索指定文件类型
B.漏洞特征
GET型SQL注入
http://www.example.com:80/index.php?id=123http://www.example.com:80/index.php?id=123
C.关键信息提取
GET型SQL注入:URL的id
后台弱口令:URL的admin、正文的后台管理系统
D.语法的应用
inurl:?id=在搜索引擎中搜索包含特定字符串的网页地址。例如,在搜索框中输入"inurl: ?id=",然后按下搜索按钮,就会在搜索结果中显示所有包含"?id="字符串的网页地址。
intext:后台管理系统在搜索引擎中搜索包含特定字符串的网页内容。例如,在搜索框中输入"intext后台管理系统”,然后按下搜索按钮,就会在搜索结果中显示所有网页内容中包含"后台管理系统”字符串的网页。