Site cover image

🏪ofuroniku火星第3支店

🇯🇵防衛省サイバーコンテスト 2023 writeup

サイバーセキュリティに関する専門的知見を備えた優秀な人材を発掘することを目的としたCTF。

解答形式がflag{…}で統一じゃなかったのに気づかず少し誤答回数が増えた。

Welcome

Welcome!

flagはヒントの通り。VPN接続。

Image in a image block
はじめてのVPN接続

Crypt

Simple Substitution Cipher

暗号文:synt{tA0iEFckNRiG}

flag{…}になるように見えるのでシーザー暗号とわかる。Rubyでデコードしてみる。

ciphers = "synt{tA0iEFckNRiG}".split

pp ciphers.map { _1.tr("a-zA-Z", "n-za-mN-ZA-M") }.join

これでflagを取得。

Substitution Cipher

・暗号文: Uckb uzzc jn gwdmayuzf fjoj ciz Xrhzpèaf xkyizt.ciz hubb kb ggcp{wIR2AuVebMyR}.

・ 鍵: ?VC?

鍵の一部を推測して復号する必要がある。ヴィジュネル暗号というらしい。

与えられた対応表もこのWikiにあった。

鍵がaで暗号文がCならば、左端のaの行でCの場所を探し、そこから上に辿った最上段の文字が平文cである。

今回は鍵が ?VC? ということがわかっている。

Uckb → ?hi?
uzzc → ?ex?
jn → ?s

jnって、isじゃないか?ということでBVC?の可能性を探る

Uckb → Thi?
uzzc → tex?
jn → is

Uckb はThisっぽい。BVCJの可能性を探る

Uckb → This
uzzc → text
jn → is

https://dencode.com/ja/cipher/vigenere このサイトで暗号文とキーを入れてデコードしてみると結果がこうなる。

This text is encrypted with the Vigenv̀zk vbxnxk.bnx ytgz ba leto{bGI2ZzTvaRwI}.

後半をまた復号する必要がありそう。leto{}flag{}と思われるので、鍵はGGTIとわかる。これで復号したらflag取得。

※最初に与えられたggcp{wIR2AuVebMyR}をBVCJで復号するとflagになるから、これが想定解…?イマイチよくわからない。

PROGRAMING

Regex Exercise

本物のフラグは
  1. Regexp
  2. "!!" を含む3文字
  3. 数字2けた
  4. "S" で始まる5文字以上の英単語
  5. 一の位が "8" の数値

がこの順番で並んだものです。

vimでファイルを開いて検索していく。

# vim

# 1. Regexp
/flag{Regexp

# 2. "!!"を含む3文字 !!. は存在しなかったので、
/flag{Regexp.!!

# 3. 数字2けた
/flag{Regexp.!!\d\d

# 4. "S" で始まる5文字以上の英単語 5でおしりを指定するので * にしちゃう
/flag{Regexp.!!\d\dS.*

# 5. 一の位が "8" の数値
/flag{Regexp.!!\d\dS.*8}

これでflag取得。

Mimic Unicode(不正解)

解けなかった‼️

難読化的なアレで、解読するとflagになるんだろうなというゴゴゴが与えられる。「ゴ」じゃないのが混ざってるのはすぐにわかる。

ネットを色々調べてバイナリエディタで開く。カチャカチャやって、3種類にわけられるのでモールス信号と予想し、. -を試していく。

E382B4E382B3E38299E382B3E38299E382B4E382B4E382B3E38299E382B3E38299E382B4E382B4E382B3E38299E382B3E38299E382B4E382B3E38299E382B3E38299E382B4E382B4E382B4E382B3E38299E382B3E38299E382B4E382B4E382B4E382B4E382B3E38299E382B4E382B3E38299E382B3E38299E382B4E382B4E382B3E38299E382B3E38299E382B3E38299E382B4E382B3E38299E382B3E38299E382B3E38299E382B3E38299E382B4E382B3E38299E382B3E38299E382B4E382B3E38299E382B4E382B3E38299E382B4E382B3E38299E382B4E382B3E38299E382B4E382B3E38299E382B3E38299E382B4E382B3E38299E382B3E38299E382B3E38299E382B4E382B4E382B4E382B3E38299E382B3E38299E382B4E382B4E382B4E382B3E38299E382B4E382B3E38299E382B3E38299E382B4E382B4E382B4E382B3E38299E382B3E38299E382B4E382B4E382B3E38299E382B3E38299E382B4E382B4E382B4E382B4E382B4E382B3E38299E382B3E38299E382B4E382B4E382B3E38299E382B4E382B4E382B4E382B3E38299E382B3E38299E382B4E382B4E382B3E38299E382B4E382B3E38299E382B4E382B3E38299E382B4E382B3E38299E382B3E38299E382B3E38299E382B3E38299E382B3E38299E382B4E382B3E38299E382B4E382B4E382B3E38299E382B3E38299E382B3E38299E382B4E382B4E382B4E382B3E38299E382B3E38299E382B4E382B4E382B4E382B4E382B4E382B3E38299E382B3E38299E382B3E38299E382B4E382B4E382B3E38299E382B4E382B4E382B3E38299E382B3E38299E382B4E382B3E38299E382B3E38299E382B4E382B3E38299E382B4E382B3E38299E382B3E38299E382B4E382B4E382B4E382B4E382B3E38299E382B4E382B3E38299E382B3E38299E382B3E38299E382B3E38299E382B3E38299E382B4E382B4E382B4E382B4E382B3E38299E382B3E38299E382B4E382B4E382B4E382B3E38299E382B4E382B3E38299E382B3E38299E382B3E38299E382B3E38299E382B4E382B3E38299E382B4E382B4E382B3E38299E382B4E382B4E382B4E382B4E382B4E382B4E382B4E382B3E38299E382B3E38299E382B3E38299E382B4E382B3E38299E382B4E382B4E382B4E382B4E382B3E38299E382B3E38299E382B4E382B4E382B4E382B3E38299E382B4E382B4E382B3E38299E382B3E38299E382B4E382B4E382B4E382B4E382B4E382B3E38299E382B3E38299E382B4E382B3E38299E382B3E38299E382B3E38299E382B4E382B4E382B3E38299E382B3E38299E382B3E38299E382B3E38299E382B3E38299E382B4E382B3E38299

E382B3 コ 
E38299 .
E382B4 ゴ

E382B3  
E38299 .
E382B4 -

-> TETETT...

E382B3 -
E38299  
E382B4 .

E382B3 .
E38299 -
E382B4  

-> A.AAAA.AAAAAA..AAAAAA.AA.A

E382B3  
E38299 -
E382B4 .

E382B3 -
E38299 .
E382B4 

-> CCCCCNC;CNNNNC;CNCCCCNCNNNN;C;NCCNCNCNNN;NCNCC;N

TEETTEETTEETEETTTEETTTTETEETTEEETEEEETEETETETETETEETEEETTTEETTTETEETTTEETTEETTTTTEETTETTTEETTETETETEEEEETETTEEETTTEETTTTTEEETTETTEETEETETEETTTTETEEEEETTTTEETTTETEEEETETTETTTTTTTEEETETTTTEETTTETTEETTTTTEETEEETTEEEEETE


各パターンで文字列は出てくるものの意味を見いだせずギブアップ。

モールス信号じゃなかったらしい。

TRIVIA

箸休めの知識問題🚬

Threat

コンピューターシステムを侵害し、身代金を目的としてデータを暗号化したり、アクセスをブロックしたりするマルウェアは何ですか。

答えはランサムウェア

Behavior

エージェントを使用してエンドポイント上のふるまいを検知し、異常な活動を検出し、攻撃に対する即座な応答を可能にするエンドポイントセキュリティ技術は何ですか。

答えはEDR

Inventor

RSA 暗号の R の由来になった人物は誰でしょうか?ラストネームをお答えください。

ファーストネーム/ラストネーム左右盲なので当然とりあえずIncorrectした。どちらも全角カタカナ4文字なの、狙ってますよね!?

答えはリベスト

Web

Basic

フラグはその Basic 認証でのログイン後のページにあります。

通信ログが与えられるので実際にログインしてFlagを確認する。認証後にflagがあるので、flagでgrepしてその直前の情報を見てみる。

GET /Aw6dfLUM/ HTTP/1.1^M
Host: 10.10.10.6^M
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0^M
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8^M
Accept-Language: en-US,en;q=0.5^M
Accept-Encoding: gzip, deflate^M
Connection: keep-alive^M
Upgrade-Insecure-Requests: 1^M
Cache-Control: max-age=0^M
Authorization: Basic ZmxhZzphR3lSc3FwbmEzRDM=^M

...

Date: Thu, 15 Jun 2023 10:10:45 GMT^M
Server: Apache^M
Last-Modified: Thu, 15 Jun 2023 09:42:48 GMT^M
ETag: "26-5fe27e427b387"^M
Accept-Ranges: bytes^M
Content-Length: 38^M
Keep-Alive: timeout=5, max=100^M
Connection: Keep-Alive^M
Content-Type: text/html^M
^M


<h1><a href="aGyRsqpna">flag</a></h1> 👈ここでFlagを発見している
flag:aGyRsqpna3D3base64: invalid input

Authorization: Basic ZmxhZzphR3lSc3FwbmEzRDM= をBase64でデコード。user名がflag, パスワードがaGyRsqpna3D3でログインしてflag取得。