渗透测试基础
1. 渗透测试的概念
渗透测试(Penetration Test)并没有一个绝对标准的定义,但国内外安全组织已达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析。这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。
换句话来说,渗透测试是指安全人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题,从而进行针对性的修复和加固。
渗透测试的基本流程
- 信息收集:收集目标系统的域名、IP 地址、端口、服务版本等信息。
- 扫描探测:使用自动化工具扫描漏洞,识别潜在的攻击面。
- 漏洞利用:尝试利用发现的漏洞获取系统权限或敏感数据。
- 后渗透:在获得初步访问权限后,进一步横向移动或提升权限。
- 报告编写:记录所有发现、利用过程及修复建议。
2. 安全术语介绍
为了理解渗透测试,需要掌握以下核心术语:
- 脚本(asp、php、jsp):服务器端运行的动态网页代码,常作为 Web 应用的基础。
- HTML/CSS/JS:前端三件套,用于构建用户界面,也是 XSS 等攻击的主要载体。
- HTTP 协议:超文本传输协议,Web 通信的基础。
- CMS 内容管理系统:如 WordPress、DedeCMS 等,基于 B/S 架构,常因插件漏洞成为攻击目标。
- MD5/加盐(salt):常见的哈希算法,加盐是为了防止彩虹表破解密码。
- 肉鸡、抓鸡:指被黑客控制并植入木马的计算机,DDOS 攻击常利用大量肉鸡发起。
- 一句话、小马、大马:Webshell 的不同类型,用于维持对服务器的控制权。
- Webshell、提权、后门、跳板:Webshell 是上传到服务器的脚本;提权是获取更高权限;后门是隐蔽入口;跳板是隐藏真实 IP 的中间服务器。
- Rookit:一种高级 Rootkit,能够隐藏进程、文件和网络连接。
- 源码打包、脱裤、暴库:指网站源代码泄露,导致敏感信息暴露。
- 嗅探、社工:嗅探是截获网络数据包;社工是利用社会工程学获取信息。
- POC、EXP、CVE:POC 是概念验证,EXP 是完整利用代码,CVE 是公共漏洞披露编号。
- SRC 平台、0day:SRC 是企业漏洞响应中心;0day 指尚未公开修复的漏洞。
- 事件型漏洞、通用型漏洞:前者针对特定配置,后者广泛存在于某类软件中。
- Web 服务器、容器、中间件:如 Nginx、Tomcat、IIS 等,是 Web 应用运行的环境。
3. HTTP 协议讲解
概述
超文本传输协议(HTTP,HyperText Transfer Protocol)是一种详细规定了浏览器和万维网服务器之间互相通信的规则。它是万维网交换信息的基础,允许将 HTML 文档从 Web 服务器传送到 Web 浏览器。
HTTP URL
统一资源定位符(URL)是一种特殊类型的 URI,包含了用于查找某个资源的足够信息。
格式如下:
http://host[":"port][abs_path]
例如:
http://www.example.com:80/admin/index.php


