[Day2] What is Pentest

渗透测试简介

今天来跟各位介绍一下,什麽是渗透测试。渗透测试(Penetration Test),简称 Pentest (笔测试)、PT,是公司、机构希望寻找以骇客的思维试图入侵自己的系统,尝试寻找出其设备之中的弱点。

攻击方可称为红队,红队会尝试透过各种方式,扫描与试图入侵公司的设备。除了网页之外,包含任何软硬体都可以是渗透测试的目标。为什麽一间公司会需要做渗透测试呢?难道透过足够高级的防火墙、防毒等防护设备不够吗?事实上,渗透测试主要针对的与处理的对象,是在尝试找出机构内的软硬体是否有设计上的缺陷,或年久失修等。

渗透测试与弱点扫描

许多人可能会听过另外一个名词:弱点扫描,弱点扫描可以是渗透测试的一环,但弱点扫描并不能完全地等於渗透测试。通常的弱点扫描都是透过现有的程序,针对系统做全自动化的扫瞄。相对於渗透测试而言,其成本较低,但效果也较差,因为比较无法针对特定的对象进行客制化的服务,而渗透测试则是可以针对指定的对象,给予最适合的需求与服务。

渗透测试相关指引

渗透测试与各种资安技能一样,都有许多相关的规范可以参考,但大多数的规范也都可以拿来参考使用,常见的规范与资源有以下几项。

  • OWASP Testing Guide
    • OWSAS 全名 Open Web Application Security Project®,直接的翻译为「开放网路安全计画」,相信各位对 OWASP 应该都不陌生, OWASP 除了最着名的 Web Top 10 之外,还有非常多其他的资源可以取用。
  • OSSTMM
    • OSSTMM 全名是 The Open Source Security Testing Methodology ,是 The Institute for Security and Open Methodologies (ISECOM) 提出的。
  • PTES
    • PETS 是 宠物 Penetration Testing Execution Standard。

渗透测试与 CTF

刚开始学习资安的新手,如果是以攻击者为角度的资安,通常都会从 CTF 入手,CTF 面临的通常都是以特定的漏洞包装的题目,训练大家有自行挖掘漏洞的能力。而通常简易的渗透测试,除了挖掘漏洞之外,我们更常会运用现有的资源来进行攻击与测试,例如已经公开 Exploit 的 CVE 漏洞等。

在 CTF 中,通常比较不会出现一些枚举,暴力破解等相关的技术;因为往往这对於纯研究资安技术的领域而言是一件满无聊的事情,只要字典档够充足、时间足够的状况下就可以暴力破解、搜寻出来。但是现实生活中的场域就非常不一样了,现实生活中常常因为使用者的疏漏,使用各种的弱密码;忘记删除某些测试的档案。这种以「人」为主的弱点,以技术的角度来说,通常都会比 CTF 简单满多,也都是 PT 需要进行考量的部分。

渗透测试的流程

在渗透测试开始之前,最最最最重要的事情是请於渗透测试前,取得对方的同意,定义好渗透测试的目标,千万要保护好自己,也要保护好客户。

由於渗透测试通常会基於骇客的思维进行攻击,因此我们也可以参考 APT 攻击的流程来执行渗透测试,例如 APT 的 7 个 Stage。

  • Reconnaissance (侦查)
    • 调查目标的背景等资讯
  • Weaponized (武装)
    • 利用侦查阶段所调查到的弱点,进行准备的动作。
  • Deliver (传递)
    • 将各种准备好的武器,试图传递、放置於被害者的电脑之中。
  • Exploit (触发)
    • 尝试执行相关的入侵指令,可能是利用程序弱点等方式。
  • Control (控制)
    • 透过触发的入侵指令控制整台的电脑服务器。
  • Execute (执行)
    • 在恶意的 APT 攻击状况下,这个阶段通常会进行窃取资料、破坏系统等,但渗透测试的角度我们需要尽量的对系统影响最小。通常我们可能会藉由蒐集资料,进行更进一步的横向移动。
  • Maintain (维护)
    • 对於被骇的目标持续地给予不同的监控与後门程序,防止被发现等。

 图片来源 : 台湾大学计算机及资讯网路中心

这边的 7 个阶段仅是很粗略的划分,大多数时候我们也不太会完全照着顺序来进行,时常会一边地进行侦查,一边的尝试 Exploit 等。而比较详细的攻击方式与流程,我也很推荐大家可以参考 MITRE ATT&CK,以红队的角度而言,上面的资讯可以算是攻击者的军火库,可以当作一个完整的参考表格。

总结

渗透测试就是透过骇客的思维尝试入侵机构的系统,在进行渗透测试前请先取得对方的同意我们可以运用许多网路上的资源加速我们的渗透流程!比起全新的漏洞挖掘,以初学者的角度而言,更重要的是现有的已知漏洞灵活运用。

好的,今天的文章差不多就到这边,预计明天会跟各位介绍常见的渗透测试工具等。


<<:  Architecture

>>:  [Python 爬虫这样学,一定是大拇指拉!] DAY02 - 关於 Python (1)

第 23 集:Bootstrap 客制化 Grid 格线系统

此篇会教学如何将 Bootstrap grid 格线系统,自干一个出来。 事前准备 Gird Sy...

NetSuite Glossary

今天继续介绍 NetSuite 几个基本的 Glossary, 这些 Glossary 经常会出现在...

[想试试看JavaScript ] 阵列一些操作阵列好用的方法 reduce

reduce() reduce 很常用在计算累加上面。 之前介绍的方法,大多都是将阵列的值一个一个放...

Day 26 Serverless的运算服务-AWS Lambda

因应容器化的服务,AWS云上也产生了相对应的服务-Lambda,让我们可以不用顾及作业系统底层恼人的...

[05] [Flask 快速上手笔记] 04. HTTP 方法x静态文件x渲染模板

HTTP 方法 在预设情况下 Flask 路由的 HTTP 方法只允许 GET 可以透过route(...