パスワードの総数が限られていることから、総当たりで正解を見つけられそうです。
hashcatというツールを使ってパスワードの解析をしていきます。
https://hashcat.net/hashcat/
hashcatで解析するには、ZIPファイルのハッシュ値を求める必要があります。
これには、zip2johnというツールを使います。
https://www.openwall.com/john/
windowsでは、コマンドプロンプトにて以下のコマンドでflag.zipのハッシュ値を求めてファイルに出力します。
zip2john.exe f.zip > f.hash

必要となるのは、$pkzip2$から$/pkzip2$までの部分ですので、他は削除しておいてください。
このハッシュ値を使って、hashcatで解析していきます。
windowsでは、以下のコマンドで解析を行うことができます。
hashcat.exe -m 17210 -a 3 f.hash -o r.txt -1 ?u?l -2 @!#$%- -3 01 -4 0123 ?3?d?4?d?2?1?1?d?d?2
コマンドのオプションはそれぞれ以下の通りです。
オプション 説明
-m 17210 解析対象となるファイルの種類を指定します。今回は無圧縮ZIPですので、17210となります。
-a 3 解析方法を指定します。3はブルートフォースです。
-o r.txt 解析結果をr.txtファイルに出力します。
-1 ?u?l フォーマットのユーザ定義です。"?1"を”?u?l”とします。"?u"は任意のアルファベット大文字、"?l"は任意のアルファベット小文字ですので、"?1"は任意のアルファベット1字となります。
-2 @!#$%- フォーマットのユーザ定義です。"?2"を「@、!、#、$、%、-」の中から任意の1字とします。
-3 01 フォーマットのユーザ定義です。"?3"を「0、1」の中から任意の1字とします。
-4 0123 フォーマットのユーザ定義です。"?4"を「0、1、2、3」の中から任意の1字とします。
?3?d?4?d?2?1?1?d?d?2 解析対象のパスワードのフォーマットです。"?d"は任意の数字1字です。