渗透测试基础
渗透测试 | |
定义 | 渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法,这个过程包括对系统的任何弱点,技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且这个位置有条件主动利用安全漏洞 |
特点 | 渗透测试是一个渐进的并且逐步深入的过程 渗透测试是选择不影响业务系统正常进行的攻击方法进行的测试 |
PTES渗透测试执行标准 | |
1.前期交互阶段 | 在前期交互阶段,渗透测试团队与客户组织进行交互讨论,最终要的是确定渗透测试的范围、目标、限制条件以及服务合同细节 |
2.情报搜集阶段 | 在目标范围确定后,将进入情报搜集阶段,渗透测试团队可以利用各种信息来源与搜集技术方法,尝试获取更多关于目标网络拓扑、系统配置与安全防御措施的信息 |
3.威胁建模阶段 | 在搜集到充分的情报信息之后,渗透测试团队的成员们听下敲击键盘,大家聚到一起针对获取的信息进行威胁建模与攻击规划。这是渗透测试过程中非常重要,但很容易被忽视的一个关键点 |
4.漏洞分析阶段 | 在确定出最可行的攻击通道之后,接下来需要考虑该如何取得目标系统的访问控制权,即漏洞分析 |
5.渗透攻击阶段 | 渗透攻击是渗透测试过程中最具有魅力的环节。在此环节,渗透测试团队需要利用他们所找出的目标系统安全漏洞,来真正入侵系统当中,获得访问控制权限 |
6.后渗透攻击阶段 | 后渗透攻击是整个渗透测试过程中最能够体现渗透测试团队创造力与技术能力的环节。前面的环节可以说是在按部就班的完成非常普遍的的目标,而在这个环节中,需要渗透测试团队根据目标组织的业务经营模式、保护资产形式与安全防御计划的不同特点,自助设计出攻击目标,识别关键基础设施,并寻找客户组织最具有价值和尝试安全保护的信息和资产,最终达成能够对客户组织造成最重要业务影响的攻击途径 |
7.撰写报告阶段 | 渗透测试过程最终向客户阻止提交,取得认可并成功获得合同付款的就是一份渗透测试报告。这份报告凝聚了之前所有阶段之中渗透测试团队所获取的关键情报信息、探测和发掘出的系统安全漏洞、成功渗透攻击的过程,以及造成业务影响后果的攻击途径,同时还要站在防御者的角度上,帮助他们分析安全防御体系中的薄弱环节、存在的问题,以及修补与升级技术方案 |
实际渗透测试中的流程 | |
1.明确目标 | 当拿到一个合法的渗透测试项目时,我们首先应该明确客户要求我们进行渗透测试的范围以及整体项目的时间 |
2.信息收集 | 子域名、系统版本、架构、真实ip、whois查询、历史漏洞查询、指纹识别等 |
3.漏洞发现 | 通过漏扫软件结合手动挖掘发现常规的web、系统等漏洞 |
4.漏洞利用 | 由浅入深,旁敲侧推,尽可能的将漏洞的价值发挥到最大化 |
5.后渗透 | 包括内网渗透、权限维持、权限提升、读取用户hash,这里一定要把握好尺度 |
6.报告文档阶段 | 根据之前测试获取的漏洞及企业要求去编写最终的渗透测试报告 |
风险规避 | 不要进行诸如ddos攻击,不破坏数据,测试之前对重要数据进行备份,任何测试执行之前必须和客户进行沟通,一面引来不必要的麻烦,可以对原始系统生成镜像,然后对镜像环境进行测试,明确渗透测试范围 |
OWASP漏洞列表 | |
A1:2017-注入 | 将不受信任的数据作为命令或者查询的一部分发送到解析器时,会产生注入SQL注入、NoSQL注入、OS注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据 |
A2:2017-失效的身份认证 | 通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌,或者利用其他开发缺陷来暂时性或永久性冒充其他用户的身份 |
A3:2017-敏感数据泄露 | 许多web应用程序和API都无法正确保护敏感数据,例如:财务数据、医疗数据和PII数据。攻击者可以通过窃取或修改未加密的数据来是是信用卡诈骗、身份盗窃或其他犯罪行为。未加密的敏感数据容易受到 破坏,因此,我们需要对敏感敏感数据加密,这些数据包括:传输过程中的数据、存储的数据以及浏览器的交互数据。 |
A4:2017-XML外部实体(XXE) | 许多较早的或配置错误的XML处理器评估了XML文件中的外部实体引用。攻击者利用外部实体窃取使用URL文件处理器的内部文件和共享文件、监听内部扫描端口、执行远程代码和实施拒绝服务攻击 |
A5:2017-失效的访问控制 | 未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的账户、查看敏感文件、修改其他用户的数据、更改访问权限等 |
A6:2017-安全配置错误 | 安全配置错误是最常见的问题,这通常是由于不安全的默认配置、不完整的临时配置、开源云存储、错误的HTTP表头配置以及包含敏感信息的详细错误信息所造成的。因此,我们,不仅需要对所有的操作系统、框架、库和应用程序进行安全配置,而且必须及时修补和升级他们 |
A7:2017-跨站脚本(XSS) | 当应用程序的新网页中包含不收信任的、未经恰当验证或转义的数据时,后者使用可以创建HTML或Javascript的浏览器API更新现有的网页时,就会出现XSS缺陷。XSS让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话或将用户重定向到恶意站点 |
A8:2017-不安全的反序列化 | 不安全的反序列化会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,攻击者也可以利用他们来执行攻击,包括:重播攻击、注入攻击和特权升级攻击 |
A9:2017-使用含有已知漏洞的组件 | 组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。如果应用程序含有已知漏洞的组件被攻击者利用,可能会造成严重的数据丢失或服务器接管,同时,使用含有已知 漏洞的组件的应用程序和API可能会破坏应用程序防御、造成各种攻击并产生影响。 |
A10:2017-不足的日志记录和监控 | 不足的日志记录和监控,以及事件响应确实或无效的集成,使攻击者能够进一步攻击系统,保持持续性或转向更多系统,以及篡改、提取或销毁数据。大多数缺陷研究显示,缺陷被检测处的事件超过200天,且通常通过外部检测放检测,而不是通过内部流程或监控检测 |
渗透测试术语 | |
白帽子 | 白帽子描述的是正面的黑客。通过技术手段识别计算机系统或网络系统中的安全漏洞,提交给厂商并提出修复方法。 |
黑帽子 | 为了谋取利益而行走在法律边缘甚至违法乱纪的骇客 |
灰帽子 | 介于黑白之间,无法具体定性 |
肉鸡 | 就是傀儡机,可以随意被控制的电脑或服务器 |
木马 | 一些用来获取用户权限的程序或代码段 |
后门 | 为了方便二次进入系统留下的非常隐蔽的后门程序 |
shell | 命令执行环境,通常所说的是拿shell,就是拿到对方的命令执行环境 |
webshell | 通过web入侵的一种脚本工具,可以据此对网站服务进行一定程度的控制 |
poc | 用来验正漏洞存在的一段代码或者程序 |
EXP(Exploit) | 漏洞利用的一段代码或程序 |
Payload | Payload即有效攻击载荷,可以是一段代码,被隐藏并且秘密发送的信息 |
WAF | WEB应用防护系统,也称之为网站应用级入侵防御系统 |
提权 | 利用一些手段将低权限提升为高权限,这里的高权限一般指管理员或系统权限 |
APT | 高级可持续性攻击,是指组织(特别是政府)或者小团体利用先进的攻击手段对特定目标进行长期持续性网络攻击的供给形式(极强的隐蔽性、潜伏期长、持续性强、目标性强) |
CMS | 内容管理系统,可以理解为网站的一种模板,将一些功能集中控制管理,使网站搭建变得更为快捷 |
黑盒测试 | 即对内部系统一无所知的情况下进行渗透或者其他测试 |
白盒测试 | 了解内部系统、结构、源码等信息的情况下进行渗透测试或其他测试 |
灰盒测试 | 介于黑白盒测试之间的渗透测试或其他测试 |
0day | 0day漏洞是指负责应用程序的程序员或供应商所未知的软件缺陷。因为该漏洞未知,所以没有可用的补丁程序。 |
1day | 1day刚发布但是已被发现,官方刚发布补丁,网络还存在大量的Vulunerability |
Nday | Nday已经被公布出来的0day |
Proxy | 代理。一类程序或系统,接受来自客户计算机的流量,并代表客户端与服务器交互。代理能用于过滤应用级别的指定类型的流量或缓存信息以提高性能。许多防火墙依赖代理进行过滤 |
加壳/脱壳 | “壳”是一段专门负责保护软件不被非法修改或反编译的程序。他们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。加壳就是将软件源码进行保护,脱壳相反 |
Shellcode | shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名 |
钓鲸攻击 | 捕鲸是另一种进化形式的鱼叉式网络钓鱼。它指的是针对高级管理人员和组织内其他高级人员的网络钓鱼攻击。通过是电子邮件内容具有个性化并专门针对相关目标进行定制的攻击 |
水坑攻击 | 顾名思义,是在受害者必经之路设置了一个“水坑(陷阱)”。最常见的是,黑客分析攻击目标的上网活动规律,寻找攻击目标经常访问的网站的弱点,先将此网站“攻破”并植入攻击代码,一旦攻击目标访问该网站就会“中招” |
横向移动 | 在纵向获取到某个服务器的权限时,我们可以以该服务器为跳板,进行横向拓展的内网攻击 |
杀猪盘 | 电信诈骗的一种,是一种网络交友诱导股票投资、赌博等类型的诈骗方式,“杀猪盘”则是“从业者们”自己起的名字,是指放长线“养猪”诈骗,养的越久,诈骗的越狠 |
脱库 | 将数据库中的数据导出 |
社工库 | 一种黑客将泄露在暗网/公网上的用户数据整合起来,并用来查询或者社工的手段的工具 |
撞库攻击 | 在获取到用户的一组账号密码时,尝试用该账号登录其他站点 |
旁站 | 同一台服务器上可能存在其他的站点 |
蜜罐 | 可以联想为情报收集系统,用来诱导黑客进行攻击,以此来判断黑客行为,甚至完成反制 |
挂马 | 就是在别人的网站文件里面放入网页木马或者将代码嵌入到对方正常的网页文件里,以使浏览者中马 |
网络钓鱼 | 使“Fishing”和“Phone”的综合体,由于黑客始祖起初是以电话作案,所以用“Ph”来取代“F”,创造了“Phishing”。然而,当今的“网络钓鱼”攻击利用欺骗性的电子邮件和伪造的Web站点来警醒诈骗活动,受骗者往往会泄露自己的财物数据,如信用卡号、口令和社保编号 |
cc攻击 | 攻击者借助代理服务器生成指向受害主机的合法请求,实现DDOS和伪装就叫:CC(challenge collapsar)CC主要使用来攻击页面的 |
Dos攻击 | 拒绝服务攻击。攻击者通过利用漏洞或发送大量的请求导致攻击对象无法访问网络或者网站无法被访问 |
DDos攻击 | 分布式DOS攻击,常见的UDP、SYN、反射放大攻击等等,就是通过许多台肉机一起向你发送一些网络请求信息,导致你的网站堵塞而不能正常上网 |
抓鸡 | 利用漏洞或其他手段批量的在公网上获取存在漏洞的主机,将其沦为肉鸡 |
C2 | c2全称为CommandandControl,命令与控制,常见于APT攻击场景中。做动词解释时理解为恶意软件与攻击者进行交互,做名词解释时理解为攻击者的“基础设施” |
鱼叉攻击 | 鱼叉攻击是将用鱼叉捕鱼形象的引入到网络攻击中,主要是指可以使欺骗性电子邮件看起来更加可信的网络钓鱼攻击,具有更高的成功可能性。不同于撒网式的网络钓鱼,鱼叉攻击往往更加具备针对性,攻击者“见鱼而使叉” |
黑产 | 网络黑产,指以互联网为媒介,以网络技术为主要手段,为计算机信息系统安全和网络空间管理秩序,甚至国家安全、社会政治未定带来潜在威胁(重大安全隐患)的非法行为。例如非法数据交易产业 |
红队 | 通常指攻防演习中的攻击队伍 |
蓝队 | 通常指攻防演习中的防守队伍 |
紫队 | 攻防演习中新进诞生的一方,通常指监理放或者裁判方 |
IDS | 入侵检测系统,用于在黑客发起进攻或是发起进攻之前检测到攻击,并加以理解。IDS是不同于防火墙。防火墙只能屏蔽入侵,而IDS却可以在入侵发生以前,通过一些信息来检测到即将发生的攻击或是入侵并作出反应 |
IPS | IPS全称为Intrusion-PreventionSystem,即入侵防御系统,目的在于及时识别攻击程序或有害代码及其克隆和变种,采取预防措施,先期阻止入侵,防患于未然。或者至少使其危害性充分降低。入侵防御系统一般作为防火墙和防病毒软件的补充来投入使用。 |
堡垒机 | 运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中报警、及时处理及审计定责 |
VPN | 虚拟专用网,在公用网络上建立专用网络,进行加密通讯,通过对数据包的加密和数据包目标地址的转换实现远程访问 |
科学上网 | fp,翻墙cc防火墙,访问国外外网,实际上是一种不合法的行为 |
CTF(夺旗赛) | CTF中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术经济的一种比赛形式 |
awd攻防对抗赛 | AWD模式是一个非常有意思的模式,你需要在一场比赛里扮演攻击放和防守方,攻击者得分,失守者会被扣分。也就是说,攻击别人的靶机可以获取flag分数时,别人会被扣分,同时你也要保护自己的主机不被别人得分,以防扣分 |