[Vulnhub]Hackable: II¶
题目地址:https://www.vulnhub.com/entry/hackable-ii,711/
难度:Easy
网段:192.168.101.0/24
本次我们开启了 Vulnhub 之旅,先从一道简单的靶机开始。我们下载了靶机的 ova 文件之后,可以选择在 VMware 或者 Virtualbox 中导入使用,具体可能遇上什么问题,可以参考这篇文章。
首先是获取靶机的 ip 地址。在已知网段为 192.168.101.0/24
的情况下,我们使用 fscan
来进行一次扫描。
最后除了 192.168.101.1
这个本机 ip 地址外,我们获得了 192.168.101.135
这个 ip 地址,重点扫描,我们获得了如下信息:
(icmp) Target 192.168.101.135 is alive
[*] Icmp alive hosts len is: 3
192.168.101.135:80 open
192.168.101.133:80 open
192.168.101.135:22 open
192.168.101.135:21 open
[*] WebTitle http://192.168.101.135 code:200 len:11239 title:Apache2 Ubuntu Default Page: It works
[+] ftp 192.168.101.135:21:anonymous
[->]..
[->].
[->]CALL.html
可以看到,这个靶机开放了 21 22 80 端口,我们访问 http://192.168.101.135
发现是一个默认的 apache 页面,我们使用 dirsearch
进行目录扫描:
最后获得了一些信息:
[00:15:51] 404 - 16B - /admin.php3
[00:16:58] 404 - 16B - /file_upload.php3
[00:16:58] 301 - 318B - /files -> http://192.168.101.135/files/
[00:16:59] 200 - 938B - /files/
上面两个没什么太大作用,但是可以基本确定服务器内部是有 php 的解释器的。重点在于 /files/
目录,我们访问,可以看到是一个文件列表,有一个 CALL.html
,可能起到了一定的提示作用。
这时候我们看到之前 fscan
的结果中,表现出靶机的 21 端口是打开的,并且允许匿名登陆。所以我们使用 ftp 的匿名登陆试一下:
❯ ftp 192.168.101.135
Connected to 192.168.101.135 (192.168.101.135).
220 ProFTPD Server (ProFTPD Default Installation) [192.168.101.135]
Name (192.168.101.135:sxrhhh): anonymous
331 Anonymous login ok, send your complete email address as your password
Password:
230 Anonymous access granted, restrictions apply
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,101,135,164,141).
150 Opening ASCII mode data connection for file list
-rw-r--r-- 1 0 0 109 Nov 26 2020 CALL.html
226 Transfer complete
ftp>
重点在于使用 anonymous
来进行 ftp 的匿名登陆,发现目录结构和之前看到的 /files/
目录结构完全一致,我们认为这个目录就是 /files/
目录。根据之前的推测,我们直接上传一个 php 的一句话木马上去:
然后使用 ftp 的 put
命令上传木马:
然后访问 http://192.168.101.135/files/evil.php
,传递 POST 参数 1
即可实现 rce:
图中的 phpinfo 部分是我自己添加的,用于辨认木马文件是否真的执行成功。
既然完成 rce,我们直接进行一个反弹 shell。
执行前可以尝试把引号内的内容进行 urlencode 便于传输。
在执行前,我们的攻击机上需要开启监听:
浏览器上点击 execute,成功反弹 shell!
然后我们进行一个反弹 shell 的升级:
python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm-256color
# (CTRL+Z 暂时回到攻击机)
stty raw -echo;fg
# (回车)
然后我们就获得了一个几乎满配的 shell, 可以尽情的提权了。
我们直接访问 /home
目录。
发现一个 important.txt
的文件和一个 shrek
的用户目录。用户目录暂时进不去,我们查看 important.txt
的内容:
要求我们运行 /.runme.sh
脚本。我们先看一下 /.runme.sh
脚本的内容:
echo 'the secret key'
sleep 2
echo 'is'
sleep 2
echo 'trolled'
sleep 2
echo 'restarting computer in 3 seconds...'
sleep 1
echo 'restarting computer in 2 seconds...'
sleep 1
echo 'restarting computer in 1 seconds...'
sleep 1
echo '⡴⠑⡄⠀⠀⠀⠀⠀⠀⠀ ⣀⣀⣤⣤⣤⣀⡀
⠸⡇⠀⠿⡀⠀⠀⠀⣀⡴⢿⣿⣿⣿⣿⣿⣿⣿⣷⣦⡀
⠀⠀⠀⠀⠑⢄⣠⠾⠁⣀⣄⡈⠙⣿⣿⣿⣿⣿⣿⣿⣿⣆
⠀⠀⠀⠀⢀⡀⠁⠀⠀⠈⠙⠛⠂⠈⣿⣿⣿⣿⣿⠿⡿⢿⣆
⠀⠀⠀⢀⡾⣁⣀⠀⠴⠂⠙⣗⡀⠀⢻⣿⣿⠭⢤⣴⣦⣤⣹⠀⠀⠀⢀⢴⣶⣆
⠀⠀⢀⣾⣿⣿⣿⣷⣮⣽⣾⣿⣥⣴⣿⣿⡿⢂⠔⢚⡿⢿⣿⣦⣴⣾⠸⣼⡿
⠀⢀⡞⠁⠙⠻⠿⠟⠉⠀⠛⢹⣿⣿⣿⣿⣿⣌⢤⣼⣿⣾⣿⡟⠉
⠀⣾⣷⣶⠇⠀⠀⣤⣄⣀⡀⠈⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇
⠀⠉⠈⠉⠀⠀⢦⡈⢻⣿⣿⣿⣶⣶⣶⣶⣤⣽⡹⣿⣿⣿⣿⡇
⠀⠀⠀⠀⠀⠀⠀⠉⠲⣽⡻⢿⣿⣿⣿⣿⣿⣿⣷⣜⣿⣿⣿⡇
⠀⠀ ⠀⠀⠀⠀⠀⢸⣿⣿⣷⣶⣮⣭⣽⣿⣿⣿⣿⣿⣿⣿⠇
⠀⠀⠀⠀⠀⠀⣀⣀⣈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇
⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
shrek:cf4c2232354952690368f1b3dfdfb24d'
前面都是唬人的,直接来看最后一行,似乎提示了 shrek
用户的账号密码。后半截不像是真的密码,倒像是 md5 加密后的密码。我们丢进 cmd5
网站解密看一下:
可以看到,密码就是 onion
。所以我们可以直接新开一个 ssh 连接:
成功看到起了一个新的终端。我们的权限提升了!
查看当前目录文件:
ls -a
. .. .bash_history .bash_logout .bashrc .cache .nano .profile .sudo_as_admin_successful user.txt
查看 user.txt
文件,没什么重要的内容,说明只是一个权限的凭证,可以作为 flag1 的存放之处。我们看到 .sudo_as_admin_successful
文件,说明我们只需要获得 root
用户权限就可以了。接下来的人物就是提权:
提权的方式有很多,但是最简单的就是通过 root 直接给予的部分权限来获取全部权限。比如说:sudo
。我们通过 sudo -l
查看一下当前用户可以使用的命令:
可以看到,我们可以以 root 权限来运行 python3.5
命令。通过他提权相比并不难,和之前反弹shell 的命令一样:
然后我们就获得了 root 权限,通关!
文章热度:0次阅读