
Incarceroは、マルウェア解析に特化したツールとセキュリティ設定があらかじめ構成された仮想マシン (VM) を、ユーザーの操作なしで作成するツールです。
マルウェア分析は、爆弾の解体と似ています。目的は、害を及ぼすために作られたプログラムを分解し理解することですが、多くの場合、分析をより複難にするために難読化(例:パック)されています。
Incarcero は、ユーザーの操作を一切必要とせず、マルウェア分析に特化したセキュリティ設定とツールを事前構成した仮想マシン(VM)を作成するツールです。
さらに、このリポジトリにはおそらく最大のマルウェアソースコードコレクションと、有名なオンラインデータベースからマルウェアサンプルをダウンロードできるモジュールも含まれています。
注意: MD5値やsmbXXX.tmpのような汎用的な名前のバイナリは、アップロード時点でVirusTotalによってマルウェアとして検出されていませんが、それがマルウェアサンプルでないとは限りません。このリポジトリ内のサンプルを自由にセットアップ、分析、リバースエンジニアリングしてください。実際に行った場合、調査結果をお知らせください。
dnf install ruby-devel gcc-c++ zlib-devel
vagrant plugin install winrm winrm-fs
apt install vagrant git python3-pip
apt install git python3-pip
pacman -Sy vagrant packer python-pip git
sudo pip3 install git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
注: Windows 10 以降、Hyper-V はオペレーティングシステムの下で常に実行されています。VT-X は1つのハイパーバイザーによって排他的に動作する必要があるため、VirtualBox (および incarcero) が失敗します。Hyper-V を無効にして VirtualBox を実行できるようにするには、管理者コマンドプロンプトで次のコマンドを発行して再起動します: bcdedit /set hypervisorlaunchtype off。Virtualbox バージョン6以降では、フォールバック実行コアとして Hyper-V を使用することがサポートされています (変更ログ)
以下の手順では、https://chocolatey.org/[Chocolatey] がインストールされていることを前提としています。そうでない場合は、手動インストール手順 に従ってください。
依存関係をインストール:
choco install python vagrant packer git virtualbox
コンソールをリフレッシュ:
refreshenv
incarcero をインストール:
pip3 install setuptools
pip3 install -U git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
C:\Windows\System32\)に配置しますpip3 install setuptools
pip3 install -U git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
通常のインストール後に次のコマンドを実行します:
vagrant plugin install vagrant-aws
注: AWS 機能は現時点では Linux でのみテストされており、EC2 は Windows 10 の32ビットデスクトップ版をサポートしていません。
これにより、Vagrant にインポートされるベースボックスが作成されます。その後、サンプル分析ごとに同じボックスを何度でも再利用できます。
実行:
incarcero build <template>
サポートされているすべてのテンプレートを一覧表示するには:
incarcero list
これにより、マルウェア調査の準備が整った Vagrant box がビルドされます。後で Vagrantfile に含めることができます。
例:
incarcero build win10_x64_analyst
構成セクション には、incarcero で構成可能な項目の詳細が含まれています。
incarcero spin win10_x64_analyst <name>
これにより、マルウェア分析用に準備された Vagrantfile が作成されます。任意のディレクトリに移動して、次のコマンドを実行します:
vagrant up
デフォルトでは、ローカルディレクトリは VM のデスクトップに共有されます。これは Vagrantfile の該当部分をコメントアウトすることで変更できます。
例:
incarcero spin win7_x86_analyst 20160519.cryptolocker.xyz
incarcero は、Amazon Web Services 上の VM をアップロードして操作できます。これを行うには、次の手順に従います:
. AMI (Amazon Machine Image) に変換する前に VM をアップロードするために、AWS に S3 バケットが必要です。バケットがない場合は、 今すぐ作成 してください。
. また、インスタンスには、WinRM のインバウンド接続を許可するルール(タイプ: WinRM-HTTP、プロトコル: TCP、ポート範囲: 5985、ソース: ホストのパブリック IP)が少なくとも1つ含まれたセキュリティグループ が必要です。
. 次に、vmimport サービスロールを構成する必要があります。
このガイド の VM Import Service Role セクションに従ってください。
これらの手順は、iam:CreateRole および iam:PutRolePolicy 権限を持つアカウントで実行する必要があります。
. デフォルトの構成 を使用する場合は、ハイパーバイザーを aws に変更し、関連する必須オプションを入力します。それ以外の場合は、すべての AWS 関連オプションをカスタム構成に追加してください。
. 最後に、Box の作成 および 分析インスタンスごと のセクションで説明したのと同じ手順に従って、インスタンスを起動できます。
注: AMI のインポートには非常に長い時間がかかる場合があります(約1時間)。ただし、これ を行うことでタスクのステータスを確認できます。現時点では、テンプレートごとに1つの AMI のみをビルドできます。
pip を使用して awscli をインストールします:
pip install awscli
awscli を構成します:
aws configure
次に実行:
aws ec2 describe-import-image-tasks
RDP を使用してクラウド上のインスタンスに接続するには、Vagrantfile と同じ場所で次のコマンドを実行します:
vagrant rdp -- /cert-ignore
これを機能させるには、インスタンスに RDP インバウンド接続を許可するセキュリティグループが必要です(タイプ: RDP、プロトコル: TCP、ポート範囲: 3389、ソース: ホストのパブリック IP)。
注: rsync がまだ実装されていないため、次のエラーは無視しても問題ありません: No host IP was given to the Vagrant core NFS helper. This is an internal error that should be reported as a bug.
クラウド上のインスタンスを停止するには、Vagrantfile と同じ場所で次のコマンドを実行します:
vagrant halt
incarcero の構成は、通常のオペレーティングシステムの規則に従うディレクトリにあります:
~/.config/incarcero/~/Library/Application Support/incarcero/C:\Users\<username>\AppData\Local\incarcero\incarcero\ファイル名は config.js で、初回実行時にサンプルファイルからコピーされます。
サンプル構成 にはドキュメントが付いています。
incarcero はデフォルトで virtualbox をバックエンドとして使用しますが、バージョン 0.3.0 以降は ESXi / vSphere のサポートが追加されました。 ESXi / vSphere サポートに必要な手順に関するメモ を参照してください。各環境は少しずつ異なるため、問題が発生した場合は遠慮なく issue を開くか、プルリクエストでドキュメントを改善してください。
構成とは別に保存される プロファイル の概念を検討しています。プロファイルを使用して、ファイルの作成、レジストリの変更、追加パッケージのインストールを行うことができます。設定例については profile-example.js を参照してください。この新しい機能は実験的なものであり、実験を進めるにつれて変更される可能性があります。
現在、incarcero はセキュリティグループの自動作成をサポートしていないため、AWS コンソールを使用して自分で作成する必要があります。ただし、ライブラリ Boto3 を使用することで、これを実装する方法があるはずです。
このリポジトリは研究目的のみであり、このコードの使用はあなたの責任です。
ここで利用可能なソースコードの使用方法について、私は一切の責任を負いません。このリポジトリのファイルを使用することにより、自己責任で使用することに同意したものとみなされます。繰り返しますが、ここにあるすべてのファイルは教育および研究目的のみです。
私はここにあるコードの作者ではありません。このリポジトリには、オンラインで流出した(および他の複数のソースで見つかった)マルウェアのソースコードサンプルが含まれています。コードを分析したい人のプロセスを簡素化するために GitHub にアップロードしました。
このリポジトリに含まれる資料に関するいかなる行動や活動も、すべてあなたの責任です。このリポジトリの情報を誤用すると、該当者に対して刑事告訴が行われる可能性があります。このリポジトリのコードを法律違反に使用した個人に対して刑事告訴が行われた場合、私は一切の責任を負いません。
このリポジトリはハッキング関連の活動を促進するものではありません。このリポジトリのすべての情報は教育目的のみです。
このプロジェクトは malboxes の助けを借りて活性化されました。