信息收集
信息收集
hihopkc信息收集
信息收集的定义
信息收集是指收集有关目标应用程序和系统的相关信息。这些信息可以帮助攻击者了解目标系统的架构、技术实现细节、运行环境、网络拓扑结构、安全措施等方面的信息,以便我们在后续的渗透过程更好的进行。
信息收集的意义
通过信息收集,可以发现目标系统中存在的漏洞或弱点,进而为攻击者提供潜在的攻击方法。攻击者可以利用这些漏洞和弱点进一步探测、渗透、破坏目标系统。
信息收集的分类
- 主动信息收集
- 被动信息收集
(1) 两者的区别
收集方式不同:主动信息收集是指通过主动扫描、探测等方式主动获取目标系统的信息,例如使用漏洞扫描工具、网络嗅探器等;而被动信息收集则是指利用公开的信息和数据、搜索引擎、目录遍历等方式被动地获取目标系统的信息。
风险控制不同:主动信息收集可能会对目标系统造成一定的干扰和影响,例如在目标系统中生成大量的日志、影响系统性能等,因此需要进行风险控制和安全测试。而被动信息收集不会对目标系统造成任何影响,不需要进行风险控制和安全测试。
收集的信息内容不同:主动信息收集通常可以获取更多的目标系统信息,包括端口信息、服务类型、漏洞信息等。被动信息收集则主要是通过公开信息和数据收集目标系统的基本信息,例如域名、IP地址、网站结构、相关人员信息等。
实施难度不同:主动信息收集需要具备一定的技术和工具支持,例如熟悉网络和系统原理、掌握扫描工具的使用方法等。而被动信息收集则相对简单,只需要利用搜索引擎和相关工具即可。
收集哪些信息
在Web安全测试和漏洞挖掘中,信息收集通常会收集以下几类信息:
- 域名信息:域名是Web应用程序的入口,了解目标域名的IP地址、Whois信息、DNS记录等可以帮助测试人员了解目标网站的基本信息,例如网站的拥有者、运营商、服务器位置等。
- 端口信息:端口是Web应用程序提供服务的入口,了解目标端口的开放情况、服务类型等可以帮助测试人员发现可能存在的漏洞和攻击向量。
- 网站结构信息:了解目标网站的结构、目录和文件组织方式,可以帮助测试人员找到可能存在的漏洞和敏感信息。
- 子域名信息:Web应用程序通常有多个子域名,了解目标网站的所有子域名可以帮助测试人员发现更多的攻击面。
- Web服务器信息:了解目标Web服务器的类型、版本和配置可以帮助测试人员发现可能存在的漏洞和攻击向量。
- Web应用程序信息:了解目标Web应用程序的类型、版本和功能可以帮助测试人员发现可能存在的漏洞和攻击向量。
- 敏感信息:敏感信息包括用户账号、密码、数据库信息、配置文件等,了解目标网站的敏感信息可以帮助测试人员评估目标网站的安全性。
- 相关人员信息:了解目标网站的管理员、开发人员等相关人员信息可以帮助测试人员发现漏洞和攻击向量,并为后续的渗透测试提供有价值的信息
域名信息收集
- 域名
域名是Internet上用于标识一台计算机或一组计算机的名称,它是由多个部分组成的一个字符串。通常,域名的组成部分是以点号分隔开来的,最后一个部分是顶级域名,例如.com、.org、.cn等。域名的组成部分从右到左逐级递增,表示越来越具体的层级。例如,顶级域名是最右边的部分,表示的是域名的最高级别,然后是二级域名,三级域名,直到最左边的部分是主机名或者子域名。
域名的使用是为了方便人们记忆互联网上的计算机和网络资源,使人们能够通过简单的域名来访问相应的网站和网络服务,而不必记住那些复杂的IP地址。因此,域名已成为互联网的重要组成部分,对于互联网的运作和发展起到了重要的作用。
顶级域名 | 二级域名 | 三级域名 | 政府域名 | 商业域名 | 教育域名 |
---|---|---|---|---|---|
.com | baidu.com | www.baidu.com | .gov | .com | .edu |
二级域名是指顶级域名之下的域名,在国际顶级域名下,它是指域名注册人的网上名称,例如 ibm, yahoo,microsoft等;在国家顶级域名下,它是表示注册企业类别的符号,例如com,top,edu, gov,net等
- DNS
DNS(Domain Name System)也叫域名系统,它用于将域名转换为IP地址,以便互联网上的计算机可以相互通信。
在互联网上,每台计算机都有一个唯一的IP地址,这个IP地址由32位二进制数表示,例如192.168.1.1。然而,人们很难记住这样的数字串,因此就有了域名的概念。域名是一种易于记忆的字符串,例如www.example.com。每个域名对应着一个或多个IP地址,可以通过DNS系统将域名解析为对应的IP地址。
WHOIS
WHOIS是一个用于查询域名注册信息的协议和数据库。该协议定义了一种用于查询和检索注册信息的格式,可以通过WHOIS查询工具或命令行来进行查询。
WHOIS查询
Whois 是用来查询域名的IP以及所有者等信息的传输协议。就是一个用来查询域名是否被注册,以及注册域名的详细信息的数据库(如域名所有人,域名注册商)
Whois 简单来说,就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商、域名注册日期和过期日期等)。通过域名 Whois 服务器查询,可以查询域名归属者联系方式,以及注册和到期时间
- Whois 查询的用处
通过 Whois 查询可以获得域名注册者邮箱地址等信息。一般情况下对于中小型网站域名注册者就是网站管理员。利用搜索引擎对 Whois 查询到的信息进行搜索,获取更多域名注册者的个人信息。
- Whois 工作过程
WHOIS服务是一个在线的 “请求/响应” 式服务。 WHOIS Server 运行在后台监听 43 端口,当Internet用户搜索一个域名(或主机、联系人等其他信息)时,WHOIS Server首先建立一个与Client的TCP连接,然后接收用户请求的信息并据此查询后台域名数据库。如果数据库中存在相应的记录,它会将相关信息如所有者、管理信息以及技术联络信息等,反馈给Client。待Server输出结束,Client关闭连接,至此,一个查询过程结束。
whois查询网站
https://whois.aizhan.com/
https://www.whois365.com/cn/
https://whois.domaintools.com/
从上图中可以看到域名的持有人姓名拼音以及邮箱账号,然后还可以通过得到的邮箱账号去反向查询这个人名下的其他域名。
- 命令行查询
- python脚本查询
1 | # pip3 install python-whois |
1 | import socket |
WHOIS反查
whois 反查,可以通过注册人、注册人邮箱、注册人手机电话反查 Whois 信息
WHOIS反查,是指可以通过一个已知域名的WHOIS信息中的部分信息作为条件反过来查询与此条件相匹配的一系列其它域名列表情况。借此我们可以知道该注册人拥有哪些域名,或者说是拥有哪些站点,那些域名的注册信息具体是什么等等相关信息,因此WHOIS反查也可称之为域名反查。
Whois反查方式
(1)根据已知域名反查,分析出此域名的注册人、邮箱、电话等字段;
(2)根据已知域名 WHOIS 中的注册邮箱来反查得出其它域名 WHOIS 中注册邮箱与此相同的域名列
表;
(3)根据已知域名 WHOIS 中的注册人来反查得出其它域名 WHOIS 中注册人与此相同的域名列表;
缺点:很多公司都是DNS解析的运营商注册的,查到的是运营商代替个人和公司注册的网站信息。
域名反查:https://whois.chinaz.com/batch
邮箱反查:https://whois.chinaz.com/reverse/email
注册人反查:https://whois.chinaz.com/reverse/register
电话反查:https://whois.chinaz.com/reverse/phone
备案
备案是指将网站信息(包括域名、网站名称、网站所在地等)注册在国家相关管理部门,以便于监管和管理互联网信息内容。备案的主要目的是确保网站内容合法、健康,不传播违法信息,保障国家安全和公共利益。
备案查询一般可以通过各省份的通信管理局或者备案管理系统网站进行查询。在备案查询时,需要输入网站的备案号或者域名等信息,系统会返回该网站的备案信息,包括备案号、主办单位名称、网站名称、网站域名、网站所在地、备案状态等。
备案查询
https://icplishi.com
https://www.beianx.cn/
https://icp.chinaz.com/
https://beian.miit.gov.cn/#/Integrated/index
从上图中可以看到,通过备案号可以查询到该公司旗下的域名资产。
子域名
子域名是指在主域名下创建的二级域名,例如blog.example.com、shop.example.com等。主域名是指一个网站的最高级别的域名,例如example.com,而子域名则是在主域名下创建的二级域名。子域名可以用来区分不同的服务或功能,方便网站管理和维护。
子域名查询
子域名查询是指查询一个域名下所有的子域名。这可以帮助网站管理员和安全人员了解自己网站的子域名情况,及时发现并处理潜在的安全风险。
google hacking
- 高级搜索语法
字符 | 注释 | 例子 | 注释 |
---|---|---|---|
intext | 寻找正文中含有关键字的网页 | intext:后台登录 | 将只返回正文中包含 “后台登录” 的网页 |
intitle | 寻找标题中含有关键字的网页 | intitle:后台登录 | 将只返回标题中包含 “后台登录” 的网页, intitle:后台 登录 密码 将返回标题中包含”后台登录”而正文中包含密码的网页 |
allintitle | 用法和 intitle 类似,只不过可以指定多个 词 | alltitle:后台登录 管理员 | 将返回标题中包含 “后台登录” 和 “管理员”的网页 |
inurl | 将返回url中含有关键词 的网页 | inurl:Login | 将返回 url 中含有 Login 的网页 |
allinurl | 用法和 inurl类似,只不过可以指定多个词 | allinurl:Login admin | 将返回 url 中含有 Login 和 admin 的网页 |
site | 指定访问的站点 | site:baidu.com inurl:Login | 将只在 baidu.com 中查找 url 中含有 Login 的网页 |
filetype | 指定访问的文件类型 | site:baidu.com filetype:pdf | 将只返回 baidu.com 站点上文件类型为 pdf 的网页 |
link | 指定链接的网页 | link:www.baidu.com | 将返回所有包含指向 www.baidu.com 的网页 |
related | 相似类型的网页 | related:www.xjtu.edu.cn | 将返回与 www.xjtu.edu.cn 相似的页面,相似指的是网页的布局相似 |
info | 返回站点的指定信 息 | info:www.baidu.com | 将返回百度的一些信息 |
define | 返回某个词语的定义 | define:Hacker | 将返回关于 Hacker 的定义 |
cache | 网页快照,谷歌将返回给你它存储 下来的历史页面 | cache:www.hackingspirits.com guest | 将返回指定网站的缓存,并且正文中含有 guest |
例子:
语法 | 注释 |
---|---|
inurl://admin/login.php | 查找管理员登录页面 |
inurl:/phpmyadmin/index.php | 查找后台数据库管理页 面 |
site:baidu.com inurl:Login | 只在baidu.com 中查 找url中含有 Login的 网页 |
site:baidu.com filetype:pdf | 只返回baidu.com站点上文件类型为pdf的网 页 |
link:www.baidu.com | 返回所有包含指向 www.baidu.com 的网页 |
related:www.llhc.edu.cn | 返回与 www.llhc.edu.cn 网页布局相似的页面 |
site:xx.com intext:管理 site:xx.com inurl:login site:xx.com intitle:后台 |
查找网站后台 |
site:xx.com filetype:php site:xx.com filetype:asp site:xx.com filetype:jsp site:xx.com filetype:aspx |
查看服务器使用的程序 |
site:xx.com inurl:file site:xx.com inurl:load |
查看上传漏洞 |
- Index of
利用 Index of 语法去发现允许目录浏览的 web 网站,就像在本地的普通目录一样。下面是一些有趣的查询
index of /admin
index of /passwd
index of /password
index of /mail
“index of /“ +passwd
“index of /“ +password.txt
“index of /“ +.htaccess
“index of /root”
“index of /cgi-bin”
“index of /logs”
“index of /config”
- 子域名获取
1 | site:dgut.edu.cn |
domain_serach_conf.py
1 | # -*- coding: utf-8 -*- |
domain_serach.py
1 | # -*- coding: utf-8 -*- |
第三方Web接口
https://dnsdumpster.com/
https://www.dnsgrep.cn/
https://developers.virustotal.com/reference/domains-relationships
https://tool.chinaz.com/subdomain
https://www.nmmapper.com/sys/tools/subdomainfinder/
SSL证书查询
证书透明度(Certificate Transparency,CT)是由Google提出的一种公开透明的证书签发和验证机制。它的目的是增强证书的安全性和透明性,避免恶意的证书签发和使用。
证书透明度要求证书颁发机构(CA)公开记录所有颁发的SSL/TLS证书,包括证书的颁发者、使用者、有效期等信息,并通过公开的日志服务器来存储和共享这些证书信息。
网络空间安全搜索引擎
FOFA
FOFA 是白帽汇推出的一款网络空间搜索引擎,它通过进行网络空间测绘,能够帮助研究人员或者企业迅速进行网络资产匹配,例如进行漏洞影响范围分析、应用分布统计、应用流行度排名统计等。
1 | domain="pku.edu.cn" |
钟馗之眼
钟馗之眼 ZoomEye 是启明星辰推出的一个检索网络空间节点的搜索引擎。通过后端的分布式爬虫引擎对全球节点的分析,对每个节点的所拥有的特征进行判别,从而获得设备类型、固件版本、分布地点、开放端口服务等信息。
1 | site:"pku.edu.cn" |
360QUAKE
1 | domain:"pku.edu.cn" |
鹰图
奇安信网络空间测绘平台(简称HUNTER平台),可对全球暴露在互联网上的服务器和设备进行:资产探测、端口探活、协议解析、应用识别。通过网络空间测绘技术,将地理空间、社会空间、网络空间相互映射,将虚拟的网络空间绘制成一幅动态、实时、有效的网络空间地图,实现互联网资产的可查、可定位,帮助客户解决互联资产暴露面梳理的难题
1 | site:"baidu.com" |
shodan
js文件发现子域名
JSFinder是一款用作快速在网站的js文件中提取URL,子域名的工具。
子域名收集工具
- 子域名挖掘机
- OneForAll(推荐)
- Subdomainsbrute
高并发的DNS暴力枚举工具
1 | python3 subDomainsBrute.py -w -t 100 baidu.com |
- ESD
1 | pip3 install esd |
- dnsbrute
- Anubis
- subdomain3
- teemo
- Sudomy
- ARL
- SubFinder + KSubdomain + HttpX
SubFinder:用来查询域名的子域名信息的工具,可以使用很多国外安全网站的api接口进行自动化搜索子域名信息。
https://github.com/projectdiscovery/subfinder
HttpX:一款运行速度极快的多功能HTTP安全工具,它可以使用retryablehttp库来运行多种网络探针,并使用了多线程机制来维持运行的稳定性和结果的准确性。
https://github.com/projectdiscovery/httpx
ksubdomain是一款基于无状态子域名爆破工具,支持在Windows/Linux/Mac上使用,它会很快的进行DNS爆破,在Mac和Windows上理论最大发包速度在30w/s,linux上为160w/s的速度。
https://github.com/knownsec/ksubdomain
1 | #subfinder基本使用 |
IP信息收集
IP反查域名
如果渗透目标为虚拟主机,那么通过IP反查到的域名信息很有价值,因为一台物理服务器上面可能运行多个虚拟主机。这些虚拟主机有不同的域名,但通常共用一个IP地址。如果你知道有哪些网站共用这台服务器,就有可能通过此台服务器上其他网站的漏洞获取服务器控制权,进而迂回获取渗透目标的权限,这种技术也称为“旁注”。
https://stool.chinaz.com/same
https://tools.ipip.net/ipdomain.php
https://site.ip138.com/
https://site.ip138.com/
域名查询IP
通过域名查询到的IP再进行IP地址反查可能得到目标主机的其他域名。一个IP地址可以对应多个域名,这是因为多个域名可以指向同一个IP地址
https://ip.tool.chinaz.com/
https://ipchaxun.com/
https://site.ip138.com/
但是有时候通过域名查询到的ip并不是唯一的,并不是真实的IP,而是CDN的IP
C段存活主机探测
查找与目标服务器IP处于同一个C段的服务器IP
1 | nmap -sP www.XXX.com/24 |
https://github.com/se55i0n/Cwebscanner
1 | python Cwebscan.py www.baidu.com |
CDN
CDN简介
https://zhuanlan.zhihu.com/p/52362950
https://baike.baidu.com/item/%E5%86%85%E5%AE%B9%E5%88%86%E5%8F%91%E7%BD%91%E7%BB%9C/4034265
CDN是内容分发网络(Content Delivery Network)的缩写,是一种通过在网络各处放置节点服务器来缩短用户对内容访问的距离,从而提高用户访问速度和访问质量的技术方案。
CDN的作用是优化网站或移动应用的访问速度和用户体验,通过将内容存储在距离用户更近的节点服务器上,减少了用户请求内容时的网络传输距离,提高了内容访问速度,同时也减轻了源服务器的负担,保证了服务器的高可用性和稳定性。常见的CDN内容包括静态文件(如图片、视频、CSS、JS文件等)和动态内容(如API、动态页面等)等。
CDN判断
1.多地ping
https://ping.chinaz.com/
https://ping.aizhan.com/
http://www.webkaka.com/Ping.aspx
用各种多地 ping 的服务,查看对应 IP 地址是否唯一
2.国外访问
因为有些网站设置CDN可能没有把国外的访问包含进去,所以可以这么绕过
CDN绕过
- 查询子域名的IP
https://ip.tool.chinaz.com/ipbatch
CDN 流量收费高,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。
- MX记录邮件服务
MX记录是一种常见的查找IP的方式。如果网站在与web相同的服务器和IP上托管自己的邮件服务器,那么原始服务器IP将在MX记录中。
- 国外地址请求
一些站点由于服务对象基本在国内,或者成本原因,在国外一些地方没有CDN服务,如果用国外的服务器去请求站点域名,则会访问到站点的真实地址。
- 查询历史DNS记录
通过查找历史DNS记录可以找到域名之前使用过的IP地址,包括被替换或删除的IP地址
https://dnsdb.io/zh-cn/
https://site.ip138.com/
https://viewdns.info/iphistory/
https://www.ip138.com/
https://securitytrails.com/
查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录;
域名注册完成后首先需要做域名解析,域名解析就是把域名指向网站所在服务器的IP,让人们通过注册的域名可以访问到网站。
IP地址是网络上标识服务器的数字地址,为了方便记忆,使用域名来代替IP地址。
域名解析就是域名到IP地址的转换过程,域名的解析工作由DNS服务器完成。
DNS服务器会把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。
域名解析时会添加解析记录,这些记录有:A记录、AAAA记录、CNAME记录、MX记录、NS记录、TXT记录。
DNS记录类型
- A记录
用来指定主机名(或域名)对应的IP地址记录
通俗来说A记录就是服务器的IP,域名绑定A记录就是告诉DNS,当你输入域名的时候给你引导向设置在DNS的A记录所对应的服务器。
- NS记录
域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。
- MX记录
邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。
- CNAME记录
别名记录,允许您将多个名字映射到同一台计算机
- TXT记录
一般指某个主机名或域名的说明
- 泛域名与泛解析
泛域名是指在一个域名根下,以 *.Domain.com 的形式表示这个域名根所有未建立的子域名。
泛解析是把 *.Domain.com 的A记录解析到某个IP 地址上,通过访问任意的前缀.domain.com 都能访问到你解析的站点上。
- 域名绑定
域名绑定是指将域名指向服务器IP的操作
- 更多方法
端口信息收集
端口简介
在计算机网络中,端口是一种逻辑地址,用于标识在一台计算机中运行的应用程序或服务。每个端口都有一个数字标识,称为端口号,取值范围为0到65535。其中0到1023为系统保留端口,通常只用于特定的服务和应用程序,而1024到65535为用户端口,用于一般应用程序和服务。
通过使用端口号,计算机可以在同一IP地址上同时运行多个应用程序或服务,每个应用程序或服务都使用不同的端口。例如,Web服务器通常使用80端口,SMTP服务器使用25端口,SSH服务器使用22端口等等。当一个请求到达计算机时,它包括目标IP地址和目标端口号,计算机会根据目标端口号将请求交给相应的应用程序或服务进行处理。
在Internet上,各主机间通过TCP/IP协议发送和接受数据包,各个数据包根据其目的主机的IP地址来进行互联网络中的路由选择,从而顺利的将数据包顺利的传送给目标主机
但当目的主机运行多个程序时,目的主机该把接受到的数据传给多个程序进程中的哪一个呢?端口机制的引入就是为了解决这个问题。端口在网络技术中,端口有两层意思:一个是物理端口,即物理存在的端口,如:集线器、路由器、交换机、ADSL Modem等用于连接其他设备的端口;另一个就是逻辑端口,用于区分服务的端口,一般用于TCP/IP中的端口,其范围是0~65535,,0为保留端口,一共允许有65535个端口比如用于网页浏览服务的端口是80端口,用于FTP服务的是21端口。 这里我们所指的不是物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口
协议端口
根据提供服务类型的不同,端口可分为以下两种:
TCP端口:TCP是一种面向连接的可靠的传输层通信协议
UDP端口:UDP是一种无连接的不可靠的传输层协议
TCP协议和UDP协议是独立的,因此各自的端口号也互相独立。
TCP:给目标主机发送信息之后,通过返回的应答确认信息是否到达
UDP:给目标主机放信息之后,不会去确认信息是否到达
而由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口进行了编号,即就是端口号。
那么看到这里我们会好奇,有那么多的端口,他们到底是怎么分类的?
端口类型
周知端口:众所周知的端口号,范围: 0-1023 ,如 80 端口是 WWW 服务
动态端口:一般不固定分配某种服务,范围: 49152-65535
注册端口:范围: 1024-49151 ,用于分配给用户进程或程序
渗透端口
常见端口介绍
- FTP-21
FTP:文件传输协议,使用TCP端口20、21,20用于传输数据,21用于传输控制信息
(1)ftp基础爆破:owasp的Bruter,hydra以及msf中的ftp爆破模块。
(2)ftp匿名访问:用户名:anonymous 密码:为空或者任意邮箱
(3)vsftpd后门 :vsftpd 2到2.3.4版本存在后门漏洞,通过该漏洞获取root权限。
(4)嗅探:ftp使用明文传输,使用Cain进行渗透。(但是嗅探需要在局域网并需要欺骗或监听网关)
(5)ftp远程代码溢出。
(6)ftp跳转攻击。
ProFTPD 1.3.3c远程命令执行:https://blog.csdn.net/weixin_42214273/article/details/82892282
FTP跳转攻击:https://blog.csdn.net/mgxcool/article/details/48249473
- SSH-22
SSH:(secure shell)是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
(1)弱口令,可使用工具hydra,msf中的ssh爆破模块。
(2)SSH后门 https://www.secpulse.com/archives/69093.html
(3)openssh用户枚举CVE-2018-15473https://www.anquanke.com/post/id/157607
- WWW-80
为超文本传输协议(HTTP)开放的端口,主要用于万维网传输信息的协议
(1)中间件漏洞,如IIS、apache、nginx等
(2)80端口一般通过web应用程序的常见漏洞进行攻击
- NetBIOS SessionService–139/445
139用于提供windows文件和打印机共享及UNIX中的Samba服务。
445用于提供windows文件和打印机共享。
(1)对于开放139/445端口,尝试利用MS17010溢出漏洞进行攻击;
(2)对于只开放445端口,尝试利用MS06040、MS08067溢出漏洞攻击;
(3)利用IPC$连接进行渗透
- MySQL-3306
3306是MYSQL数据库默认的监听端口
(1)mysql弱口令破解
(2)弱口令登录mysql,上传构造的恶意UDF自定义函数代码,通过调用注册的恶意函数执行系统命令
(3)SQL注入获取数据库敏感信息,load_file()函数读取系统文件,导出恶意代码到指定路径
- RDP-3389
3389是windows远程桌面服务默认监听的端口
(1)RDP暴力破解攻击
(2)MS12_020死亡蓝屏攻击
(3)RDP远程桌面漏洞(CVE-2019-0708)
(4)MSF开启RDP、注册表开启RDP
- Redis-6379
开源的可基于内存的可持久化的日志型数据库。
(1)爆破弱口令
(2)redis未授权访问结合ssh key提权
(3)主从复制rce
- Weblogic-7001
WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器
(1)弱口令、爆破,弱密码一般为weblogic/Oracle@123 or weblogic
(2)管理后台部署 war包后门
(3)weblogic SSRF
(4)反序列化漏洞
https://fuping.site/2017/06/05/Weblogic-Vulnerability-Verification/
- Tomcat-8080
Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选
(1)Tomcat远程代码执行漏洞(CVE-2019-0232)
(2)Tomcat任意文件上传(CVE-2017-12615)
(3)tomcat 管理页面弱口令getshel
端口扫描
Nmap
Network Mapper,是一款开放源代码的网络探测和安全审核的工具。
nmap参考指南(中文版)
https://nmap.org/man/zh
Nmap功能
- 检测网络存活主机(主机发现)
- 检测主机开放端口(端口发现或枚举)
- 检测相应端口软件(服务发现)版本
- 检测操作系统,硬件地址,以及软件版本
- 检测脆弱性的漏洞(nmap的脚本)
端口状态
1 | Open 端口开启,数据有到达主机,有程序在端口上监控 |
Nmap用法
- 基础用法
1 | nmap -A -T4 192.168.1.1 |
- 扫全部端口
1 | nmap -sS -v -T4 -Pn -p 0-65535 -oN FullTCP -iL liveHosts.txt |
- 扫常用端口及服务信息
1 | nmap -sS -T4 -Pn -oG TopTCP -iL LiveHosts.txt |
- NMAP漏洞扫描
1 | nmap.exe -p445 -v --script smb-ghosst 192.168.1.0/24 |
网站信息收集
操作系统信息
- ping判断:windows的TTL值一般为128,Linux则为64。
TTL大于100的一般为windows,几十的一般为linux。 - nmap -O参数
- windows大小写不敏感,linux则区分大小写
网站服务、容器信息
1.F12查看响应头Server字段
2.whatweb https://www.kali.org/tools/whatweb/
3.wappalyzer插件
后端语言(脚本类型)
- php
- jsp
- asp/aspx
- python
数据库类型
在进行SQL注入之前,首先应该判断数据库的类型,不同的数据库在处理一些函数的时候会有一些微妙的差别,只有判断出是哪种数据库类型,这样才能根据数据库的类型选择合适的函数,更容易实现SQL注入。
- 常见数据库类型
- Oracle
- MySQL
- SQL Server
- Postgresql
- Mongodb
- Access
- 前端与数据库类型
asp:SQL Server,Access
.net:SQL Server
php:MySQL,PostgreSQL
java:Oracle,MySQL
- 常见数据库端口
Oracle:默认端口 1521
MySQL:默认端口 3306
SQL Server:默认端口 1433
Postgresql:默认端口 5432
Mongodb:默认端口 27017
Access:文件型数据库,不需要端口
- 根据数据库特有函数来判断
- 根据特殊符号进行判断
- 根据数据库对字符串的处理方式判断
- 根据数据库特有的数据表来判断
- 根据盲注特别函数判断
https://blog.csdn.net/weixin_43749601/article/details/115369123
CMS识别
CMS:内容管理系统,用于网站内容文章管理
常见CMS:WordPress、Joomla、Drupal、dedecms(织梦)、Discuz、phpcms等。
CMS识别工具
https://github.com/Tuhinshubhra/CMSeeK
https://github.com/OWASP/joomscan
https://github.com/wpscanteam/wpscan
https://github.com/Lucifer1993/TPscan
在线cms识别
Onlinetools
https://github.com/iceyhexman/onlinetools
敏感文件
敏感文件通常包括配置文件、日志文件、备份文件、数据库文件等,这些文件可能包含有关系统的敏感信息,如登录凭据、数据库密码、加密密钥等。
敏感文件收集一般通过爆破的方式发现敏感文件,比如御剑、BBscan、以及Burp Suite的Intruder。
dirsearch
https://github.com/maurosoria/dirsearch
7kbscan-WebPathBrute
https://github.com/7kbstorm/7kbscan-WebPathBrute
dirmap
常见敏感文件或目录
- robots.txt
- crossdomain.xml
- sitemap.xml
- 后台目录
- 网站安装目录
- 网站上传目录
- mysql管理页面
- phpinfo
- 网站文本编辑器
- 测试文件
- 网站备份文件(.rar、.zip、.7z、.tar、.gz、.bak)
- DS_Store文件
- vim编辑器备份文件(.swp)
- WEB-INF/web.xml文件
敏感文件、敏感目录挖掘一般都是靠工具、脚本来找,比如御剑、BBscan,当然大佬手工也能找得到。
robots.txt
robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被搜索引擎访问的部分,或者指定搜索引擎只收录指定的内容。当一个搜索引擎(又称搜索机器人或蜘蛛程序)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。
crossdomain.xml
跨域,顾名思义就是需要的资源不在自己的域服务器上,需要访问其他域服务器。跨域策略文件是一个xml文档文件,主要是为web客户端(如Adobe Flash Player等)设置跨域处理数据的权限。重点查看 allow-access-from 字段获取网站目录信息
1 | GoogleHacking语法: |
sitemap.xml
Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页。最简单的 Sitemap 形式,就是XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度为何等),以便搜索引擎可以更加智能地抓取网站。
1 | GoogleHacking语法: |
源代码泄露
github
git
svn
.DS_Store
.hg
.bzr
cvs
WEB-INF
备份文件
前面七种为版本管理工具所泄露的常规方式,上面的两种方式为操作不当,安全意识薄弱所造成的泄 露。
github泄露
开发人员将代码上传到网站,在上传的时候,没有删除重要的一些信息。如邮箱信息,SVN信息,内部账号和密码,数据库连接信息,服务器配置信息等。尤其是邮箱信息和内部账号和密码。这类信息可以通过在github上搜索公司的一些特定信息,查看是否有程序员将这些信息上传到了github上。
如公司的域名为:niniub.com,则可以在github上用这个信息去进行搜索,看看是否有包含该类关键字的文件。这类安全漏洞只能靠人员的安全意识进行防护,没有其它方法进行。
1 | site:Github.com smtp |
1 | site:Github.com sa password |
1 | site:Github.com svn |
1 | site:Github.com inurl:sql |
1 | site:Github.com password |
.git泄露
成因及危害:当前大量开发人员使用git进行版本控制,对网站进行自动部署。如果配置不当,可能会将.git文件部署到线上环境,这就引起了git泄露漏洞。在网站安全维护方面,git和svn信息泄露,是非常常见也是非常致命的漏洞。会导致整个网站的源码泄露。
渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注入等web安全漏洞。
防护方法:在部署的时候,对.git文件夹进行删除;也可以在nginx配置中,对.git目录的访问进行屏蔽
1 | GoogleHacking语法:".git" intitle:"index of" |
.svn泄露
跟git一样,都是用来版本迭代的一个功能。如果没有将.svn版本控制的目录进行删除,恶意用户就可以使用这个目录下的文件,来恢复源码。从而可以获取如数据库密码,源码漏洞等信息。
1 | GoogleHacking语法: |
工具:https://github.com/admintony/svnExploit
WEB-INF/web.xml泄露
WEB-INF是Java的Web应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
WEB-INF主要包含以下文件或目录:
- WEB-INF/web.xml:Web应用程序配置文件,描述了servlet和其他的应用组件及命名规则
- WEB-INF/database.properties:数据库配置文件
- WEB-INF/classes/:一般用来存放Java类文件(.class)
- WEB-INF/lib/:用来存放打包好的库(.jar)
- WEB-INF/src/:用来存放源代码
通过找到 web.xml 文件,推断 class 文件的路径,最后直接下载 class 文件,再通过反编译class 文件,得到网站源码。
敏感目录收集方式
- 网页中寻找
- 在robots.txt中看能否发现敏感目录
- F12源代码链接处
- 通过查看一些图片的属性路径,运气好会发现很多隐藏的目录
- 结合域名+目录,用御剑进行扫描
- 手动输入一些常见的后台管理地址进行访问
- 其他端口中寻找
有时候网站的不同端口中有一些便是专门的后台管理地址。
- 网站分目录下寻找
有的时候网站会把管理地址放在一个分目录下,有的时候一个网站比较大,后台管理页面也比较多,就要分目录的去找
你可以通过一些方式获取到网站的目录,然后在这个目录下进行扫描。当一个网站你扫描根目录没有任何收获时,这个时候通过分析网站的目录结构,然后扫描域名+目录,就能找出它的后台管理地址。
- 子域名下寻找
有的时候网站的管理地址会放在子域名下,所以主站什么都找不到的情况下,如果发现子域名,就通过这些方法去子域名下找一下吧。
网站备份文件
网站备份文件泄露指管理员误将网站备份文件或是敏感信息文件存放在某个网站目录下。攻击者通过猜解文件路径,下载备份文件,导致网站敏感信息泄露。常见的备份文件后缀: .rar 、 .zip 、 .7z 、 .tar.gz 、 .bak 、 .txt、 .old 、 .temp
目录扫描探测
目录扫描可以让我们发现这个网站存在多少个目录,多少个页面,探索出网站的整体结构。通过目录扫描我们还能扫描敏感文件,后台文件,数据库文件,和信息泄漏文件等等
目录扫描有两种方式:
使用目录字典进行暴力猜解可能存在的目录或文件,通过返回的响应状态码判断是否存在,返回200或者403
使用爬虫爬取页面上的所有链接,对每个链接进行再次爬行,收集这个域名下的所有链接,然后总结出存在页面的信息
目录扫描工具:
- dirsearch https://github.com/maurosoria/dirsearch
- dirmap https://github.com/H4ckForJob/dirmap
- dirb https://www.kali.org/tools/dirb/
- dirBuster https://www.kali.org/tools/dirbuster/
- 7kbscan https://github.com/7kbstorm/7kbscan-WebPathBrute
- 御剑后台扫描工具
网站WAF识别
- WAF定义
WAF(Web Application FireWall)Web应用防火墙。可以通俗的理解为:用于保护网站,防黑客、防网络攻击的安全防护系统;是最有效、最直接的Web安全防护产品。
- WAF功能
- 防止常见的各类网络攻击,如:SQL注入、XSS跨站、CSRF、网页后门等;
- 防止各类自动化攻击,如:暴力破解、撞库、批量注册、自动发贴等;
- 阻止其它常见威胁,如:爬虫、0 DAY攻击、代码分析、嗅探、数据篡改、越权访问、敏感信息泄
漏、应用层DDOS、远程恶意包含、盗链、越权、扫描等。
- WAF识别
wafw00f
https://github.com/EnableSecurity/wafw00f
https://www.kali.org/tools/wafw00f/
kali自带该工具
1 | wafw00f http://www.example.com |
nmap也自带了waf识别功能
1 | nmap –p80,443 --script http-waf-detect ip |
看图识waf,常见WAF拦截页面总结:
https://mp.weixin.qq.com/s/PWkqNsygi-c_S7tW1y_Hxw
Google hacker
Google hacker是指利用谷歌搜索引擎进行攻击或破解的黑客。Google hacker通常具备丰富的编程经验和深厚的安全技术知识,能够快速、有效地构造有效的搜索语句,以获取敏感信息或漏洞。
Google hacking
Google hacking原指利用Google搜索引擎搜索信息来进行入侵的技术和行为;现指利用各种搜索引擎搜索信息来进行入侵的技术和行为。Google hacking通常通过构造特殊的搜索语句,让谷歌搜索引擎返回敏感信息或漏洞。Google hacking可以利用搜索引擎的强大能力,快速、有效地获取目标系统的信息,从而实现攻击目标。Google hacking需要黑客具备一定的技术知识和搜索技巧,才能构造出有效的搜索语句
常用语法
intext 在正文中搜索指定的关键字
inurl 在URL中搜索指定的关键字
intitle 在标题中搜索指定的关键字
site 搜索包含关键词的站点
filetype 搜索指定文件类型
漏洞特征
GET型SQL注入
http://www.example.com:80/index.php?id=123
关键信息提取
GET型SQL注入:URL的id
后台弱口令:URL的admin、正文的后台管理系统
语法的应用
inurl:?id= 在搜索引擎中搜索包含特定字符串的网页地址。例如,在搜索框中输入 “inurl: ?id=”,然后按下搜索按钮,就会在搜索结果中显示所有包含 “?id=” 字符串的网页地
intext: 后台管理系统在搜索引擎中搜索包含特定字符串的网页内容。例如,在搜索框中输入 “intext: 后台管理系统”,然后按下搜索按钮,就会在搜索结果中显示所有网页内容中包含 “后台管理系统” 字符串的网页
自动化漏洞挖掘
安装git:
1 | apt-get install git |
拉取ARL文件
1 | git clone https://github.com/TophantTechnology/ARL |
进入目录
1 | cd ARL/docker/ |
输入服务器地址默认端口为5003,访问呢如下地址:
1 | https://192.168.34.121:5003/login |
默认端口 5003 (https), 默认用户名密码admin/arlpass
EHole-3.0-new
下载安装
使用方式
- 本地识别:
1 | EHole finger -l url.txt //URL地址需带上协议,每行一个 |
- FOFA识别:
注意:从FOFA识别需要配置FOFA 密钥以及邮箱,在config.ini内配置好密钥以及邮箱即可使用。
1 | EHole finger -f 192.168.1.1/24 //支持单IP或IP段 |
- 结果输出:
1 | EHole finger -l url.txt -json export.json //结果输出至export.json文件 |
指纹编写
EHole(棱洞)2.0改变了原有的指纹识别规则,2.0版指纹从外部文件读入,识别方式:
指纹格式:
1 | 关键字匹配: |
1 | faviconhash匹配: |
cms:系统名称
method:识别方式 (支持三种识别方式,分别为:keyword、faviconhash、regula)
location:位置(指纹识别位置,提供两个位置,一个为body,一个为header)
keyword:关键字(favicon图标hash、正则表达式、关键字)
注意:keyword支持多关键字匹配,需要所有关键字匹配上才能识别。如:
1 | "keyword": ["sys/ui/extend/theme/default/style/icon.css", "sys/ui/extend/theme/default/style/profile.css"] |