准备工作
靶机基本信息
靶机名称: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
文件:
果然!
直接删除最后一行内容,并修改以下配置项:
PermitRootLogin
:由without-password
修改为yes
;StrictModes
:由yes
修改为no
;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