監査 ブラックボックス

この記事では、特別な知識がなくても習得しリソースに関してそれを適用できるブラックボックス監査手法を提供します



当然、この記事はリソースをハッキングする技術に翻訳できます。 しかし、保護する方法を知るには、ハッキングする方法を知る必要があります。 あなたは、習得した知識に対して責任を負います;)



開発者として、ハッカーが使用する原則とテクニックを少なくとも知っている場合、それら(リソース)に対して少し落ち着くと感じ、アクティビティの結果がより高いレベルに達すると思います



この記事は基本的なレベルの監査を示しており、読むことと理解するための閾値を低く維持しています。









リソース概要



このブロックの前に、 以前の記事を参照してください。この記事では、非常に便利で効果的な無料のツールを紹介してくれました。



当然、すべてはターゲットリソースの一般的な分析から始まります。 Nmapはこれに役立ちます。 一時的に、ローカルではなく、外部マシンから起動する必要があります。 ほとんどの場合、ファイアウォールはローカルネットワークからすべてにアクセスできるように構成されていますが、外部からのパケットを正しくフィルタリングします。 そして、客観的な評価が必要です。



nmap -A -T4 host







そして



Starting Nmap 5.51 ( nmap.org ) at 2011-08-01 11:38 NOVST

Nmap scan report for host (12.34.56.78)

Host is up (0.020s latency).

Not shown: 994 closed ports

PORT STATE SERVICE VERSION

22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu7 (protocol 2.0)

80/tcp open http nginx 0.7.65

81/tcp open http Apache httpd 2.2.14 ((Ubuntu))

|_http-methods: No Allow or Public header in OPTIONS response (status code 200)

111/tcp open rpcbind 2 (rpc #100000)

443/tcp open http Apache httpd 2.2.14 ((Ubuntu))

|_http-title: 404 Not Found

8000/tcp open http Icecast streaming media server

|_http-title: Icecast Streaming Media Server

Service Info: OSs: Linux, Unix








Nmapの結果を分析する間、「Webアプリのテスト」ポリシーと並行してNessusを実行できます。 彼は私たちに同様の要約を提供し、同時に彼のデータベースでサービスをチェックします(彼の「トリック」優先順位の1つであるIMHOはデータベースを更新することを忘れないでください!)。 同じことを再確認する必要があるのはなぜですか? 実践が示すように、Nmapは、これらのユーティリティのいずれも開示していないサービスを明らかにできる場合があります。



そのため、未設定のファイアウォールがすぐに表示されます(81は閉じられていない明らかなWebバックエンドです)。 パッケージマネージャーを介してソフトウェアをインストールします(サービス名の後に(Ubuntu)。ところで、Ubuntuがあることがわかりました)。

また、そこにどのようなWebバックエンドがあるかを判断しました。 ただし、通常、そのバージョンはhttpsを使用して公開されますが、ここでは必須ではありません。



表示されていない行について:994閉じたポート -デフォルトでは、Nmapは結果の出力を高速化するために、通常サービスが機能する1000の共通ポートをチェックします。 ポートを見つけました-1000のうち1マイナス。



はい、 Positive Technologiesの人たちは私を許しますが、ここでは、XSpiderを起動することも並行してアドバイスします。たとえば、バージョン7.7は、クラック版で公開されています(実際、これについて謝罪します)。



その主な目標は、一般的なパスワードを確認することです(特にftpの場合)。 もちろん、これにはまだ多くのユーティリティがありますが、辞書、スキル、および同様のテクニックの知識がないことを含む初期レベルの監査があります。 はい、そしておそらくXSpider自体が私たちに興味深いことを教えてくれます(分析中の非常にまれなエラーに注意したいと思います)



彼らはこことここの両方でリソースを「驚かせた」。 利用可能なサービスのより詳細な「開発」に進むことができます。 Nessusがまだチェックしている場合は、スプロイトの手動検索に進みましょう。 多かれ少なかれ関連性があります:

その他。 通常、他のサイトは近隣のサイトでエクスプロイトを探しており、「Yeralash」のように、ほとんど再帰して、誰からもそれを取り消しました:]



そして、ここで重要なポイントをマークます。 悪用が実行中のソフトウェアのこのバージョンに適していると書かれている場合、それが機能する(悪用される)ことはありません! すでにパッチが適用されているバージョンのソフトウェアを使用している可能性があります。



MetasploitでAutopwnを使用することで(前の記事から)すでに得た知識をすぐに結び付けます。 サービスのバージョンや名前をインストールできなかった場合に特に役立ちます。



私たちの場合のエクスプロイト検索の結果は提供しません。一般的な分析手法について説明します。 そして、ここですでにNessusが終了しているはずです。結果を追加し(エクスプロイトへのアプローチの微妙さを考慮に入れて)、この時点で監査バージョンの現在の段階は終了します。



そして、私たちはすでに何を持っていますか? システムに関する一般的な情報、実行中のサービス、匿名アクセス/一般的なパスワード、エクスプロイトへの露出(公開されているもの、アンダーグラウンドを忘れないでください。])

これらの段階のいくつかでリソースが既に妥協されるのは、可能です。



繊細なWeb



多くの場合、ハッキングはこちら側から正確に発生します。 ここでの状況は非常に異なるため、ここで指示を出すことは非常に困難です。 したがって、一般的なアプローチです。

Acunetixを起動し、Niktoを接続し、 悲しい結果を待ちます。 彼らが見つけた穴を閉じます。



サーバー上の監査スクリプト


サーバーで使用されているものを確認します。

カスタムスクリプトの場合-スキャナーが提供した情報を分析し、ペンで試してみてください! それはすべてあなたのレベルに依存します。

主な原則:受信データ($ _GET、$ _POST、$ _COOKIEなど)を(開発者が意図した)予期しないものに置き換えること。

それはすべてあなたのレベルに依存し、レベルは個人的な経験を向上させるか、インターネットがいっぱいの記事を読むことで改善できます。 プラスは、演ductive的な思考を開発します。



サードパーティのスクリプトはどうですか?

(上記で引用したものと同じデータベース内で)それらのスプロイトを見つけるために、それらのバージョンを決定する必要があります。

  1. 通常、スクリプトのバージョンはフッターに表示されます。 今の監査人として、これは私たちにとって正しいことです。 スクリプトバージョンの出力を削除して、GHDBの結果が表示されないようにする必要があります(Google Dorksの
  2. 他の方法は? 何らかの理由で、99%の開発者が/ docsフォルダーなどをサーバーにアップロードします(人的要因、無知、誤解)。 phpbbをお持ちですか? またはWordPress? そして今、私たちは少し経験するでしょう:)

    phpBB / docs / CHANGELOG.html

    wordpress / readme.html

    ほら、95%の場合、現在のバージョンのスクリプトを見つけることができます。
  3. スクリプトの構造とバージョンの違いに関する知識。 すべてはあなたの経験と知識に依存し、その助けを借りてスクリプトを分析し、どのバージョンが使用される可能性が最も高いかを理解できます。
悪用をチェックします。 ここでは、状況はサービスソフトウェアとは異なります。 エクスプロイトがこのバージョンのスクリプトに適合しないことはそれほど多くありません。次のバージョンにアップデートせずに現在のパッチを適用する人はほとんどいません。

ただし、ここでは別のポイントがあります。登録がオフになる場合、必要なbbコードが禁止される場合、すべてがこの特定の状況によるものであるため、すべてを手動で確認する必要があります。 ただし、 可能な限り脆弱性はすでに発生しています。



彼らはスプロイトを見つけませんでした。スクリプトの最新バージョンがあります。落ち着いてもいいですか? いや

なぜカスタム開発者スクリプトを手動でテストするのに、最新バージョンの一般的なスクリプトでは同じことをしないのですか? ステレオタイプを取り除く必要があります。特に、誰もがあなたのためにすべてをすでに見つけていますが、あなたは他の人より賢く「成功する」ことはできません。



なんで? 少し前、 私の研究室で、最新バージョンのPHPBB(3.0.9)の分析を開始しました。 今、私はあなたに特権を与えない1つのトリックを与えます(まれにテーブルの接頭辞を除いて)、これはほんの一瞬です



プロファイル->個人設定->一般設定

フィールド「日付形式」。 紹介します



  「」「」「 


私たちは得る

SQL ERROR [ mysqli ]

Data too long for column 'user_dateformat' at row 1 [1406]








エラーは理解可能で、着信データの長さはhtmlentities()が適用される前でもチェックされ、クエリはすでにデータベースに存在し、対応する結果が得られます。



これは、スクリプト、リソース、開発者などの権限の概念を除外するためだけにあなたに伝えました。



監査は重要であり、一度限りのものではありません 。 少なくとも最後にバックアップを探す必要がないように、少なくともエクスプロイトの公開を常に意識している必要があります。



おわりに



ここで、監査人の仕事のスキームを検討し、それを自分自身をチェックするときの状況と組み合わせて、ここで「クロス」状況と混合代名詞が行きます。 得られた知識を使用してサードパーティのリソースで何かを見つけ、WhiteHat側を選択し、すべてについてリソース管理者に通知することを決定した人に、本当に期待しています。 責任はすべてあなたにあるので。



「ホワイトボックス」についても書き始めましたが、削除することに決めたため、記事はかなり大きくなりました。

「ブラックボックス」の監査を補足する必要がある人がいる場合は、コメントを記入し、記事を差し引いたいくつかのミスポイントによる不満を表明しないでください。 そして、これらは監査の基本にすぎず、微妙なポイントの手がかりになることを忘れないでください。 より専門的な監査では、特別なローカルプロキシサーバーを使用します。これにより、必要なデータやその他のツールが置き換えられます。 さて、いくつかの特定のテクニックと脆弱性またはサービス拒否のチェック。



シリーズ:




All Articles