几天前注册了HTB,选择了一个官方难度不高[滑稽]的box来作为一次尝试

NMAP开路

1
nmap -T4 10.10.10.102

NMAP

发现目标及开放 五个端口,其中包括21和80端口

访问80端口结果如下

80-port

使用dirb猜解后台无果结果均为403

Dirb

访问8082端口

8082-port

结果显示允许web用户访问的的插件disable,web端目前 无从下手,转换目标为21端口[FTP]

1
ftp 10.10.10.102

并使用 anonymous 账户登陆成功

Log_In

在messages目录下发现一个使用对称加密的隐藏txt文件 .drupal.txt.enc 

将其get到本地

enc

查看其中内容,发现密文且加密方式类似base64,并尝试用base64解密,无果

decode_base64

使用File命令查看该加密文件,发现其用openssl 加盐哈希进行加密

salted

使用工具bruteforce-salted-openssl结果不佳,参考这个连接 ,了解OpelSSL相关用法,配合rockyou[字典],自写shell进行解密。

1
for pwd in $(cat /root/password/rockyou.txt)do openssl enc -d -aes256 -in decode -out ddecode -k $pwd >> /dev/null 2>&1if [ $? -eq 0 ]thenecho "[$pwd] might to be successful"breakfidoneecho 'done'

[后记]:后发现这个工具对于解密OpenSSL效果很好,自行寻找食用方法

两种方法解密后内容一致

OpenSSL

发现其门户网站的密码,则返回80端口尝试登陆。

账户Daniel登陆失败 | 账户Admin登陆成功

进入后台在Modules下发现可读取PHP语句的插件

Modules

参考论坛大牛的提示创了含有**PentestMonkey**提供的反弹shell语句的页面,成功getshell

reverse

GetShell

uname查询系统详细信息,并上网查询该版本内核漏洞,发现存在可利用poc,但尝试下载时发现没有配置系统没有配置DNS

Try

漏洞复现:http://blog.51cto.com/chenxinjie/2093654

[以为没有配置DNS就无法使用wget | 忽视了内网内的wget]算是之后步骤的伏笔

在HOME文件夹下的daniel下发现user flag

user_flag

在遍历目录的过程中,位于/var/www/html/sites/default/下发现 settings.php文件,并在其中找到daniel的pwd[下图为方便展示]

password

使用SSH登陆daniel账户发现登入后为python解释器,上网查询一番资料后发现import os后可以转译python解释器

1
import osos.system("/bin/bash")

到这里卡了非常长的时间,忽视了之前扫出来的8082端口[H2-DATABASE][压根忘了],在tmp目录下发现了上一个大牛留下的45506.py文件,运行后直接获得root-shell。。

之后查文档,发现该py文件为H2-DATABASE的RCE。

详细的利用过程为:

在本地下载该文件,并开启HTTP服务,用目标机下载该文件,修改权限运行。

1
#搜索并下载RCEsearchsploit H2 databasesearchsploit -m 45506#开启HTTP服务python -m SimpleHTTPServer 8080

开启之后在靶机执行wget,添加相关参数运行RCE 获得RootShell