今回は、njRAT.exeについてのレポートを書いていきます。
このマルウェアの名前にもあるRATというのは、マルウェアの種類で
標的攻撃を行って乗っ取りをするマルウェアのことですが、実際の挙動はどのようなものなのかを解析していきたいと思います。
サイト
theZooというマルウェアデータベースを利用しました。
マルウェアなのでダウンロードする際には、万全の注意を払ってください。
一切の責任は取れません。
0431311b5f024d6e66b90d59491f2563
SHA-256
fd624aa205517580e83fad7a4ce4d64863e95f62b34ac72647b1974a52822199
SHA1
e9ff4da7e3f2199cbc16d37d8935cb1b0567ac2a
↓theZoo内での様子
静的解析
ファイルシグニチャの確認
このようなマルウェアでは、ファイル拡張子が正しいとは限らないためファイルシグニチャを確認します。
ファイルシグニチャをfileコマンドで確認します。
よって、このマルウェアはwindows7で動く32ビットのファイルだと分かりました。
オンラインデータベースでの検索
ログインすると詳細な結果を見ることができます。
こちらはログインしなくても詳細な結果を見ることができます。
文字列の抽出
文字列とはファイル内に埋め込まれたASCII・Unicodeで表現可能な文字列のことです。これらを抽出すると、マルウェアの機能などに関する手がかりがつかめます
stringsコマンドは、4文字以上のASCII文字列を抽出します。
また、Flossツールを使用した難読化された文字列のデコードも行いました。
難読化とは、アンチウイルスソフトなどにウイルスと認識されないために行う手順の一つです。実際にパターンマッチング形式を用いたアンチウイルスソフトなどには見つかりにくいです。
これらの実行結果でnjRAT.exeの特徴が見られた興味深い文字列
GetThumbnailImageAbort GetHashCode GetClient GetLastInputInfo GetType GetThumbnailImage LateIndexGet GetStream LateGet GetObject GetCurrentProcess GetProcesses GetVersionInfo GetProcessById GetThumbnailImage GetThumbnailImageAbort GetValue GetSubKeyNames GetValueNames GetValueKind GetModules GetTypes GetString GetBytes GetWindowTextLengthA GetWindowTextA GetWindowThreadProcessId GetForegroundWindow GetVolumeInformationA capGetDriverDescriptionA GetAsyncKeyState GetKeyboardLayout GetKeyboardState lSystem.Resources.ResourceReader, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSet ApplicationSettingsBase SettingsBase MySettings AutoSaveSettings set_SaveMySettingsOnExit SetCompatibleTextRenderingDefault SetProjectError SetValue LateIndexSetComplex LateIndexSet SetStyle LateSet SetKeyName LateSetComplex SetDataObject SetText KMicrosoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator NtSetInformationProcess EmptyWorkingSet lSystem.Resources.ResourceReader, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSet MySettings MySettingsProperty ApplicationSettingsBase AutoSaveSettings SettingsBase KMicrosoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator ProcessStartInfo ParameterizedThreadStart ThreadStart FormStartPosition Start StartsWith RestartToolStripMenuItem ParameterizedThreadStart Start StartsWith ProcessStartInfo ThreadStart Start
FileSystem
File
FileAccess
FileInfo
FileMode
FileStream
FileSystemInfo
AssemblyFileVersionAttribute
FileDialog
OpenFileDialog
SaveFileDialog
SaveFile
FileLen
GetFiles
NewEmptyFileToolStripMenuItem
FileManagerToolStripMenuItem1
RunFileToolStripMenuItem
KMicrosoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator
Computer
ServerComputer
ComputerInfo
MyComputer
get_Computer
m_ComputerObjectProvider
get_LocalTime
get_LocalMachine
get_LocalTime
Sleep
cmd.exe /c ping 127.0.0.1 & del "
EnKSaR.HaCKeR.exe
User32.dll
mscoree.dll
avicap32.dll //画像なとを取り扱う
Twitter : https://twitter.com/njq8
4System.Web.Services.Protocols.SoapHttpClientProtocol
4System.Web.Services.Protocols.SoapHttpClientProtocol
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
上記コマンドの全ての実行結果がみたい場合
このマルウェアは他のマルウェアと同じようにスタートアップのパスを自身にも通して、シャットダウンされたとしても起動したときに自動的に実行されるようにしています。(2段目のAPI群)
また、Sleepもありデバッガを判断して解析を防ぐか、削除しようとしているときにコンピュータをスリープして削除されるのを防ぐかのどちらかを行うと考えられます。
GetThumbnailImageという見慣れない関数(自分が)がありますが、これはサムネイルを取得するAPI関数だそうです。Thumnailでサムネイルと読むことを知りました。
GetAsyncKeyState GetKeyboardLayout
GetKeyboardState
GetObjectは画像に使われるので、GUIがあるマルウェアということだと考えられます。
FileAccess FileInfo FileMode FileStream FileSystemInfo
は、ファイルのプロパティやファイル情報を集めています。
PublicKeyTokenという文字が見えますが、これは公開鍵暗号方式でどこかと通信をしていると考えられます。
ServerComputer ComputerInfo MyComputer
で、njRat.exeが実行されたコンピュータの名前を取得しています。
get_LocalTime get_LocalMachine get_LocalTime
で、どこの地域でこのマルウェアが実行されたかを調べています。
cmd.exe /c ping 127.0.0.1 & del "
とは、「cmd.exeで127.0.0.1にpingを送ってその履歴を削除して」ということだと思います。cmd.exeの/cオプションは、cmd.exeで実行するコマンドを指しています。
127.0.0.1はローカルネットワークで自分のことを指すループバックアドレスです。
このコマンドを実行することでマルウェアが実行している機器が死んでいるか生きているかを調べているのだと思います。
EnKSaR.HaCKeR.exe
という実行ファイルがあるのでどんな実行ファイルかを調べると、
ハッシュ値が同じだったのでこれはnjRAT.exeのオリジナルネームのようで同じ実行ファイルと考えられます。
Twitter : https://twitter.com/njq8
また、Twitterもやっていました。
上のリンクのアカウントは削除されてしまっていましたが、
アカウントを変えていたようで、このnjRAT.exeに対するコメントもあったので
このマルウェアの作者・関係者だと考えられます。
動的解析
inetsimを使って擬似的な応答を返しながら、wiresharkで監視していきたいと思います。
監視したかったのですが、実際にnjRAT.exeをダブルクリックすると
こんなエラーメッセージ画面がでてきました。
上の TwitterでもnjRAT.exeが動かないと言及している方がいたので
ええと思いながら実行されるのを願って、virtualboxを立ち上げてダブルクリック
したのですが。。
マルウェアが正常に動くのを願うなんておかしい話ですが。
ともかく、このエラーメッセージは本当にWindowsOSからのメッセージでdbgでnjRAT.exeを調べても全く動いていませんでした。
どこのサーバーにつながってどんな挙動をするのか静的解析をしていて楽しみにしてたので本当に残念です。
メモリフォレンジック
njRAT.exeが正常に動かないのでメモリフォレンジックもできません。。。
ほんとに残念です。
このnjRAT.exeについてまとめてみると、
・njRAT.exeは、ウイルスがする挙動をする
「RAT」かもしれない。キーロガーに見られる特徴も見られたのでキーロガーの役割もあるのかもしれないです。曖昧になってしまって本当に申し訳ないです。
次からは正常に動くマルウェアのみ解析していきたいと思います。
しかし、RATのみの働きだけでなくキーロガーの特徴も見られたのはとても興味深かったです。