内网只开135端口如何横向移动?

简介:

在一次渗透时,我通过GPP漏洞拿到一个本地管理员组的账户跟密码,我计划是准备撞号攻击(使用同一账户密码,在内网批量登录),批量登录主机之后使用mimikatz抓取lsass.exe进程的明文密码及hash,拖回本地看看是否域管理员存在。

远程执行命令方式

既然要抓密码,肯定需要远程执行命令,首先我们在看看远程登录WIN主机执行命令有几种方式。

· IPC$+AT

· PSEXEC

· WMI

· Winrm

远程执行命令需要条件

我们来看这些命令的方式,都需要哪些端口。

IPC$+AT 445
PSEXEC 445
WMI 135
 Winrm 5985(HTTP )&5986 (HTTPS)

面临问题

目前问题是,我遇到的这个内网极大多数机器都关闭445端口(可能为了防止MS17010?哈哈)。那么PC$+AT、PSEXEC是无法使用的。只能使用WMI、Winrm,但是Winrm在2012才默认开启,为了通用性只能选择WMI执行命令。

WMI的全称是Windows Management Instrumentation,它出现在所有的Windows操作系统中,默认开启,通用性特别好。

WMI执行命令方式

首先WMI并不支持执行命令,而是支持执行文件但是你可以加相应的参数,比如"wmic /node:127.0.0.1 /user:test /password:!123 process call create "cmd.exe /c ipconfig"。

上面那条命令的意思是创建一个新的进程,进程为CMD.EXE并且我加了相应的参数。

内网只开135端口如何横向移动?

但是存在一个严重问题,执行完Ipconfig命令之后,返回执行结果是否成功,并没有结果的内容,这对渗透测试来说特别不方便。

之后很多安全研究员研究WMI,执行完的结果如何能知道? 早些年大概都是把执行的结果写入目标机器的本地盘符中的某个文件,之后读取这个文件进行回显。

内网只开135端口如何横向移动?

结果回显的问题解决了,但是存储在服务器上,如何把结果文件拿回本地呢?

下面我们分析下国内安全研究员“Twi1ight”在早些年写的WMI远程执行命令工具“Wmiexec.vbs”,看看他是如何把结果拿回本地呢?

内网只开135端口如何横向移动?

他是通过FSO组件访问远程共享文件夹中的结果文件,将结果输出。

Wmiexec.vbs整个执行过程是“当用户输入命令时,WMI创建进程执行该命令,然后把结果输出到文件,这个文件位于之前创建的共享文件夹中。最后,通过FSO组件访问远程共享文件夹中的结果文件,将结果输出。当结果读取完成时,调用WMI执行命令删除结果文件。最后当WMIEXEC退出时,删除文件共享”。

执行过程也说了需要访问远程共享文件,那么肯定需要445,而我们环境只有135开启,那么Wmiexec是无法使用的。

在脑子回想WMI执行命令之后,想起NCCGROUP写过一款工具"WMICMD.exe"貌似使用了其他的回显方式,看看他们是怎么样回显的?

https://github.com/nccgroup/WMIcmd

甚至源码都不需要看,NCCGROUP直接在README.md已经给结果回显的思路。

内网只开135端口如何横向移动?

WMICMD执行过程是把结果写入注册表,之后读取注册表并删除,之后回显到本地。因为WMI可以远程操作注册表信息,查询的注册表的信息会有回显。

大概过程就是利用wmi(135)远程执行命令。结果写入注册表中,之后远程读取注册表的结果就OK。

目前我遇到的这种奇葩环境,使用Wmicmd.exe完美解决。

NMAP扫描只开放135端口

内网只开135端口如何横向移动?

使用WMICMD.EXE执行命令,使用火绒剑分析进程行为。

内网只开135端口如何横向移动?

总结:

这篇文章,主要讲述了使用WMI如何执行命令及解决WMI执行命令回显的问题。当然除了我说的WMI&Net use模式及WMI&Registry,还有其他WMI执行命令回显的方式。

如果想要执行自己特定的文件,可以使用WMI执行系统文件bitsadmin、IEExec、Certutil去执行下载到目标机,再次执行就OK;或者上传到到注册表,之后导出执行也OK。


原文发布时间为:2018-05-25

本文来自云栖社区合作伙伴“嘶吼网”,了解相关信息可以关注“嘶吼网”。

相关文章
|
3月前
|
弹性计算
在您使用内网ALB,端口6443时遇到健康检查失败的问题
【1月更文挑战第7天】【1月更文挑战第31篇】在您使用内网ALB,端口6443时遇到健康检查失败的问题
41 1
|
Java 应用服务中间件 Linux
Java实现的公网映射内网端口的开源工具
Holer是由Java实现的是一个将局域网中的应用映射到公网访问的端口映射开源软件,支持转发基于TCP协议的报文。
2855 0
|
网络安全 数据安全/隐私保护
|
网络协议 Shell 网络安全
|
4月前
|
Ubuntu 关系型数据库 MySQL
百度搜索:蓝易云【ubuntu20.4服务器安装mysql社区版并开放3306端口】
现在,你已经在Ubuntu 20.04服务器上成功安装了MySQL社区版,并且已经开放了3306端口,可以通过该端口访问MySQL服务器了。请确保在生产环境中设置安全措施,例如设置强密码、限制访问等,以保护数据库的安全性。
96 2
|
3月前
|
Java Nacos Docker
在集成nacos时,端口9848报错但服务器的这个端口是开放的
在集成nacos时,端口9848报错但服务器的这个端口是开放的【1月更文挑战第14天】【1月更文挑战第67篇】
226 1
|
6月前
|
网络安全 数据安全/隐私保护
百度搜索:蓝易云【多个端口怎么运行SSH服务器?】
记得替换 `username`为你的用户名,`your_server_ip`为你的服务器IP地址。根据需要,可以添加其他端口并进行相应的配置。
86 0
|
1月前
|
安全 Windows
服务器中如何检查端口是否开放
服务器中如何检查端口是否开放