通过 RDP 实现持久系统访问
为了通过 RDP 建立持久性,将使用rdesktop立即跳转到 SYSTEM shell,而无需输入凭据!为此,将利用名为utilman.exe的内置工具作为建立持久后门的手段。
需要更改 HKLM 注册表项或 C:\Windows\System32 中的 utilman.exe,因此我们需要提升权限来设置我们的持久性。
此时,utilman 已设置好,当单击“轻松访问”时,它会生成一个 SYSTEM shell;但是,我们还需要进行一项配置,以便我们可以通过 RDP 获取 Windows 的登录屏幕。
可以使用rdesktop进入 Windows 的登录屏幕,但前提是计算机已禁用“要求计算机使用网络级别身份验证进行连接”,而现代 Windows 计算机上默认启用此功能。
可以绕过这个问题并通过注册表禁用网络级别的身份验证,这允许我们连接到 RDP 而无需提供用户/密码组合进行“预身份验证”。
现在,所需的注册表项已被修改,以使此攻击起作用,我们可以使用以下命令使用rdesktop获取 SYSTEM shell权限
为了通过 RDP 建立持久性,将使用rdesktop立即跳转到 SYSTEM shell,而无需输入凭据!为此,将利用名为utilman.exe的内置工具作为建立持久后门的手段。
需要更改 HKLM 注册表项或 C:\Windows\System32 中的 utilman.exe,因此我们需要提升权限来设置我们的持久性。
此时,utilman 已设置好,当单击“轻松访问”时,它会生成一个 SYSTEM shell;但是,我们还需要进行一项配置,以便我们可以通过 RDP 获取 Windows 的登录屏幕。
可以使用rdesktop进入 Windows 的登录屏幕,但前提是计算机已禁用“要求计算机使用网络级别身份验证进行连接”,而现代 Windows 计算机上默认启用此功能。
可以绕过这个问题并通过注册表禁用网络级别的身份验证,这允许我们连接到 RDP 而无需提供用户/密码组合进行“预身份验证”。
现在,所需的注册表项已被修改,以使此攻击起作用,我们可以使用以下命令使用rdesktop获取 SYSTEM shell权限
使用 PsExec 成为本地系统帐户
如果您是使用 Specops Deploy 的管理员,您可能有过以下经历:当您在本地计算机上尝试部署应用程序时,可以毫无问题地部署它,但当您尝试部署它时,似乎无法让它工作。这篇博客文章可能会对您的问题有所启发。
使用 Specops Deploy 部署应用程序时,本地系统是执行安装的帐户。为了确保您的应用程序以与 Specops Deploy App 完全相同的方式安装,您需要充当本地系统帐户。为此,我推荐使用 Sysinternals 的一款名为PsExec.exe的小工具
从 PsTools解压内容并将 PsExec.exe 复制到 C:\Windows\System32
以管理员身份打开命令提示符并输入以下命令:
PsExec.exe -s -i cmd.exe
复制
通过使用 PsExec.exe,您将在系统上下文中打开新的命令提示符,并且执行所有操作的帐户将是本地系统帐户。这是 Specops Deploy App 在安装应用程序时使用的相同帐户。
如果您是使用 Specops Deploy 的管理员,您可能有过以下经历:当您在本地计算机上尝试部署应用程序时,可以毫无问题地部署它,但当您尝试部署它时,似乎无法让它工作。这篇博客文章可能会对您的问题有所启发。
使用 Specops Deploy 部署应用程序时,本地系统是执行安装的帐户。为了确保您的应用程序以与 Specops Deploy App 完全相同的方式安装,您需要充当本地系统帐户。为此,我推荐使用 Sysinternals 的一款名为PsExec.exe的小工具
从 PsTools解压内容并将 PsExec.exe 复制到 C:\Windows\System32
以管理员身份打开命令提示符并输入以下命令:
PsExec.exe -s -i cmd.exe
复制
通过使用 PsExec.exe,您将在系统上下文中打开新的命令提示符,并且执行所有操作的帐户将是本地系统帐户。这是 Specops Deploy App 在安装应用程序时使用的相同帐户。
在单台远程计算机上使用 PsExec
要开始使用 PsExec,只需关闭现有的 PowerShell 控制台并启动一个新控制台。如果想在命令提示符中使用它,可以启动命令提示符。只需确保启动提升的会话,因为 PsExec 需要管理员权限才能在远程计算机上运行程序。非管理员也可以在本地使用 PsExec
PsExec 语法
PsExec 的语法相当简单,如下所示:
psexec [ \\computer [ ,computer2 [ ,... ] | file ]][ -u 用户[ -p 密码][ -ns ][ -r 服务名称][ -h ][ -l ][ -s|-e ][ -x ][ -i [会话]][ -c 可执行文件[ -f|-v ]][ -w 目录][ -d ][ - <优先级>][ -an,n,... ] cmd [参数]
如果觉得语法很复杂,随着使用,它会变得清晰。首次运行 PsExec 时,将看到最终用户许可协议 (EULA)
要开始使用 PsExec,只需关闭现有的 PowerShell 控制台并启动一个新控制台。如果想在命令提示符中使用它,可以启动命令提示符。只需确保启动提升的会话,因为 PsExec 需要管理员权限才能在远程计算机上运行程序。非管理员也可以在本地使用 PsExec
PsExec 语法
PsExec 的语法相当简单,如下所示:
psexec [ \\computer [ ,computer2 [ ,... ] | file ]][ -u 用户[ -p 密码][ -ns ][ -r 服务名称][ -h ][ -l ][ -s|-e ][ -x ][ -i [会话]][ -c 可执行文件[ -f|-v ]][ -w 目录][ -d ][ - <优先级>][ -an,n,... ] cmd [参数]
如果觉得语法很复杂,随着使用,它会变得清晰。首次运行 PsExec 时,将看到最终用户许可协议 (EULA)
以 LocalSystem 帐户运行进程
LocalSystem 帐户是预定义帐户,在本地计算机上具有广泛的权限。它由操作系统在安装期间创建。LocalSystem 帐户的安全令牌包括安全标识符“NT AUTHORITY\System”和“BUILTIN\Administrators”。
这些帐户对大多数系统对象具有不受限制的访问权限。在 LocalSystem 帐户下运行进程或程序的优点是该进程将具有对所有系统资源的不受限制的访问权限。
PsExec 最强大的功能之一是它能够使用 LocalSystem 帐户权限启动进程(或程序)。此功能最常被黑客恶意利用。
成功使用 LocalSystem 帐户权限运行恶意进程,要以 LocalSystem 帐户启动进程,可以将 -s 开关与 PsExec 一起使用
开关使 PsExec使用 Web 服务器上的 LocalSystem 帐户启动cmd.exe进程。
此处使用的 /c 开关属于cmd.exe本身,这对于动态运行命令然后终止它非常有用。
想运行单个命令而不必在远程计算机上启动cmd.exe的交互式控制台会话时,它特别有用。不要将其与 PsExec 的 -c 开关混淆,后者对于在默认路径中不存在程序时将程序复制到远程计算机非常有用。
LocalSystem 帐户是预定义帐户,在本地计算机上具有广泛的权限。它由操作系统在安装期间创建。LocalSystem 帐户的安全令牌包括安全标识符“NT AUTHORITY\System”和“BUILTIN\Administrators”。
这些帐户对大多数系统对象具有不受限制的访问权限。在 LocalSystem 帐户下运行进程或程序的优点是该进程将具有对所有系统资源的不受限制的访问权限。
PsExec 最强大的功能之一是它能够使用 LocalSystem 帐户权限启动进程(或程序)。此功能最常被黑客恶意利用。
成功使用 LocalSystem 帐户权限运行恶意进程,要以 LocalSystem 帐户启动进程,可以将 -s 开关与 PsExec 一起使用
开关使 PsExec使用 Web 服务器上的 LocalSystem 帐户启动cmd.exe进程。
此处使用的 /c 开关属于cmd.exe本身,这对于动态运行命令然后终止它非常有用。
想运行单个命令而不必在远程计算机上启动cmd.exe的交互式控制台会话时,它特别有用。不要将其与 PsExec 的 -c 开关混淆,后者对于在默认路径中不存在程序时将程序复制到远程计算机非常有用。
ADMIN$ 共享,这是位于 Windows 设备上的隐藏共享。只有具有管理权限的用户才能访问 ADMIN$。
服务控制管理器 (SCM)位于 Windows 客户端和服务器上。SCM 管理在 Windows 设备上运行的程序和服务。
远程过程调用 (RPC)是一种允许客户端和服务器之间进行通信的网络协议。例如,SCM 有一个接口 (svcctl),其中包含一些操作(例如 CreateServiceW)。操作类似于过程命令。如果 IT 管理员想要执行某个过程(例如在远程服务器上使用 SCM 创建服务),则管理员的客户端会发送 RPC 请求以调用服务器上的特定接口和操作 (svcctl:CreateServiceW)。调用接口和操作的操作会运行该过程。
命名管道:通过服务器消息块 (SMB) 文件共享协议实现对等通信的进程。通常,读取和写入文件操作是通过命名管道发送的。
具有管理权限的用户必须遵循基本工作流程才能启动 PsExec。首先,管理员通过 SMB 将可执行文件 PSEXESVC.exe 上传到远程服务器上的 ADMIN$ 共享 (1)。接下来,管理员发送 RPC 请求以连接到 SCM并启动将运行 PSEXESVC.exe 的服务 (2)。启动 PsExec 服务并在管理员和远程服务器之间建立 SMB 命名管道 (3)。管理员现在可以使用 PsExec 命令行界面发送命令(例如,psexec \remote cmd )并通过命名管道接收输出。
服务控制管理器 (SCM)位于 Windows 客户端和服务器上。SCM 管理在 Windows 设备上运行的程序和服务。
远程过程调用 (RPC)是一种允许客户端和服务器之间进行通信的网络协议。例如,SCM 有一个接口 (svcctl),其中包含一些操作(例如 CreateServiceW)。操作类似于过程命令。如果 IT 管理员想要执行某个过程(例如在远程服务器上使用 SCM 创建服务),则管理员的客户端会发送 RPC 请求以调用服务器上的特定接口和操作 (svcctl:CreateServiceW)。调用接口和操作的操作会运行该过程。
命名管道:通过服务器消息块 (SMB) 文件共享协议实现对等通信的进程。通常,读取和写入文件操作是通过命名管道发送的。
具有管理权限的用户必须遵循基本工作流程才能启动 PsExec。首先,管理员通过 SMB 将可执行文件 PSEXESVC.exe 上传到远程服务器上的 ADMIN$ 共享 (1)。接下来,管理员发送 RPC 请求以连接到 SCM并启动将运行 PSEXESVC.exe 的服务 (2)。启动 PsExec 服务并在管理员和远程服务器之间建立 SMB 命名管道 (3)。管理员现在可以使用 PsExec 命令行界面发送命令(例如,psexec \remote cmd )并通过命名管道接收输出。
Hashcat 是全球速度最快、最先进的密码恢复实用程序,支持 300 多种高度优化的哈希算法的五种独特攻击模式。Hashcat 目前支持 Linux、Windows 和 macOS 上的 CPU、GPU 和其他硬件加速器,并且具有帮助实现分布式密码破解的功能。
暴力破解已经发展到不仅能破解网站上的密码,还能破解数据库、存档文件夹/文件、备份、哈希等。此工具与众不同,因为它可以利用您机器的所有资源,尤其是当您有 GPU 时。根据所用的机器,它会为您提供破解速度的预计时间,测试速度超过每秒 1000 个组合。
它可以作为渗透测试、漏洞赏金的一部分,特别是当您遇到大量密钥时,可以分析这些密钥使用了哪种加密,并相应地破解它们以揭示加密的隐藏内容。由于它支持几乎所有已知算法,可以通过在训练环境中测试它来检查它,以发现它的真正功能和速度。
暴力破解已经发展到不仅能破解网站上的密码,还能破解数据库、存档文件夹/文件、备份、哈希等。此工具与众不同,因为它可以利用您机器的所有资源,尤其是当您有 GPU 时。根据所用的机器,它会为您提供破解速度的预计时间,测试速度超过每秒 1000 个组合。
它可以作为渗透测试、漏洞赏金的一部分,特别是当您遇到大量密钥时,可以分析这些密钥使用了哪种加密,并相应地破解它们以揭示加密的隐藏内容。由于它支持几乎所有已知算法,可以通过在训练环境中测试它来检查它,以发现它的真正功能和速度。
Kali Linux 默认使用“kali”作为用户名和密码。这是众所周知的,如果不进行更改,任何人都可以非常轻松地访问您的系统。'root' 是 Linux 系统中的超级用户帐户。它可以不受限制地访问所有命令、文件和资源。
方法:
1.打开终端
2. 输入“sudo su”并按 Enter
3. 输入“passwd root”和/或“passwd kali”,然后按 Enter
4. 按照提示为任一用户名设置一个新的强密码。
5. 重启电脑,使用新密码以 root 或 kali 身份登录
方法:
1.打开终端
2. 输入“sudo su”并按 Enter
3. 输入“passwd root”和/或“passwd kali”,然后按 Enter
4. 按照提示为任一用户名设置一个新的强密码。
5. 重启电脑,使用新密码以 root 或 kali 身份登录
Kali Linux 中的 SSH(安全外壳)处于关闭状态,以最大限度地减少潜在的安全漏洞,特别是当您在 22 上设置默认开放端口时,它可以以各种方式被利用。但是,如果您需要启用 SSH 进行远程访问、文件传输或其他安全通信,则可以轻松配置和启动 SSH 服务。以下是分步指南:
1.打开终端
2. 输入“nano /etc/ssh/sshd_config”来编辑 SSH 配置文件
3. 进行以下更改:
– 设置“端口 7”(或您喜欢的任何端口)
– 设置
– 设置
– 设置 MaxSessions 7
– 设置“PasswordAuthentication yes”
– 设置
4.保存并退出文件
5. 输入“systemctl start ssh”启动 SSH
6. 输入“systemctl status ssh”检查它是否正在运行
1.打开终端
2. 输入“nano /etc/ssh/sshd_config”来编辑 SSH 配置文件
3. 进行以下更改:
– 设置“端口 7”(或您喜欢的任何端口)
– 设置
ListenAddress 0.0.0.0– 设置
MaxAuthTries 3– 设置 MaxSessions 7
– 设置“PasswordAuthentication yes”
– 设置
PermitRootLogin yes4.保存并退出文件
5. 输入“systemctl start ssh”启动 SSH
6. 输入“systemctl status ssh”检查它是否正在运行