首页 > 其他分享 >渗透测试入门

渗透测试入门

时间:2024-09-27 11:23:12浏览次数:7  
标签:Web 入门 渗透 测试 系统 漏洞 攻击

什么是渗透测试?

定义:

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

特点:

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

意义:

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

目的:

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

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

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

标签:Web,入门,渗透,测试,系统,漏洞,攻击
From: https://www.cnblogs.com/Fernay/p/18433453

相关文章

  • 数据探索Python数据分析入门指南
    在数据驱动的商业环境中,数据分析已成为一项至关重要的技能。Python,以其简洁的语法和强大的数据处理库,成为了数据分析领域的首选语言。本文将为您提供一份Python数据分析的入门指南,帮助您开启数据探索之旅。为什么选择Python进行数据分析?易于学习:Python语法简洁,易于上手,适合初学者。......
  • Python数据分析入门教程
    在数据驱动的商业环境中,数据分析已成为一项至关重要的技能。Python,以其简洁的语法和强大的数据处理库,成为了数据分析领域的首选语言。本文将为您提供一份Python数据分析的入门指南,帮助您开启数据探索之旅。为什么选择Python进行数据分析?易于学习:Python语法简洁,易于上手,适合初学......
  • 【window批处理文件快速入门学习--这份文档就够了】
    一、简介1.1什么是批处理文件?批处理文件(BatchFile)是一种包含一系列DOS命令的文本文件,通常用于自动化重复性任务。文件的扩展名为.bat或.cmd,当在命令提示符下运行时,操作系统会按顺序执行文件中的命令。批处理文件的创建和使用为用户提供了高效的命令行操作方式。示......
  • 【2024最新版】超详细Burpsuite安装保姆级教程-适合入门小白
    在CTF比赛中或者是抓包中我们都会用到一个工具Burpsuite,但是有很多小伙伴们刚入门安全,不知道该如何去安装这个Burpsuite,今天我就来教大家如何安装Burpsuite第一次使用先按照下面的教程激活,激活后无需再次激活下载链接极核GetShell在下载链接下方,我们可以选择windows和Linux......
  • Docker-入门
    Docker:Docker是用Go语音开发,在软件系统上做到资源的隔离,不像虚拟机会将整套系统复制,其虚拟机本身的运行就占据了实体机的部分性能.而Docker的资源隔离则不会,在Docker中跑资源和在物理机上跑资源基本相似。Docker环境依赖:Docker只能在基于linux系统运行的环境中,在windows中使用......
  • MySQL零基础入门教程-8.1 表的连接\增删数据、表结构的增删改、字段约束(非空、唯一
    教程来源:B站视频BV1Vy4y1z7EX001-数据库概述_哔哩哔哩_bilibili我听课收集整理的课程的完整笔记,供大家学习交流下载:夸克网盘分享本文内容为完整笔记的第八篇的第一部分1、表怎么进行连接的P77-P1431、表怎么进行连接的从emp表中取ename,从dept表中取dname,没有条件限制最终查询结果是......
  • maven 使用SNAPSHOT版本确实可以帮助开发团队更高效地迭代和测试新功能
    使用SNAPSHOT版本确实可以帮助开发团队更高效地迭代和测试新功能。下面是一个更详细的解释:快速迭代频繁构建和部署:由于SNAPSHOT版本通常与持续集成(CI)工具结合使用,因此每次提交代码后都可以触发构建和部署流程。这意味着每次有新的代码更改时,都会有一个新的SNAPSHOT版本产......
  • 大模型开发入门到进阶(二)大模型的应用领域、大模型的优缺点
    一、大模型的应用领域大模型作为人工智能领域的重要成果,其应用领域广泛且深入,涵盖了自然语言处理、计算机视觉、生物信息学、自动驾驶、金融等多个关键领域。以下是对大模型应用领域的详细介绍:1.自然语言处理(NLP)大模型在自然语言处理领域的应用最为广泛和深入。它们可以......
  • 5 分钟快速入门 Github Action
    GithubAction是一种自动化构建工具。‍介绍什么是GitHubAction?来看看阮一峰大佬的介绍:GitHubActions是GitHub的持续集成服务,于2018年10月推出。大家知道,持续集成由很多操作组成,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。GitHub把这些操作......
  • SpringBoot+Activiti7工作流入门实例
    目录文章目录目录准备Activiti建模工具1、BPMN-js在线设计器1.1安装1.2使用说明1.3运行截图2、IDEA安装ActivitiDesigner插件2.1安装插件2.2设置编码格式防止中文乱码2.3截图简单工作流入门实例1.新建SpringBoot工程2.引入Activiti相关依赖添加版本属性指定......