信息收集+初步漏洞打点
目标:理解信息收集在渗透测试中的意义,熟悉常用工具用法,完成基本打点测试
一.理论学习:
模块 | 内容说明 |
---|---|
信息收集分类 | 主动信息收集 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框架(如…...
计算机视觉与深度学习 | Python实现EMD-SSA-VMD-LSTM时间序列预测(完整源码和数据)
EMD-SSA-VMD-LSTM混合模型 一、环境配置与依赖二、数据生成(示例数据)三、多级信号分解1. 经验模态分解(EMD)2. 奇异谱分析(SSA)3. 变分模态分解(VMD) 四、数据预处理1. 归一化处理2…...
Linux线程同步信号量
什么是信号量(Semaphore)? 信号量(Semaphore) 是一种用于线程同步和进程间通信的机制,它用于控制多个线程对共享资源的访问。在 Linux 中,信号量通常用于防止多个线程同时访问有限的资源&#…...
日志系统**
1.设置日志级别 enum LogLevel{TRACE,DEBUG,INFO,WARN,ERROR,FATAL,NUM_LOG_LEVELS,}; 2.日志格式 TimeStamp 级别 内容 [2025-05-17 20:32:41][ERROR]This is an error message 3.输出:控制台/文件 4.注意 #include <chrono> #include <iomanip&g…...
【C++】18.二叉搜索树
由于map和set的底层是红黑树,同时后面要讲的AVL树(高度平衡二叉搜索树),为了方便理解,我们先来讲解二叉搜索树,因为红黑树和AVL树都是在二叉搜索树的前提下实现的 在之前的C语言数据结构章节中,我们讲过二叉树&#x…...
刘家祎双剧收官见证蜕变,诠释多面人生
近期,两部风格迥异的剧集迎来收官时刻,而青年演员刘家祎在《我家的医生》与《无尽的尽头》中的精彩演绎,无疑成为观众热议的焦点。从温暖治愈的医疗日常到冷峻深刻的少年救赎,他以极具张力的表演,展现出令人惊叹的可塑…...
python + streamlink 下载 vimeo 短视频
1. 起因, 目的: 看到一个视频,很喜欢,想下载。https://player.vimeo.com/video/937787642 2. 先看效果 能下载。 3. 过程: 因为我自己没头绪。先看一下别人的例子, 问一下 ai 或是 google问了几个来回,原来是流式…...
18-总线IIC
一、IIC 1、IIC概述 I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS(飞利浦)公司开发用于连接微控制器及其外围设备。 它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间…...
【深度学习-Day 12】从零认识神经网络:感知器原理、实现与局限性深度剖析
Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...
力扣HOT100之二叉树:98. 验证二叉搜索树
这道题之前也刷过,自己做了一遍,发现卡在了第70多个样例,才发现自己没有利用二叉搜索树的性质,但凡涉及到二叉搜索树,应该首先考虑中序遍历!!! 被卡住的测试样例是这样的:…...
vector(c++)
前言 正式进入学习STL的第一步就是vector容器, vector是一种用于存储可变大小数组的序列容器,就像数组一样,vector也采用的连续存储空间来存储元素。本质上讲,vector使用动态分配数组来存储它的元素。底层是一个顺序表。本文介绍…...
CAPL Class: TcpSocket (此类用于实现 TCP 网络通信 )
目录 Class: TcpSocketacceptopenclosebindconnectgetLastSocketErrorgetLastSocketErrorAsStringlistenreceivesendsetSocketOptionshutdown函数调用的基本流程服务器端的基本流程客户端的基本流程Class: TcpSocket学习笔记。来自CANoe帮助文档。 Class: TcpSocket accept /…...
C语言:gcc 如何调用 Win32 打开文件对话框 ?
在 Windows 平台上使用 gcc 调用原生 Win32 API 实现文件打开对话框是可行的,但需要直接使用 Win32 的 GetOpenFileName 函数(位于 commdlg.h 头文件,依赖 comdlg32.lib 库)。以下是完整实现步骤和代码示例: 编写 file…...
OpenHarmony:开源操作系统重塑产业数字化底座
OpenHarmony:开源操作系统重塑产业数字化底座 引言:当操作系统成为数字公共品 在万物智联时代,操作系统不再是科技巨头的专属领地。华为捐赠的OpenHarmony项目,正以开源协作模式重构操作系统产业格局。这个脱胎于商业版本的开源…...
线程同步学习
概念 有A、B、C三个线程,A线程负责输入数据,B线程负责处理数据、C线程负责输出数据,这三个线程之间就存在着同步关系,即A必须先执行,B次之,C最后执行,否则不能得到正确的结果。 那么所谓线程同…...
十二、Hive 函数
作者:IvanCodes 日期:2025年5月17日 专栏:Hive教程 在数据处理的广阔天地中,我们常常需要对数据进行转换、计算、清洗或提取特定信息。Hive 提供了强大的内置运算符和丰富的内置函数库,它们就像魔法师手中的魔法棒&…...
DeepSeek 赋能社会科学:解锁研究新范式
目录 一、DeepSeek:大语言模型中的新力量1.1 DeepSeek 技术亮点1.2 与其他模型对比 二、DeepSeek 在社会科学研究中的应用领域2.1 经济学研究2.2 社会学研究2.3 历史学研究2.4 法学研究 三、DeepSeek 应用案例深度剖析3.1 案例一:社会学研究中社会舆情分…...
java函数内的变量问题
public class VendingMachine {//设计一个类叫做VendingMachine,用这个类制造一个对象vmint price 80;int balance;//三个属性int total;void showprompt(){System.out.println("Welcome");}void insertmoney(int amount){balance balance amount;}void showBalan…...
docker部署第一个Go项目
1.前期准备 目录结构 main.go package mainimport ("fmt""github.com/gin-gonic/gin""net/http" )func main() {fmt.Println("\n .::::.\n .::::::::.\n :::::::::::\n …...
【读代码】端到端多模态语言模型Ultravox深度解析
一、项目基本介绍 Ultravox是由Fixie AI团队开发的开源多模态大语言模型,专注于实现音频-文本的端到端实时交互。项目基于Llama 3、Mistral等开源模型,通过创新的跨模态投影架构,绕过了传统语音识别(ASR)的中间步骤,可直接将音频特征映射到语言模型的高维空间。 核心优…...
管理前端项目依赖版本冲突导致启动失败的问题的解决办法
管理前端项目依赖版本冲突导致启动失败的问题,可按照以下步骤系统解决: 1. 定位冲突来源 查看错误日志:启动失败时的控制台报错通常会指出具体模块或版本问题,例如 Module not found 或 TypeError。检查依赖树:npm l…...
北京市工程技术人才职称评价基本标准条件解读
北京市工程技术人才职称评价基本标准条件 北京市工程技术人才之技术员 北京市工程技术人才之助理工程师 北京市工程技术人才之工程师 北京市工程技术人才之高级工程师 北京市工程技术人才之高级工程师(破格) 北京市工程技术人才之正高级工程师 北京市工程…...
MUSE Pi Pro 开发板 Imagination GPU 利用 OpenCL 测试
视频讲解: MUSE Pi Pro 开发板 Imagination GPU 利用 OpenCL 测试 继续玩MUSE Pi Pro,今天看下比较关注的gpu这块,从opencl看起,安装clinfo指令 sudo apt install clinfo 可以看到这颗GPU是Imagination的 一般嵌入式中gpu都和hos…...
Mysql数据库之集群进阶
一、日志管理 5.7版本自定义路径时的文件需要自己提前创建好文件,不会自动创建,否则启动mysql会报错 错误日志 rpm包(yum) /var/log/mysql.log 默认错误日志 ###查询日志路径 [rootdb01 ~]# mysqladmin -uroot -pEgon123 variables | grep -w log_e…...
JavaScript防抖与节流全解析
文章目录 前言:为什么需要防抖和节流基本概念与区别防抖(Debounce)节流(Throttle)关键区别防抖(Debounce)详解1. 基本防抖函数实现2. 防抖函数的使用3. 防抖函数的工作流程4. 防抖函数进阶 - 立即执行选项节流(Throttle)详解1. 基本节流函数实现时间戳法(第一次会立即执行)定…...
大模型学习:Deepseek+dify零成本部署本地运行实用教程(超级详细!建议收藏)
文章目录 大模型学习:Deepseekdify零成本部署本地运行实用教程(超级详细!建议收藏)一、Dify是什么二、Dify的安装部署1. 官网体验2. 本地部署2.1 linux环境下的Docker安装2.2 Windows环境下安装部署DockerDeskTop2.3启用虚拟机平台…...
在RK3588上使用NCNN和Vulkan加速ResNet50推理全流程
在RK3588上使用NCNN和Vulkan加速ResNet50推理全流程 前言:为什么需要关注移动端AI推理一、环境准备与框架编译1.1 获取NCNN源码1.2 安装必要依赖1.3 编译NCNN二、模型导出与转换2.1 生成ONNX模型2.2 转换NCNN格式三、模型量化加速3.1 生成校准数据3.2 执行量化操作四、性能测试…...
Web安全基础:深度解析与实战指南
一、Web安全体系架构的全面剖析 1.1 分层防御模型(Defense in Depth) 1.1.1 网络层防护 防火墙技术: 状态检测防火墙(SPI):基于连接状态跟踪,阻断非法会话(如SYN Flood攻击)下一代防火墙(NGFW):集成IPS、AV、URL过滤(如Palo Alto PA-5400系列)配置示例…...
Uniapp开发鸿蒙应用时如何运行和调试项目
经过前几天的分享,大家应该应该对uniapp开发鸿蒙应用的开发语法有了一定的了解,可以进行一些简单的应用开发,今天分享一下在使用uniapp开发鸿蒙应用时怎么运行到鸿蒙设备,并且在开发中怎么调试程序。 运行 Uniapp项目支持运行到…...
Python海龟绘图(Turtle Graphics)核心函数和关键要点
以下是Python海龟绘图(Turtle Graphics)的核心函数和关键要点整理: 一、画布设置 函数/方法说明参数说明备注turtle.setup(width, height, x, y)设置画布尺寸和位置width宽度,height高度,x/y窗口左上角坐标默认尺寸80…...
如何在Cursor中高效使用MCP协议
1、Cursor介绍 Cursor是一个功能强大的开发工具,内置了聊天助手、代码自动补全和调试工具,能够与多种外部工具和服务(如数据库、文件系统、浏览器等)进行深度集成。借助MCP(Multiverse Communication Protocol&#x…...
典籍知识问答模块AI问答bug修改
一、修改流式数据处理问题 1.问题描述:由于传来的数据形式如下: event:START data:350 data:< data:t data:h data:i data:n data:k data:> data: data: data: data: data:嗯 data:, 导致需要修改获取正常的当前信息id并更…...
Redis 发布订阅模式深度解析:原理、应用与实践
在现代分布式系统架构中,实时消息传递机制扮演着至关重要的角色。Redis 作为一款高性能的内存数据库,其内置的发布订阅(Pub/Sub)功能提供了一种轻量级、高效的消息通信方案。本文将全面剖析 Redis 发布订阅模式,从其基本概念、工作原理到实际…...
通义千问-langchain使用构建(三)
目录 序言docker 部署xinference1WSL环境docker安装2拉取镜像运行容器3使用的界面 本地跑chatchat1rag踩坑2使用的界面2.1配置个前置条件然后对话2.2rag对话 结论 序言 在前两天的基础上,将xinference调整为wsl环境,docker部署。 然后langchain chatcha…...
c++ 仿函数
示例代码: void testFunctor() {using Sum struct MyStruct {int operator() (int a, int b) const { // 重载()运算符return a b;}};Sum sum;std::cout << sum(9528, -1) << std::endl; } 打印: 仿函数意思是&am…...
hyper-v 虚拟机怎么克隆一台一样的虚拟机?
环境: hyper-v Win10专业版 问题描述: hyper-v 虚拟机怎么克隆一台一样的虚拟机? 解决方案: 以下是在 Hyper-V 中克隆虚拟机的几种方法: 方法一:使用导出和导入功能 导出虚拟机: 打开 H…...
操作系统:os概述
操作系统:OS概述 程序、进程与线程无极二级目录三级目录 程序、进程与线程 指令执行需要那些条件?CPU内存 需要数据和 无极 二级目录 三级目录...
【技巧】GoogleChrome浏览器开发者模式查看dify接口
回到目录 GoogleChrome浏览器开发者模式查看dify接口 1.搭建本地dify开发环境 参考 《 win10的wsl环境下调试dify的api后端服务(20250511发布)》 2.打开dify首页,进入开发者模式,Network页 勾选 Preserve log [图1] 3.填好用户名和密码,…...
Ocean: Object-aware Anchor-free Tracking
领域:Object tracking It aims to infer the location of an arbitrary target in a video sequence, given only its location in the first frame 问题/现象: Anchor-based Siamese trackers have achieved remarkable advancements in accuracy, yet…...
java中的循环结构
文章目录 流程控制顺序结构if单选择结构if双选择结构if多选择结构嵌套的if结构switch多选择结构 循环结构while循环do...while循环 for循环增强for循环 break continue练习案例 流程控制 顺序结构 java的基本结果就是顺序结构,除非特别指明,否则就按照…...
数学复习笔记 16
前言 例题真是经典。 background music 《青春不一样》 2.28 算一个行列式,算出来行列式不等于零,这表示矩阵式可逆的。但是这个算的秩是复合的,感觉没啥好办法了,我直接硬算了,之后再看解析积累好的方法。算矩阵…...
PySide6 GUI 学习笔记——常用类及控件使用方法(常用类颜色QColor)
文章目录 一、概述二、核心功能三、常用函数及方法四、代码示例五、注意事项 一、概述 QColor 是用于处理颜色的类,支持 RGB、HSV、HSL、CMYK 等多种颜色模型,提供颜色创建、转换、分量操作及格式转换功能。支持透明度设置,可通过颜色名称或…...
【Closure-Hayd】
RNA序列本身存在结构上的物理信息,因此可以利用文献提供的相关方法来对RNA序列的物理特征进行更加细致的提取。 几何向量编码(GVP模块)借鉴Rhodesign模型中的GVP(Geometric Vector Perceptron)模块,将每个…...
MySQL高可用架构
一、读写分离在高可用架构中的核心作用 1.读写分离与高可用的协同价值 在MySQL高可用架构中,读写分离不仅是性能优化的手段,更是提升系统容错能力的关键策略。通过将写操作(INSERT、UPDATE、DELETE) 集中到主节点,读…...
粒子群算法(PSO算法)
粒子群算法概述 1.粒子群优化算法(Particle Swarm Optimization,简称PSO)。粒子群优化算法是在1995年由Kennedy博士和Eberhart博士一起提出的,它源于对鸟群捕食行为的研究。 2.基本核心是利用群体中的个体对信息的共享从而使得整…...
信道编码技术介绍
信息与通信系统中的编码有4 种形式:信源编码、信道编码、密码编码和多址编码。 其中信道编码的作用是对信源经过压缩后的数据加一定数量受到控制的冗余,使得数据在传输中或接收中发生的差错可以被纠正或被发现,从而可以正确恢复出原始数据信息…...
JavaScript【4】数组和其他内置对象(API)
1.数组: 1.概述: js中数组可理解为一个存储数据的容器,但与java中的数组不太一样;js中的数组更像java中的集合,因为此集合在创建的时候,不需要定义数组长度,它可以实现动态扩容;js中的数组存储元素时,可以存储任意类型的元素,而java中的数组一旦创建后,就只能存储定义类型的元…...
【背包dp-----分组背包】------(标准的分组背包【可以不装满的 最大价值】)
通天之分组背包 题目链接 题目描述 自 01 01 01 背包问世之后,小 A 对此深感兴趣。一天,小 A 去远游,却发现他的背包不同于 01 01 01 背包,他的物品大致可分为 k k k 组,每组中的物品相互冲突,现在&a…...
docker-compose——安装mongo
编写docker-compose.yml version : 3.8services:zaomeng-mongodb:container_name: zaomeng-mongodbimage: mongo:latestrestart: alwaysports:- 27017:27017environment:- MONGO_INITDB_ROOT_USERNAMEroot- MONGO_INITDB_ROOT_PASSWORDpssw0rdvolumes:- ./mongodb/data:/data/…...
day 28
类 一个常见的类的定义包括了: 1. 关键字class 2. 类名 3. 语法固定符号冒号(:) 4. 一个初始化函数__init__(self) Pass占位符和缩进 Python 通过缩进来定义代码块的结构。当解释器遇到像 def, class, if, for 这样的语句,并且后面跟着冒号 : 时&…...