2019-2020-2ネットワーク対策技術20175311 Hu Jidong Exp4悪意のあるコード分析
ディレクトリ
- 1.実験の紹介
- 2.実験手順
-
- 1. schtasks命令を使用してシステムを監視します
-
- 2. sysmonツールを使用してシステムを監視する
-
- 3. VirusTotalを使用してマルウェアを分析する
-
- 4. PEIDを使用してマルウェアを分析する
-
- 5. systracerを使用してマルウェアを分析する
-
- 6. Wiresharkを使用してパケットをキャプチャし、マルウェアを分析する
- 3.実験要件
- 4.実験的思考
1.実験の紹介
1.実験の目的
- システムの実行ステータスを監視して、不審なプログラムが実行されていないか確認します。
- マルウェアを分析するには、Exp2またはExp3で生成されたバックドアソフトウェアを分析します。分析ツールは、ネイティブ命令またはsysinternals、systracerスイートをできるだけ使用します。
- ホストに今後の作業で問題があると思われる場合、このアイデアを実験で使用し、まずシステム全体を監視して不審なオブジェクトが検出されるかどうかを確認し、次にさらに不審なオブジェクトを分析して特定の動作と性質を確認できます。
2.実験内容(3.5点)
2.1システム稼働監視(2点)
- スケジュールされたタスクとして使用して、コンピューターがインターネットに接続されているプログラムと、接続されている外部IPの場所を毎分記録します。ネットワークに接続されているすべてのプログラム、それらが接続されている場所とそれらが何をしているかを調べ、さらに分析を行って、対象を絞った方法でパケットをキャプチャします。
- sysinternalsにsysmonツールをインストールして構成し、適切な構成ファイルを設定して、ホストの主要な問題の疑わしい動作を監視します。
2.2マルウェア分析(1.5ポイント)
- (1)接続の開始、(2)ターゲットマシンへのインストール、(3)その他の任意の操作(プロセスの移行や画面キャプチャなど、重要なのは興味があること)のときにソフトウェアを分析します。バックドアソフトウェア
-
- 読み取り、追加、削除されたレジストリキー
-
- どのファイルが読み取られ、追加され、削除されたか
-
- 接続されている外部IPと送信されるデータ
2.実験手順
1. schtasks命令を使用してシステムを監視します
-
schtasks /create /TN netstat5311 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
コマンドを使用してタスクを作成するnetstat5311
-
TN
TaskNameの省略形ですnetstat5318
。作成したスケジュール済みタスクの名前はです。
-
sc
タイミング方法を示すために、MINUTEを分単位で入力します。
-
TR
タスクの実行を示します。実行されるコマンドはnetstatです
-
bn
実行可能ファイルの名前をn
示し、IPとポートを番号で示します。
-
>
出力のリダイレクトを表し、出力をc:\netstatlog.txt
ファイルに保存します
-
新しいスクリプトファイル
netstat5311.bat
を作成し、それをcドライブディレクトリにドラッグし、次の内容を書き込みます
date /t >> c:\netstat5311.txt
time /t >> c:\netstat5311.txt
netstat -bn >> c:\netstat5311.txt
- タスクスケジューラを開き、新しく作成されたタスクを見つけます
- タスクをダブルクリックし、設定を調整して、「プログラムまたはスクリプト」を、作成した
netstat5311.bat
バッチファイルに変更します。確認するだけです。
- 電源オプションのデフォルトの動作は「コンピューターがAC電源を使用している場合のみこのタスクを開始する」であり、バッテリー電源を使用している場合はタスクが停止します。より多くのデータをカウントするために、このチェックを削除します。
- 実行する最高の権限を選択し、[OK]をクリックして保存します。
- 次に、データを収集するのを待ちます〜
- しばらく待ってから、データをExcelのテーブルにインポートしました。テキストデータのインポート:新しいExcelファイルを作成->上の[データ]を選択-> [外部データを取得]を選択-> [セルフテキスト]を選択
- ファイルインポートウィザードの最初のステップに入り、[セパレータ]を選択して[次へ]をクリックします
- ファイルインポートウィザードの2番目のステップに入り、すべてのセパレータを選択して、[次へ]をクリックします
- ファイルインポートウィザードの3番目のステップに入り、列のデータ形式として通常を選択し、[完了]をクリックします。最終的なデータは次のとおりです。
- エクスポートされたデータから新しいグラフを作成し、意味のないフィールドを削除して、値をインポートします。
- 最後に、最終的にエクスポートされるグラフは次のとおりです。
- 上記のグラフから、最もインターネットに接続されているプログラムはGoogleのWebブラウザー「chrome.exe」、2番目は
ウィザード「dgservice.exe」を駆動するサービスプロセス、3番目はTencent Classroomの「TXEDU」であることがわかります。 「.exe」、4番目の場所はwin10システムプロセス「searchUI.exe」です。さらに、WeChat、QQ、仮想マシンなど、他のいくつかのシステムプロセスやネットワークプログラムも確認できます。 - 疑わしい悪意のあるプログラムは検出されなかったので、chrome.exeによって作成されたネットワーク接続を分析してみましょう。表を見ると、Googleのブラウザが119.3.240.79:80にアクセスしていることがわかりました。これは、実験中に情報を探していたときにアクセスしたWebページであるはずです。
2. sysmonツールを使用してシステムを監視する
- sysinternalsにsysmonツールをインストールして構成し、適切な構成ファイルを設定して、ホストの主要な問題の疑わしい動作を監視します。
- 教師がアップロードしたSysinternalsSuite.zipをCode Cloudにダウンロードして解凍します。sysmonは解凍されたフォルダにあります。
- 構成ファイルの書き込み方法は、ブログを参照して、軽量ツールSysmonを使用してシステムを監視できます。
- sysmonが配置されているディレクトリにsysmon5311.txtを作成し、そこに構成要件を入力します
<Sysmon schemaversion="3.10">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<ProcessCreate onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
</ProcessCreate>
<FileCreateTime onmatch="exclude" >
<Image condition="end with">chrome.exe</Image>
</FileCreateTime>
<NetworkConnect onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</NetworkConnect>
<NetworkConnect onmatch="include">
<DestinationPort condition="is">80</DestinationPort>
<DestinationPort condition="is">443</DestinationPort>
</NetworkConnect>
<CreateRemoteThread onmatch="include">
<TargetImage condition="end with">explorer.exe</TargetImage>
<TargetImage condition="end with">svchost.exe</TargetImage>
<TargetImage condition="end with">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
- 一般的なクロムとwpsについては、それらをinicludeに入れました。上記のコードでは、最初の行のsysmonバージョン番号は、使用されているsysmonに対応しています。ProcessCreateはプロセスの作成、NetworlConnectはネットワーク接続、CreateRemoteはリモートスレッドの作成、FileCreate Timeはプロセスの作成時間を意味します。次のonmatchを含むおよび除外するパラメーターは、それぞれ「免除検査」および「必須検査」リストを表します。
- リモートスレッドの作成では、explorer.exe、svchost.exe、winlogon.exe、powershell.exeをターゲットとするリモートスレッドが記録されます。explorer.exeは、Windowsプログラムマネージャーまたはファイルリソースマネージャーです。svchost.exeは、Microsoft Windowsオペレーティングシステムに属するシステムプログラムであり、ダイナミックリンクライブラリ(DLL)から実行されるサービスの一般的なホストプロセス名です。winlogon.exeはユーザーのログインとログアウトの管理に使用されるWindows NTユーザーログインプログラム; powershell.exeは、システム管理者専用に設計された新しいWindowsコマンドラインシェルです。シェルプログラムには、インタラクティブプロンプトとスクリプト環境が含まれており、どちらも独立して、または組み合わせて使用できます。
- 管理者権限を取得してコマンドラインを入力し、を実行し
sysmon.exe -i sysmon5311.txt
ます。管理者権限の必要性に特に注意してください(cmdを実行するときに右クリックして管理者権限を取得できます)。
- 正常に実行
- 検索してコンピューターの管理を開き、[イベントビューアー]、[サービスログ]、[Microsoft]、[Windows]、[Sysmon]、[操作]の順に選択します
- レコードの詳細を見ることができます
- kaliでバックドアソフトウェアを生成し、システムに配置する
- イベントビューアを開くと、更新後、実行時間に従って実行されたばかりのバックドアの関連メッセージが見つかります。
- kaliに戻り、を使用
webcam_snap
して写真を撮ると、イベントビューアにさらにいくつかのレコードが表示されます。Kaliでエラーが発生したため、Windowsシステムに付属しているエラー報告用のプログラムであるイベントビューアーでWerfault.exeプロセスを確認しました。また、Windowsシステムに付属しているバックグラウンドプログラムでもあるsvchost.exeプロセスも確認しました。
- 現在のディレクトリファイルを表示するために、kaliでdirと入力すると、すぐにイベントビューアにいくつかのメッセージが表示されます。SearchProtocolHost.exeプロセスがあり、Baiduビューの後に、それがデスクトップ検索エンジンのインデックス作成プロセスであることがわかります。これは、dirを入力した後にジャンプするデスクトップファイル情報も説明するだけです。conhost.exeプロセスもあり、フルネームはConsole Host Processです。これは、コマンドラインプログラムのホストプロセスです。簡単に言えば、彼はセキュリティ上の理由からMicrosoftによって導入された新しいコンソールアプリケーション処理メカニズムです。
3. VirusTotalを使用してマルウェアを分析する
- ここでは、実験3で生成した圧縮シェルバックドアプログラムhjd20175311.upxed.exeを使用してVirusTotalでスキャンを行った結果、次のようになり、ファイルの検出率が非常に高いことがわかります。SHA-1、MD5ダイジェスト値、ファイルタイプ、ファイルサイズ、およびTRiDファイルタイプの認識結果を確認できます。
- 悪意のあるコードアルゴリズムライブラリのサポートがいくつかあります
4. PEiDを使用してマルウェアを分析する
- BaiduでPEiD v0.95を検索してダウンロードし、インストールを解凍して開始し、特定のプロセスファイルをスキャンします。
- 開梱
- 圧縮シェル
- 暗号化シェル
- 暗号化と圧縮シェル
- 4つの実験の結果から、暗号化されたシェルソフトウェアを識別できないことがわかります。
5. Systracerを使用してマルウェアを分析する
- まず、教師から提供された情報からSystracerをダウンロードし、完了後にインストールします。手順は次のとおりです。同意する-> 2番目を選択する
*リスニングポート番号を設定する
- バックドアを開く前にスナップショットを撮り、図に示すように「スナップショットを撮る」をクリックして、以下の手順に従います。終了したらSnapshop#1を表示
- マルウェアが埋め込まれた後、レコードが作成され、完了後、Snapshop#2が表示されます。マルウェアが再接続された後、レコードが表示され、完了後、Snapshop#3が表示されます。対応する操作がkali端末で実行された後、レコードが選択されます。ここで、webcam_snapとlsが選択され、完了しますSnapshop#4を表示した後
- スナップショップ#1と#2を比較すると、青色でマークされているすべての場所は、前と後に変更された場所です。たとえば、前と後に追加したバックドアプログラムファイルを見ました。追加および削除された多くのファイルがあります。
- スナップショップ#2と#3を比較すると、実行中のプロセスにより多くのバックドアがあり、一部のヘルス値が埋め込まれていることがわかります。また、追加および削除されたファイルの特定の情報も確認できます。
- snapshop#3と#4を比較して、ここでlsコマンドとphotoコマンドを実行しました。これで、ホスト上の関連するカメラやその他のデバイスの起動時の変更を確認できるはずです。しかし、なぜここに登録がないのか分かりません
6.パケットキャプチャ分析にWiresharkを使用する
- Wiresharkを開き、WLANモードを選択します。パケットのキャプチャを開始すると、マシンは悪意のあるプログラムを起動してkali仮想マシンに接続します。接続が成功すると、パケットのキャプチャを停止し、フィルター条件
ip.addr == 192.168.1.102
を入力して表示します。
- パケットキャプチャ情報を見ると、TCP 3ウェイハンドシェイク接続が確立されていることがわかります。これは、接続がバウンスされたときに生成されたデータパケットです。
- 次に、
pwd``ls``webcam_snap
他のコマンドを使用して、生成されたデータパケットを分析します。使用webcam_snap
中に複数のレコードが生成されます。これは、写真を撮影するときに必要な操作と使用中のメモリが原因で発生するはずです。
3.実験要件
実験後の質問
質問1:職場のホストで悪意のあるコードが疑われる場合でも、システムの毎日の動作を監視したいだけです。監視したい操作と監視方法を設計してください。
- この実験では、この実験で使用したソフトウェアを使用して表示できます。
-
- 監視するWindowsスケジュールタスクschtasksを使用して、疑わしいプロセスの実行、ネットワーク接続、ポート接続、および分析用の統計データがあるかどうかを確認できます
-
- Sysmonを使用して、表示するオプション(ネットワーク接続、レジストリ情報など)を構成し、生成されたログを表示して分析できます。
-
- Systracerを使用して、「写真」の比較のために現在実行中のプロセスを一方向に記録できます。
-
- Wiresharkツールを使用する:データパケットをキャプチャしてデータフローを分析し、疑わしいIPアドレスとポート番号を表示する
-
- PEiDツールを使用する:プログラムがパックされているかどうかを確認し、コンテンツを分析する
質問2:プログラムまたはプロセスに問題があると判断した場合、それについてさらに情報を得るにはどのツールが必要ですか?
- VirusTotalを使用して確認したり、Systracerを使用してレジストリやファイルへの変更を分析および表示したりできます。wiresharkを使用してパケットキャプチャを分析し、接続されているIPと外部との通信を確認できます。
4.実験的思考
- これはサイバー対立技術の4回目の実験であり、それぞれの実験は非常に困難です。この実験の難しさはそれほど大きくはありませんが、主にいくつかの関連ソフトウェアのアプリケーションと関連データの分析ですが、それでも比較的時間がかかり、労働集約的です。もっと時間のかかるポイントは、大量のデータに遭遇したときにどこから始めればよいかわからないことだと思います。先ほど触れたことにはまだあまり慣れていないので、悪意のあるコードの特性がわかりません。たくさんの練習とエネルギー。しかし、その後はシステムのいくつかのプロセスについて理解が深まり、悪意のあるコードを分析することで、悪意のあるコードの動作や特性についても理解を深めることができます。さあ〜