@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

9002 RAT と LNK

9002 RAT についての記事、persistence の仕組みとしては LNK ファイルを利用。

www.proofpoint.com

スタートアップに UpdateCheck.lnk を作成、中身としては Powrshell を利用する仕組みとなっているようです。

プロパティを確認

f:id:hideakii:20170827080318p:plain

バイナリを確認

f:id:hideakii:20170827072136p:plain

スタートアップに LNK ファイルが作成された状態で、Autoruns を利用して結果を確認してみます。(Windows 10環境上でAutorunsを実行)

f:id:hideakii:20170827071952p:plain

LNKファイルの登録は確認できますが、参照されている Powershell の部分を確認できない状況です。

GUI 版では黄色ハイライトとなりファイルが無い状態となりますが、コマンドライン版での実行結果でも同じく参照先ファイルが無い結果となります。

<2017/9/3 Update>

LECmd Version 0.9.7.0 を利用して LNK ファイルをパースする事で、スタートアップに登録される UpdateCheck.lnk の内容を確認できます。

パース結果からは、文字列として PowerShell や「-NoProfile -WindowStyle Hidden -NonInteractive -EncodedCommand」、それに続くデータ(エンコード部分)を発見できます。

LECmd version 0.9.7.0

Author: Eric Zimmerman (saericzimmerman@gmail.com)
https://github.com/EricZimmerman/LECmd

Command line: -f c:\temp\UpdateCheck.lnk

Processing 'c:\temp\UpdateCheck.lnk'

Source file: c:\temp\UpdateCheck.lnk
Source created: 2017-09-02 13:52:43
Source modified: 2017-09-02 13:52:02
Source accessed: 2017-09-02 13:52:43

--- Header ---
Target created: 2009-07-13 23:49:07
Target modified: 2009-07-14 01:39:20
Target accessed: 2009-07-13 23:49:07

File size: 473,600
Flags: HasTargetIdList, HasLinkInfo, HasArguments, HasIconLocation, IsUnicode, HasExpString, EnableTargetMetadata
File attributes: FileAttributeArchive
Icon index: 46
Show window: SwShowminnoactive (Display the window as minimized without activating it.)

Arguments:

snip(many space!?)

-NoProfile -WindowStyle Hidden -NonInteractive -EncodedCommand ZgB1AG4AYwB0AGkAbwBuACAASQAtAFMAewAgAFAAYQByAGEAbQAoAFsASQBuAHQAXQAkAFAAcgBvAGMASQBkACwAIABbAEIAeQB0AGU

snip

AGQAZABlAG4AIAAtAFAAYQBzAHMAdABoAHIAdQA7ACAASQAtAFMAIAAtAFAAcgBvAGMASQBkACAAJABQAHIAbwBjAC4ASQBkACAALQBTAEMAIAAkAFMAQwA7AA==
Icon Location: %SystemRoot%\System32\shell32.dll

--- Link information ---
Flags: VolumeIdAndLocalBasePath

>>Volume information
Drive type: Fixed storage media (Hard drive)
Serial number: CC9CE694
Label: (No label)
Local path: C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

--- Target ID information (Format: Type ==> Value) ---

Absolute path: My Computer\C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

-Root folder: GUID ==> My Computer

-Drive letter ==> C:

-Directory ==> WINDOWS
Short name: WINDOWS
Modified: 2007-12-06 05:29:12
Extension block count: 1

--------- Block 0 (Beef0004) ---------
Long name: WINDOWS
Created: 2006-05-22 17:08:04
Last access: 2007-12-06 05:29:12

-Directory ==> system32
Short name: system32
Modified: 2007-12-04 00:44:06
Extension block count: 1

--------- Block 0 (Beef0004) ---------
Long name: system32
Created: 2006-05-22 17:08:04
Last access: 2007-12-04 00:44:06

-Directory ==> WindowsPowerShell
Short name: WINDOW~1
Modified: 2007-09-21 00:56:32
Extension block count: 1

--------- Block 0 (Beef0004) ---------
Long name: WindowsPowerShell
Created: 2007-09-21 00:56:32
Last access: 2007-09-21 00:56:32

-Directory ==> v1.0
Short name: v1.0
Modified: 2007-12-03 06:20:46
Extension block count: 1

--------- Block 0 (Beef0004) ---------
Long name: v1.0
Created: 2007-09-21 00:56:32
Last access: 2007-12-03 06:20:46

-File ==> powershell.exe
Short name: powershell.exe
Modified: 2009-07-14 01:39:22
Extension block count: 1

--------- Block 0 (Beef0004) ---------
Long name: powershell.exe
Created: 2009-07-13 23:49:08
Last access: 2009-07-13 23:49:08
MFT entry/sequence #: 46076/1 (0xB3FC/0x1)

--- End Target ID information ---

--- Extra blocks information ---

>> Special folder data block
Special Folder ID: 37

>> Known folder data block
Known folder GUID: 1ac14e77-02e7-4e5d-b744-2eb1ae5198b7 ==> System32

>> Property store data block (Format: GUID\ID Description ==> Value)
b725f130-47ef-101a-a5f1-02608c9eebac\10 Item Name Display ==> powershell.exe
b725f130-47ef-101a-a5f1-02608c9eebac\4 Item Type Text ==> ????
b725f130-47ef-101a-a5f1-02608c9eebac\15 Date Created ==> 07/13/2009 23:49:08
b725f130-47ef-101a-a5f1-02608c9eebac\12 Size ==> 473600
b725f130-47ef-101a-a5f1-02608c9eebac\14 Date Modified ==> 07/14/2009 01:39:22
46588ae2-4cbc-4338-bbfc-139326986dce\4 SID ==> S-1-5-21-3345294922-2424827061-887656146-1000
dabd30ed-0043-4789-a7f8-d013a4736622\100 Folder Path (Narrow) ==> v1.0 (C:\WINDOWS\system32\WindowsPowerShell)
28636aa6-953d-11d2-b5d6-00c04fd918d0\30 Parsing Path ==> C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

>> Tracker database block
Machine ID: john-win764
MAC Address: 00:0c:29:ac:13:81
MAC Vendor: VMWARE, INC.
Creation: 2014-01-21 03:01:04

Volume Droid: 377e2efa-12f2-42ed-aeef-34a43bd8bf7d
Volume Droid Birth: 377e2efa-12f2-42ed-aeef-34a43bd8bf7d
File Droid: 4416c5c4-8248-11e3-8bfe-000c29ac1381
File Droid birth: 4416c5c4-8248-11e3-8bfe-000c29ac1381

>> Environment variable data block
Environment variables: %PSModulePath%..\powershell.exe

Damaged data block
Original Signature: ConsoleDataBlock
Error Message: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: startIndex

---------- Processed 'c:\temp\UpdateCheck.lnk' in 0.05588820 seconds ----------

 

 スタートアップに登録されている LNK ファイルを調査する場合、Autoruns だけでなく LEcmd も併用して Hunting すれば、PowerShell の仕掛けを発見できますね。

Ericさんのツールは、とても調査に役立ちます!!ありがとうございます。

 

(2017/9/3 delete)試しに LEcmd でもスタートアップに登録された LNK ファイルを処理してみましたが、エラーとなり内容は確認できず。

f:id:hideakii:20170827073033p:plain

 自動起動をチェックする際、参照先のファイルが見つからない LNK については、登録内容を確認する必要がありますが、具体的にどのような手順を組むか?がありますね。

セキュリティログで追跡

監査ポリシーで、コマンドライン プロセスの監査を有効にした後、スタートアップにと登録されている UpdateCheck.lnk を実行してみます。 

f:id:hideakii:20170827114315p:plain

 LNKファイルをクリックした後、セキュリティログ内で PowerShell のイベントID 4688 を確認します。プロセスコマンドラインにエンコード文字列が表示されてくるのを期待したのですが、記録されていないようです。

f:id:hideakii:20170827114526p:plain

 PowerShell でのスクリプトブロックの監査を有効にしている場合

f:id:hideakii:20170827122618p:plain

Reference URL:

Free Automated Malware Analysis Service - powered by VxStream Sandbox - Viewing online file analysis results for 'Party001.jpg.lnk'