内网只开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

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

相关文章
|
6月前
|
弹性计算
在您使用内网ALB,端口6443时遇到健康检查失败的问题
【1月更文挑战第7天】【1月更文挑战第31篇】在您使用内网ALB,端口6443时遇到健康检查失败的问题
102 1
|
安全 网络协议 NoSQL
对内网服务端口进行扫描
对内网服务端口进行扫描,根据开放的端口服务选择横向的方法。
335 1
|
Java 应用服务中间件 Linux
Java实现的公网映射内网端口的开源工具
Holer是由Java实现的是一个将局域网中的应用映射到公网访问的端口映射开源软件,支持转发基于TCP协议的报文。
2916 0
|
网络安全 Python Shell
内网中的端口转发
参考文献:http://payloads.online/archivers/2018-02-02/1http://www.freebuf.com/articles/web/170970.html 工具下载:https://github.com/Brucetg/Pentest-tools 使用端口转发技术来访问内网其他主机中,或者将内网中某个端口转发到本地。
1871 0
|
网络协议 Shell 网络安全
|
Web App开发 应用服务中间件
|
4月前
|
弹性计算 应用服务中间件 Linux
阿里云服务器开放端口完整图文教程
笔者近期开发完成的服务端程序部署在阿里云的ECS云服务器上面,一些应用程序配置文件需要设置监听的端口(如Tomcat的8080、443端口等),虽然通过CentOs 7系统的的「防火墙」开放了对应的端口号,任然无法访问端口号对应的应用程序,后面了解到原来还需要设置云服务器的「安全组规则」,开放相应的端口权限,服务端的接口才能真正开放。
667 1
阿里云服务器开放端口完整图文教程