渗透测试
· 阅读需 4 分钟
渗透测试学习记录
渗透测试的学习可分为基础知识、信息收集、Web安全、主机安全、内网渗透、中间件与组件安全、安全工具应用以及报告与方法论等几个主要部分。
基础知识
主要包括:
1. 计算机网络
- OSI / TCP-IP 模型
- TCP、UDP
- 三次握手、四次挥手
- HTTP / HTTPS
- DNS
- Cookie、Session、JWT
- 反向代理、CDN、负载均衡基础
**学习程度:**这一块的目标不是会背概念,而是看到一个站点或一台主机,能看懂它大概怎么跑起来
2. Linux 和 Windows 基础
Linux
- 常用命令
- 文件权限
- 进程、端口、服务
- 用户与组
- 定时任务
- 日志查看
Windows
- 用户、组、权限
- 服务、计划任务
- 注册表基础
- CMD / PowerShell
- 远程连接方式
**学习程度:**拿到一个低权限 shell 后,你至少不会连系统都看不懂
3. 编程与脚本
Python、Shell、JavaScript、SQL
**学习程度:**能看懂接口参数、读懂简单后端代码逻辑、能写 poc、exp 批量验证
4. 数据库基础
SQL 基本语法、增删改查、权限概念
MySQL、MSSQL、Oracle、Redis等
信息收集
渗透测试很多时候不是一上来打漏洞,而是先摸清目标
主要学:
- 主域名、子域名、IP段收集
- 小程序、APP、公众号收集
- 端口扫描、指纹识别
- 目录扫描、JS接口挖掘
- 资产测绘
- 搜索引擎语法、公开情报收集
这一块决定你能不能找到入口
Web 安全
这是最核心、最常见、也是最适合入门实战的一块
重点内容:
- SQL 注入
- XSS
- CSRF
- 文件上传
- 文件包含
- SSRF
- XXE
- 反序列化
- 命令执行
- 越权
- 身份认证与权限控制漏洞
- 业务逻辑漏洞
每个漏洞需要知道的:原理、漏洞存在点、利用方式、修复思路
中间件与组件安全
- Tomcat
- Nginx
- Apache
- IIS
- Redis
- Docker 基础
- Jenkins
- Spring 常见漏洞理解
- Shiro
- Fastjson
- Log4j 了解原理
- Weblogic 基础认知
看到对应指纹后,需要知道可能存在什么漏洞
主机提权
拿到 Web 入口后,经常要继续向系统层深入
Linux 提权
- 抓密码提权
- sudo 配置不当
- SUID
- 内核提权基础认知
- 定时任务
- 环境变量
- 服务配置问题
- 以root的运行的服务,其中包括第三方软件都可以进行提权。
Windows 提权
- 服务权限配置错误
- 弱权限服务
- 计划任务
- AlwaysInstallElevated
- UAC 基础
- 凭据基础认知
这一块的核心是:从站点漏洞拿到服务器权限
内网渗透
主要内容:
- 域环境基础
- AD、Kerberos、NTLM
- 横向移动
- 凭据抓取、弱口令、口令喷洒
- 隧道与代理
- 内网信息收集
- 权限维持与痕迹规避基础
- 常见域攻击思路
至少知道内网渗透是怎么从单机权限走到域内扩展的