信息收集+初步漏洞打点
目标:理解信息收集在渗透测试中的意义,熟悉常用工具用法,完成基本打点测试
一.理论学习:
模块 | 内容说明 |
---|---|
信息收集分类 | 主动信息收集 vs 被动信息收集 |
目标发现 | 子域名、IP、端口、子站点、目录、接口 |
技术指纹识别 | Web框架(如ThinkPHP)、CMS(如WordPress)、服务器中间件(如nginx、tomcat) |
OSINT 思路 | 从公开资源(百度、Shodan、Github)收集情报 |
工具准备 | 学会这些理论是后面用工具(如 nmap , whatweb )的基础 |
1.信息收集分类
主动信息收集:通过直接发起与北侧目标网络间的互动来获取相关信息,如通过Nmap扫描,直接访问网站目录,暴力破解子域名等(速度快,信息新且准确,但会留下访问痕迹)
被动信息收集:通过第三方服务间接获取目标网络相关信息,如搜索引擎查询,查询DNS历史记录,查看WHOIS信息等
(隐蔽性强,但信息可能不及时或不准确)
2.目标发现
1)子域名:大型网站往往有多个子域名,有些可能安全性较弱
方法:字典爆破工具,搜索引擎,SSL证书查询,DNS区域传输测试
2)IP:确定网站真实IP
方法:DNS历史记录查询,全球ping测试,查询MX记录,SPF记录等辅助信息,通过子域名可能找到真实IP
3)端口:确定开放的服务和潜在攻击面
方法:Nmap,masscan(高速扫描工具)
关键端口:
- web:80,443,8080,8443
- 数据库:3306(MySQL),5432(PostgreSQL)
- 远程管理:22(SSH),3389(RDP)
4)子站点/目录:发现隐蔽的管理后台,测试页面等
工具:dirsearch,gobuster,burp suite的intruder模块
6)接口:现代应用大量使用API接口,可能暴露敏感功能
方法:分析JS文件查找API端点,使用burp等代理工具捕获请求,检查/swagger/, /api-docs/等常见文档路径
3.技术指纹识别
1)Web框架识别:知道框架后可查找已知漏洞
-
方法:
-
HTTP响应头(X-Powered-By等)
-
默认错误页面特征
-
特定URL路径(如/thinkphp/...)
-
工具:whatweb, wappalyzer
-
2)CMS(内容管理系统)识别
-
常见CMS:
-
WordPress: 检查/wp-admin/, wp-includes/
-
Joomla: 检查/administrator/
-
Drupal: 检查/core/
-
-
工具:
-
CMSeek
-
在线工具:builtwith.com
-
3)服务器中间件识别:不同中间件有不同的配置方法和漏洞
-
常见中间件:
-
Nginx: Server头通常包含nginx版本
-
Apache: Server头包含Apache
-
IIS: 微软特有响应头
-
4.OSINT(开源情报)思路
1)搜索引擎技巧
-
Google Dorking:
-
site:example.com filetype:pdf
-
inurl:admin site:example.com
-
intitle:"index of" "parent directory"
-
2)Shodan:搜索联网设备
-
示例查询:
-
hostname:example.com
-
port:22 country:CN
-
product:nginx
-
3)Github情报收集:开发人员可能意外上传敏感信息
-
搜索技巧:
-
搜索公司名+关键词(password, secret, config)
-
检查.git目录泄露
-
查找历史提交中的敏感信息
-
4)其他
-
WHOIS查询:获取注册信息
-
社交媒体:LinkedIn员工信息
-
历史快照:archive.org查看网站历史版本
5.常用工具详解
1)Nmap
# 基本扫描
nmap -sV -O target_ip# 隐蔽扫描(不完成TCP握手)
nmap -sS -Pn target_ip# 脚本扫描(使用漏洞检测脚本)
nmap --script=vuln target_ip
2)WhatWeb
# 基本使用
whatweb http://example.com# 详细输出
whatweb -v http://example.com
3)Subfinder(子域名发现)
subfinder -d example.com -o subdomains.txt
4)dirsearch(目录爆破)
dirsearch -u http://example.com -e php,html,js -w /path/to/wordlist.txt
6.基本打点测试流程
-
确定范围:明确授权测试的域名/IP范围
-
被动收集:先通过OSINT方法收集信息
-
主动扫描:进行端口扫描、子域名爆破等
-
指纹识别:确定使用的技术栈
-
漏洞映射:根据技术栈查找已知漏洞
-
验证测试:对发现的潜在漏洞进行验证性测试
-
报告整理:记录所有发现,包括负面结果
二.工具实战
Amass&Httpx
被动枚举:(不跟目标通信)
amass enum -passive -d baidu.com
结果:
格式:<域名> → <记录类型> → <目标>:哪个域名通过什么记录类型关联到了哪个结果
记录类型 | 信息含义 | 实战用途 |
---|---|---|
A Record | 域名对应 IP | 后续 Nmap 扫描 |
CNAME | 指向别名域 | 检查外部服务、接管风险 |
MX | 邮件服务器 | 邮件相关服务探测 |
NS | DNS 服务器 | 枚举 NS、尝试 Zone Transfer |
ASN/IP段 | IP归属分析 | 扩展目标范围 |
主动枚举:(跟目标服务器通信)+保存结果
amass enum -active -d baidu.com -o amass_output.txt
1)格式化输出结果,提取子域名
grep -oE '[a-zA-Z0-9.-]+\.baidu\.com' amass_output.txt | sort -u > baidu_subs.txt
解释:用正则提取FQDN域名,sort -u去重,输出成只有子域名的一行一个的格式
2)探测子域是否可访问
httpx -l baidu_subs.txt -status-code -title -tech-detect -ip -o baidu_live.txt
3)识别潜在风险子域
cat amass_output.txt | grep "cname_record" | grep -v "baidu.com" > cname_candidates.txt
Nmap
功能 | 参数 | 说明 |
---|---|---|
扫描目标 | nmap target.com | 默认扫描常用端口 |
指定端口 | -p 80,443 | 扫描特定端口 |
所有端口 | -p- | 扫描所有 65535 个端口 |
快速扫描 | -F | 扫描常用 100 端口 |
服务识别 | -sV | 探测服务名称和版本 |
OS识别 | -O | 探测操作系统 |
使用脚本 | --script=xxx | 使用 NSE 脚本 |
输入文件扫描 | -iL list.txt | 从文件导入 IP 列表 |
输出 | -oN out.txt | 普通输出到文件 |
WhatWeb
用于识别网站所使用的技术栈,web服务器,中间件框架,CMS系统,编程语言,安全机制等
通过HTTP头部信息,HTML内容中的关键词或特征码,cookies中的特征字段,JS,CSS文件路径等进行识别
whatweb http://example.com
参数 | 含义 |
---|---|
-v | 显示详细信息(verbose) |
-a LEVEL | 识别级别(Aggression Level):从 1 到 4,默认 1,4 最激进 |
-U AGENT | 伪造 User-Agent |
-t | 设置并发线程数(默认1) |
-o FILENAME | 输出结果到文件 |
--log-verbose=FILENAME | 记录详细日志 |
--no-errors | 不显示错误信息 |
--proxy | 设置代理(如 Burp Suite) |
--color=never | 禁用颜色输出 |
用工具扫描vulhub实例
用whatweb进行技术指纹识别
用dirsearch进行目录扫描
nikto:自动检测常见漏洞,弱点配置
可进行路径遍历,文件泄露漏洞
相关文章:

信息收集+初步漏洞打点
目标:理解信息收集在渗透测试中的意义,熟悉常用工具用法,完成基本打点测试 一.理论学习: 模块内容说明信息收集分类主动信息收集 vs 被动信息收集目标发现子域名、IP、端口、子站点、目录、接口技术指纹识别Web框架(如…...
2025年01月10日浙江鑫越系统科技前端面试
目录 vue2 和 vue3 的区别vue 怎么封装组件js 怎么把一个数组置空怎么组件自己调用自己的组件v-bind:attribute 和 v-bind“{attribute}” 的区别var let const 的区别this 指向作用域链闭包原型链事件循环 1. vue2 和 vue3 的区别 Vue 2 和 Vue 3 在多个方面存在区别&#…...

JavaScript【5】DOM模型
1.概述: DOM (Document Object Model):当页面被加载时,浏览器会创建页面的文档对象模型,即dom对象;dom对象会被结构化为对象树,如一个HTML文档会被分为head,body等部分,而每个部分又…...

Cloudflare防火墙拦截谷歌爬虫|导致收录失败怎么解决?
许多站长发现网站突然从谷歌搜索结果中“消失”,背后很可能是Cloudflare防火墙误拦截了谷歌爬虫(Googlebot),导致搜索引擎无法正常抓取页面。 由于Cloudflare默认的防护规则较为严格,尤其是针对高频访问的爬虫IP&…...
鸿蒙OSUniApp 实现的表单验证与提交功能#三方框架 #Uniapp
UniApp 实现的表单验证与提交功能 前言 在移动端应用开发中,表单是用户与应用交互的重要媒介。一个好的表单不仅布局合理、使用方便,还应该具备完善的验证与提交功能,以确保用户输入的数据准确无误。本文将分享如何在 UniApp 中实现表单验证…...

如何在 Windows 11 或 10 的 CMD 中检查固件
检查 Windows 11 或 10 中现有设备的硬件固件版本,可以帮助用户安装和更新准确的驱动程序,进行故障排除活动,确保兼容性以及维护系统性能。因此,在本教程中,我们将讨论如何在命令提示符(CMD)中使用一些命令查找 Windows 服务器或桌面中硬件固件版本的方法。由于本教程将…...

进阶-数据结构部分:3、常用查找算法
飞书文档https://x509p6c8to.feishu.cn/wiki/LRdnwfhNgihKeXka7DfcGuRPnZt 顺序查找 查找算法是指:从一些数据之中,找到一个特殊的数据的实现方法。查找算法与遍历有极高的相似性,唯一的不同就是查找算法可能并不一定会将每一个数据都进行访…...
Oracle 11.2.0.4 pre PSU Oct18 设置SSL连接
Oracle 11.2.0.4 pre PSU Oct18 设置SSL连接 1 说明2 客户端配置jdk环境3服务器检查oracle数据库补丁4设置ssla 服务器配置walletb 上传测试脚本和配置文件到客户端c 服务器修改数据库侦听和sqlnet.orad 修改客户端的sqlnet.ora和tnsnames.ora的连接符e 修改java代码的数据连接…...
服务器连接多客户端
一、epoll 核心函数详解 1. epoll_create/epoll_create1 - 创建 epoll 实例 c #include <sys/epoll.h> int epoll_create(int size); // Linux 2.6.8前需指定size(>1),后续版本可忽略 int epoll_create1(int flags); // 推荐使用…...

基于QT和FFmpeg实现自己的视频播放器FFMediaPlayer(一)——项目总览
在音视频开发的学习过程中,开发一款视频播放器是FFmpeg进阶的最好实战方法。本文将基于 QT 和 FFmpeg 着手实现自定义视频播放器 FFMediaPlayer,作为系列文章的开篇,我们先来整体了解项目的设计思路、架构与配置。 一、软件设计五大原则 …...
服务器死机了需要检查哪些问题
在这个数字化的时代,服务器就像是我们信息世界的“大管家”,可要是它突然死机了,那可真是让人头疼。今天咱们就来聊聊,服务器死机了,到底需要检查哪些问题。 一、硬件问题 电源供应:检查电源是否稳定&…...

【HCIA】浮动路由
前言 我们通常会在出口路由器配置静态路由去规定流量进入互联网默认应该去往哪里。那么,如果有两个运营商的路由器都能为我们提供上网服务,我们应该如何配置默认路由呢?浮动路由又是怎么一回事呢? 文章目录 前言1. 网络拓扑图2. …...

使用instance着色
本节我们学习使用instance着色器进行着色 //拾取var handler new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);handler.setInputAction(function(movement){console.log(movement);var pickedObject viewer.scene.pick(movement.position);if(Cesium.defined(picke…...

【NLP 72、Prompt、Agent、MCP、function calling】
命运把我们带到哪里,就是哪里 —— 25.5.13 一、Prompt 1.User Prompt 用户提示词 当我们与大模型进行对话时,我们向大模型发送的消息,称作User Prompt,也就是用户提示词,一般就是我们提出的问题或者想说的话 但是我们…...

Mysql数据库之集群进阶
一、日志管理 5.7版本自定义路径时的文件需要自己提前创建好文件,不会自动创建,否则启动mysql会报错 错误日志 rpm包(yum) /var/log/mysql.log 默认错误日志 ###查询日志路径 [rootdb01 ~]# mysqladmin -uroot -pEgon123 variables | grep -w log_e…...

临床决策支持系统的提示工程优化路径深度解析
引言 随着人工智能技术在医疗领域的迅猛发展,临床决策支持系统(CDSS)正经历从传统规则引擎向智能提示工程的范式转变。在这一背景下,如何构建既符合循证医学原则又能适应个体化医疗需求的CDSS成为医学人工智能领域的核心挑战。本报告深入剖析了临床决策支持系统中提示工程的…...
精益数据分析(64/126):移情阶段的用户触达策略——从社交平台到精准访谈
精益数据分析(64/126):移情阶段的用户触达策略——从社交平台到精准访谈 在创业的移情阶段,精准找到目标用户并开展深度访谈是验证需求的关键。今天,我们结合《精益数据分析》中的方法论,探讨如何利用Twit…...

苹果新一代车载系统CarPlay Ultra来袭,全屏接管+ChatGPT助力,智能驾驶要“起飞”
AITOP100获悉,苹果又搞出大动作啦!正式推出了新一代车载系统——CarPlay Ultra。这次,苹果可是下了狠功夫,把iPhone和汽车的所有显示屏深度整合到了一起,还首次把ChatGPT引入到了驾驶体验当中。这系统可不简单…...

无线信道的噪声与干扰
目录 1. 无线信道(wireless channel)与电磁波 2.1 电磁波的传输(无线信道传输) 2.2 视线(line of sight)传播与天线高度 2. 信道的数学模型 2.1 调制信道模型 2.1.1 加性噪声/加性干扰 2.1.2 乘性噪声/乘性干扰 2.1.3 随参信道/恒参信道 2.2 编码信道模型 2.3 小结 …...

MySQL 8.0 OCP 1Z0-908 101-110题
Q101.which two queries are examples of successful SQL injection attacks? A.SELECT id, name FROM backup_before WHERE name‘; DROP TABLE injection; --’; B. SELECT id, name FROM user WHERE id23 oR id32 OR 11; C. SELECT id, name FROM user WHERE user.id (SEL…...

BBR 的 buffer 动力学观感
这周很忙,今天还加了一天班,但还是抽空实现了五一在安徽泾县山区喝着一壶酒写的 BBR ProbeRTT 的想法,没多少行代码,它真就消除了带宽锯齿,皮了个鞋👞,昨天我还在群里说了今天再说说 BBR 的&…...

Spring之Bean的初始化 Bean的生命周期 全站式解析
目录 导图 步骤 第一步 实例化 第二步 属性赋值 第三步 初始化 aware 接口 BeanPostProcessor 接口 InitializingBean 和 init-method 第四步使用 第五步使用后销毁 描述一下 Bean 的 生命周期 导图 步骤 总体上可以分为五步 首先是 Bean 的实例化Bean 在进行实例…...

FreeCAD源码分析: Transaction实现原理
本文阐述FreeCAD中Transaction的实现原理。 注1:限于研究水平,分析难免不当,欢迎批评指正。 注2:文章内容会不定期更新。 一、概念 Ref. from What is a Transaction? A transaction is a group of operations that have the f…...

flutter缓存网络视频到本地,可离线观看
记录一下解决问题的过程,希望自己以后可以参考看看,解决更多的问题。 需求:flutter 缓存网络视频文件,可离线观看。 解决: 1,flutter APP视频播放组件调整; 2,找到视频播放组件&a…...

Kotlin 中 infix 关键字的原理和使用场景
在 Kotlin 中,使用 infix 关键字修饰的函数称为中缀函数,使用是可以省略 . 和 (),允许以更自然(类似自然语言)的语法调用函数,这种特性可以使代码更具可读性。 1 infix 的原理 中缀函数必须满足以下条件&…...

c++从入门到精通(五)--异常处理,命名空间,多继承与虚继承
异常处理 栈展开过程: 栈展开过程沿着嵌套函数的调用链不断查找,直到找到了与异常匹配的catch子句为止;也可能一直没找到匹配的catch,则退出主函数后查找过程终止。栈展开过程中的对象被自动销毁。 在栈展开的过程中,…...
mock 数据( json-server )
json-server 实现数据 mock 实现步骤: 1. 在项目中安装 json-server npm install -D json-server 2. 准备一个 json 文件 server/data.json {"posts": [{ "id": "1", "title": "a title", "views"…...
Java多线程编程中的常见问题与陷阱汇总
线程安全问题 多线程环境下,多个线程同时访问共享资源时,可能会导致数据不一致或程序行为异常。常见的线程安全问题包括竞态条件、死锁、活锁等。 public class Counter {private int count 0;public void increment() {count;}public int getCount()…...
ARP Detection MAC-Address Static
一、ARP Detection(ARP检测) ✅ 定义: ARP检测是一种防止ARP欺骗攻击的安全机制。它通过监控或验证网络中的ARP报文,来判断是否存在伪造的ARP信息。 🔍 工作原理: 网络设备(如交换机…...

gcc/g++常用参数
1.介绍 gcc用于编译c语言,g用于编译c 源代码生成可执行文件过程,预处理-编译-汇编-链接。https://zhuanlan.zhihu.com/p/476697014 2.常用参数说明 2.1编译过程控制 参数作用-oOutput,指定输出名字-cCompile,编译源文件生成对…...