CLAP是一个强化学习PPO 代理,在模拟计算机网络环境中执行渗透测试
网络攻击模拟器 (NASim) 是一个模拟计算机网络,具有漏洞、扫描和漏洞利用,旨在用作 AI 代理的测试环境和应用于网络渗透测试的规划技术。
然而,与原始论文相比,此 repo 做出了以下更改
基于CleanRL开发
为 POMDP 场景添加 LSTM
由于循环无模型强化学习可以成为许多 POMDP 的强大基线
为了支持 NASim 2D 观察空间,Transformer已实施为先例
用于Conda管理python环境和Poetry管理包。开始
克隆此 repo:
git clone /github.com/yyzpiero/RL4RedTeam.git
创建 conda 环境:
conda create -p ./venv python==X.X
并使用 poetry 安装所有 Python 包:
poetry install
网络攻击模拟器 (NASim) 是一个模拟计算机网络,具有漏洞、扫描和漏洞利用,旨在用作 AI 代理的测试环境和应用于网络渗透测试的规划技术。
然而,与原始论文相比,此 repo 做出了以下更改
基于CleanRL开发
为 POMDP 场景添加 LSTM
由于循环无模型强化学习可以成为许多 POMDP 的强大基线
为了支持 NASim 2D 观察空间,Transformer已实施为先例
用于Conda管理python环境和Poetry管理包。开始
克隆此 repo:
git clone /github.com/yyzpiero/RL4RedTeam.git
创建 conda 环境:
conda create -p ./venv python==X.X
并使用 poetry 安装所有 Python 包:
poetry install
❤1
网络渗透测试的类型
1. 外部测试:重点关注组织的外部资产,例如网站、电子邮件服务器和其他可公开访问的系统。目标是识别可能被组织网络外部攻击者利用的漏洞。
2. 内部测试:在组织网络内部进行,模拟内部威胁。内部威胁可能是员工或突破外部防御的攻击者。
3. 盲测:测试团队对网络的信息有限,模拟真实攻击者的攻击方式。这种测试有助于评估组织威胁检测和响应能力的有效性。
4. 双盲测试:测试团队和组织的安全团队都事先不知道测试情况。此方案提供了对实际攻击的最真实模拟,可测试安全措施和事件响应协议。
5. 有针对性的测试:测试团队和组织的 IT 人员共同合作,并且了解测试情况。这种方法对于提高内部安全团队的技能和知识非常有用。
1. 外部测试:重点关注组织的外部资产,例如网站、电子邮件服务器和其他可公开访问的系统。目标是识别可能被组织网络外部攻击者利用的漏洞。
2. 内部测试:在组织网络内部进行,模拟内部威胁。内部威胁可能是员工或突破外部防御的攻击者。
3. 盲测:测试团队对网络的信息有限,模拟真实攻击者的攻击方式。这种测试有助于评估组织威胁检测和响应能力的有效性。
4. 双盲测试:测试团队和组织的安全团队都事先不知道测试情况。此方案提供了对实际攻击的最真实模拟,可测试安全措施和事件响应协议。
5. 有针对性的测试:测试团队和组织的 IT 人员共同合作,并且了解测试情况。这种方法对于提高内部安全团队的技能和知识非常有用。
网络渗透测试的阶段
1. 规划和侦察:这一初始阶段涉及收集尽可能多的有关目标网络的信息。其中包括确定范围、目标和交战规则。侦察可以是被动的(例如,从公共来源收集信息),也可以是主动的(例如,网络扫描)。
2. 扫描:下一阶段涉及识别开放端口、服务和潜在漏洞。Nmap 和 Nessus 等工具通常用于扫描和漏洞评估。
3. 获取访问权限:此阶段涉及利用已识别的漏洞获取网络访问权限。技术可能包括 SQL 注入、网络钓鱼和利用未打补丁的软件。
4. 保持访问权限:一旦获得访问权限,测试人员就会尝试保持其在网络中的存在。这可能涉及安装后门或创建用户帐户以确保持续访问。
5. 分析和报告:测试结果将汇编成详细报告。报告包括已识别的漏洞、利用方法、潜在影响以及补救建议。
6. 补救和重新测试:解决漏洞后,进行重新测试以确保问题得到有效缓解
1. 规划和侦察:这一初始阶段涉及收集尽可能多的有关目标网络的信息。其中包括确定范围、目标和交战规则。侦察可以是被动的(例如,从公共来源收集信息),也可以是主动的(例如,网络扫描)。
2. 扫描:下一阶段涉及识别开放端口、服务和潜在漏洞。Nmap 和 Nessus 等工具通常用于扫描和漏洞评估。
3. 获取访问权限:此阶段涉及利用已识别的漏洞获取网络访问权限。技术可能包括 SQL 注入、网络钓鱼和利用未打补丁的软件。
4. 保持访问权限:一旦获得访问权限,测试人员就会尝试保持其在网络中的存在。这可能涉及安装后门或创建用户帐户以确保持续访问。
5. 分析和报告:测试结果将汇编成详细报告。报告包括已识别的漏洞、利用方法、潜在影响以及补救建议。
6. 补救和重新测试:解决漏洞后,进行重新测试以确保问题得到有效缓解
❤1
黄金票攻击是渗透测试库中最危险的黑客技术之一
可以对 Windows Active Directory 环境造成大量破坏,不被察觉,并为提供长达十年的持久性。
在这次攻击中,执行以下操作:
1.泄露 Kerberos 票证授予票证帐户 (KRBTGT) 的哈希值。
2.使用此哈希伪造 Kerberos 票证授予票证 (TGT),以便任何用户或组访问整个 Active Directory 环境。
3.访问域内的所有资源,无需联系域控制器重新进行身份验证,因此得名“黄金票”。
逃避检测:在企业 Active Directory 环境中,很难检测到黄金票证攻击,因为它们涉及合法的 Kerberos 票证和流量。借助 KRBTGT 哈希,攻击者可以伪造 TGT 而不会引起怀疑。
持久性访问:默认情况下,黄金票证的有效期为十年,或者直到域的 KRBTGT 密码重置为止。由于它引发的问题,这在大型 Active Directory 环境中很少见。因此,黄金票证提供了长期的持久性,并且防御者很难补救。
可以对 Windows Active Directory 环境造成大量破坏,不被察觉,并为提供长达十年的持久性。
在这次攻击中,执行以下操作:
1.泄露 Kerberos 票证授予票证帐户 (KRBTGT) 的哈希值。
2.使用此哈希伪造 Kerberos 票证授予票证 (TGT),以便任何用户或组访问整个 Active Directory 环境。
3.访问域内的所有资源,无需联系域控制器重新进行身份验证,因此得名“黄金票”。
逃避检测:在企业 Active Directory 环境中,很难检测到黄金票证攻击,因为它们涉及合法的 Kerberos 票证和流量。借助 KRBTGT 哈希,攻击者可以伪造 TGT 而不会引起怀疑。
持久性访问:默认情况下,黄金票证的有效期为十年,或者直到域的 KRBTGT 密码重置为止。由于它引发的问题,这在大型 Active Directory 环境中很少见。因此,黄金票证提供了长期的持久性,并且防御者很难补救。
在保护无线网络时,有几种加密类型可供选择。其中包括
-无线等效保护协议
-水务及私人有限公司
-WPA2
-WPA2 企业版
WEP 代表有线等效保密。尽管名字如此,但它的私密性远不如有线连接。它完全被贬低了,因为它可以在几秒钟内被黑客入侵。由于遗留原因,一些路由器仍会将其作为选项提供。永远不要使用它。大多数企业都知道这一点。如果在渗透测试中看到它,可以在当天下午早点下班,因为这是做过的最简单的无线黑客攻击。
遇到的常见加密方法是 WPA2 和 WPA2 Enterprise。它们之间的区别,用非常高层次和简单的解释来说,是企业版将为域中的每个成员提供安全登录。这意味着,与每个人都使用一个密码访问 WiFi(就像您在家里看到的那样)不同,每个用户都有自己的用户名和密码。
攻击 WPA2 Enterprise 超出了本文的讨论范围。许多中小型企业和任何家用路由器都可能设置为 WPA2,这就是我们今天要攻击的对象。
-无线等效保护协议
-水务及私人有限公司
-WPA2
-WPA2 企业版
WEP 代表有线等效保密。尽管名字如此,但它的私密性远不如有线连接。它完全被贬低了,因为它可以在几秒钟内被黑客入侵。由于遗留原因,一些路由器仍会将其作为选项提供。永远不要使用它。大多数企业都知道这一点。如果在渗透测试中看到它,可以在当天下午早点下班,因为这是做过的最简单的无线黑客攻击。
遇到的常见加密方法是 WPA2 和 WPA2 Enterprise。它们之间的区别,用非常高层次和简单的解释来说,是企业版将为域中的每个成员提供安全登录。这意味着,与每个人都使用一个密码访问 WiFi(就像您在家里看到的那样)不同,每个用户都有自己的用户名和密码。
攻击 WPA2 Enterprise 超出了本文的讨论范围。许多中小型企业和任何家用路由器都可能设置为 WPA2,这就是我们今天要攻击的对象。
捕获流量
现在知道了目标的 BSSID,捕获发往目标的数据包并将其保存为捕获文件。将再次使用 Airodump-NG,使用--channel标志指示要监听的频道,使用--bsside标志让它知道要监听哪个设备,使用--write命令命名捕获。
airodump-ng --channel 1 --bssid EC:AD:E0:AB:93:34 --write HackDump wlan0mon
现在所有数据都保存到捕获文件中。可以看到一个设备连接到此网络(将手机连接到此接入点 - 如果尚未连接设备,请连接一个设备)。
想要捕获的是成功连接到网络的设备。称之为握手。实现此目的的最佳方法是对连接的设备进行攻击并将其踢出网络。它将尝试重新连接,从而能够捕获握手。
在新终端中,将使用以下标志运行 Aireplay-NG
--deauth <num> (将使用数字零,这意味着继续攻击直到我们说停止)
--a <BSSID>
--c <STATION>
然后列出接口
aireplay-ng --deauth 0 -a EC:AD:E0:AB:93:34 -c F2:98:XX:XX:XX:XX wlan0mon
让它运行一段时间后,按 ctrl+c 停止攻击。大约 10 秒后,在捕获中获得了足够的信息来开始破解。现在也可以在另一个终端窗口中停止数据包捕获。
现在知道了目标的 BSSID,捕获发往目标的数据包并将其保存为捕获文件。将再次使用 Airodump-NG,使用--channel标志指示要监听的频道,使用--bsside标志让它知道要监听哪个设备,使用--write命令命名捕获。
airodump-ng --channel 1 --bssid EC:AD:E0:AB:93:34 --write HackDump wlan0mon
现在所有数据都保存到捕获文件中。可以看到一个设备连接到此网络(将手机连接到此接入点 - 如果尚未连接设备,请连接一个设备)。
想要捕获的是成功连接到网络的设备。称之为握手。实现此目的的最佳方法是对连接的设备进行攻击并将其踢出网络。它将尝试重新连接,从而能够捕获握手。
在新终端中,将使用以下标志运行 Aireplay-NG
--deauth <num> (将使用数字零,这意味着继续攻击直到我们说停止)
--a <BSSID>
--c <STATION>
然后列出接口
aireplay-ng --deauth 0 -a EC:AD:E0:AB:93:34 -c F2:98:XX:XX:XX:XX wlan0mon
让它运行一段时间后,按 ctrl+c 停止攻击。大约 10 秒后,在捕获中获得了足够的信息来开始破解。现在也可以在另一个终端窗口中停止数据包捕获。
顶级 Kali Linux 渗透工具
枚举工具
在开始黑客攻击之前,需要了解目标的弱点。换句话说,每个渗透测试都从枚举开始。以下工具用于侦察、获取攻击面和了解战场形势。
Hydra(九头蛇)是并行处理系统上运行的密码破解程序。用于暴力破解与FTP、SSH、Telnet、Microsoft SQL 等协议相关的用户名和密码. @DDD_phoenix
枚举工具
在开始黑客攻击之前,需要了解目标的弱点。换句话说,每个渗透测试都从枚举开始。以下工具用于侦察、获取攻击面和了解战场形势。
Hydra(九头蛇)是并行处理系统上运行的密码破解程序。用于暴力破解与FTP、SSH、Telnet、Microsoft SQL 等协议相关的用户名和密码. @DDD_phoenix
什么是 Nmap 脚本引擎?
Nmap 的另一个强大功能是能够使用各种脚本运行扫描,以自动化工作或根据需要自定义安全审核。使用这些脚本通过其原生的Nmap 脚本引擎(NSE) 从 Nmap 中获得更大的多功能性和功能性。
NSE 附带了大量脚本。其中许多脚本是由安全专业人员创建和维护的,他们随着漏洞和攻击的发展而不断为这些脚本做出贡献。在开始每个会话之前,请运行命令 <nmap –script-updatedb>(如果您不是 root 帐户,则需要 <sudo>)。
这些脚本按网络发现、复杂版本检测、漏洞检测、后门检测和漏洞利用进行分类。一些脚本使用简单技术,另一些脚本使用复杂技术。您还可以使用 Lua 编程语言创建自己的脚本。
基本扫描
Nmap 命令包含三个元素:
扫描类型- 这告诉 Nmap 将执行哪种类型的扫描,例如:-sS 表示 TCP SYN 扫描,-sU 表示 UDP 扫描,或 -sn 表示 ping 扫描。
选项- 指定扫描的其他元素,例如:-O 表示操作系统、-p 表示端口范围或 -A 表示详细信息。
目标- 将目标定义为单个 IP 地址、IP 地址范围或域。
这些命令可能很难记住。在我们的Nmap 备忘单:所有命令、标志和开关中,可以以易于使用的格式找到它们。
精心设计的扫描被认为是使用 Nmap 扫描漏洞的基础。此类扫描的结果将返回有关哪些端口已打开以及在这些端口上运行哪些服务的信息。
可以使用诸如<nmap -p- -A <目标IP>>的命令执行这样的扫描。
此命令指示 Nmap 使用 -p- 标志扫描所有端口,并使用 -A 标志返回有关目标主机的详细信息。然后可以使用这些结果来识别目标主机上存在的潜在安全风险和漏洞。
Nmap 的另一个强大功能是能够使用各种脚本运行扫描,以自动化工作或根据需要自定义安全审核。使用这些脚本通过其原生的Nmap 脚本引擎(NSE) 从 Nmap 中获得更大的多功能性和功能性。
NSE 附带了大量脚本。其中许多脚本是由安全专业人员创建和维护的,他们随着漏洞和攻击的发展而不断为这些脚本做出贡献。在开始每个会话之前,请运行命令 <nmap –script-updatedb>(如果您不是 root 帐户,则需要 <sudo>)。
这些脚本按网络发现、复杂版本检测、漏洞检测、后门检测和漏洞利用进行分类。一些脚本使用简单技术,另一些脚本使用复杂技术。您还可以使用 Lua 编程语言创建自己的脚本。
基本扫描
Nmap 命令包含三个元素:
扫描类型- 这告诉 Nmap 将执行哪种类型的扫描,例如:-sS 表示 TCP SYN 扫描,-sU 表示 UDP 扫描,或 -sn 表示 ping 扫描。
选项- 指定扫描的其他元素,例如:-O 表示操作系统、-p 表示端口范围或 -A 表示详细信息。
目标- 将目标定义为单个 IP 地址、IP 地址范围或域。
这些命令可能很难记住。在我们的Nmap 备忘单:所有命令、标志和开关中,可以以易于使用的格式找到它们。
精心设计的扫描被认为是使用 Nmap 扫描漏洞的基础。此类扫描的结果将返回有关哪些端口已打开以及在这些端口上运行哪些服务的信息。
可以使用诸如<nmap -p- -A <目标IP>>的命令执行这样的扫描。
此命令指示 Nmap 使用 -p- 标志扫描所有端口,并使用 -A 标志返回有关目标主机的详细信息。然后可以使用这些结果来识别目标主机上存在的潜在安全风险和漏洞。
网络管理员使用 Nmap(和 Zenmap)来映射子网并发现主机。网络安全专业人员使用 Nmap 扫描目标系统以查找可能正在运行的开放端口和服务。这些安全扫描器用于黑客攻击和渗透测试,以发现目标系统、收集信息并检查漏洞。
Nmap 和 Zenmap 均可用于提供有关目标网络的大量信息。一些常用的 Nmap 功能包括:
主机发现:生成主机名(即在网络上通信的计算机或其他设备。例如,PC、打印机、服务器等)及其 IP 地址的列表。
端口扫描:扫描特定端口(或端口范围)以确定它们是否在给定目标或目标集上开放。
操作系统检测:尝试猜测目标操作系统的详细信息,例如供应商(例如 Microsoft)、底层操作系统(例如 Windows)和操作系统代(例如 10)。
防火墙/入侵检测系统 (IDS) 规避:为高级用户提供多种选项,以防止扫描活动被防火墙或 IDS 系统检测到(并随后被丢弃)。例如,隐藏(或欺骗)您的 IP 地址、源端口、MAC 地址等。
在 Nmap 中,用户利用命令行开关来定义扫描参数。Zenmap 的界面具有命令创建器,允许使用下拉实用程序以交互方式创建 Nmap 命令行(高级用户也可以编辑)。
Nmap 和 Zenmap 均可用于提供有关目标网络的大量信息。一些常用的 Nmap 功能包括:
主机发现:生成主机名(即在网络上通信的计算机或其他设备。例如,PC、打印机、服务器等)及其 IP 地址的列表。
端口扫描:扫描特定端口(或端口范围)以确定它们是否在给定目标或目标集上开放。
操作系统检测:尝试猜测目标操作系统的详细信息,例如供应商(例如 Microsoft)、底层操作系统(例如 Windows)和操作系统代(例如 10)。
防火墙/入侵检测系统 (IDS) 规避:为高级用户提供多种选项,以防止扫描活动被防火墙或 IDS 系统检测到(并随后被丢弃)。例如,隐藏(或欺骗)您的 IP 地址、源端口、MAC 地址等。
在 Nmap 中,用户利用命令行开关来定义扫描参数。Zenmap 的界面具有命令创建器,允许使用下拉实用程序以交互方式创建 Nmap 命令行(高级用户也可以编辑)。
下载和安装 Zenmap 和 Nmap
Nmap 和 Zenmap 适用的一些操作系统包括:
视窗,Mac OS X,Linux
找到并运行安装程序,例如nmap-7.93-setup.exe。安装的第一步是接受许可协议。选择“我同意”继续:
接下来,选择要安装的组件。两个安装程序都会安装 Nmap 和 Zenmap。如果要放弃 GUI,请取消勾选 Zenmap
确定要安装 Nmap/Zenmap 的位置(默认为 C:\Program Files (x86)\Nmap)。您可以保留原样,也可以单击“浏览…”按钮将其安装在其他位置
安装程序将验证安装,以便您知道安装已成功完成
Nmap 安装应用程序将默认在 Windows 开始菜单和桌面上创建快捷方式。
安装过程结束时,单击“完成”
Nmap 和 Zenmap 适用的一些操作系统包括:
视窗,Mac OS X,Linux
找到并运行安装程序,例如nmap-7.93-setup.exe。安装的第一步是接受许可协议。选择“我同意”继续:
接下来,选择要安装的组件。两个安装程序都会安装 Nmap 和 Zenmap。如果要放弃 GUI,请取消勾选 Zenmap
确定要安装 Nmap/Zenmap 的位置(默认为 C:\Program Files (x86)\Nmap)。您可以保留原样,也可以单击“浏览…”按钮将其安装在其他位置
安装程序将验证安装,以便您知道安装已成功完成
Nmap 安装应用程序将默认在 Windows 开始菜单和桌面上创建快捷方式。
安装过程结束时,单击“完成”
在 Kali Linux 上安装 Zenmap
Nmap 与 Kali Linux 捆绑在一起(以及数百种其他有用的工具),因此无需单独安装。Kali Linux 版本 2019.4(及更高版本)从其软件包中删除了 Zenmap,但您仍然可以手动安装它。方法如下:
1. 首先更新 Kali Linux 的软件包索引列表。为此,打开一个终端窗口(CTRL+ALT+T),然后输入,sudo apt update:
2,要升级所有软件包,请运行sudo apt full-upgrade -y:
3. 由于 Zenmap 需要的依赖项在 Kali Linux 中不再受支持,因此我们需要使用“Kaboxer”(Kali Applications Boxer)将其作为打包应用程序安装在 Docker 容器中。运行sudo apt install zenmap-kbx -y:
Nmap 与 Kali Linux 捆绑在一起(以及数百种其他有用的工具),因此无需单独安装。Kali Linux 版本 2019.4(及更高版本)从其软件包中删除了 Zenmap,但您仍然可以手动安装它。方法如下:
1. 首先更新 Kali Linux 的软件包索引列表。为此,打开一个终端窗口(CTRL+ALT+T),然后输入,sudo apt update:
2,要升级所有软件包,请运行sudo apt full-upgrade -y:
3. 由于 Zenmap 需要的依赖项在 Kali Linux 中不再受支持,因此我们需要使用“Kaboxer”(Kali Applications Boxer)将其作为打包应用程序安装在 Docker 容器中。运行sudo apt install zenmap-kbx -y: