yukuro’s blog

ぽえむ日記

DIVER OSINT CTF Writeup

2024/06/08 12:00 (JST) ~ 06/09 12:00 (JST)に開催されたDIVER OSINT CTFに参加してました

Max6人で参加するCTFなのですが、直前に募集を書けたのもあって集まらず一人でやりました*1

introduction

246

  • 画像から県道246号線のどこか、橋の近くだとわかる
  • 橋あたりをGoogle画像検索で調べると「関門橋」が似た形状だった
  • 橋の位置関係と鉄塔の位置関係、「交差点」と問題で示されていることから、国道9号線と県道246号線が交わる箇所と推定した

office

  • LibreOfficeで開くとサムネイル画像にファイル内容とは異なる箇所を発見
  • 拡張子を.zipに変えて解凍→Thumbnailsフォルダ内の画像にFlagを見つけた

chain

  • ひたすらGoogle画像検索した
  • 鳥貴族 広尾店(現在は閉店済み)が一番それっぽかったので回答

dream

serial

ad_directiare

  • 名前や事務所名などを調べても出てこず、恐らく架空の人物。
  • gmailアドレスは書いてあったのでGHuntを使って調べると、Googleマップの口コミが一軒だけ出てきた。
  • 丁度値段も書いてあったので回答

misc

number

label

  • FromおよびTrack numberは恐らく架空のもの
  • バーコードとQRコードに挟まれたものを検索すると「rMQRコード」というらしいことがわかる
  • 以下のようなツイートを見かけたので公式アプリを入れて読み取ると宛先が入っていたので、郵便番号を調べて回答

geo

imagetrack

chiban

  • 画像内に「ぎょうざの満州」「サンディ」「岡田歯科医院」という文字が見える
  • 他2つは全国区に展開しているので無理そうだったが、「おかだ歯科医院」でもなく「岡田歯科クリニック」でもなく「岡田歯科医院」という歯科医院は全国に少なそうなので一つずつ検索
  • 問題の地番は「地番 検索」と検索して出てきたサイト↓で地番を見つけて回答

crypto

leak

history

promoter

トライしたけど解けなかったもの

wumps

  • 画像のURLを調べると現在は存在しない(招待される必要がある?)サーバーのものだとわかるが、その先に進めず...

osprey2

A half-hour before sunset, approximately 600 people, mostly airmen in uniform, gathered for a brief retreat ceremony on the athletic field outside Yokota’s Samurai Fitness Center.

とあったので、以下のWayを提出したIncorrectのことだった https://www.openstreetmap.org/way/810021665#map=19/35.74200/139.34282

championships

island

paddy

  • 画像の下あたりに国道108号線が通っていることがわかる
  • 上の方に鉄道があることを考慮して地理院地図で見ていくと、佳景山駅近くの水田だということがわかった
  • 「郡司」というからには古めの時代を表してそうだが、それ以上はわからず

youtuber

  • 問題文をそのまま検索すると、以下の動画が出てくる
  • 問題文中にある「捕まった」が車掌に捕まったと仮定すると、博多駅で捕まってそうで動画から「さくら572号」に乗り換えてそうな気がしたがincorrect

mapper

  • Google画像検索すると岐阜駅近くだということがわかる
  • Exif情報を参照するとSpecial Instructionに「FBMD」から始まる文字列が見られたので、推測した位置情報からfacebook or Instagramにある画像を見つけるのか?と思ったがみつからず..

*1:実はお声がけいただいた方がいたのですが、自分がDMに夜まで気づかず.. 大変申し訳ないです(土下座)

父が家にいるときだけインターネットに繋がらなくなる

はじめに

最近、以下のような記事が話題になっていました。

qiita.com

年末年始の時期になって自分の身の回りにも似たような事象があったので綴ります。

現象

  • 自分が使用しているPCがインターネットに繋がらないことがある
    • どうもIPv4のアドレスが取れていないようで、YoutubeAmazonは繋がるがそれ以外のサイトは繋がらない
  • 年末年始になってから起きるようになった
    • 年末年始で何か変わったことと言えば、父の仕事が休みになり一日中家にいるようになった

調査

Windows イベントビューアー で調べる

Windowsの検索窓に「eventvwr」と入れると、イベントビューアーが起動できます。

今回はIPv4のアドレスが掴めてないようだったので、DHCP Client*1のイベントを見てみることにしました。

すると、以下のようなイベントが見つかりました

これを参照すると、何故か自分のPCが192.168.2.12を掴んでしまい、それをルーターDHCPサーバー(192.168.1.1)に問い合わせた挙句にIPアドレスのリリースを拒否されているようでした。

nmapでDHCPサーバーを特定する

問題は「なぜかPCのインターネットが繋がらない」から「なぜか192.168.2.0/24のIPアドレスを掴んでいる」にレベルアップしました。

恐らく192.168.2.0/24内でDHCPサーバーが稼働していると思われ、少なくとも自分はそのようなDHCPサーバーを建てた覚えはないので潰しておきたいです。

nmapのdhcp-discoverを使用するとネットワーク内のDHCPサーバーの在りかを確かめることができます。

nmap.org

以下が実行した結果です

nmap -sU -p 67 --script=dhcp-discover 192.168.2.0/24
Starting Nmap 7.80 ( https://nmap.org ) at 2024-01-04 00:37 ???? (?W???)
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
Nmap scan report for 192.168.2.10
Host is up (0.0010s latency).

PORT   STATE SERVICE
67/udp open  dhcps
| dhcp-discover:
|   DHCP Message Type: DHCPACK
|   Server Identifier: 192.168.2.10
|_  Subnet Mask: 255.255.255.0
MAC Address: 00:23:18:F4:BF:00 (Toshiba)

Nmap scan report for 192.168.2.11
Host is up (0.0011s latency).

PORT   STATE  SERVICE
67/udp closed dhcps
MAC Address: 00:09:B0:F0:00:A4 (Onkyo)

Nmap scan report for 192.168.2.16
Host is up (0.019s latency).

PORT   STATE  SERVICE
67/udp closed dhcps
MAC Address: 9C:53:22:0A:0A:BC (Unknown)

Skipping UDP Scan against 192.168.2.12 because Windows does not support scanning your own machine (localhost) this way.
Nmap scan report for 192.168.2.12
Host is up.

PORT   STATE   SERVICE
67/udp unknown dhcps

Nmap done: 256 IP addresses (4 hosts up) scanned in 6.03 seconds

これを参照すると192.168.2.10でMACアドレス00:23:18:F4:BF:00の機器がDHCPサーバーを建ててるらしいです。

東芝製品の調査

先ほどの調査から、ベンダーはToshibaなので安直に家の中にある東芝製品を調べます。

我が家では東芝製品は実にテレビぐらいなので、ネット上に落ちている説明書とにらめっこしながらMACアドレスを調べます。

その結果、見事先ほどのMACアドレスと同一のものを特定することが出来ました。

原因

原因は父が使用しているテレビでした。

使用していたのは15年程前に発売された機種で、そのうち「LANハードディスク機能」とやらが自前でDHCPサーバーを建てる設定になっていました。

年末年始になり、日中テレビを見る機会が増えたため、併せて機能が有効化されて今回のような事象に至ったようでした。

幸い、現在はテレビとは名ばかりのChromecast with Google TV*2専用機となっているため、「LANハードディスク機能」をオフにして解決しました。

おわりに

インターネットに繋がらなくなる現象は解決できました。

ただ、IPセグメント越しにIPアドレスを拾ってきたり、自PC以外の機器(iPhoneとか)は何ともなかったため「もしかして...おま環?」と思いながら調査してました。

おま環だったら申し訳ないです。。

*1:アプリケーションとサービスログ > Microsoft > Windows > DHCP-Clientにあります

*2:https://store.google.com/jp/product/chromecast_google_tv?hl=ja

TsukuCTF2023 Writeup

TsukuCTF2023

TsukuCTF23に参加してOSINT問ばかり解いていました。以下はWriteupです

castle

  • Googleレンズで検索したところ、太陽公園の白鳥城であることが判明
  • 広場のような箇所を指定して回答

eruption

location_for_what

airport

  • 以前行ったことのある伊丹空港っぽいと思って入力したらまさかの正解でした

green_bridge

  • Googleレンズで検索したところ、「もみじ谷大橋」付近であることが判明
  • そこに至る一本道を適当に推測して回答

perfume

mab

tsukushi_estate

travel_with_tsukushi

kiZOU

  • 画像右側のガラスに「au style NAHA」と記載されているのを発見
  • 入っているビル(?)はパレットくもじというそうで、「パレットくもじ シーサー」とか調べた
  • シーサー下の文章にフォーカスしている画像がなかったので、頑張って拡大して人物名を回答

big_statue

  • 書いてある中国語(?)を手書き漢字などを駆使して検索
  • インスタアカウントに像が写っている投稿( https://www.instagram.com/p/CtOTvh8sRP-/ )を発見
  • Upper Serangoonにあるらしいので「Lexus Durian King - Upper Serangoon」で調べて出てきた場所を回答

TrainWindow

CtrlAltPrtSc

  • 電卓は恐らくブラフで、その背景に何があるかを当てる問題(だと思う)
  • 上部分にYoutubeのロゴらしき箇所があったので回答

laser

Yuki

  • 温泉街なのに橋が目の前にあるなんてと思い、Googleレンズで橋付近を検索したところ https://4travel.jp/travelogue/11811657 がヒット
  • 記事から定山渓ビューホテルだとわかるので回答

tsukushi_no_kuni

free_rider

river

  • Googleレンズで検索すると鹿児島県の中洲通という場所だとわかる
  • ストリートビューで中洲通沿いを調べていって回答

broken display

  • 左端にある照明(?)を含めてGoogleレンズで検索すると https://nishi2.jp/205234/ がヒット
  • 記事中に「西宮」「ガーデンズ」とあるので検索して回答

stickers

  • 画像奥のバンに「熱海」の文字があるので「熱海 東屋」で画像検索
  • 画像を見ると「熱海七湯 河原湯」がそれっぽかったので回答

grass_court

fiction

終わりに

わからない問題もありましたがOSINT問はやはり楽しいなと再確認しました。

OSINT問以外でも答えられるように精進します...

Sensecap Indicator D1Sに書き込んでみる

はじめに

SenseCAP Indicator D1S — スイッチサイエンス

ESP32およびRP2040のデュアルMCUを備えた4インチのタッチスクリーン液晶です。Wi-Fi/BLE通信やGroveコネクタにより各種センサーや周辺機器に接続でき、またESP32およびRP2040のオープンソース・エコシステムにより多くのアプリケーションに対応できます。3種の環境センサーが搭載され、環境モニターにも最適です。

構成

公式WikiによるとESP32とRP240の両方が使用されている

wiki.seeedstudio.com

SoCによって司るコンポーネントが異なり、それぞれに書き込む必要がある

  • ESP32
    • 4インチスクリーン
    • Wifi
    • BLE
    • ボタン
  • RP2040
    • tVOCセンサ(I2C経由)
    • CO2センサ(I2C経由)
    • Grove(I2C)
    • Micro SD
    • Grove(ADC)
    • ブザー

ESP32への書き込み

wiki.seeedstudio.com

基本的にはWikiの通りに進めればよいのだが、注意点が記されている

Understanding the Need for Patching: LVGL, operates within the SenseCAP ESP32 SDK at a clock frequency of 120 MHz. However, to prevent encountering the "FLASH and PSRAM Mode configuration are not supported" error, it's crucial to apply a specific patch.

This patch is designed to optimize the RGB LCD's performance using the PSRAM Octal 120 MHz feature. It's specifically intended for use with the release/v5.0 branch of ESP-IDF. Please avoid using a version higher than v5.0.

特に「It's specifically intended for use with the release/v5.0 branch」とあるが、ESP-IDFのrelease/v5.0ブランチは常に更新され続けているため、最新のブランチを持ってきてもうまく行かない

そのため、v5.0.1用のofflineインストーラーを使用する必要がある

github.com

これを用いれば何も問題なくgit applyすることでパッチを適用できる

RP2040への書き込み

wiki.seeedstudio.com

こちらは先ほどとは打って変わってWikiの指示通りにすればすんなり書き込めた

COMポートの選択

ESP32とRP2040、どちらも別々の書き込み口を持っているので当然ながらCOMポートも別になる。自分がWindows機で試したところ、以下のように表示された

  • USB シリアル デバイス (COM4)
    • RP2040の場合、こちらを使用
  • USB-SERIAL CH340 (COM5)
    • ESP32の場合、こちらを使用

おわりに・感想

M5Stackのような非常にリッチな環境とは異なり、組込み系をやってる感を得られる

次はLVGLを用いた画面の構成・RP2040とESP32間の通信をやってみる

docker-composeでValheim + Grafanaなゲームサーバーを作る

docker-composeでValheimのゲームサーバー + Grafanaによる監視を構成したのでメモ

Valheimとは

store.steampowered.com

Valheimは北欧神話ライクなオープンワールドサバイバルクラフトゲームです。

デフォルトでは1~10人のマルチプレイに対応しています。

Valheimゲームサーバーを作る

友人(最大4人程度)とマルチで遊ぶためにValheimの専用サーバーを建てることにしました。

専用サーバーの構築にはSteam CLIのインストール等が必要ですが、幸いにも有志の方によってdocker imageが公開されています。

github.com

Deploymentの項目に様々な導入方法がありますが、今回は同時接続の人数が多くて4人程度だったのでdocker-composeを使用した方法を選択しました

VPSの選定

ゲームサーバーにはIndigo VPSを選択しました。

選定した理由は以下のとおりです

  • 料金が安い
      • 使用するdocker imageのSystem requirementsの項目には「4コアCPU & 8GBを推奨」との記載がありますが、他VPSだと月7000円ほどになり、最大4人で遊ぶには高額すぎると感じました

     

Indigo VPSの評判に関してSSH接続が不安定とのレビューも散見されましたが、特に運用に関して大きく困った点はありませんでした。*1

Grafana Cloud

サーバーのリソース監視やアラート等も出したかったのでGrafana(とPrometheus)による監視を入れることにしました。

Grafanaというとオンプレで動かすことが一般的なように思えますが、クラウド版を使ってみたかったのでGrafana Cloudを使用することにしました。

grafana.com

また、Grafana Cloudのサイトには丁寧にdocker-composeによる構築方法も記載されていたため、それに従って各種設定をしました。

grafana.com

docker-compose.yml

上記のことを実行したdocker-compose.ymlならびにその他設定ファイルは以下のリポジトリにまとめてあります。

github.com

余談

Indigo VPSを契約する前、RAMは4GBで十分だろうと、さくらのVPSの4GBプランを契約しましたが、8GBにスケールアップする際に高額 & スケールダウン出来ないのでIndigo VPSに乗り換えました。

契約してしまったさくらのVPSは最低利用期間が3ヶ月なので、何に使おうかな...

*1:WebUIから登録できる鍵がRSA鍵しか受け付けない等の細かな不満点はありましたが...

ターミナルライクでイケてるHugoのTheme作ってみた

この記事はStatic Site Generator Advent Calendar 202120日*1の記事です

作ったもの

shellという名前のHugoのThemeを作りました

github.com

ベースとなるのは7月ぐらいに完成していたのですが、ちょくちょくアップデートをかけたものが一応ひと段落しました

イケてるポイント

①Goghから取得可能なカラースキーム

ターミナルライクなので配色(カラースキーム)を変更できます

7月の時点では、テーマ内に用意された数種類からしか選べなかったのですが、この度 Mayccoll/Gogh のカラースキームに対応しました

Mayccoll/Goghとは

github.com

GoghはGnome等のターミナルの配色を変更できるツールです

変更できる配色はかなり多く、以下のページにあるだけ選択肢があります

mayccoll.github.io

これらの配色はjson形式で配布されており、他のアプリケーション等で使うことができます


shellではHugoの機能を使ってこのjsonを取得し、config.tomlにテーマ名を書くだけで使えるようにしてあります

f:id:kuroblo039:20211220184349p:plain

なので、豊富なカラースキームを自分のWebサイトに適用できます

②忠実に再現したターミナルっぽさ

本物のターミナルっぽさ*2を追求しました

下記のgif画像のように、コマンドの部分のみにタイピングエフェクトがかかるようにし、それ以外は即表示されるようにしました

f:id:kuroblo039:20211220173541g:plain

また、レスポンシブにも対応しています*3

最後に

ターミナルっぽい見た目のThemeが欲しいなと思って作ってみました

豊富なカラースキームが使えるようになり、よりターミナルっぽさが増したかと思います

README.mdも極力丁寧にかいてるつもりなので、ぜひ使ってみてもらえたら幸いです

もしよければGitHubリポジトリStarでも付けてもらえると嬉しいです*4

*1:去年のアドカレは割と栄えていたのにどうして...

*2:ぽいだけでありWebシェルの類ではありません

*3:その過程でCSSを若干嫌いになりました

*4:単純な人間なのでモチベが倍増します

easyなCanSat作ってみた(と反省)

先日、easyなCanSatであるeasyCansatを作ってIoTLTで発表してきました

発表スライド

CanSatとは

f:id:kuroblo039:20211108023054p:plain

CanSatとは、教育目的で製作される模擬人工衛星をいいます

「模擬」であるため、実際に宇宙に打ち上げるわけではありません

CanSatの難しさ

f:id:kuroblo039:20211108023237p:plain

このCanSatですが、製作に回路設計やプログラミングの知識等が必要であり、単に「宇宙に興味がある」人に 簡単に 作れるよ!とは勧めがたいのが現状です

何がeasyか

f:id:kuroblo039:20211108023709p:plain

そこでM5Stackを中心にしたCanSatを作れば "簡単に" なるのではないかと考えました

具体的には以下の通りです

  • M5Stackの使用
    • 回路設計の知識が不要
    • (UIFlowを使用すれば)プログラミングの知識が不要
  • 組み立てガイド等のドキュメントを製作し、作るための情報に容易にアクセス cansat.unknownsky.net

コロナ禍での共同開発

下記は僕のCanSat製作に関する反省日記です

このeasyCansatですが、元々は所属サークルで作ろうと言い出したものなのですが、コロナ禍等の紆余曲折を経て出来上がりました

以下が簡単な経緯なので、コロナ禍のサークル活動(と自分の協調性のなさ)をみて今後の参考にしてもらえたらと思います

2020年5月:製作開始

私が所属していたのはハイブリットロケットを飛ばすことを主な目的としたサークルなのですが

ロケットを飛ばすことが主目的なため、CanSatの製作は下火にあり、作ったことのある先輩方も学年が大きく違う & コロナ禍で会えないので製作にまつわる技術はロステクの状態にありました。

そこで、自団体のCanSatをつくり、後輩に知見を残したいねということで私を含む4人程でCanSatの製作を始めました

2020年6月~7月:仕様の決定

ロステクしていたとはいえ、仕様決定の部分はロケットと共通する部分があり、割と順調に仕様が決定していきました

また、2020年8月に開催されるであろう能代宇宙イベントに出場したいねということで、出場がとりあえずの目標になりました

2020年8月:イベントの延期

目標にしていた能代宇宙イベントが11月に延期されることが発表されました

ただ、製作スケジュールの遅延やハイブリッドロケットの打上の都合上、延期後であっても出場は難しく、出場は諦めることにしました

この製作スケジュールの遅延は主に作業環境の不備が関係しており、以下のようなことがありました

  • 活動場所(大学)がコロナの影響で入構制限がかけられており、気軽に集まることができない
  • 工作設備(工具、3Dプリンター等)にアクセスできない
  • 試作品を実際に触れず、ZoomのMTGWebカメラ越しに見せるしかない
  • したがって、「設計→実物を作ってみる→修正」のアプローチが取りづらく、実物が出来にくい

2020年10月~11月:再燃?

目標にしていた大会への出場は諦めたものの、別の大会への出場を目標とし、活動をしていました

しかしながら、大会の審査が迫るなか、出場させるCanSatとして実際に組みあがったものが出来ていないことから出場を断念することにしました

代わりに、初心に立ち返って後輩に知見を残すためのCanSatを作ることにしました

2020年12月:自由

大会の期日や規格に縛られないCanSatのアイデア出しが始まりました

個人的には期日に追われていたころより楽しいなと感じていました

2021年1月~:僕の暴走

CanSatのアイデア出しは割と順調に進んでいました

しかしながら、前述のとおり、作業環境の不備による影響でCanSatの実物は依然として出来づらい(共有しづらい)状況にありました

幸いにも僕の自宅には3Dプリンタがあったり、M5Stackが転がっていたりしたので、僕は以前にも増して自宅での作業を増やしていきました

自宅での作業はだんだんとエスカレートし、最終的には、機体に関することも電装に関することも一人で決めたり作ったりするようになりました

本来は他のメンバーに「この設計を思いついたんだけど、どう?」と相談すべきだったのですが、

相談した先の状況(試作品を共有する)がボトルネックになっている以上、

相談するより先に一人で試して一人で実装、そして出来上がったものを他のメンバーに見せるといったループが自分の中で構築されていきました

2021年3月:空中分解

製作に関することが僕一人で完結するような形になり、他のメンバーへのタスクが次第になくなっていったことから、定期的に開かれていたMTGは次第に開かれなくなっていきました

連絡ツールとして使用していたSlackも、僕の一方的な報告のみになり、実質的な空中分解の状態に陥りました

~2021年10月:easyCansat完成

そんなこんなで空中分解したのち、僕はモチベーションが絶え絶えになりながらもCanSatを完成させました

ただ、当初の「後輩に知見を残す」という目的よりかは、空中分解して中途半端になったプロジェクトを終わらせるという目的の方が大きくなっていました

どうするべきだったか

どうするべきだったかに関して、僕は僕の中で結論を出せていません

実際に集まることが難しく、共用の工作機械が使えず、実際の製作物とその出来具合を共有することが難しい中、停滞する進捗に身を任せることが正解だったとは思えません

しかしながら、タスクを皆に振り分け、共同かつ円満にプロジェクトを進めていくことも(工作機械を使えない等の理由も相まって)できませんでした

まとめ

結果的には完成したCanSatですが、コロナ禍の難しさがあった中で製作したことを知っていただければ幸いです

宇宙・ロケット界隈以外では知名度の低いCanSatですが、このeasyCansatが少しでも知るきっかけになればと思います