https://app.hackthebox.com/sherlocks/Lockpick
Hack The Box Sherlocksとは
Sherlock Scenario
Forela needs your help! A whole portion of our UNIX servers have been hit with what we think is ransomware. We are refusing to pay the attackers and need you to find a way to recover the files provided. Warning This is a warning that this Sherlock includes software that is going to interact with your computer and files. This software has been intentionally included for educational purposes and is NOT intended to be executed or used otherwise. Always handle such files in isolated, controlled, and secure environments. One the Sherlock zip has been unzipped, you will find a DANGER.txt file. Please read this to proceed.
フォレラにはあなたの助けが必要です! UNIX サーバー全体がランサムウェアと思われる攻撃を受けています。私たちは攻撃者への支払いを拒否しており、提供されたファイルを回復する方法を見つける必要があります。警告 これは、この Sherlock には、お使いのコンピュータやファイルと対話するソフトウェアが含まれていることを示す警告です。このソフトウェアは教育目的で意図的に含まれており、それ以外の方法で実行または使用することを意図したものではありません。このようなファイルは常に、隔離され、管理された安全な環境で処理してください。Sherlock zip を解凍すると、DANGER.txt ファイルが見つかります。続行するにはこれをお読みください。
ランサムウェアに関連するファイル群が与えられる。
Tasks
Task 1
Please confirm the encryption key string utilised for the encryption of the files provided?
提供されたファイルの暗号化に使用された暗号化キー文字列を確認してください。
bescrypt3.2を解析する。この問題がLockpickの一番重い部分ですべて。答えの末尾がpであることは分かっているので、bescrypt3.2をghidraで解析してpで終わるそれっぽい文字列を探すとあった。コードを読むとこの文字列を使ってXORで暗号化していたので、復号化もXORしてやれば復号化できることが分かる。
Task 2
We have recently recieved an email from wbevansn1@cocolog-nifty.com demanding to know the first and last name we have him registered as. They believe they made a mistake in the application process. Please confirm the first and last name of this applicant.
最近、 wbevansn1@ cocolog-nifty.com から、登録している彼の姓名を知りたいというメールを受け取りました。彼らは申請プロセスで間違いを犯したと信じています。この申請者の姓名を確認してください。
復元後のforela_uk_applicants.sqlに書いてあった。
Task 3
What is the MAC address and serial number of the laptop assigned to Hart Manifould?
Hart Manifold に割り当てられたラップトップの MAC アドレスとシリアル番号は何ですか?
復元後のit_assets.xmlに書いてあった。
Task 4
What is the email address of the attacker?
攻撃者の電子メール アドレスは何ですか?
適当にランサムノートに書いてあったメールアドレスを書いた
Task 5
City of London Police have suspiciouns of some insider trading taking part within our trading organisation. Please confirm the email address of the person with the highest profit percentage in a single trade alongside the profit percentage.
ロンドン市警察は、当社の取引組織内で何らかのインサイダー取引が行われている疑いがあるとしています。利益率と併せて、1回の取引で最も利益率が高かった人のメールアドレスをご確認ください。
import json with open('trading-firebase_bkup.json') as fp: j = json.load(fp) ps = [] for k, v in j.items(): pp = v['profit_percentage'] e = v['email'] ps.append((pp,e)) ps.sort(key=lambda pair: float(pair[0])) for p in ps: print(p)
これでprofit_percentageが最も高いものを持ってくることができた。注意だが、桁落ちして出力されるので原文のものを解答すること。
Task 6
Our E-Discovery team would like to confirm the IP address detailed in the Sales Forecast log for a user who is suspected of sharing their account with a colleague. Please confirm the IP address for Karylin O'Hederscoll.
当社の電子情報開示チームは、同僚とアカウントを共有している疑いのあるユーザーの売上予測ログに詳細に記載されている IP アドレスを確認したいと考えています。Karylin O'Hederscoll の IP アドレスを確認してください。
復元後のデータのsales_forecast.xlsxを見るとIPアドレスが特定できる。
Task 7
Which of the following file extensions is not targeted by the malware? .txt, .sql,.ppt, .pdf, .docx, .xlsx, .csv, .json, .xml 次のファイル拡張子のうち、マルウェアのターゲットにならないものはどれですか?.txt, .sql,.ppt, .pdf, .docx, .xlsx, .csv, .json, .xml
ghidraでprocess_directoryを見ると拡張子が書いてある。比べると.pptがない
(pcVar2 = strstr(local_18->d_name,".txt"), pcVar2 != (char *)0x0 || (pcVar2 = strstr(local_18->d_name,".sql"), pcVar2 != (char *)0x0)) || (pcVar2 = strstr(local_18->d_name,".pdf"), pcVar2 != (char *)0x0)) || ((pcVar2 = strstr(local_18->d_name,".docx"), pcVar2 != (char *)0x0 || (pcVar2 = strstr(local_18->d_name,".xlsx"), pcVar2 != (char *)0x0)))) || ((pcVar2 = strstr(local_18->d_name,".csv"), pcVar2 != (char *)0x0 || ((pcVar2 = strstr(local_18->d_name,".json"), pcVar2 != (char *)0x0 || (pcVar2 = strstr(local_18->d_name,".xml"), pcVar
.**t .ppt
Task 8
We need to confirm the integrity of the files once decrypted. Please confirm the MD5 hash of the applicants DB.
復号化したら、ファイルの整合性を確認する必要があります。応募者DBのMD5ハッシュをご確認ください。
$ md5sum forela_uk_applicants.sql f3894af4f1ffa42b3a379dddba384405 forela_uk_applicants.sql
Task 9
We need to confirm the integrity of the files once decrypted. Please confirm the MD5 hash of the trading backup.
復号化したら、ファイルの整合性を確認する必要があります。取引バックアップのMD5ハッシュを確認してください。
$ md5sum trading-firebase_bkup.json 87baa3a12068c471c3320b7f41235669 trading-firebase_bkup.json
Task 10
We need to confirm the integrity of the files once decrypted. Please confirm the MD5 hash of the complaints file.
復号化したら、ファイルの整合性を確認する必要があります。苦情ファイルの MD5 ハッシュを確認してください。
$ md5sum complaints.csv c3f05980d9bd945446f8a21bafdbf4e7 complaints.csv