1基礎知識
1.1悪意のあるコードの概念と分類
- 定義:
- マルウェアとも呼ばれ、ユーザーの明確なプロンプトなしに、またはユーザーの許可なしに、ユーザーのコンピューターまたは他の端末で実行されるソフトウェアを指し、ユーザーの正当な権利および利益を侵害します。
- 意図的にコンパイルまたはセットアップされ、ネットワークまたはシステムに脅威または潜在的な脅威をもたらすコンピューターコードを指します。
- 特徴:
- 悪意のある目的
- コンピュータプログラム
- 実行による効果
- カテゴリー:
- コンピュータウイルス
- ワーム
- バックドア
- トロイの木馬
- ルートキット
- ...など
1.2悪意のあるコードの分析方法
- 静的分析
- 動的分析
1.3練習の目標
- システムの動作状態を監視して、不審なプログラムが実行されていないかどうかを確認します。
- マルウェアを分析するには、Exp2またはExp3で生成されたバックドアソフトウェアを分析します。分析ツールは、ネイティブ命令またはsysinternals、systracerスイートをできるだけ使用します。
- ホストに将来の作業で問題があると思われる場合、このアイデアを実験で使用し、まずシステム全体を監視して不審なオブジェクトが検出されるかどうかを確認し、次に不審なオブジェクトをさらに分析して特定の動作と性質を確認できます。
2練習の内容と手順
2.1システム稼働監視
2.1.1 Windowsスケジュールタスクschtasks
要件:スケジュールされたタスクなどを使用して、コンピューター上にあるプログラム、および接続されている外部IPの場所を毎分記録します。しばらく実行してファイルを分析し、分析結果を要約します。目標は、ネットワークに接続されたすべてのプログラム、それらが接続されている場所、およびそれらが行ったことを見つけることです(パケットをキャプチャしない場合にのみ推測できます)そうすることは適切だと思いますか?さらに分析する場合は、対象となるパケットをキャプチャできます。
手順1:次のコマンドを入力し、5分ごとにネットワークに接続されているプログラムを記録します。このコマンドが完了すると、5分ごとにどのプログラムがネットワークを使用しているかが監視され、結果がnetstatlog.txtファイルに記録されます。
schtasks /create /TN 20175304netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
以下は、いくつかのパラメーターの意味です。
- TN:タスク名、この場合は20175304netstat
- SC:SCheduleタイプ、この例ではMINUTE、分単位の時間
- MO: MOdifier
- TR:タスクの実行、実行されるコマンドはnetstat -bn、bは実行可能ファイル名を表示することを意味し、nはIPおよびポート番号を表示することを意味します
>
:結果をCドライブのnetstatlog.txtファイルに出力します
Step2:記録された日時が表示できないため、判断に不便かもしれませんが、日時を表示したい場合は、バットバッチファイルで実現できます。
①Cドライブの下にファイルc:\ netstatlog.batを作成します。内容は次のとおりです。
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
②コントロールパネル->管理ツール->タスクスケジューラを開き、タスクを見つけます。20175304netstat
③タスクを選択し、操作を見つけて、全項目の属性オプションをクリック
④詳細、オリジナルのボックスをダブルクリックし、[アクション]タブを見つけるcmd
変更しますc:\netstatlog.bat
。
thisこの時点c:\netstatlog.txt
でファイルを開くと、時間情報を確認できます。
ステップ3: Excelにデータをインポートする
①Excelを開き、数据
タブをクリックし、外部データを取得する方法を自文本
選択し、レコード接続ステータスを選択しますnetstatlog.txt
②セパレーターを選択
③すべてのセパレータが選択されています
④列のデータ形式はデフォルトで許容されています。[完了]をクリックすると、データが正常にインポートされます。
the 插入
タブを見つけてクリック数据透视图
し、ピボットグラフを生成します。
Step4:統計データを分析する
- 一般的なアプリケーションソフトウェア(上位5つ):
- [vmware.exe]:vmware仮想マシン
- [QQ.exe]:QQ
- [SearchUI.exe]:小娜
- [QQPCTray.exe]:Tencentコンピューターハウスキーパー
- [Wechat.exe]:WeChat
- 残りの信頼できるプロセス:
- [TsService.exe]:Tencentブラウザーのバックグラウンドサービス項目
- [DownloadSDKServer.exe]:Thunderダウンロードソフトウェアの重要なプロセス
- [DingTalk.exe]:DingTalk
- [SGTool.exe]:Sogou入力方式加速スタートアッププログラム
- [360wpsrv.exe]:360壁紙の実行ファイル
- [AlibabaProtect.exe]:Alibaba Anti-Spyモジュール
- [EXCEL.EXE]:Microsoft Excelのメインプログラム
- [ncat.exe]:ファイル転送ツール
- [QQPCRtp.exe]:Tencentコンピュータハウスキーパープロセス、プロセスはqqコンピュータハウスキーパーにリアルタイム保護サービスを提供することです
- 不審なプロセス:
- [svchost.exe]:Microsoft Windowsオペレーティングシステムのシステムファイル
2.1.2 sysmon
- 要件: sysinternalsにsysmonツールをインストールして構成し、適切な構成ファイルを設定して、ホストの主要なものの疑わしい動作を監視します。実際のログの分析は、Linuxテキスト処理命令などの以前に学習した知識と組み合わせて、独自の創造性を発揮する必要もあります。分析の難しさは、大量のデータから法律を分析し、問題を見つけることにあります。これはすべて、結果のフィルタリング、統計、分類などの処理に依存します。これは、何を使用するかによって異なります。
- リファレンス:schtaskおよびsysmonアプリケーションガイド
ステップ1:では公式サイトツールSYSMONをダウンロードします
ステップ2:構成ファイルを作成し、ファイルsysmon.xml
に次の指示を書き込みます。
<Sysmon schemaversion="4.12">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<DriverLoad onmatch="exclude">
<Signature condition="contains">microsoft</Signature>
<Signature condition="contains">windows</Signature>
</DriverLoad>
<NetworkConnect onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
<Image condition="end with">iexplorer.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</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>
Sysmon.exe -i sysmon.xml
手順3 :管理者としてコマンドラインを開き、指示に従ってsysmon をインストールします。コマンドを入力すると、ボックスがポップアップし、クリックAgree
してインストールします。
インストールは成功し、バージョン番号は4.23です。
手順4:構成ファイルを変更する
- 更新されたバージョン番号は4.23です。
- ポート5304、443、80に監視サービスを追加する
<Sysmon schemaversion="4.23">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<DriverLoad onmatch="exclude">
<Signature condition="contains">microsoft</Signature>
<Signature condition="contains">windows</Signature>
</DriverLoad>
<NetworkConnect onmatch="exclude">
<Image condition="end with">iexplorer.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</NetworkConnect>
<NetworkConnect onmatch="include">
<DestinationPort condition="is">5304</DestinationPort>
<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>
ステップ5:構成ファイルは変更後に更新する必要があります。手順は次のとおりです。sysmon.exe -c sysmon.xml
ステップ6:ログを表示します。
①スタートメニューの検索ボックスに入力してevent
、イベントビューアを開きます。
②で应用程序和服务日志
次のビューMicrosoft->Windows->Sysmon->Operational
。
③実験2で生成したバックドアファイルを実行し、kali仮想マシンでWindowsコマンドラインを取得します。
④このとき、バックドアファイルのログを閲覧できます。
- プロセス作成ログ:
図から次の情報を取得できます。
画像:G:\ ncat \ 20175304_backdoor.exe
説明:ApacheBenchコマンドラインユーティリティ
製品:Apache HTTPサーバー
- 再接続後に生成されたネットワーク接続ログ:
次の情報を取得できます。
プログラム:G:\ ncat \ 20175304_backdoor.exe
プロトコル:tcp
ソースIPアドレス:192.168.0.107(Windows IP)
ターゲットIPアドレス:127.0.0.1(KaliのIP)
宛先ポート:5304
2.2マルウェア分析
要件: ①接続の開始、②ターゲットマシンへのインストール、③その他の任意の操作(プロセスの移行や画面キャプチャなど、重要なのは興味があること)のときにソフトウェアを分析する バックドアソフトウェア
(1)どのレジストリエントリが読み取られ、追加され、削除されるか
(2)読み込み、追加、削除されたファイル
(3)接続されている外部IPと送信されるデータ(キャプチャ分析)
この実験は、「特定のソフトウェアの使い方」ではなく、「分析」に焦点を当てています。チームリーダーとプロジェクトの担当者はもう少し詳細を必要とし、他の人は分析に集中できます。
2.2.1静的分析
主に次の分析方法があります。
- ファイルスキャン(VirusTotal、VirusScanツールなど)
- ファイル形式の認識(peid、ファイル、FileAnalyzerツールなど)
- 文字列抽出(文字列ツールなど)
- 分解(GDB、IDAPro、VCツールなど)
- 逆コンパイル(REC、DCC、JADツールなど)
- 論理構造分析(Ollydbg、IDAProツールなど)
- パックとアンパック(UPX、VMUnPackerツールなど)
主に以下の分析方法と分析ツールを選択します
(1)ファイルスキャン(VirusTotal):検出率54/72
以下の図の詳細情報から、以下の情報を確認できます。
-
ファイルは、ApacheBenchコマンドラインユーティリティです。
-
Apache License Version 2.0(以下「ライセンス」といいます)に基づいてライセンスされたノートです。ライセンスが満たされない限り、このファイルを使用することはできません。ライセンスのコピーはhttp://www.apache.org/licenses/License-2.0で入手できます。適用法または書面による同意がない限り、ライセンスに基づいて配布されるソフトウェアは、明示的に「現状のまま」配布されます。または黙示の保証または条件。ライセンスに基づく許可と制限を制御する特定の言語については、ライセンスを参照してください。
(2)ファイル形式認識(peidツール)
PEiD(PE Identifier)はよく知られているシェルチェックツールであり、その強力な機能はほとんどすべてのシェルを検出でき、その数は470の種類とPEファイルの署名を超えています。
- 解凍されたバックドアファイルをスキャンします。PEiDの主な機能はシェルをチェックすることなので、このバックドアファイルはシェルによって検出されていません。
(3)逆コンパイルと逆アセンブル(PE Explorerツール)
PE Explorerは強力なビジュアルDelphi、C ++、VBプログラムパーサーであり、32ビットの実行可能プログラムをすばやく逆コンパイルしてリソースを変更できます。このソフトウェアはプラグインをサポートしています。プラグインを追加することでソフトウェアの機能を拡張できます。元の会社は、UPXアンパックプラグイン、スキャナー、逆アセンブラーをツールにバンドルしており、非常に使いやすくなっています。
- ファイルヘッダー情報:役に立たないようです
-
呼び出されたDDLファイル:PEエクスプローラーで表示されたDDLファイルは、peidで今見たものよりも詳細であり、DDLファイルによって呼び出された関数を示します
-
バージョン情報:ここにある内容の多くは、以前のログファイルやVirusTotalのWebサイトで実際に確認されています。
- データディレクトリ、セクションヘッダー、デバッグ情報などは分析にとってほとんど意味がないため、スクリーンショットはありません
2.2.2動的分析
主に次の方法があります。
- スナップショットの比較(SysTracer、Filesnap、Regsnapツールなど)
- パケットキャプチャ分析(WireSharkツールなど)
- 動作監視(Filemon、Regmon、ProcessExplorerツールなど)
- サンドボックス(NormanSandbox、CWSandboxツールなど)
- 動的トレースのデバッグ(Ollydbg、IDAProツールなど)
(1)パケットキャプチャ分析(WireSharkツール)
- 入力
dir
後にキャプチャされたパケット
送信元IP、宛先IP、送信元ポート、宛先ポート、およびデータパケットから送信されたデータを確認できます。
- 入力
mkdir test
後にキャプチャされたパケット
3質問の答え
3.1職場のホストで悪意のあるコードが疑われるが、推測では、システムが毎日何をしているかを監視したい場合。監視したい操作と監視方法を設計してください。
Windowsでスケジュールされたタスクschtasksを使用して毎分記録し、結果をEXCELにインポートして、どのプロセスがより多くを占めているか、およびそれが疑わしいプロセスであるかどうかを確認します。より疑わしいものを選択した後、スコープを絞り込んだ後でこれらの疑わしいプロセスを分析できます。静的分析:VirusTotalとVirusScanはスキャンに便利です;動的分析:SysTracerツールはスナップショットを作成し、さまざまなスナップショットを比較および分析できます。
3.2プログラムまたはプロセスに問題があると判断された場合、それについてさらに情報を得るにはどのツールが必要ですか?
- sysmonを使用して、プロセスが作成したログファイルを表示する
- Wiresharkを使用してパケットをキャプチャします。プロセスによって送信されるデータを確認できます
4実験経験
この実験は非常に機動性があり、以前の実験と組み合わせて完了する必要があります。以前のファイルは長い間役に立たなかったため、一部が削除されており、再度完了する必要があります。そして、この実験で使用されたこれらのソフトウェアの特定の操作はあまりよく理解されていないため、長い時間がかかりました。ただし、この実験を通じて、悪意のあるコードの分析、悪意のあるコードの解決方法、および悪意のあるコードの防止方法についてある程度理解しています。