漏洞历史
最为出名的大概应该是:15年的Apache Commons Collections 反序列化远程命令执行漏洞,其当初影响范围包括:WebSphere、JBoss、Jenkins、WebLogic 和 OpenNMSd等。
Java十分受开发者喜爱的一点是其拥有完善的第三方类库,和满足各种需求的框架;但正因为很多第三方类库引用广泛,如果其中某些组件出现安全问题,那么受影响范围将极为广泛。
漏洞成因
暴露或间接暴露反序列化API,导致用户可以操作传入数据,攻击者可以精心构造反序列化对象并执行恶意代码
两个或多个看似安全的模块在同一运行环境下,共同产生的安全问题
漏洞基本原理
实现序列化与反序列化
public class test{
public static void main(String args[])throws Exception{
//定义obj对象
String obj="hello world!";
//创建一个包含对象进行反序列化信息的”object”数据文件
FileOutputStream fos=new FileOutputStream("object");
ObjectOutputStream os=new ObjectOutputStream(fos);
//writeObject()方法将obj对象写入object文件
os.writeObject(obj);
os.close();
//从文件中反序列化obj对象
FileInputStream fis=new FileInputStream("object");
ObjectInputStream ois=new ObjectInputStream(fis);
//恢复对象
String obj2=(String)ois.readObject();
System.out.print(obj2);
ois.close();
}
}.
最为出名的大概应该是:15年的Apache Commons Collections 反序列化远程命令执行漏洞,其当初影响范围包括:WebSphere、JBoss、Jenkins、WebLogic 和 OpenNMSd等。
Java十分受开发者喜爱的一点是其拥有完善的第三方类库,和满足各种需求的框架;但正因为很多第三方类库引用广泛,如果其中某些组件出现安全问题,那么受影响范围将极为广泛。
漏洞成因
暴露或间接暴露反序列化API,导致用户可以操作传入数据,攻击者可以精心构造反序列化对象并执行恶意代码
两个或多个看似安全的模块在同一运行环境下,共同产生的安全问题
漏洞基本原理
实现序列化与反序列化
public class test{
public static void main(String args[])throws Exception{
//定义obj对象
String obj="hello world!";
//创建一个包含对象进行反序列化信息的”object”数据文件
FileOutputStream fos=new FileOutputStream("object");
ObjectOutputStream os=new ObjectOutputStream(fos);
//writeObject()方法将obj对象写入object文件
os.writeObject(obj);
os.close();
//从文件中反序列化obj对象
FileInputStream fis=new FileInputStream("object");
ObjectInputStream ois=new ObjectInputStream(fis);
//恢复对象
String obj2=(String)ois.readObject();
System.out.print(obj2);
ois.close();
}
}.
Nmap 并不包含很多花哨的功能。是的,它能够抓取横幅广告、进行 IPv6 扫描和一些基本的 IDS 规避,但这些功能并非 Nmap 独有。
Nmap 还能够将其结果输出为不同的格式,包括常规输出、基于 Web 的图形 XML和可 grep 格式。此列表中的其他扫描器也可以导出为各种格式。
Nmap 最大的特点是速度快、操作简单。是的,学习这些标志需要时间,但一旦学会,你就可以随心所欲地进行扫描
Nmap 还能够将其结果输出为不同的格式,包括常规输出、基于 Web 的图形 XML和可 grep 格式。此列表中的其他扫描器也可以导出为各种格式。
Nmap 最大的特点是速度快、操作简单。是的,学习这些标志需要时间,但一旦学会,你就可以随心所欲地进行扫描
侦察是渗透测试中最重要的部分。这是你获取目标信息的地方。
侦察很重要,因为你掌握的目标信息越多,你越容易获得访问权限。一旦你绘制了整个网络,你就可以确定最薄弱的地方并从那里开始。
常用的侦察工具包括Google和社交媒体网站,您可以在其中收集有关目标的信息。如果您正在对一家公司进行审计,您可以浏览该公司的招聘信息,了解他们使用的技术类型。
一旦获得了足够的信息,您就可以使用像Maltego这样的工具来映射目标。
侦察很重要,因为你掌握的目标信息越多,你越容易获得访问权限。一旦你绘制了整个网络,你就可以确定最薄弱的地方并从那里开始。
常用的侦察工具包括Google和社交媒体网站,您可以在其中收集有关目标的信息。如果您正在对一家公司进行审计,您可以浏览该公司的招聘信息,了解他们使用的技术类型。
一旦获得了足够的信息,您就可以使用像Maltego这样的工具来映射目标。
阶段渗透测试
1.范围确定和规划:定义渗透测试的目标及其执行的时间计划。
2.侦察:首次检索有关范围内的组织和系统的信息,通常基于公共数据。
3.扫描:根据侦察收集的信息,使用一些扫描仪来搜索详细信息并发现漏洞。
4.获取和提升访问权限:尝试利用检测到的漏洞访问系统,一旦进入系统,便可获得尽可能多的特权。
5.保持访问权限:在功能中保持对目标系统的访问开放。这意味着要抹去痕迹,这样未经授权的访问就不会被检测到。
6.记录结果:渗透测试的发现必须妥善记录,以便客户了解问题。它不仅应该揭示漏洞,还应解决解决方案并包括提高安全性的建议。渗透测试报告通常包含一项行动计划,该计划稍后会进行跟踪,甚至在一定时间后进行验证。
并非所有渗透测试都会通过所有阶段:在定义的范围内,可能无法获得访问权限,因此会跳过第 4 和第 5 阶段。由于每个阶段都基于前一个阶段的结果,因此第一步非常重要。
范围界定是该过程中的关键,因为它决定了测试的扩展范围以及界定责任,并从法律上保护客户和黑客。侦察和扫描受商定范围的制约,而获取访问权限也非常依赖于时间范围,因为许多工具和程序都需要花费大量时间(例如,对于暴力攻击,时间越长越好)。
范围界定的一个重要部分是决定进行哪种类型的渗透测试:
外部测试:黑客没有定期访问系统,模拟与客户无关联的黑帽。
内部测试:黑客对系统具有一定程度的访问权限,就好像他/她是一名员工或外部工作人员一样。
黑盒测试:客户端不向黑客提供任何具体的信息,因此黑客需要从侦察和扫描过程中获取所有信息。
灰盒/白盒测试:客户提供一些信息,或者在白盒测试的情况下,提供涉及范围的系统和流程的完整文档。
1.范围确定和规划:定义渗透测试的目标及其执行的时间计划。
2.侦察:首次检索有关范围内的组织和系统的信息,通常基于公共数据。
3.扫描:根据侦察收集的信息,使用一些扫描仪来搜索详细信息并发现漏洞。
4.获取和提升访问权限:尝试利用检测到的漏洞访问系统,一旦进入系统,便可获得尽可能多的特权。
5.保持访问权限:在功能中保持对目标系统的访问开放。这意味着要抹去痕迹,这样未经授权的访问就不会被检测到。
6.记录结果:渗透测试的发现必须妥善记录,以便客户了解问题。它不仅应该揭示漏洞,还应解决解决方案并包括提高安全性的建议。渗透测试报告通常包含一项行动计划,该计划稍后会进行跟踪,甚至在一定时间后进行验证。
并非所有渗透测试都会通过所有阶段:在定义的范围内,可能无法获得访问权限,因此会跳过第 4 和第 5 阶段。由于每个阶段都基于前一个阶段的结果,因此第一步非常重要。
范围界定是该过程中的关键,因为它决定了测试的扩展范围以及界定责任,并从法律上保护客户和黑客。侦察和扫描受商定范围的制约,而获取访问权限也非常依赖于时间范围,因为许多工具和程序都需要花费大量时间(例如,对于暴力攻击,时间越长越好)。
范围界定的一个重要部分是决定进行哪种类型的渗透测试:
外部测试:黑客没有定期访问系统,模拟与客户无关联的黑帽。
内部测试:黑客对系统具有一定程度的访问权限,就好像他/她是一名员工或外部工作人员一样。
黑盒测试:客户端不向黑客提供任何具体的信息,因此黑客需要从侦察和扫描过程中获取所有信息。
灰盒/白盒测试:客户提供一些信息,或者在白盒测试的情况下,提供涉及范围的系统和流程的完整文档。
网络渗透测试的目标:
识别漏洞:查找组织网络基础设施、系统和内部应用程序中的潜在安全弱点和安全缺陷。
测试安全控制:验证保护内部网络的现有安全控制的有效性,例如防火墙、防病毒和 EDR 解决方案。
确定影响:评估利用漏洞或其他安全漏洞的影响。
合规性验证:验证组织的 IT 系统是否符合相关的网络安全标准、法规和最佳实践。
改善安全态势:针对任何已发现的漏洞或安全漏洞提供补救建议和最佳实践建议。
识别漏洞:查找组织网络基础设施、系统和内部应用程序中的潜在安全弱点和安全缺陷。
测试安全控制:验证保护内部网络的现有安全控制的有效性,例如防火墙、防病毒和 EDR 解决方案。
确定影响:评估利用漏洞或其他安全漏洞的影响。
合规性验证:验证组织的 IT 系统是否符合相关的网络安全标准、法规和最佳实践。
改善安全态势:针对任何已发现的漏洞或安全漏洞提供补救建议和最佳实践建议。
网络渗透测试的第一步技术步骤是侦察步骤。在此步骤中,您将收集有关目标组织、所使用的内部系统以及网络架构的信息。
您可以执行两种形式的侦察:
-被动侦察:无需与目标直接互动,即可收集有关组织及其系统的公开信息。
-主动侦察:直接与组织的网络和系统交互,以收集可用于识别漏洞、弱点和潜在入口点的信息。
会使用这两种形式的侦察。开始使用 OSINT 框架之类的工具 来执行被动侦察并收集有关目标的信息。该框架提供了有用的资源和数据存储库来收集 OSINT 数据,例如域信息、IP 地址、Web 应用程序详细信息、员工信息、电子邮件地址以及公司使用的工具或技术。
使用一种名为 Google Dorking 的技术来补充这些信息。这涉及发送特制的 Google 搜索请求以发现有关目标的隐藏信息。此技术可让您找到特定的文件类型、隐藏的目录和文件、登录凭据,甚至打开的 FTP 服务器!
您可以执行两种形式的侦察:
-被动侦察:无需与目标直接互动,即可收集有关组织及其系统的公开信息。
-主动侦察:直接与组织的网络和系统交互,以收集可用于识别漏洞、弱点和潜在入口点的信息。
会使用这两种形式的侦察。开始使用 OSINT 框架之类的工具 来执行被动侦察并收集有关目标的信息。该框架提供了有用的资源和数据存储库来收集 OSINT 数据,例如域信息、IP 地址、Web 应用程序详细信息、员工信息、电子邮件地址以及公司使用的工具或技术。
使用一种名为 Google Dorking 的技术来补充这些信息。这涉及发送特制的 Google 搜索请求以发现有关目标的隐藏信息。此技术可让您找到特定的文件类型、隐藏的目录和文件、登录凭据,甚至打开的 FTP 服务器!
PingCastle:PingCastle 是 Amazon Web Services (AWS) 的渗透测试框架。它提供了一个易于使用的界面来创建和执行渗透测试,涵盖了各种攻击媒介和技术