渗透测试的流程通常包括以下几个步骤,但在实战中有些步骤可能会省略或合并到其他步骤当中:
收集信息:利用各种工具,尽可能得收集目标系统的各种信息,包括但不限于目标网络信息,网站内容,目录结构,可能的用户名,端口号,服务信息,域名及子域名等。
漏洞扫描:使用扫描工具对目标系统进行完整的扫描,目前有很多现成的自动化的扫描工具,也可以使用手动工具更有针对性的进行漏洞扫描,验证目标系统特定服务的漏洞信息。
渗透漏洞:利用相应的工具,对可以被利用的漏洞进行攻击,包括但不限于使用远程命令执行,注入,破解等等方法,目标是获得目标系统更高的权限访问敏感信息。
创建后门:在目标系统上创建可以维持持续访问的入口,并隐藏自己攻击的痕迹,避免被发现同时也方便未来继续访问。
收集信息:利用各种工具,尽可能得收集目标系统的各种信息,包括但不限于目标网络信息,网站内容,目录结构,可能的用户名,端口号,服务信息,域名及子域名等。
漏洞扫描:使用扫描工具对目标系统进行完整的扫描,目前有很多现成的自动化的扫描工具,也可以使用手动工具更有针对性的进行漏洞扫描,验证目标系统特定服务的漏洞信息。
渗透漏洞:利用相应的工具,对可以被利用的漏洞进行攻击,包括但不限于使用远程命令执行,注入,破解等等方法,目标是获得目标系统更高的权限访问敏感信息。
创建后门:在目标系统上创建可以维持持续访问的入口,并隐藏自己攻击的痕迹,避免被发现同时也方便未来继续访问。
实验环境包含两台虚拟机,分别是攻击机和靶机:
攻击机:Kali Linux 2.0 虚拟机,主机名是 kali,IP 地址为 192.168.122.101,默认用户名密码为 root/toor
靶机:Metasploitable2 虚拟机,主机名是 target,IP 地址为 192.168.122.102,默认用户密码为 msfadmin/msfadmin
查看并启动实验环境,双击 Xfce 终端,打开终端,后续所有的操作命令都在这个终端中输入。
首先使用 virsh list 命令查看当前环境中虚拟机的列表和状态,注意需要使用 sudo,另外需要加上参数 --all 才会显示所有关机状态的虚拟机
然后我们使用 virsh start 命令启动虚拟机,再次查看状态虚拟机已经进入 running 状态
注意由于虚拟机启动需要时间,大概要等四分钟左右我们就可以使用 SSH 访问两台虚拟机了。如果 ssh 不能连接,说明虚拟机还没有完全启动起来,需要再等待一下。
攻击机:Kali Linux 2.0 虚拟机,主机名是 kali,IP 地址为 192.168.122.101,默认用户名密码为 root/toor
靶机:Metasploitable2 虚拟机,主机名是 target,IP 地址为 192.168.122.102,默认用户密码为 msfadmin/msfadmin
查看并启动实验环境,双击 Xfce 终端,打开终端,后续所有的操作命令都在这个终端中输入。
首先使用 virsh list 命令查看当前环境中虚拟机的列表和状态,注意需要使用 sudo,另外需要加上参数 --all 才会显示所有关机状态的虚拟机
然后我们使用 virsh start 命令启动虚拟机,再次查看状态虚拟机已经进入 running 状态
注意由于虚拟机启动需要时间,大概要等四分钟左右我们就可以使用 SSH 访问两台虚拟机了。如果 ssh 不能连接,说明虚拟机还没有完全启动起来,需要再等待一下。
首先使用 SSH 连接到 Kali,我们大部分的攻击操作都需要在 Kali 虚拟机中进行,注意用户名root,密码 toor 是不显示的,使用命令 ssh root@kali 即可,因为当前实验环境中已经把 IP 地址和主机名的对应写入到了 /etc/hosts 文件中,避免输入不好记的 IP 地址。
然后打开一个新的终端标签页,SSH 连接到 Metasploitable2 中,用户名 msfadmin,密码 msfadmin。
在 Kali 虚拟机中 ping target 测试两台虚拟机都可以通过内部的虚拟网络进行连接,使用 Ctrl-C 退出 ping。
现在两台实验环境都已经启动了,我们可以开始渗透。
然后打开一个新的终端标签页,SSH 连接到 Metasploitable2 中,用户名 msfadmin,密码 msfadmin。
在 Kali 虚拟机中 ping target 测试两台虚拟机都可以通过内部的虚拟网络进行连接,使用 Ctrl-C 退出 ping。
现在两台实验环境都已经启动了,我们可以开始渗透。
扫描目标主机
可以在 Kali 使用 Nmap 工具扫描 Metasploitable2 中开放的服务,注意 Nmap 的参数使用
nmap 命令很强大,有很多的参数,实验楼的训练营在后续实验中也会进行详细的介绍。这里我们使用到的参数意义如下:
-p:指定扫描的端口范围
-T4:设定 nmap 扫描的时间策略,数字为0-6,越大越快。扫描的越慢则越不容易被发现,也不会给目标带来太大的网络流量
-A:同时启用操作系统指纹识别和版本检测
-v:将会显示扫描过程中的详细信息
>/tmp/report.txt:将输出的信息重定向到文件中,方便后续对扫描信息进行分析
nmap 命令的更多使用方法等着你自己去多尝试和挖掘。可以在实验楼提供的环境中随意扫描,测试各种不同的参数。
扫描过程大概2-3分钟,完成后会得到一份 /tmp/report.txt 扫描报告。
可以在 Kali 使用 Nmap 工具扫描 Metasploitable2 中开放的服务,注意 Nmap 的参数使用
nmap 命令很强大,有很多的参数,实验楼的训练营在后续实验中也会进行详细的介绍。这里我们使用到的参数意义如下:
-p:指定扫描的端口范围
-T4:设定 nmap 扫描的时间策略,数字为0-6,越大越快。扫描的越慢则越不容易被发现,也不会给目标带来太大的网络流量
-A:同时启用操作系统指纹识别和版本检测
-v:将会显示扫描过程中的详细信息
>/tmp/report.txt:将输出的信息重定向到文件中,方便后续对扫描信息进行分析
nmap 命令的更多使用方法等着你自己去多尝试和挖掘。可以在实验楼提供的环境中随意扫描,测试各种不同的参数。
扫描过程大概2-3分钟,完成后会得到一份 /tmp/report.txt 扫描报告。
❤1
Samba USERNAME MAP SCRIPT 远程命令注入漏洞
使用的是 Metasploit 框架下的 Samba 攻击模块,该模块使用 Ruby 语言编写,源代码链接如下:
exploit/multi/samba/usermap_script
攻击模块的代码讲解,包含关键步骤的注释信息:
本次使用的攻击模块代码量很少,不懂 Ruby 也没有关系,只需要了解代码中的大概逻辑。
# 引入 MSF 框架核心模块
require 'msf/core'
# 定义 MSF 模块类
class MetasploitModule < Msf::Exploit::Remote
...
# 引入 Samba Client
include Msf::Exploit::Remote::SMB::Client
...
# 初始化模块,包含模块名称,描述,作者,License,漏洞索引号,平台等信息
def initialize(info = {})
使用的是 Metasploit 框架下的 Samba 攻击模块,该模块使用 Ruby 语言编写,源代码链接如下:
exploit/multi/samba/usermap_script
攻击模块的代码讲解,包含关键步骤的注释信息:
本次使用的攻击模块代码量很少,不懂 Ruby 也没有关系,只需要了解代码中的大概逻辑。
# 引入 MSF 框架核心模块
require 'msf/core'
# 定义 MSF 模块类
class MetasploitModule < Msf::Exploit::Remote
...
# 引入 Samba Client
include Msf::Exploit::Remote::SMB::Client
...
# 初始化模块,包含模块名称,描述,作者,License,漏洞索引号,平台等信息
def initialize(info = {})
寻找漏洞对应的攻击模块
后续步骤中我们将直接使用 exploit/multi/samba/usermap_script 攻击模块,这里简单介绍下如何查找和选择攻击模块,
查找的方法是在 msfconsole 中,首先使用命令 db_rebuild_cache 建立查询缓存,这个过程需要把磁盘上的庞大的漏洞数据读入内存中,需要时间比较久,大概10-20分钟,但一次执行后续搜索都会很快,注意这个命令会立刻返回,但会在后台运行,耐心等待15-20分钟后再执行 search 命令就可以了。缓存建立的速度问题是 Kali 下 Metasploit 的一个很不方便的地方,目标数据比较大,要把所有的数据都从磁盘读到内存中建立缓存,再加上实验楼用的是虚拟机,不是物理服务器,需要的时间比较久。我们会和实验楼一起想办法解决,目前网上的一些讨论,也都是 db_rebuild_cache 的处理方案,先 rebuild cache 再 search,可以在几秒钟返回结果。查找步骤中需要先使用 search samba 查找是否有现成的 Samba 攻击模块符合我们靶机提供的服务版本,如果没有的话我们可能要编写一个,在后续的实验中我们也会接触如何写一个自己的 Metasploit 模块。
db_rebuild_cache 创建缓存后 search 命令的执行速度可以很快在几秒钟得到结果
后续步骤中我们将直接使用 exploit/multi/samba/usermap_script 攻击模块,这里简单介绍下如何查找和选择攻击模块,
查找的方法是在 msfconsole 中,首先使用命令 db_rebuild_cache 建立查询缓存,这个过程需要把磁盘上的庞大的漏洞数据读入内存中,需要时间比较久,大概10-20分钟,但一次执行后续搜索都会很快,注意这个命令会立刻返回,但会在后台运行,耐心等待15-20分钟后再执行 search 命令就可以了。缓存建立的速度问题是 Kali 下 Metasploit 的一个很不方便的地方,目标数据比较大,要把所有的数据都从磁盘读到内存中建立缓存,再加上实验楼用的是虚拟机,不是物理服务器,需要的时间比较久。我们会和实验楼一起想办法解决,目前网上的一些讨论,也都是 db_rebuild_cache 的处理方案,先 rebuild cache 再 search,可以在几秒钟返回结果。查找步骤中需要先使用 search samba 查找是否有现成的 Samba 攻击模块符合我们靶机提供的服务版本,如果没有的话我们可能要编写一个,在后续的实验中我们也会接触如何写一个自己的 Metasploit 模块。
db_rebuild_cache 创建缓存后 search 命令的执行速度可以很快在几秒钟得到结果
渗透测试究竟是如何工作的
渗透测试利用道德黑客将自己置于恶意行为者的立场。网络所有者建立特定的渗透测试范围,指定哪些系统有资格进行测试以及测试时间范围。
确定范围可以制定指导方针,并为测试人员能做什么和不能做什么设定基调和限制。在确定范围和时间框架后,道德黑客开始寻找进入网络的方法。
测试通常从漏洞扫描开始,这有助于识别进入网络的潜在入口。这些漏洞可能是任何内容,从配置错误的防火墙到不正确处理格式错误的数据包的应用程序。
一旦系统被入侵,测试人员便可以尝试访问特权帐户,以更深入地研究网络并访问更关键的系统。渗透测试人员使用升级技术来调查网络并探索最坏的情况。
根据渗透测试的范围,测试人员可以使用多种非常规方法来访问网络。其中一种技术是将受感染的 USB 驱动器放入组织中。如果未经培训的工作人员找到该驱动器并将其插入公司网络,它可能会启动模拟攻击,以更快地获得访问权限。
网络安全中另一个经常被忽视的方面是物理层。未锁的门加上有人冒充 IT 人员,甚至可能破坏最完善的网络安全措施,在某些情况下甚至会导致物理硬件被移除。
完成测试后,会提供一份详细的调查报告,概述测试的流程或系统、发现的漏洞,并推荐补救措施。渗透测试通常每年进行一次,在进行一系列拟议的安全更改后可能会再次进行。
渗透测试利用道德黑客将自己置于恶意行为者的立场。网络所有者建立特定的渗透测试范围,指定哪些系统有资格进行测试以及测试时间范围。
确定范围可以制定指导方针,并为测试人员能做什么和不能做什么设定基调和限制。在确定范围和时间框架后,道德黑客开始寻找进入网络的方法。
测试通常从漏洞扫描开始,这有助于识别进入网络的潜在入口。这些漏洞可能是任何内容,从配置错误的防火墙到不正确处理格式错误的数据包的应用程序。
一旦系统被入侵,测试人员便可以尝试访问特权帐户,以更深入地研究网络并访问更关键的系统。渗透测试人员使用升级技术来调查网络并探索最坏的情况。
根据渗透测试的范围,测试人员可以使用多种非常规方法来访问网络。其中一种技术是将受感染的 USB 驱动器放入组织中。如果未经培训的工作人员找到该驱动器并将其插入公司网络,它可能会启动模拟攻击,以更快地获得访问权限。
网络安全中另一个经常被忽视的方面是物理层。未锁的门加上有人冒充 IT 人员,甚至可能破坏最完善的网络安全措施,在某些情况下甚至会导致物理硬件被移除。
完成测试后,会提供一份详细的调查报告,概述测试的流程或系统、发现的漏洞,并推荐补救措施。渗透测试通常每年进行一次,在进行一系列拟议的安全更改后可能会再次进行。
使用 PsExec 进行黑客攻击
要使用 PsExec,目标系统必须启用一些端口和服务。最常用的是 TCP 端口 445 和 139。
可以使用其他端口,例如端口 135,但不太常用。还需要配置防火墙设置以允许通过端口 445 和 139 进行入站和出站流量。
还必须启用服务器消息块 (SMB)。如果发现主机上的端口 445 和/或 139 已打开,则意味着 SMB 可能已启用。还应验证本地和远程主机系统上是否都启用了文件和打印机共享。
最后,需要在运行 PsExec 的机器上拥有管理访问权限。
为了验证目标计算机上是否打开了正确的端口, 可以运行Nmap扫描来检查端口 139 和 445 是否打开。对于此扫描,我们将使用:
sudo nmap -p- -sV TARGET_IP --open
在这个特定的案例中,我们使用了:
sudo nmap -p- -sV 192.168.214.122 --open
要使用 PsExec,目标系统必须启用一些端口和服务。最常用的是 TCP 端口 445 和 139。
可以使用其他端口,例如端口 135,但不太常用。还需要配置防火墙设置以允许通过端口 445 和 139 进行入站和出站流量。
还必须启用服务器消息块 (SMB)。如果发现主机上的端口 445 和/或 139 已打开,则意味着 SMB 可能已启用。还应验证本地和远程主机系统上是否都启用了文件和打印机共享。
最后,需要在运行 PsExec 的机器上拥有管理访问权限。
为了验证目标计算机上是否打开了正确的端口, 可以运行Nmap扫描来检查端口 139 和 445 是否打开。对于此扫描,我们将使用:
sudo nmap -p- -sV TARGET_IP --open
在这个特定的案例中,我们使用了:
sudo nmap -p- -sV 192.168.214.122 --open
渗透测试技术的类型
并非所有渗透测试都以相同的方式执行,并且可能因项目范围和测试的预期结果而异。让我们探索几种不同类型的渗透测试技术。
黑匣子
黑盒测试,也称为外部渗透测试,它几乎无法让道德黑客提前了解公司的 IT 基础设施或安全性。黑盒测试通常用于模拟实际的网络攻击。
测试从网络外部开始,测试人员不了解现有安全系统或本地网络架构。由于模拟攻击是盲目的,这些测试可能是最耗时的。
白盒
白盒测试是指测试人员对现有的网络基础设施和安全系统有充分了解的情况。虽然这些测试无法模拟真实的外部攻击,但它们是您可以执行的最全面的测试类型之一。
白盒测试还可以模拟内部攻击的情况,因为测试人员从网络内部开始,了解网络的结构。虽然白盒测试由于其透明性可以快速完成,但拥有许多应用程序需要测试的企业组织可能仍需等待数月才能获得完整的结果。
灰箱
灰盒是前两种技术的混合体,允许测试人员部分访问或了解公司网络。灰盒通常用于测试具有私有服务器后端的特定面向公众的应用程序。利用这些组合信息,测试人员可以尝试利用特定服务来获取对网络其他部分的未经授权的访问。
由于测试人员对网络的了解有限,灰盒测试的时间范围通常比黑盒测试短,但比白盒测试长。
并非所有渗透测试都以相同的方式执行,并且可能因项目范围和测试的预期结果而异。让我们探索几种不同类型的渗透测试技术。
黑匣子
黑盒测试,也称为外部渗透测试,它几乎无法让道德黑客提前了解公司的 IT 基础设施或安全性。黑盒测试通常用于模拟实际的网络攻击。
测试从网络外部开始,测试人员不了解现有安全系统或本地网络架构。由于模拟攻击是盲目的,这些测试可能是最耗时的。
白盒
白盒测试是指测试人员对现有的网络基础设施和安全系统有充分了解的情况。虽然这些测试无法模拟真实的外部攻击,但它们是您可以执行的最全面的测试类型之一。
白盒测试还可以模拟内部攻击的情况,因为测试人员从网络内部开始,了解网络的结构。虽然白盒测试由于其透明性可以快速完成,但拥有许多应用程序需要测试的企业组织可能仍需等待数月才能获得完整的结果。
灰箱
灰盒是前两种技术的混合体,允许测试人员部分访问或了解公司网络。灰盒通常用于测试具有私有服务器后端的特定面向公众的应用程序。利用这些组合信息,测试人员可以尝试利用特定服务来获取对网络其他部分的未经授权的访问。
由于测试人员对网络的了解有限,灰盒测试的时间范围通常比黑盒测试短,但比白盒测试长。
渗透测试不必涵盖整个网络,也不必专注于特定的应用程序、服务和方法。对较大环境的测试可以专注于网络的某个方面,而不是整个公司。这种专注有助于组织为升级制定预算,并在完成一系列较小的渗透测试后腾出时间实施必要的补救措施,而不会不堪重负。
Web 应用程序
组织使用 Web 应用程序渗透测试来防止恶意行为者利用面向客户端的应用程序上的漏洞。这些测试的复杂性可能有所不同,因为在 Web 应用程序上运行渗透测试时会涉及到大量不同的浏览器、插件和扩展程序。
Web 应用程序漏洞可能会泄露敏感信息,这些信息可能有助于攻击者在攻击的信息收集阶段或获得对特定应用程序的后端访问权限。
敏捷代码可用于抵御这些攻击,并在 Web 开发分支的沙盒环境中进行定期测试。即使在测试和部署之后,渗透测试人员也可以发现新的漏洞,帮助公司避免真正的攻击。
漏洞赏金计划是激励道德黑客针对不同的网络应用程序测试最新漏洞的好方法。
无线网络
Wi-Fi 固有的开放性使其成为好奇的路人和专门的攻击者的诱人目标。渗透测试人员可以使用许多专门的工具来测试不同无线技术的可靠性和安全性。
数据包嗅探器、恶意接入点和取消身份验证攻击可用于劫持无线会话并进入专用网络。无线渗透测试人员还可以验证访客 Wi-Fi 网络上的安全设置。
例如,如果访问规则配置不正确,并且访客网络不在其自己的 VLAN 上,则攻击者有可能从访客无线网络访问专用网络。
物理基础设施
没有任何安全软件可以阻止有人拿起服务器并将其带出门。虽然这似乎有些牵强,但厚颜无耻的犯罪分子会利用社交工程伪装成技术人员、看门人或客人,从而获得对敏感区域的物理访问权限。
在物理渗透测试中,门、锁和其他物理控件会接受测试,以查看恶意攻击者绕过它们的难易程度。这些控件是可以被绕过的。廉价的锁和无线运动探测器通常很容易被撬开或绕过,而廉价的无线运动探测器则可以通过一些巧妙的手段被欺骗。
如果存在物理限制,测试人员通常会使用一系列非破坏性工具来尝试绕过任何现有的锁或传感器
Web 应用程序
组织使用 Web 应用程序渗透测试来防止恶意行为者利用面向客户端的应用程序上的漏洞。这些测试的复杂性可能有所不同,因为在 Web 应用程序上运行渗透测试时会涉及到大量不同的浏览器、插件和扩展程序。
Web 应用程序漏洞可能会泄露敏感信息,这些信息可能有助于攻击者在攻击的信息收集阶段或获得对特定应用程序的后端访问权限。
敏捷代码可用于抵御这些攻击,并在 Web 开发分支的沙盒环境中进行定期测试。即使在测试和部署之后,渗透测试人员也可以发现新的漏洞,帮助公司避免真正的攻击。
漏洞赏金计划是激励道德黑客针对不同的网络应用程序测试最新漏洞的好方法。
无线网络
Wi-Fi 固有的开放性使其成为好奇的路人和专门的攻击者的诱人目标。渗透测试人员可以使用许多专门的工具来测试不同无线技术的可靠性和安全性。
数据包嗅探器、恶意接入点和取消身份验证攻击可用于劫持无线会话并进入专用网络。无线渗透测试人员还可以验证访客 Wi-Fi 网络上的安全设置。
例如,如果访问规则配置不正确,并且访客网络不在其自己的 VLAN 上,则攻击者有可能从访客无线网络访问专用网络。
物理基础设施
没有任何安全软件可以阻止有人拿起服务器并将其带出门。虽然这似乎有些牵强,但厚颜无耻的犯罪分子会利用社交工程伪装成技术人员、看门人或客人,从而获得对敏感区域的物理访问权限。
在物理渗透测试中,门、锁和其他物理控件会接受测试,以查看恶意攻击者绕过它们的难易程度。这些控件是可以被绕过的。廉价的锁和无线运动探测器通常很容易被撬开或绕过,而廉价的无线运动探测器则可以通过一些巧妙的手段被欺骗。
如果存在物理限制,测试人员通常会使用一系列非破坏性工具来尝试绕过任何现有的锁或传感器
进行渗透测试的过程中,往往会遇到数据包、响应包是加密的情况。如果选择放弃,就失去了一次可能渗透成功的机会。不过burpsuite里面有一个插件可以完美解决这个问题,就是autoDecoder,他可以实现内置的自动加解密,和自定义的加解密,已经给出框架,我们写加解密实现即可
然后将测试的数据包放入,点击解密和加密,发现解码、编码都成功,证明可以正常使用。
自带加解密算法使用
请求包解密,响应包不解密 和 全文本加密
算法为DES/CBC/PKCS5Padding算法,密钥为f0ngtest,iv为f0ngf0ng
请求体为
I9z1fsH5QQ2NUbJi/7a8lw==
自带算法加解密模块设置
加解密如下,需要在响应包哪里设置null,表示为空,即不使用解密。
然后将测试的数据包放入,点击解密和加密,发现解码、编码都成功,证明可以正常使用。
自带加解密算法使用
请求包解密,响应包不解密 和 全文本加密
算法为DES/CBC/PKCS5Padding算法,密钥为f0ngtest,iv为f0ngf0ng
请求体为
I9z1fsH5QQ2NUbJi/7a8lw==
自带算法加解密模块设置
加解密如下,需要在响应包哪里设置null,表示为空,即不使用解密。
DNSmasq详细解析及详细配置
LHDNS
1、dnsmasg的简介
Dnsmasq提供DNS缓存和DHCP服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存DNS请求来提高对访问过的网址的连接速度。作为DHCP服务器,dnsmasq可以用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasg轻量且易配置,适用于个人用户或少于50台主机的网络。此外它还自带了一个PXE服务器。
2、Dnsmasg的主要作用
(1)将Dnsmasq作为本地DNS服务器使用,直接修改电脑的本地DNS的IP地址即可。
(2)应对ISP的DNS劫持(反DNS持),输入一个不存在的域名,正常的情况下浏览器是显示无法连接,DNS动持会跳转到一个广告页面。先随便nslookup一个不存在的域名,看着ISP商持的IP地址。
(3)智能DNS加快解析速度,打开letc/dnsmasq.con文件,senver=后面可以添加指定的DNS,例如国内外不同的网站使用不同DNS。
LHDNS
1、dnsmasg的简介
Dnsmasq提供DNS缓存和DHCP服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存DNS请求来提高对访问过的网址的连接速度。作为DHCP服务器,dnsmasq可以用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasg轻量且易配置,适用于个人用户或少于50台主机的网络。此外它还自带了一个PXE服务器。
2、Dnsmasg的主要作用
(1)将Dnsmasq作为本地DNS服务器使用,直接修改电脑的本地DNS的IP地址即可。
(2)应对ISP的DNS劫持(反DNS持),输入一个不存在的域名,正常的情况下浏览器是显示无法连接,DNS动持会跳转到一个广告页面。先随便nslookup一个不存在的域名,看着ISP商持的IP地址。
(3)智能DNS加快解析速度,打开letc/dnsmasq.con文件,senver=后面可以添加指定的DNS,例如国内外不同的网站使用不同DNS。
内网渗透之中间人欺骗攻击
ARP攻击
协议简介
ARP全称为Address Resolution Protocol,即地址解析协议,它是一个根据IP地址获取物理地址的TCP/IP协议,主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址,收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
ARP地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存,故而攻击者可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗
ARP攻击
协议简介
ARP全称为Address Resolution Protocol,即地址解析协议,它是一个根据IP地址获取物理地址的TCP/IP协议,主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址,收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
ARP地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存,故而攻击者可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗
漏洞历史
最为出名的大概应该是: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 最大的特点是速度快、操作简单。是的,学习这些标志需要时间,但一旦学会,你就可以随心所欲地进行扫描