渗透测试入门

news/2024/11/18 15:26:56/文章来源:https://www.cnblogs.com/Fernay/p/18433453

什么是渗透测试?

定义:

渗透测试完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题,所以渗透测试是安全评估的方法之一。 

特点:

  • 渗透测试是一个渐进的并且逐步深入的过程
  • 渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。

意义:

  • 渗透测试是为了证明网络防御按照预期计划正常运行而提供的一种机制,换句话说,就是证明一下之前所做过的措施是可以实现的,然后再寻找一些原来没有发现过的问题,这个就是渗透测试。
  • 许多时候,无论是网站还是系统的开发者,在开发过程中乃至结束都很难会注意到所开发的应用的安全问题,这样就造成了大量的存在瑕疵的应用暴露在外部网路之上,直接就触生了信息安全的产生,渗透测试在于发现问题、解决问题。经过专业人员渗透测试加固后的系统也会随之变得更加坚固、稳定、安全。 

目的:

  • 了解入侵者可能利用的途径 
  • 了解系统及网络的安全强度 

常规渗透测试和“红队”测试 

  • 共性:都是为了帮助客户检测系统安全性,发现安全问题。
  • 区别:“渗透测试”专注于对给定的系统进行测试,存在明确的测试目标和测试边界、测试时间,主要目标是为了尽可能发现安全隐患;“红队”在测试过程中通常除给定靶标外不会给予任何信息,攻击者需要自行搜集信息并规划一条攻击路径达到目的并隐藏踪迹,尽可能模拟真实APT攻击 

渗透测试的分类

按测试方法分类

  • 黑盒测试
  • 白盒测试
  • 灰盒测试

按目标类型分类

  • 主机操作系统渗透 • Windows、Solaris、linux、aix、sco
  • 数据库系统渗透 • MySQL、MsSQL、Oracle、sybase、informix
  • 应用系统渗透
  • 渗透目标提供的各种应用,如asp、cgi、jsp、php等组成的Web应用
  • 网络设备渗透 • 各种防火墙、入侵检测系统、网络设备 

渗透测试---黑盒测试 

  • 渗透者完全处于对系统一无所知的状态。除了被测试目标的已知公开信息外,不提供任何其他信息。一般只从组织的外部进行渗透测试。
  • 通常,这类型的测试,最初的信息获取来自DNS、Web、Email及各种公开对外的服务器 

渗透测试---白盒测试 

  • 测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站程 序的代码片段,也能与单位其他员工进行面对面的沟通。通常包括从组织外部和从组织内部两种地点进行渗透测试。这类的是的目的是模拟企业内部雇员的越权操作。 

渗透测试---灰盒测试 

  • 介于黑盒测试和白盒测试之间
  • 较为隐秘的进行测试。通常,接受渗透测试的单位网络管理部门会收到通知:在某些时间段进行测试。因此能够检测网络中出现的变化。
  • 在隐秘测试中,被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位 

渗透测试的手段 

网络嗅探

嗅探是用来捕捉网络中传输的数据的技术。嗅探是一个重要的信息收集技术,它能够捕获特定的信息,如密码;如果需要的话,它也能够捕获特定计算机之间的完整会话。要执行嗅探,计算机 的网卡需要设置为混合模式,这样它才能够捕获网络中发送的所有数据。 

暴力攻击

暴力攻击指的是尝试使用大量的字母组合和穷举试错法来查找合法身份认证信息。这种耗费时间的方法的根本目标是要获得目标系统的访问权限。暴力攻击可能会造成系统过载,也可能使它无法响应合法的请求。此外,如果系统启用了帐号锁定规则,那么暴力攻击可能会造成合法用户帐号的关闭。 

漏洞扫描

分析是针对目标区域的单位网络基础架构进行穷举检查,以确定它们当前的状态。扫描的目标范围可能是单个系统或一些关键系统,也可能是整个网络。它通常是使用自动化工具执行的,这些工具能够测试系统数据库已知漏洞方面的大量潜在弱点,并报告潜在的安全问题。 

木马攻击

木马一般是通过电子邮件附件或IM聊天工具在网络中传播的一些恶意程序。这些程序是秘密运行的,并在用户不知情的情况下安装到客户计算机上。 

社会工程

这种方法通常与盲式或双盲式测试一起使用,社会工程指的是搜索以收集信息为目的的人类本性(最主要是人的信任感和帮助姿态)的技术。这种方法是通过与单位员工、提供商和合同方的社会互动来收集信息和侵入这个组织的系统。 

应用安全性测试

  • 代码检查:代码检查指的是分析所有应用代码来保证它们不包含任何可被入侵者利用来攻击应用的敏感信息。
  • 登录的输入验证——无效字符或过长的输入可能会产生意外结果;
  • Cookie盗取,而合法会话可能会被未授权的用户使用;
  • 帐号锁定测试——测试应用中设置的超时和入侵锁定参数,保证合法会话不会被劫持。 

无线网络的渗透测试

  • 随着无线网络的出现,不管是在企业网络基础架构内还是在家里,都会造成更多的安全漏洞。一旦发现开放的无线接入端,他们就会标记下来,所以最后他就能够得到一个带有接入端属性(SSID、WEP、MAC等)的无线网络图。
  • 无线网络测试的目标是确定一个组织的无线网络的设 计、实现或运营中的安全缺陷或漏洞。 

拒绝服务(DoS)

  • 拒绝服务测试指的是尝试通过耗尽测试目标的资源来发现系统的特定弱点,这种方法会导致系统停止对合法请求的响应。
  • 资源过载——这些攻击的目的是耗尽攻击目标的资源(如,内存),从而使之停止响应。
  • 泛洪攻击——是指通过发送超大数量的网络请求来达到耗尽的目的。
  • 半开放SYN攻击——是指在目标系统局部开放大量的TCP连接,这样就无法再启动合法连接。
  • 编外攻击——这些攻击试图通过破坏IP报头标准来使目标系统崩溃:
  • 超大数据包(ping of death)——数据报头显示数据包所包含大于实际大小的数据。
  • 分片(泪滴攻击)——发送很短的重叠分片数据包(数据包片断)。
  • IP源地址欺骗(落地攻击)——导致计算机创建连接自己的TCP连接。
  • 畸形UDP数据报头(UDP炸弹)——UDP报头显示了不正确的长度。 

优秀的渗透测试 

  • 选择足够的测试集: 手工的和自动的都会影响成功效益之间的最佳平衡。
  • 遵循正确的方法: 这并不是猜谜游戏。所有方面都需要规划、文档化和符合要求。
  • 结果值: 结果应该详细地写入文档,并且要尽力使它们能被客户所理解。不管是技术报告还是执行总结,都需要一些注释。应用安排一些安全咨询人员/测试人员来回复问题或解释结果。
  • 测试结果与建议: 这是渗透测试的一个非常重要的部分。最终的报告必须清晰地说明成果,必须将成果与潜在的风险对应。这应该会附带产生一个基于最佳安全实践方法的修正路线图。 

渗透测试流程--PTES 

渗透测试的流程 

  1. 前期交互阶段:与客户沟通测试范围、时间、预期等
  2. 准备阶段:资产信息整理、对指定目标进行漏洞扫描
  3. 漏洞分析阶段:整理漏洞扫描结果、汇总高可利用漏洞
  4. 漏洞验证阶段:使用合适的工具(方法)验证并保存截图
  5. 后期报告阶段:报告编写、核对、汇报 

PTES流程

  1. 信息收集 
  2. 漏洞挖掘 
  3. 漏洞利用 
  4. 权限提升 
  5. 内网渗透 
  6. 清理痕迹 

渗透测试流程---信息收集 

  • 信息搜集是什么
    1. 前期准备(踩点)
    2. 决定渗透工作是否顺利的关键
  • 为什么要进行信息搜集
    1. 缩小范围,节约时间提高效率
    2. 定位脆弱点,精准打击,减少不必要的工作量 

收集什么?

  1. Whois信息--注册人、电话、邮箱、DNS、地址
  2. Googlehack--敏感目录、敏感文件、更多信息收集
  3. 服务器IP--Nmap扫描、端口对应的服务、C段
  4. 旁注--Bing查询、脚本工具
  5. 如果遇到CDN--Cloudflare(绕过)、从子域入手(mail,postfix)、DNS传送域漏洞
  6. 服务器、组件(指纹)--操作系统、web server(apache,nginx,iis)、脚本语言
  7. More... 

渗透测试流程---漏洞挖掘 

漏洞种类

  • Web业务逻辑漏洞(如支付漏洞)
  • OWASP TOP 10和一些其它Web常见漏洞(如sql注入、上传漏洞)
  • 特定场景的Web漏洞(例如特定中间件、特定框架)
  • 非Web漏洞(主机操作系统漏洞、其它服务漏洞等)
  • 弱口令(包括Web和非Web) 

如何发现

  • 探测Web应用指纹–Discuz、PHPwind、Dedecms、Ecshop、Wordpress…
  • 上传漏洞–截断、修改、解析漏洞
  • 有无验证码–进行暴力破解
  • More… 

渗透测试流程---漏洞利用 

针对Web服务:

  1. 浏览器查看一些特殊子域名;如:fierce。
  2. 对网站进行扫描;如:nikto、AWVS、Appscan。
  3. 识别网站使用的各种软件;如:whatweb。
  4. 根据网站运行的软件使用更具针对性的工具;如: wpscan,cms-explorer····
  5. 针对自己编码的Web程序进行测试;如:Zap。
  6. 针对通用程序的网站,找到网站程序源代码进行分析。 

渗透测试流程---权限提升 

  1. 根据服务器类型选择不同的攻击载荷进行权限提升
  2. 无法进行权限提升,结合获取的资料开始密码猜解,回溯信息收集
  3. Windows提权:pr、Churrasco、iis6.0提权、数据库(udf、mof)提权、ms15-051
  4. Linux提权:Linux_Exploit_Suggester和unix-privesc-check
  5. 数据库提权
  6. 其他第三方组件提权
  7. Exp网站推荐: exploit-db、1337day 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/804551.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常间的css样式问题处理

flex导致文字省略失效 单独使用文字省略,按预期工作: 给元素加上flex,文字省略失效: 解决方案:flex和文字省略不要放到一个元素上。 flex布局中,文字溢出省略不生效的问题 问题展示.container {display: flex;width: 400px;border: 1px solid #000; }.content {flex: 1; …

Spring上传文件乱码问题(问号版)

Spring上传文件乱码问题(问号版) 目录Spring上传文件乱码问题(问号版)一、问题描述:二、原因分析三、解决办法 一、问题描述: spring项目上传文件,后端接收文件并获取文件名称,名称中文变成 “?”,例如:??abc()??.xml,其中问号为中文字符 // 前端传递参数 Mult…

伯俊开发回忆录---云POS待办事项增加稽核通知功能

一、事件前景总部财务稽核通知下发流程: 1.整理EXECL通知督导, 2.督导通知对应的门店, 3.收集完反馈意见汇报给分区财务审核 4.分区财务审核之后再通知总部财务审核, 这样整个稽核流程以及周期将大大影响稽核效率,因此希望在云POS门店端直接增加待办事项减少中间沟通环节。…

我,一个小白,居然用 AI 工具修改了公司前端代码!

背景 有一天同事发现公司网站的某个页面上有三个 H1 标签,懂行的都知道,有三个 H1 标签虽然不会对网站的访问产生影响,但是对于搜索引擎来讲,就比较麻烦了,因为一般搜索引擎都是靠 H1 标签、TDK 等来对网页的内容进行抓取,然后再进行质量优劣的判断。三个 H1 标签,搜索引…

Docker打包Net8.0镜像

Docker 常用命令 Docker 是一种用于构建、打包和运行应用程序的容器化工具,以下是一些常用的 Docker 命令及其说明: 1. Docker 基础命令 docker version # 查看 Docker 的版本信息 docker info # 查看 Docker 系统信息 docker build -t <image_name> . #构建镜像 docke…

利用Python开发Exporter,集成Prometheus和Grafana对进程监控

利用Python开发Exporter,集成Prometheus和Grafana对进程监控 在现代软件开发和运维中,监控是确保系统稳定运行和快速响应问题的重要手段。Prometheus和Grafana的组合是监控领域的强大工具,它们能够收集、处理和展示各种指标数据。本文将介绍如何利用Python开发一个Exporter,…

软工结对项目

这个作业属于哪个课程 结对项目这个作业要求在哪里 结对项目这个作业的目标 合作完成一个自动生成小学四则运算题目的命令行程序结对组合成员介绍结对组合成员姓名 学号 GitHub项目地址苏清仪 3222004337 GitHub项目地址张易欣 3222004811 GitHub项目地址PSP表格PSP2.1 Persona…

Docker镜像、Spark支持多表...Apache SeaTunnel 2.3.8版本将带来的惊喜

Apache SeaTunnel 2.3.8版本即将于大家见面,近日,Apache SeaTunnel PMC Member 范佳在社区的交流会上为大家提前透露了关于这个新版本即将进行的功能与特性更新概况,详细内容如下: SeaTunnel 简介 SeaTunnel是一个高性能的开源分布式数据集成系统,支持各种数据源的实时流式…

校青协宣传推广中心-二面-作品展示

主题图片ps:主题图片引用自扬州大学青年志愿者协会官Q 作品展示

深入理解 Nuxt.js 中的 app:error 钩子

title: 深入理解 Nuxt.js 中的 app:error 钩子 date: 2024/9/27 updated: 2024/9/27 author: cmdragon excerpt: 摘要:本文深入讲解了Nuxt.js框架中的app:error钩子,介绍其在处理web应用中致命错误的重要作用、使用方法及实际应用场景。通过创建Nuxt项目、定义插件、触发错…

黑马PM-内容项目-产品需求说明

产品需求说明产品交互需求说明如何撰写产品交互需求说明

MySQL窗口函数汇总

1.窗口函数概述窗口函数是一种SQL函数,非常适合于数据分析,其最大的特点就是:输入值是从SELECT语句的结果集中的一行或者多行的"窗口"中获取的,也可以理解为窗口有大有小(行数有多有少)。通过OVER子句,窗口函数与其他的SQL函数有所区别,如果函数具有OVER子句…