aki*famの雑記帳

ただの情報系大学生が自分の思ったこと、興味のあることを雑多に書いていく

生存報告

おはようございますこんにちはこんばんは。またもやお久しぶりです。

 

失踪したと思った?失踪してません。aki*famです。

 

友人のブログを見てまた書く気力がわいてきたので書きたいと思います。

近況

この空白の2年間何をしていたのかといいますと

・資格取得

・進学

・研究

・ダラダラ

です。

資格取得

HBA(日本バーメンズ協会)カクテルアドバイザー

通信講座で取得できる簡単なものですが、自分が普段呑まないお酒などの知識も得ることが出来たので取得してよかったと思います。

本業の資格も取らないとな・・・

www.hotel-barmen-hba.or.jp

進学

このブログを書き始めた大学2年生の時から2年たったということで大学を無事に卒業しました。現在はそのまま大学院に進学し、修士学生として論文と日々格闘中です。

この記事を教授に見られてイジられそうで今から戦々恐々としてます。

 

研究

モグラドメインという見た目がそっくりのニセURL対策をテーマに書きました。

うちの学部生は大学に言えば見せてもらえるかも・・・?

文字コードwhoisの沼で苦しんでおりました。

 

ダラダラ

ブログを書いている目的(アウトプット)を見失って自堕落な生活を送っておりました。

マジでブログに書くに堪えない生活だったので詳細は割愛します。

「Escape From Tarkov」や「Apex Legends」などのゲームをしたりもしてました。

 

最後に

一応復活したのでまた細々と自分の書きたいことを書き綴っていきたいと思います。

扱うテーマが商社の品ぞろえぐらい雑多になるかと思いますがよろしくお願いいたします。

短期目標(0)の進捗

おはようございますこんにちはこんばんは。そしてお久しぶりです。

最近はカクテルづくりにハマっているaki*famです。

今回は自分で設定しておきながら完全に忘れ去っていた短期目標の達成度合いを書こうと思います。(誰も興味がないのは知ってます。はい。)

それぞれの目標の状況

  •  積読の消化
    積読は7割くらいは消化できた感じです。ただ、まだ読めてない本も結構あるので引き続き取り組んでいこうと思います。

  • オンライン勉強会の開催
    勉強会は結構な頻度で行っていたのですが、学校の課題が本格的になってきたこともあり最近はもっぱらみんなで課題を終わらせる会になりつつあるのが何とも言えないところです。
    ただ、開催はできていませんが数人からやってほしい内容のリクエストは頂いてるので頑張ってやっていこうと思います。

  • オンライン呑み会の開催
    高校の同級生と開催しましたがやっぱり対面呑みがいいですね

  • 未履修の作品の履修
    こちらは10%も進んでません。
    何ならさらに未履修の作品を増やしてしまった可能性まであります。
    出来る限り早く履修するようにします。(薦めてくださった方々スイマセン)

  • 自炊技術の向上
    自炊の回数は圧倒的に増加したのですが、レパートリーが増えたかと言われると同じ料理(焼きそば)をずっと作ってたので大して増えてないと思います。
    結構簡単なんですよ焼きそばって(気が向いたらブログに書くかも)
    最近は専らカクテル作るのが楽しくてそっちばっかりやってます。

  • 資格試験の勉強
    これが一番進んでません。
    何なら取りたい資格は一個増えたのに勉強は全くしていないという体たらくです。しかもIPAさんは秋季試験は実施すると言ってるので本格的に基本情報技術者試験の勉強しないとヤバいです。
    しかもまだ申し込みしてないし・・・

 と、まあこんな感じです。

個人的にはコロナのせいでインターンが遠隔になるんじゃないかとヒヤヒヤしてます。

遠隔でも無いよりはいいのですが、やっぱり実際に行きたいですね。

 

自分の住んでいる県でもコロナの感染者がけっこう増えてきたので気を付けて暮らしたいと思います。

 

それではまた。

SECCON CTF for Beginers 2020 readme Write Up(自分用)

おはようございます。こんにちは。おやすみなさい。

間違えたこんばんは。aki*famです。

自分用にCTF for Beginners 2020(長いから以下CTF)の内の一問であるreadmeのWriteUpを書きたいと思います。

(追記)一問しか取り上げてないのはこの問題しか競技中に希望を見いだせなかったからです。

問題

与えらえたもの

・readme(Zipファイル)

・ネットキャットのコマンド(URLとポート番号付き)

まずは自力でチャレンジ

何故か自分の環境ではZipファイルをダウンロードすると拡張子のZipの後になんか要らん文字列がくっついてきてPCにZipファイルとして認識されなかった。

そのためまずは「あれ?このファイルを分析するところから始めるのか?」と思い、拡張子の後ろの文字列を消せばよかっただけなのにうさみみハリケーンにかけてみたりバイナリファイルをのぞいてみたりLInuxでFileコマンドにかけてみたりと物凄い無駄な労力を費やした。

もうこの時点で戦意を30%ほど喪失

その後、ようやく「この後ろの文字列要らんくね?」と気づきようやくZIpファイルを入手。そのZipファイルの中にはServer.pyというPythonのファイルが入っていた。

また自分はncコマンドを知らなかった(無知)ので問題文で与えられたコマンドの意味が分からずこれを調べるのにも数十分を費やした。

ここで更に戦意を10%喪失。

与えられたncコマンドをうってみたが入力に対応して出力が変わるプログラムがアクセス先っぽい。

とりあえずPython読む自信ないけどPythonファイルを開いてみた。

f:id:aki_fam:20200526115001p:plain

与えられたPythonファイル

うん!分からん!!!

とりあえず何かモジュールをインポートしてるのでosモジュールを調べて、どうやらosに依存している機能を利用するためのモジュールらしいという事が分かった。

あと、いかにもFlagが入っていそうなファイルが書いてある(/home/ctf/flag)

このPythonファイルは入力をpathという変数に代入し、内容によって出力が変化する。

つまりncコマンドで接続した先で動いているプログラムは恐らくこのPythonファイル。

この4つの条件文は上から

・入力されたパスが存在しなければFile not foundを返し

・入力されたパスの先がファイルではなかった場合Not a Fileを返し

・入力されたパスの最初が/から始まっていない場合Use absolute pathを返し

・入力されたパスの中にctfという単語があるとPath not allowedと返される

この上の条件をすべて回避すると読み込みモードで入力されたパスの先のファイルを開いて中身を見れるっぽい。

ここまでは競技中に理解できたが、自分の頭の中では「相対パス?でも条件の中に/から始まるっていう条件あるから絶対パスしか無理じゃん。でも絶対パスだとctfっていう文字列回避できないし・・・」となって詰んでました。

ここで戦意完全喪失。

そのまま競技終了。今年もダメだったよ・・・

競技後他の方のWriteUpを見て再チャレンジ

いろいろな方のWriteUpを見た結果、どうやら絶対パスのような書き方で相対パスを書く方法があったらしい。

まずはこのPythonファイルが動いているディレクトリを確認する。

/proc/プロセスIDにプロセスに関する情報が入っているらしく特に/proc/selfには今現在のプロセスの情報が入っているらしい。

/proc/self/environに環境変数が格納されており、/proc/self/cwdはこれ以降に記述されたパスをカレントディレクトリに結合する役割があるらしい。

つまりカレントディレクトリが/home/pythonだとすると/proc/self/cwd/server.pyは

/home/python/server.pyと同じ意味を持つ。

/proc/self/environの中のPWDにカレントディレクトリは記述されているらしい。

今回のカレントディレクトリは/home/ctf/serverなので/proc/self/cwdは/home/ctf/serverを意味する。

目的のファイルは/home/ctf/flagなので絶対パスを/proc/self/cwdを使って記述すると

/proc/self/cwd/../flagとなる。

そしてこのパスは/で始まっており、パスの中にctfという単語を含んでいないため条件文をすべて回避することができる。

f:id:aki_fam:20200526140837p:plain

今回のディレクトリのツリー構造

この/proc/self/cwd/../flagが答えらしい。

/proc以下にはいろいろな情報があるようなのでこれから勉強します。

振り返り

今回のCTFも解法が浮かぶ問題がほとんどなく、ほぼ唯一解法が浮かびかけたこの問題も結局解くことができなかった。去年に比べると完全にお手上げにならなかったこととこうして一問でも解けなかったなりにWriteUpを書くことができるようになっている事は進歩かもしれない(超ポジティブシンキング)

今度のCTFはもっとWriteUpをかける問題が増えたらいいな~

自主開催したオンライン勉強会の振り返り

おはようございますこんにちはこんばんは。aki*famです。

 

非常事態宣言が部分的に解除されて少しずつ日常が戻ってくるのかなと思う今日この頃です。

あと、在宅なのに花粉症がひどくなってきて段々しんどくなってきました。

おのれ花粉許すまじ・・・

 

このコロナの自粛期間中にオンラインで勉強会を何度か主催しましたが、そこで得られた教訓を忘れないうちに書いていこうと思います。

 

開催状況

 自粛期間中に自分主催で情報セキュリティに関するオンライン勉強会をLINE通話の画面共有を用いて数回開催しました。

各回とも大体2時間から6時間程度のものでした。

(今よくよく考えたら6時間休憩なしの勉強会ってヤバくない・・・?)

 

得られたこと

良かった点

・自粛期間中でも勉強会が開催できた

・勉強会を開催することで自分の勉強のモチベーションになった

・人に教えることで自分が理解していると思っていたことを学びなおすことができた

・自粛期間を有効活用できた(少なくとも何もなかったら何もしなかったし・・・)

改善点

・自分の家のインターネット回線がクソ雑魚だったので画面共有や配信に支障があった

・聞いている人の反応がわかりにくく主催側の自分が参加者の理解度を把握することが非常に難しかった

・自分のスライド構成がオンライン配信に適したものではなかった
 (スライドの文字が小さい、画面のサイズが参加者側と違い端が切れてしまうなど)

・マイクの設定がおかしいのか自分の声が跳ね返ってきて非常に気持ち悪い

 

まとめ

今回開催したオンライン勉強会はおおむね問題なく開催できました。

ただ改善点も多いのでさらに良いものにしていけたらと考えています。

 

 

短期目標設定(0)

どうもおはようございます。こんにちは。こんばんは。

aki*famです。

 

今回はコロナのせいで新学期が延期になってしまったのでこの時間を活用して達成しようと思っている目標を設定しようと思います。

ちなみに今回から変えた最初の挨拶(この記事の本文一行目)は僕の大好きなEGOISTのボーカルのchellyさんがWebラジオで使っていらっしゃる挨拶です。

 

え?なんで自分の目標をブログに書いてるのかって?

・・・そうしないと何もしない引きこもりになるからだよ!!

 

目標

  • 積読の消化
    買ってから全然読んでない技術書が家に段ボールひと箱あるのでこれを減らしたいと思います

  • オンライン勉強会の開催
    自分が主催していた勉強会がオフラインで開催できそうにないので場所をオンラインに移して開催しようと思ってます
    Zoom使いたかったけど40分以上普通にかかりそうなのでLINE通話の画面共有でやる予定

  • オンライン呑み会の開催
    これに関してはオマケなので省略

  • 未履修の作品の履修
    親友から勧められたアニメ・漫画・ゲーム・小説がめちゃくちゃたまってるので消化しようと思います

  • 自炊技術の向上
    家にこもっているせっかくの機会なので自炊のレパートリーを増やしていこうと思います
    お菓子とかも作れたらかっこいいよねー(作れない人並感)
  • 資格試験の勉強
    この春に基本情報技術者試験を受けるつもりでしたが、IPA系の試験が全部中止になってしまいました。
    (勉強あんまりできてなかったから怪我の功名だったのはナイショ)
    なのでこの時間がある間にしっかり勉強しようと思います。

 

世間はコロナで大変ですがなるべく外出せずにできることをやっていきます。

 

SUNCTFWriteUp

こんにちは。aki*famです。

 

遅くなりましたが、今回は僕の大学の後輩たちが主催したCTF(CaptureTheFlag)であるSUNCTFに参加したのでそのWriteUpを書こうと思います。

(権利とかが不明なので文章のみの解説です。分かりづらくて申し訳ありません)

概要

当日は午前中は作問者からの問題のヒントとなる技術セッション、午後からは午前中に解説した技術やツールを使用してのCTFとなりました。

CTFとは

Capture The Flagの略で情報セキュリティ技術を競うセキュリティコンテストです。
様々な課題からFlag(フラグ)という文字列を見つけ出すと得点を得る事が出来ます。

問題とWriteUp

Welcome部門

Welcome to SUNCTF 2020

CTFには必ず存在するフラグの形式を確認する問題です。

そのまま書いてあるフラグを打ち込むだけです。

Network部門

Login page

今回のNetwork部門はすべてキャプチャしたパケットファイル(pcap)が与えられます。

この問題では午前中のセッションで説明のあったパケットキャプチャソフトを用いpcapファイルを開き、通信の一連の流れを追うことのできる機能を用いて通信内容を解析したところ普通にフラグが入っていたがこれを入力しても正解にはなりませんでした。

フラグの中の文字列が変数名っぽい値であったので該当する変数の値を代入したところフラグを導き出すことができました。

File transfer

この問題はFTP(File Transfer Protocol)を用いた問題となっておりソフトを用いてファイルを解析するとFTPのやり取りが平文で表示されました。ここからFTPのコマンドでファイルをサーバにアップロードもしくはサーバからダウンロードしている通信を探し、その通信のデータ部分を見ることでフラグを取り出すことができます。

Telnet mail

この問題はメールを平文で送っているパケットが表示されました。

なのでメールのデータ構造からメールの添付データ部分のみを取り出しこれをBase64でデコードします。そうするとバイナリ上で頭の部分がPKから始まるZipファイルであることが分かります。このZipファイルを開くとフラグの書かれた画像ファイルが入っており、そこからフラグを入手できます。

PPAP

この問題ではパケットの内容をUTF-8に変換するとどうやらパスワードのやり取りをしているということが分かります。そしてそれよりも前の通信の内容を確認すると何やらデータのやり取りがされています。これもバイナリ上で頭がPKから始まるZipファイルであることが分かるのでZipファイルとして保存して展開してみます。展開の際にパスワードを要求されたので事前に取得しているパスワードを入力して展開します。

中にはExcelファイルが入っており開くと一番上にフラグが記載されています。

解説で知りましたがこれは昨年の10月にハウステンボスで行われたCSS(Computer Security Conference)での論文発表がもととなっているそうです。

 

Web部門

作成してくれた後輩君にはめちゃくちゃ申し訳ないのですが全く解けませんでした。
ただ競技後の解説を聞くと解けなきゃいけないものばかりだったのでかなり反省です。

Forensics部門

images

画像ファイルが配布されそのファイルを開いてみると「No Flags exist for this image」と表示されました。

タイトルと午前中のセッションからこの画像は複数の画像を合わせたものではないかと考え解析ツールで画像を調べると「HINT:META」と書かれた画像が存在することが分かりました。

この「META」というのはメタデータ(画像に付随している様々なデータ)の事ではないかと考え、この画像を別途保存しメタデータWindowsエクスプローラーのプロパティからチェックすると著作権の部分に怪しい文字列があり、この文字列をBase64でデコードするとフラグを取り出すことが出来ました。

Antiphase

音声ファイル(wav)が配布されたので、これを午前中のセッションで解説された音声解析ソフトで解析しスペクトログラムで表示すると左右の音声データのうち右の音声データに何やらフラグらしい文字列が隠れているのが読み取れました。自分はこれを力業で読み取って正解してしまったのですが、これは本来の解法ではないので解法の方を紹介しようと思います。

まず音は波ですので逆位相の波を合成すると消滅します。

これを応用し左右の音声データを切り離し、除去したいノイズのみが流れている左側の音声データを加工し逆位相のノイズデータを作成します。

この作成した逆位相のノイズデータを右側のフラグを含む音声データと合成するとノイズが消えてフラグの文字列が出てくるという仕組みです。

正直最初は全然解き方のロジックが分かりませんでしたが解説を聞くと高校物理の範囲でありとても初歩的な問題であるということが分かりました。

しかもこの音声ファイルは後輩君が自分で作成したオリジナル音源とのことで唯々、後輩たちの発想力と技術力に脱帽です。

Big brothers mischief

ブラウザのキャッシュがファイルとして渡され、中身を見た時点で数が多すぎて自分は挫折しました。

解法としては中の多数のファイルをLinuxコマンドのfileコマンドとgrepコマンドで画像のキャッシュのみを抽出します。さらにその中からメタデータが付与されている画像データのみを抽出すると6つに候補が絞られます。その中のメタデータを見ていくとフラグが入っているというわけです。

感想

一応結果は1位でしたが自分としてはまだまだ納得のいかない点も多かったため自分の至らなさを再認識する事が出来ました。

というか後輩たちのすごさにただただ感心しっぱなしだったというのが正直なところです。

そして開催に携わった後輩たちや同輩は本当にお疲れさまでした。

 

 

PythonBootCamp in 長崎に参加しました!

こんにちは。aki*famです。

先日、ミライON図書館(長崎県立長崎図書館・大村市立図書館)で行われたPythonBootCampに参加したのでそれについて書こうと思います。

開催場所

長崎県大村市にあるミライON図書館の2Fにある会議室で行われました。

このミライON図書館ですが2019年1月に完成したばかりとのことで内装もとても綺麗でした。

f:id:aki_fam:20200209153044j:plain

ミライON図書館

残念ながらエントランス付近以外は撮影禁止でした・・・

内容

Pythonを書くための環境構築から解説が始まり、とても詳しくて分かりやすい説明でした。

当初自分はWindowsでおすすめされたAtomを使おうと思ったのですが、よく考えると仮想化環境にPythonがデフォルトでインストールされたUbuntuがあったのでUbuntuVimでコードを書いてました。

PythonはAnacondaやWindowsストアのPythonなど様々なところから入手することが出来ますが、それぞれにデフォルトで付属しているサードパーティー製パッケージなどに微妙に差があるらしく公式インストーラーからのインストールが推奨されているようです。

その後はデータ型やPythonを用いたファイル操作、標準ライブラリやサードパーティー製モジュールの利用法などを教わりました。

最後の課題はWebAPIとスクレイピングでした。

これは実際にとても役に立つものであり自分がPythonを学ぶ過程で必ず習得したい技術でもあったのでとても勉強になりました。

また今回使用されたテキストはCreativeCommonsLisence4.0という著作者を表示すればだれでも自由にテキストを(営利・非営利問わず)利用することができるようになっています。

creativecommons.org

 

懇親会

f:id:aki_fam:20200209153112j:plain

うぐいす家

勉強会の終了後、「うぐいす家」で懇親会が開かれ、参加者のうち10人ほどが参加されました。とても美味しい料理をいただきながら勉強会ではなかなか聞けない貴重なお話を聞くことが出来ました。大学生が参加しているのが珍しいかったようで周りの方からとても親切にしていただき、色々なありがたいお話を聞くことが出来ました。

お話しするのに夢中でお料理の写真を一切撮ってませんでした・・・

最後に

最近は一人で勉強会に参加することにも慣れてきましたが、やはりまだ初対面の方と話す際はしり込みしてしまうことが多いのでこれからの課題として改善していければなと思います。

また、先述の通り今回使用したテキストは条件付きでだれでも利用できるので学内などで今回の内容を基に自分でも勉強会を開催してみようと思います。

ゆるくアジのムニエル作り

こんにちは。aki*famです。

今回は新鮮なアジが手に入ったのでムニエルを作ってみました。

自分で食べるために作ったので結構大雑把です。

 

用意するもの

  • アジ
  • コショウ
  • 小麦粉
  • レモン汁
  • オリーブオイル

ここから先は若干グロ注意です。

 

製作工程

アジを用意します

  1. アジをよく洗い、裏表両方のセイゴをそぎ落とす
    (セイゴは上の写真の丸がついている部分です)


  2. 胸ビレの後ろあたりで頭を切り落とす

    頭を落とした状態
  3. 肛門から頭の切り口に向けて包丁を走らせ腹を開き、内臓を取り出してよく洗う

    お腹を開いて内臓をとった後
  4. アジの中骨のすぐ上に包丁を入れて中骨にそって切っていく(裏も同様に切る)
    これでアジを三枚におろすことができます。
    真ん中の一枚は骨だらけなので使いません(出汁取りには使えますが)


    三枚におろした状態
  5. 内蔵があった場所に大きな骨が結構あるので手で取り除く
    面倒くさい人は切り落としちゃっても大丈夫です(もったいないけど)
  6. 真ん中に中骨の残りがあるのが触ると分かると思うので真ん中で身を半分にして骨を取り除きます。

    骨を全部取り除いた後
  7. それぞれの身を洗い、水分をキッチンペーパーなどで軽く取った後に塩、コショウを適量ふって小麦粉をつけます。

    小麦粉は写真のようにバットの上でつけると無駄が少なくなっておすすめです。

    小麦粉をつけている様子
  8. 小麦粉をつけ終わったらオリーブオイルを熱したフライパンに少量たらし、身を入れて焼いていきます。
    この時にバターを入れると香りがよくなります。

    もうすでに美味しそうですね
  9. 表面がきつね色になったらひっくり返して裏面を焼きます。
    両面がきつね色になったら皿に移します。
    レモン汁を適量かけて完成です。

    完成はこんな感じ

作ってみて

結構簡単に作れた割には料理やってる感があって楽しかったですね。

味付けは間違えると結構悲惨なのでお気をつけください。

これからも色んなことをやっていこうと思います!

 

 

DMZを設けたネットワーク構成まとめ

こんにちは。aki*famです。

今回は自分が授業で習ったことのまとめとして「DMZを設けたネットワーク構成」についてまとめたいと思います。

用語説明

DMZ・・・DeMilitarizedZone(非武装地帯)の略
もともとは軍事用語で協定や条約によって軍事活動が禁止された地域を指す
ここでは二つのファイアウォールの間に設けた外部に公開するサーバを設置するネットワーク上の空間を指す。

 ファイアウォール・・・語源は防火壁を表す英語
ここでは許可された通信以外を遮断(パケットフィルタリング)するネットワーク機器を指す

DMZを設けたネットワーク構成の概要

社内ネットワークと外部(インターネット)の間にファイアウォールを二つ設けその間に外部に向けて公開するサーバ群を配置する

 

利点

  • 公開サーバが攻撃を受けたときに社内ネットワークに被害が及ばない
  • ファイアウォールに適切な設定をすることで外部からの社内ネットワークへのアクセスを遮断することができる
  • 通信を全てDMZ内のプロキシサーバに集約すると通信の監視が容易になる

 

欠点

  • 設定が煩雑になりやすい
  • DMZ内の公開サーバに対する攻撃は防ぐことができない

まとめ

このネットワーク構成は公開サーバ群のセキュリティを高めるものではなく攻撃の対象となりやすい公開サーバを社内ネットワークとは別の場所に設置することで社内ネットワークのセキュリティを高める構成である

遅ればせながら今年の目標を公表します

こんにちは。aki*famです。

 

せっかくブログを作成したので今年の目標を公表しようと思います。

 

きっかけ

某友人が新年に今年の目標をTwitterで公表しているのを見て自分もやってみようと思ったからです。

さらに目標は公表した方がモチベーション維持に効果的だと考えたのでTwitterだけでなくブログにも書くことにしました。

 

今年の目標

 

Twitterに書いてない目標

  • CCNAもしくはCCENTの取得
    ネットワーク分野では大手であるCiscoのベンダー試験であるCCNAもしくはCCENTの取得を目指します。
  • 自炊のレパートリーを増やす
    昨年末から始めた自炊ですが、あまりレパートリーが多くないので増やしていこうと考えています。

 

最後に

完全に自分のための記事となってしまいましたが、ここまで読んでいただきありがとうございました。

今年も頑張るぞー

 

ブログ開設しました

こんにちは。

はじめまして。aki*famと申します。

色々な方からブログは自分の学習のアウトプット先にいいよと言われ始めてみました。

 

継続することが苦手でこの先続くのかもわかりませんが、勉強のことだけでなく自分の趣味や日常で感じたことなどをタイトルの通り雑記帳のように書いていこうかなと考えています。

 

よろしくお願いいたします。