先週からいろいろと試行錯誤している間に、RTX1210では公式にv6プラス対応のファームウェアが出ていた。www.rtpro.yamaha.co.jpRev.14.01.28リリースノートhttp://www.rtpro.yamaha.co.jp/RT/docs/relnote/Rev.14.01/relnote_14_01_28.htmlRTX1200にもファームウェアアップデートが出ているが、v6プラス対応もポートセービングIPマスカレード追加も書いてないのでRTX1200だと使い物にならないままだろう。netboot用のDHCPサーバをCentOS6で作る際はdhcpd.confにnext-serverの設定を入れようタイトルで言いたいことは言い終わった。Preseedで自動インストールしようと思い、手元にあった環境でテストしてた。Wikiを見ながらネットワークブートの環境を作っていた。Wikiではdnsmasqを使っていたが、以前使ったことがあって設定もある程度調べていたdhcpdを使うことにした。同じように設定すればいいだろうと思って。あとDNSに関すること全くさせないのにdnsmasq使うのが何となく嫌だった。いざやってみるとtftp経由でgrubイメージ読むところまではうまくいっているが、その後grub.cfgを読みに来ない。GRUBのシェルになる。dnsmasqを使ってやるとちゃんとgrub.cfgを読みに来てブートメニューが表示される。なんでじゃーと思い、方々を調べながら試行錯誤を繰り返していたところ、dhcpd.confにnext-serverの設定を追加したら期待通りの動作をするようになった。ロードするサーバのホストアドレスを指定するために使います。アドレスかドメイン名です。アドレスが用いられます。next-serverの項目書いてなければDHCPサーバのIPアドレスになるとあり、実際grubイメージは同じIPで動いているTFTPサーバに読みに来てるのに、その先にはnext-serverの項目がないと進まないってわけがわからないよ。2018manpageからnext-serverが存在しないときの部分が削られてた。dhcpd.confしたら新しいのがちゃんと出てきた。13年以上前の情報が平然と上位に出てくるインターネットこわい。16.04でやってみたらnext-serverなくてもしっかり動いて悲しみにくれる。結論CentOS6とかいう旧時代の遺物は破却しましょう。ShellとSimonを解いたけど人によって解法が変わるような問題じゃないしWriteupを書くまでもなかろうか。2017スキルも文章力もない奴が何偉そうに言ってんの?(自分です)と思ったので書く。とあるチームに参加して4問解いた。Submitしたのは上の3問で計500点。100)ヴィジュネル暗号の3次元版。2つ目の鍵を使ってヴィジュネル暗号の表を3次元方向に拡張している。ヴィジュネル暗号の強さは鍵の長さ(=周期)に依存している。Vigenere3dは、鍵を2つ用いているため、周期は2つの鍵の長さの最小公倍数となる。問題のプログラムでは2つの鍵が同じ長さになっているため、拡張した意味がまったくない...さて、暗号プロセスを見てみると、平文1文字に対して、2つの鍵のsにおけるインデックスの和で暗号文が決まることがわかる。t[x]のデータを表にしてみるとわかりやすい。以下は平文が’S’の場合。この問題では、2つ目の鍵は1つ目の鍵を逆順にしたものにしている。このため、1つ目の鍵と2つ目の鍵のインデックスの和、というのは、後ろ半分の8文字目からは1~7文字目の順番を逆にしたものとなり、前半分の7文字分だけ鍵(のインデックスの和)がわかれば全部わかることになる。7文字分は平文と暗号文の両方がわかっているため、これだけで鍵が全部導出できる。平文1文字分ずつ上記の表を出して暗号文との対応から鍵を求めていくと、vigenere3d.pyの入力として与える鍵(の一例)はAAAAAAA_aZ2PK_であることがわかる。あとは復号プログラムを作って暗号文と鍵を与えてやればいい。100)与えられたソースコードを見ると、11011番目のフィボナッチ数の頭32桁がフラグの模様。300)難読化(?)されたPowershellスクリプトを解析する(Binary...?)要所要所で変数に保持したPowershellプログラムを実行する部分があるので、代わりにWrite-Hostで標準出力に出すなどしてやれば見ることができる。文字を延々と生成して変数$ECCONに追加している。-Completed”の後に実行しているので変数$ECCONを出力してやればよい。キーボードを叩いて秘密のメロディを演奏させる。演奏されたメロディが正しいと次の段階に進む。melody.”と標準出力に出しているところまで進むと$keytoneにキーと鳴らす音の周波数の対応が入っている。正解のメロディは少し後の$secret変数に周波数の列として納められているので$keytoneの内容と見比べて正解のキー列を得る。ソースを追っていくと入力したキー列は$fに文字列の形で入っているため、正解のキー列で文字列を作っておく。"hhjhhjhjkjhjhf"この$fは後でXORデコードの鍵として使われる。下の方の$text以降に上記の$fの値を設定する一行を加え、最後のiexをWrite-Hostに書き換えれば実行されるコードを取得できる。最後はPowershellでの記号プログラミング。Trackに書かれているのとまったく同じやりかたで記号化している。Archiveにリンクしている)やり方を見て解読していけばいい。一部が与えられており、鍵がフラグになっている。forceすればよい。ググるとGitHubに実装があったのでこれを使った。SECCON{6Pz0}以上。久しぶりのCTFで楽しかったが、セキュリティの知識が必要とされる問題を解けていないことがわかる。実働時間も短かった(まあこれはしょうがない)Pwn系を解けなかったしそのスキルがあるとは思えないので精進したい。チームとしては1400点獲得。自分は200点問題を3問解いたので書いていく。(問題文等の確保をしてなかったのでその辺は適当。ThemeCountry。