Capture The Frog

かえるぴょこぴょこw

MENU

njRAT.exeの解析

今回は、njRAT.exeについてのレポートを書いていきます。

f:id:QWERTYtan:20210818122250p:plain

このマルウェアの名前にもあるRATというのは、マルウェアの種類で

標的攻撃を行って乗っ取りをするマルウェアのことですが、実際の挙動はどのようなものなのかを解析していきたいと思います。


サイト

github.com

theZooというマルウェアデータベースを利用しました。
マルウェアなのでダウンロードする際には、万全の注意を払ってください。
一切の責任は取れません。

 

MD5

0431311b5f024d6e66b90d59491f2563
SHA-256

fd624aa205517580e83fad7a4ce4d64863e95f62b34ac72647b1974a52822199
SHA1

e9ff4da7e3f2199cbc16d37d8935cb1b0567ac2a

 

↓theZoo内での様子

f:id:QWERTYtan:20210818095254p:plain

 

静的解析

ファイルシグニチャの確認

このようなマルウェアでは、ファイル拡張子が正しいとは限らないためファイルシグニチャを確認します。
ファイルシグニチャをfileコマンドで確認します。

f:id:QWERTYtan:20210818100908p:plain

よって、このマルウェアwindows7で動く32ビットのファイルだと分かりました。

 

オンラインデータベースでの検索

www.virustotal.com


ログインすると詳細な結果を見ることができます。

 

https://www.hybrid-analysis.com/sample/fd624aa205517580e83fad7a4ce4d64863e95f62b34ac72647b1974a52822199/580c670faac2ed71097ab7af


こちらはログインしなくても詳細な結果を見ることができます。

 

文字列の抽出

文字列とはファイル内に埋め込まれた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">


上記コマンドの全ての実行結果がみたい場合

github.com

 

 

このマルウェアは他のマルウェアと同じようにスタートアップのパスを自身にも通して、シャットダウンされたとしても起動したときに自動的に実行されるようにしています。(2段目のAPI群)

 

また、Sleepもありデバッガを判断して解析を防ぐか、削除しようとしているときにコンピュータをスリープして削除されるのを防ぐかのどちらかを行うと考えられます。

 

GetThumbnailImageという見慣れない関数(自分が)がありますが、これはサムネイルを取得するAPI関数だそうです。Thumnailでサムネイルと読むことを知りました。

 

GetAsyncKeyState GetKeyboardLayout GetKeyboardState

は、典型的なキーロガーに使われるAPIです。

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.1pingを送ってその履歴を削除して」ということだと思います。cmd.exeの/cオプションは、cmd.exeで実行するコマンドを指しています。

127.0.0.1はローカルネットワークで自分のことを指すループバックアドレスです。

このコマンドを実行することでマルウェアが実行している機器が死んでいるか生きているかを調べているのだと思います。

 

EnKSaR.HaCKeR.exe

という実行ファイルがあるのでどんな実行ファイルかを調べると、

ハッシュ値が同じだったのでこれはnjRAT.exeのオリジナルネームのようで同じ実行ファイルと考えられます。

 

Twitter : https://twitter.com/njq8

また、Twitterもやっていました。

上のリンクのアカウントは削除されてしまっていましたが、

twitter.com

アカウントを変えていたようで、このnjRAT.exeに対するコメントもあったので

このマルウェアの作者・関係者だと考えられます。

f:id:QWERTYtan:20210818115846p:plainf:id:QWERTYtan:20210818115716p:plain

 

 

 

 

動的解析

inetsimを使って擬似的な応答を返しながら、wiresharkで監視していきたいと思います。

監視したかったのですが、実際にnjRAT.exeをダブルクリックすると

f:id:QWERTYtan:20210818120832p:plain

こんなエラーメッセージ画面がでてきました。

上の TwitterでもnjRAT.exeが動かないと言及している方がいたので

ええと思いながら実行されるのを願って、virtualboxを立ち上げてダブルクリック

したのですが。。

マルウェアが正常に動くのを願うなんておかしい話ですが。

ともかく、このエラーメッセージは本当にWindowsOSからのメッセージでdbgでnjRAT.exeを調べても全く動いていませんでした。

どこのサーバーにつながってどんな挙動をするのか静的解析をしていて楽しみにしてたので本当に残念です。

メモリフォレンジック

 

njRAT.exeが正常に動かないのでメモリフォレンジックもできません。。。

ほんとに残念です。

 

このnjRAT.exeについてまとめてみると、

・njRAT.exeは、ウイルスがする挙動をする

 「RAT」かもしれない。キーロガーに見られる特徴も見られたのでキーロガーの役割もあるのかもしれないです。曖昧になってしまって本当に申し訳ないです。

次からは正常に動くマルウェアのみ解析していきたいと思います。

しかし、RATのみの働きだけでなくキーロガーの特徴も見られたのはとても興味深かったです。