Yami

メモとか、やったこととか。

SANS Sift Workstationのrip.plが実行できない問題の対応

フォレンジック解析を行う際は、必要なツールが最初から導入されており、かつ無料で利用できる「SIFT Workstation | SANS Institute」をよく利用しています。
ただ本日(2022/02/27)時点で公開されているOVAタイプのバージョンのものにインストールされているRegripper(rip.plコマンド)は、エラーが発生し正常に実行できません。
本ポストはその解決策のメモです。

導入したSift Workstationのバージョンは以下の通りです。

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

rip.plを実行するとエラーが発生

解析するためのプラグインレジストリファイルを指定し実行すると、以下のようなエラーが発生します。

$ rip.pl -p compname -r SYSTEM 
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 79.
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 79.
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 89.
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 115.
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 115.
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 126.
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 146.
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 185.
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 236.
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 236.
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 256.
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 280.
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 305.
Global symbol "$plugindir" requires explicit package name (did you forget to declare "my $plugindir"?) at /usr/local/bin/rip.pl line 408.
Execution of /usr/local/bin/rip.pl aborted due to compilation errors.

どうやら「$plugindir」という変数が定義されていない模様です。

解決策

スクリプトのバックアップを取ったうえで、以下のように修正します。

$ sudo cp /usr/share/regripper/rip.pl /usr/share/regripper/rip.pl.old

$ sudo vi /usr/share/regripper/rip.pl

$ diff -u /usr/share/regripper/rip.pl.old /usr/share/regripper/rip.pl
--- /usr/share/regripper/rip.pl.old 2022-02-27 15:11:57.426179430 +0000
+++ /usr/share/regripper/rip.pl 2022-02-27 15:16:45.562746556 +0000
@@ -63,6 +63,9 @@
 # Retrieves absolute path of parent directory 
 my $scriptdir = File::Basename::dirname($scriptpath);
 
+# Add: Define the variable plugindir
+my $plugindir = File::Spec->catfile($scriptdir, "plugins");
+
 my $VERSION = "3\.0";
 my @alerts = ();

具体的には、66行目に以下を追加します。

my $plugindir = File::Spec->catfile($scriptdir, "plugins");

f:id:jrick:20220228003749p:plain

動作確認

再度実行してみます。

$ rip.pl -p compname -r SYSTEM 
Launching compname v.20090727
compname v.20090727
(System) Gets ComputerName and Hostname values from System hive

ComputerName    = DESKTOP-********
TCP/IP Hostname = DESKTOP-********

正常に実行できるようになりました。

VirusTotal(フル版・軽量版)でのURLサーチの動作の違い

初ポストはVirusTotalネタです。

VirusTotalにはフル版(https://www.virustotal.com/)と軽量版(https://www.virustotal.com/old-browsers/)が存在しますが、それぞれで機能の違いがあることを最近知ったのでその紹介です。

続きを読む