今回は、Windows10 がインストールされた PC に対して、WSL(Windows Subsystem for Linux)をインストールし、さらに、Ubuntu 24.04 をインストールしてみたいと思います。 それでは、やっていきます。
AI、機械学習、最適化、Pythonなどについて、技術的な内容や、ツールの作成/紹介を書いています。また、はてなブログのブログをカスタマイズした方法についても、詳しく書いています。
C言語、アセンブラでシェルを起動するプログラムを作る(ARM)
前回 は、K&Rのmalloc関数とfree関数を動かして理解しました。 今回は、Exploitコードの部品となりそうな C言語からシェルを起動するプログラムを実装してみたいと思います。 それでは、やっていきます。
前回 は、CpawCTF の続きである CpawCTF2 を開始しました。 今回は、基礎力を付けるためにも、malloc関数とfree関数を理解していきます。脆弱性を見つけた後、実際の侵入に繋げるときに、malloc関数の理解が求められる場合があります(Use After Freeとか)。 実際に使われている glibc の malloc、free を読もうとしたのですが、すぐに挫折した(笑)ので、まずは、基本となる K&R の malloc関数、free関数から理解していきたいと思います。 それでは、やっていきます。
CpawCTF2にチャレンジします(この記事はクリア状況を随時更新します)
前回 は、Python の Scapy を使って、ネットワークプログラミングをやってみました。 今回は、以前 やってみた CpawCTF の続きである CpawCTF2 を始めたいと思います。 それでは、やっていきます。 ※2024/8/25時点:200ポイントで、580位 / 2571人です
Gitサーバ、GitHub、SSHにパスワードを入力せずに接続する方法
社内の Gitサーバや、社内の Linuxサーバ、GitHub に SSH で接続するときなど、ユーザ名とパスワードを入力しなければならないと思います。もちろん、必要に応じて、パスワードは必要だと思いますが、ローカルな Gitサーバに接続するのに、そんなに厳密に運用する必要はない場合もありますよね。 特に、Git の場合、push するたびに、ユーザ名とパスワードを入力するのは、とても面倒です。 ということで、今回は、ユーザ名とパスワードを入力しなくてもいい方法を書きます。いつも忘れてしまって、Web をウロウロしてしまうので(笑)。 一応、ここに書くことは、セキュリティ的に問題ない場合に限っ…
前回 は、hashcat を使って、簡単なパスワードを解析して、hashcat の使い方を詳細に知って、GPU を使って、どれぐらいの時間でパスワードをクラックできるかを考えてみました。 今回は、Python の Scapy を使って、ネットワークプログラミングをやりたいと思います。 それでは、やっていきます。
hashcatの使い方とGPUで実行したときの時間を見積もってみる
前回 は、CpawCTF で、CTF に入門しました。 今回は、以前(John the Ripperでshadowファイルのパスワードを解読してみる - 土日の勉強ノート)にやったパスワードの解読の続きをやりたいと思います。 このときは、John the Ripper というオフラインパスワード解析ツールを使ったのですが、同じようなツールとして、「hashcat」というものがあります。 今回は、hashcat を使ってみます。 それでは、やっていきます。
VPNライフハック・裏ワザ完全ガイド!安全でお得なVPN活用法を徹底解説!
※この記事には PR が含まれます セキュリティ強化以外で、どのようにVPNが活用できるのかを十分に知っている人は多くありません。 通信セキュリティ強化に役立つVPNは、ほかにもさまざまなライフハック・裏ワザ的な活用方法があります。 今回の記事では、VPNの基本的な仕組み・ライフハックとしての活用方法・有料VPNと無料VPNの違いをまとめました。 本記事を読めばVPNの活用法を理解し、より安全で快適なインターネットライフを送るためのノウハウを習得できます。 VPNを上手に活用して通信セキュリティを向上させつつ、より豊かなオンライン体験を手に入れましょう。
前回 までは、以前 に行った OWASP ZAP の自動脆弱性スキャンの結果について、リスク高、中について、分析と対策をやってきました。 今回は、CTF(Capture The Flag)に入門してみたいと思います。 CTF とは、セキュリティにおける専門知識や技術を使って、隠されている Flag(旗、答え、文字列)を見つける競技です。競技と言っても、チュートリアル的な入門レベルから、賞金が設定される本格的な大会まであるようです。 国内で運営されている CpawCTF というサイトがあります。アカウントを作ると、日本語で、無料で、自分のペースで、CTF に挑戦できます。今回は、実際に Cpaw…
OWASP ZAPの自動スキャン結果の分析と対策:リスク中すべて
「ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習」と「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践」(通称:徳丸本)を参考に、セキュリティの勉強を進めています。 前回は、以前 に行った OWASP ZAP の自動脆弱性スキャンの結果の「オープンリダイレクト」について、分析と対策までやりました。 今回は、リスク中の内容を見ていきます。 それでは、やっていきます。
OWASP ZAPの自動スキャン結果の分析と対策:オープンリダイレクト
「ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習」と「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践」(通称:徳丸本)を参考に、セキュリティの勉強を進めています。 前回は、以前 に行った OWASP ZAP の自動脆弱性スキャンの結果の「SQLインジェクション」について、分析と対策までやりました。 今回は、オープンリダイレクトを見ていきます。 それでは、やっていきます。
OWASP ZAPの自動スキャン結果の分析と対策:SQLインジェクション
「ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習」と「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践」(通称:徳丸本)を参考に、セキュリティの勉強を進めています。 前回は、以前 に行った OWASP ZAP の自動脆弱性スキャンの結果の「クロスサイトスクリプティング(XSS)」について、分析と対策までやりました。 今回は、SQLインジェクションを見ていきます。 それでは、やっていきます。
OWASP ZAPの自動スキャン結果の分析と対策:クロスサイトスクリプティング(XSS)
「ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習」と「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践」(通称:徳丸本)を参考に、セキュリティの勉強を進めています。 前回は、以前 に行った OWASP ZAP の自動脆弱性スキャンの結果の「パストラバーサル」について、分析と対策までやりました。 今回は、クロスサイトスクリプティング(XSS)を見ていきます。 それでは、やっていきます。
OWASP ZAPの自動スキャン結果の分析と対策:パストラバーサル
「ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習」と「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践」(通称:徳丸本)を参考に、セキュリティの勉強を進めています。 前回 は、セッション管理の理解と、実際になりすましを試したのと、PHP のセッションID を URL に埋め込まない対策を行いました。 今回は、前々回 に行った OWASP ZAP の自動脆弱性スキャンの結果の「パストラバーサル」について、分析と可能なら対策までやっていきたいと思います。 それでは、やっていきます。
徳丸本:セッション管理を理解してセッションID漏洩で成りすましを試す
「ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習」と「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践」(通称:徳丸本)を参考に、セキュリティの勉強を進めています。 今回は、徳丸本の 3章の「Webセキュリティの基礎」について、実際にやっていきたいと思います。 それでは、やっていきます。
「ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習」と「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践」(通称:徳丸本)を参考に、セキュリティの勉強を進めています。 今回は、徳丸本の 7章の「脆弱性診断入門」の OWASP ZAP の自動脆弱性スキャンについて、実際にやっていきたいと思います。 それでは、やっていきます。
Vue.jsのソースコードを確認する(ビルド後のソースも見てみる)
「ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習」と「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践」(通称:徳丸本)を参考に、セキュリティの勉強を進めています。 その上で必要な知識として、今回は、よく使われている Webアプリケーションのフレームワークである Vue.js を理解しています。 前回 は、Vue 2.x と Vue 3.x について、環境構築、プロジェクト作成、開発用サーバで動作確認、ビルド、ビルド後の生成物で動作確認まで行いました。 今回は、ファイル構成、各種ソースコードの内容の確認、ビルド後の生成物の内容…
Vue.jsの2.xと3.xをVue CLIを使って動かしてみる(ビルドも行う)
「ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習」と「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践」(通称:徳丸本)を参考に、セキュリティの勉強を進めています。 その上で必要な知識として、今回は、Webアプリケーションを簡単に構築できる Vue.js を理解しようと思います。 少し前に、Pythonベースの Flask(WSGI+Werkzeug+Jinja2)をやりましたが、今回の Vue.js は JavaScriptベースです。たくさんの言語が出てきて、フロントエンド開発は大変です。そのセキュリティを学ぶには、それら…
これまでは、「ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習」を参考にさせてもらって、理解を進めてきました。今回からは、並行して「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践」(通称:徳丸本)を参考に、勉強を進めていきたいと思います。 この徳丸本とは、脆弱性のある仮想マシンを準備してくれていて(VirtualBox と Docker が準備されている)、その仮想マシンに対して、実際に攻撃を体験することで、脆弱性の理解を深めることができるというものです。 今回は、徳丸本の実習環境の構築を進めていきます。 それでは、やっていき…
前回 は、Flask で実装した Pythonスクリプトを Cython化してみました。 今回は、参考書にしている「ハッキング・ラボのつくりかた 完全版 仮想環境におけるハッカー体験学習」で解説されていた shadowファイルについて、実際の shadowファイルを使って、内容を理解し、解析までやってみたいと思います。 それでは、やっていきます。
前回 は、簡単な Python の Webアプリケーションとして、WSGI を使った、wsgiref、Werkzeug、Flask を動かしてみました。 今回は、Flask で使った Python ファイルを Cython化してみたいと思います。Cython化するメリットは、Pythonの高速化が大きいですが、セキュリティ的に分かりにくいソースコードになるという点もあるようです。 それでは、やっていきます。
「ブログリーダー」を活用して、daisukeさんをフォローしませんか?
今回は、Windows10 がインストールされた PC に対して、WSL(Windows Subsystem for Linux)をインストールし、さらに、Ubuntu 24.04 をインストールしてみたいと思います。 それでは、やっていきます。
前回 は、GitHub が開発した CodeQL(セキュリティ脆弱性を検出するオープンソースのツール)を、ローカル(CodeQL CLI )で使ってみました。 しかし、UAF(Use After Free)が入ったソースコードを準備しましたが、標準クエリでは、UAF を検出できませんでした。 今回は、そのあたりを深掘りして、UAF を検知させるところまでやってみたいと思います。 それでは、やっていきます。
今回は、GitHub が開発し、また、GitHub で使われている CodeQL という、セキュリティ脆弱性を検出するオープンソースのツール(コード分析エンジン)を使ってみたいと思います。 VSCode(Visual Studio Code)に、CodeQL をインストールして使われる場合が多いかもしれませんが、ここでは、まずは、ローカルで使っていこうと思います(CodeQL CLI)。 それでは、やっていきます。
前回 は、ROS2 のユーザノードのトピックの実装をやってみました。 今回は、ROS2 の中身を見ていきたいと思います。 それでは、やっていきます。
前回 は、ROS2 のインストールと、CUI、GUI のいくつかの動作確認を行いました。 今回は、自分でノード(ユーザアプリ)を作ってみたいと思います。これにより、既存のノードを読めるようになると思います。 それでは、やっていきます。
ROS2 に関する書籍を入手したので、今回は、ROS2 について調べていきたいと思います。 ROS1 は、少しやっていたのですが、ROS2 は初めてです。 それでは、やっていきます。
最近、ソースコードを読むことが多いので、便利そうなツールを探しています。 しかし、なかなか、新しいよく出来たツールはありません。やはり、昔ながらのツールがいいのかなと思ったりしてます。GNU Global は、昔、サクラエディタで使えるようになった時期があって、少しの間使っていましたが、ctags で十分かな、と思って、いつの間にか使わなくなっていました。 あと、コールツリー(コールグラフ)も、いいツールが無いか、探して見ましたが、結局、cflow になりました。 GNU Global と cflow を連携させて、HTML化するのは初めて知りました。こちらも紹介したいと思います。 それでは、…
前回 から、「解題pwnable セキュリティコンテストに挑戦しよう! 技術の泉シリーズ (技術の泉シリーズ(NextPublishing))」を読み進めています。 今回は、第5章の「rot13(書式文字列攻撃)」を読んでいきたいと思います。 それでは、やっていきます。
前回 から、「解題pwnable セキュリティコンテストに挑戦しよう! 技術の泉シリーズ (技術の泉シリーズ(NextPublishing))」を読み進めています。 今回は、第4章の「login3(スタックバッファオーバーフロー3)」を読んでいきたいと思います。 それでは、やっていきます。
前回 から、「解題pwnable セキュリティコンテストに挑戦しよう! 技術の泉シリーズ (技術の泉シリーズ(NextPublishing))」を読み進めています。 今回は、第3章の「login2(スタックバッファオーバーフロー2)」を読んでいきたいと思います。 それでは、やっていきます。
前回 から、「解題pwnable セキュリティコンテストに挑戦しよう! 技術の泉シリーズ (技術の泉シリーズ(NextPublishing))」を読み進めています。 今回は、第2章の「login1(スタックバッファオーバーフロー1)」を読んでいきたいと思います。 それでは、やっていきます。
前回 までは、「詳解セキュリティコンテスト: CTFで学ぶ脆弱性攻略の技術 Compass Booksシリーズ」を読み進めてきました。ようやく読み終わったので、今回からは、「解題pwnable セキュリティコンテストに挑戦しよう! 技術の泉シリーズ (技術の泉シリーズ(NextPublishing))」を読んでいきます。 全体で、140ページぐらいで、第1章から第12章まであります。 今回は、第1章の「準備」を読んでいきたいと思います。 それでは、やっていきます。
pwntools を使ったエクスプロイトコードをデバッグする(gdb.debug( bin_file ))とき、別ウィンドウが立ち上がって、GDB が起動します。Ubuntu では、うまく別ウィンドウが起動してくれるのですが、Parrot OS 6.1 では、なぜか、別ウィンドウが起動してくれません。 いろいろ情報を探したり、ChatGPT に聞いたりしたところ、context の terminal を明示的に設定する必要がある、ということが分かりました。 書籍の「詳解セキュリティコンテスト: CTFで学ぶ脆弱性攻略の技術 Compass Booksシリーズ」の提供してくれているエクスプロイト…
前回 は、引き続き、「詳解セキュリティコンテスト: CTFで学ぶ脆弱性攻略の技術 Compass Booksシリーズ」を読み進めました。前回は、今回の「ヒープベースエクスプロイト」を飛ばして、35章の「仕様に起因する脆弱性」でした。 今回は、34章の「ヒープベースエクスプロイト」を読んでいきたいと思います。だいぶ長いので、しばらくかかると思います。 それでは、やっていきます。
現在、「詳解セキュリティコンテスト: CTFで学ぶ脆弱性攻略の技術 Compass Booksシリーズ」の 34章の「ヒープベースエクスプロイト」を読み進めています。34章では、glibc-2.31 を使うことを前提に解説がされています。出来れば、書籍と同じ環境を準備したいところです。 しかし、glibc-2.31 は Ubuntu 20.04 のシステムで使われていた?そうなのですが、現在は、少し古いバージョンの glibc です。現在、Parrot OS 6.1 を使ってますが、glibc のバージョンは、2.36 でした。 そこで、この記事では、システムの glibc とは異なるバージョ…
前回 は、引き続き、「詳解セキュリティコンテスト: CTFで学ぶ脆弱性攻略の技術 Compass Booksシリーズ」を読み進めました。 前回は、32章の「共有ライブラリと関数呼び出し」でした。34章の「ヒープベースエクスプロイト」は、次回に回して、今回は、35章の「仕様に起因する脆弱性」を読んでいきたいと思います。 35章の「仕様に起因する脆弱性」では、書式文字列攻撃を取り扱っています。picoCTF 2025 の Binary Exploitation で、書式文字列攻撃の問題が出たのですが、エクスプロイトコードをうまく実装できなかったので、こちらを先に読んでいきたいと思います。 それでは…
本日(2025/4/2)、Googleアドセンスの収益化が確認できました!! はてなブログを無料版で開設してから、約1年で達成できました。 いつもアクセスして頂いている方には、本当に感謝です 🙇 今日は、その報告と、この1年を簡単に振り返ってみたいと思います。 この記事が、Googleアドセンスを目指してる方の参考になれば嬉しいです。
最近、いくつかの USB に関する本を読んだので、理解した内容についてまとめておこうと思います。 それでは、やっていきます。
今回は、povo 2.0 の「通話+データ」の契約を実際にやってみたので、その手順をまとめておきたいと思います。povo 2.0 は、月々の基本料が 0円で、今持ってるスマホとは別に、新しい電話番号を取得することが出来ます。 必要になったときに、トッピングと呼ばれるデータや通話が出来るオプションを購入することで使うことが出来ます。ただし、契約してから、180日間以内にトッピングを購入する必要があります。また、最後にトッピングを購入してから、180日間以内に再度、トッピングを購入する必要があります。 つまり、半年に 1回はトッピングを購入する必要があります。たくさんの種類のトッピングがありますが…
前回 から、picoCTF 2025 にリアルタイムで参戦しています。 picoCTF 2025 が 3/7 から始まっていて、昨日(3/17)に終了しました。今回は、リアルタイムで参戦できました。終了するまでは、解法や、フラグを公開することは禁止されていましたので、順番にその内容を公開していきます。 今回は、Binary Exploitation です。 それでは、やっていきます。
前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox+U-Boot)で、initramfs を追加しました。 これまで、今回は、initramfsを追加していきます。 それでは、やっていきます。
前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox)で、U-Boot を追加しました。 今回は、initramfsを追加していきます。 それでは、やっていきます。
前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox)で、U-Boot を追加して、U-Boot の起動まで確認しました。 今回は、U-Boot の設定をして、カーネル、ルートファイルシステムを起動していきます。 それでは、やっていきます。
前々回 と 前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox)を動かしました。 今回は、Buildroot の別のオプションで Linux を構築します。 それでは、やっていきます。
前回 は、QEMU で Arm の組み込み Linux(Buildroot+BusyBox)を動かしました。 今回は、前回の起動について、カーネルのパラメータなど、可能な限り、調査してみたいと思います。 それでは、やっていきます。
今回は、QEMU で Arm の組み込み Linux を動かしていきたいと思います。 これまで、STM32 を動かしていたのは、本家の QEMU ではなく、xPackプロジェクトの QEMU Arm でした。 今回は、Linux なので、本家の QEMU をインストールして、開発環境の構築と、簡単なものを動かしてみたいと思います。 それでは、やっていきます。
今回は、Git BASH の紹介と、カスタマイズについて説明します。 Git BASH とは、Git for Windows をインストールすると一緒にインストールされるツールです。 簡単に言うと、Windows で、Linux のようなコンソールが使えるようになります。 Windows のシステムに影響するような操作は、コマンドプロンプトか、PowerShell を使った方がいいと思います。 以前は、だいぶ苦労して、Cygwin をインストールする必要がありましたが、日常の操作ぐらいなら Git BASH で十分だと思います。
前回 は、JSON ファイルを扱う方法をまとめました。 今回は、JSONファイルを扱うCUIツール「jq」について紹介します。
今回は、JSON ファイルを扱う方法を書きます。 巨大な JSON ファイルを扱うのは、なかなか大変です。 そこで、効率よく扱うための方法を調べたので、実際にやっていきます。
今回は、シェルスクリプトのテンプレートを作りました。 いつもシェルスクリプトを作るときは、前に作ったコードをコピーして使うことが多いのですが、前のコードが見つからないときに困ることがあったので、ブログに書いておこうと思います。 それではやっていきます!
前回 は、JGraphT というグラフ理論のライブラリを Gradle プロジェクトで実行して、GraphViz で可視化するところまでやりました。 今回は、前回の補足として、サンプルソースの解説と、可視化のソースを完成させようと思います。 それではやっていきます!
前回 は、前々回 に作った Gradle プロジェクトを、IntelliJ を使ってデバッグするところをやりました。 今回は、その Gradle プロジェクトを使って、JGraphT というグラフ理論のライブラリを Java で使ってみます。 JGraphT で簡単なサンプルを動かして、GraphViz で可視化するところまでやりたいと思います。 JGraphT には、Python バインディングもあるようです。 それではやっていきます!
前回は、リバースエンジニアリングツールである Ghidra を使って、STM32 の ELFファイルを解析してみました。 今回も、書籍「リバースエンジニアリングツールGhidra実践ガイド (Compass Booksシリーズ)」を読みながら、さらに、STM32 の ELFファイルの解析を進めていきます。 それでは、やっていきます。
今回から、リバースエンジニアリングツールである Ghidra を使っていきます。 書籍「リバースエンジニアリングツールGhidra実践ガイド (Compass Booksシリーズ)」を読みながら進めていきます。 それでは、やっていきます。
Renode という QEMU に似たオープンソースのエミュレータを試しています。 前回 は、STM32 のサンプルアプリを対象として、GDB でデバッグする代わりに、VSCode を使ってデバッグするところまで行いました。 今回は、STM32 のサンプルアプリではなく、サンプルアプリが動いている Renode 自体をデバッグする環境を構築していきます。 それでは、やっていきます。
Renode という QEMU に似たオープンソースのエミュレータを試しています。 前回 は、バイナリファイルから構築した ELFファイルが動かない原因を解析して、対策を行い、無事に動作するところまで行いました。 今回は、VSCode でデバッグする環境を構築していきます。 それでは、やっていきます。
Renode という QEMU に似たオープンソースのエミュレータを試しています。 前回 は、バイナリファイルが動かない原因を解析しましたが、分かりませんでした。 もう少し深く解析するために、今回は、Renode をソースからビルドして、問題個所の特定と対策までやっていきます。 それでは、やっていきます。
前々回から、Renode という QEMU に似たオープンソースのエミュレータを試しています。 前回は、GDB で接続するところをやりましたが、バイナリファイルではうまく動きませんでした。 この記事では、バイナリファイルで動かない原因を調べて、その記録となります。 古いバージョンを使ったり、デバッグログを出して確認してみましたが、原因は分かりませんでした。後で役立つかもしれないので、記事として投稿しますが、有益な情報は無いと思います。
前回から、Renode という QEMU に似たオープンソースのエミュレータを試してます。 前回は、インストールとSTM32のサンプルソースの実行までをやりました。 今回は、GDB で接続して、デバッグしてみます。 それでは、やっていきます。
今回から、Renode というオープンソースの組込みデバイスのエミュレータを試していきます。 簡単に言うと、QEMU と同じ位置付けの OSS です。QEMU よりも、組込みデバイスのサポートが充実しているようです。 それでは、やっていきます。