サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
www.ninjastars-net.com
代表の森島です。 近年、簡易的に扱えるチートツールが出回ることによってデバッガを用いたメモリチートは随分とカジュアルに行えるような環境になってきました。 gdbやstraceのようなデバッガが実際にどういう仕組みで動いているか疑問に思った方は少なからず、いらっしゃると思います。 実際、このようなデバッガはptraceと呼ばれるデバッグ用システムコールをベースにして作られています。 こういったデバッガの仕組みをより多くの方に知っていただきたいと思い、このような形で皆様に共有いたします。 また実際に市場に出回っているゲームに対して、チート行為を行うと問題ですので今回は別にデモ用の自作ゲームを用意しました。 今回の動作環境はUbuntu18.04を想定しております。 game.c #include<stdio.h> int money=100; int main(void) { int play
株式会社Ninjastars取締役の齊藤です。 皆様もC言語やC++で開発しているときなどに一度はこの実行時エラーを見たことがあるのではないでしょうか? 今回はSegmentation Fault(以下セグフォ)がどのようにして発生するのかを詳細に書いていこうと思います。 1.セグフォとは 割り当てられた仮想メモリ領域(セグメント)に読み込み(r)または書き込み(w)、実行の権限(x)がない状態でアクセスしたときに起こるエラーのことを指します。 では、なぜセグフォが必要なのでしょうか? それはメモリに展開されているプロセスを保護し、OS全体に影響を及ぼさないためです。 2.セグフォの原因を探す手順 プログラムを用意したのでそれを例に原因を探していきましょう。 まず今回のプログラムは標準入力で10byteのbufferに文字データを格納するものです。 標準入力する際、gets関数を使っている
株式会社Ninjastars セキュリティエンジニア:ミナト 今回はHackTheBoxと呼ばれるプラットフォームにて、ペネトレーションテストやOffensive Securityを学ぶことができるCTF「Machines」のWriteupを書きたいと思います。 HackTheBoxとは、サイバーセキュリティトレーニングのためのオンラインプラットフォームであり、ペネトレーションテストだけでなくサイバーセキュリティに関する様々なスキルを身に付けることが可能です。 app.hackthebox.com 今回はペネトレーションテストについて学ぶために、「Machines」の中の1つである「Ambassador」のWriteupを書きます。 「Ambassador」は初心者~中級者向けのmachineであり、本記事にてペネトレーションテストを知らないエンジニアの方に、ペネトレーションテストのイメー
株式会社Ninjastarsセキュリティエンジニアの一瀬です。 今日はセキュリティの話ではなく、最近流行のRPAにも使われる技術についてお話させていただこうと思います。 対象のOSはWindowsです。 情報セキュリティだけでなく読者の皆様に幅広い情報を提供したく、今回この記事を書かせていただきます。 環境 Windows10 64bit 今回やること WIndows付属のタスクマネージャーの調査・自動化 ウィンドウ構造の調査 比較的知られたウィンドウ構造解析ツールとしてVisualStudio付属のspy++があります。 タスクマネージャーをspy++で解析spy++は優秀なツールですが、対象のアプリケーションのウィンドウのパーツがウィンドウハンドルを所持していないと情報の取得・操作が実現できません。 こういった時に出番となるのがUIAutomationという機構になります。またその解析
2023-05-26 Fridaを使用してOWASPが提供するAndroid用のCTFを解く Android CTF Ghidra Reversing Frida 株式会社Ninjastars セキュリティエンジニア:ツヨシ今回はOWASPが提供するAndroid用のCTF「Android UnCrackable L2」のWriteupを書きたいと思います。 問題は以下のサイトで公開されています。 mas.owasp.org Androidのルート化検出を回避し、secret string… 2023-04-27 HackTheBoxにてペネトレーションテストを学ぶ ペネトレーションテスト CTF 株式会社Ninjastars セキュリティエンジニア:ミナト今回はHackTheBoxと呼ばれるプラットフォームにて、ペネトレーションテストやOffensive Securityを学ぶことができ
株式会社Ninjastars セキュリティエンジニア:吉村碧海 CTFのpwnやreversing問題ではIDAやGhidra等の解析ツールで実行バイナリを逆アセンブルし、プログラムの内部動作を解析する技術(リバースエンジニアリング技術)が求められます。 今回は皆様にリバースエンジニアリング技術への理解を深めてもらうために、簡単なソースコードとそれをコンパイルした実行バイナリを逆アセンブルし、その際の結果と機械的な動作を解説していきたいと思います。 解説の前に少しだけ自己紹介をさせていただきます。 私はNinjastarsにてリバースエンジニアリングやプログラミングを学びながらお仕事をさせて頂いております。 今回初めてブログ投稿の任を任されました。 まだまだ若輩者ですが、私の解説を是非御一読頂ければ幸いでございます。 今回使用するソフト IDA free gdb-peda 今回は途中からg
株式会社Ninjastars セキュリティエンジニア:一瀬健二郎 今回は弊社の紹介を兼ねて脆弱性診断用に作成しているツール(Android用)のお話をさせて頂きます。 内容はタイトルの通りですが、プロセス解析機能をAPI化してPC側からアクセスして操作するタイプとなります。 オリジナルのツールを作成することで得られる学びや楽しさを感じ取っていただければ幸いです。 ※あくまで紹介であり、ツールを公開する予定もありません。 Go言語でREST形式のサーバを実装する。※オリジナルのThe Go gopher(Gopherくん)は、Renée Frenchによってデザインされました。 実装 対象OS:Android サーバ:GO、C CGOを使い、一部C言語で実装しました。 Goでのルーティング機能にはgorilla/muxを使いました。 出来たもの APIの例 端末のURLとポート番号を指定し、
株式会社Ninjastars セキュリティエンジニア:一瀬健二郎 今回はAndroid ARM64でビルドされたcrackmeを対象に、lldbとlldb-serverを用いて動的解析を行います。 lldbの使い方を学べばiOSアプリケーションの解析にも応用でき、ARM64の理解はスマホアプリの脆弱性診断などでも重要です。 次世代の高機能デバッガであるlldbの使い方を学び診断に役立てましょう。 ※本稿ではARM64については簡単に触れる程度にします。 lldbでスマホアプリを診断しよう! 環境 今回はlldbとlldb-serverを用いてリモートデバッグを行います。 lldbの都合上ホストOSはUbuntuを利用しますが、これは仮想マシン上でも可能です。 またAndroid実機が必要となりますが、root化している必要はありません。 Host: Ubuntu 20.04LTS(VMWa
株式会社Ninjastars セキュリティエンジニア:一瀬健二郎 今回はWindowsでのアンチデバッグとして入門的な手法であるint3によるデバッガ検出についてお話しさせていただきます。 実際に本質的な部分だけ取り出した原始的なデバッガを作成し、何故int3でデバッガを検出できるのか解説いたします。 アンチデバッグとしての実効性はほぼありませんが、デバッガの原理の理解の手助けとなれば幸いです。 int3アンチデバッグを理解しよう! 環境 Windows10 Visual Studio C++開発環境 今回やること int3アンチデバッグを実装したプログラムを簡易デバッガでアタッチして何故検出されるのか考えます。 導入 まずint3.cppとdebugger.cppをVisualStudioでビルドしてください。 プログラムの説明 int3.exe 1.起動すると自身のプロセスIDを出力。
株式会社Ninjastarsセキュリティエンジニアの一瀬です。 今日はAndroidアプリケーションでの他プロセスに対するメモリアクセス等について書かせていただきます。 Androidネイティブの情報は少ないので、この記事が読者の皆様の知見になればと思います。 前提 AndroidStudioセットアップ済み ndk-buildができる状態 環境 rootedな実機 or AndroidEmulator 今回やること等 gdb等のツールなどは使わず、実際にコンパイルしたプログラムで他プロセスのメモリにアクセスし書き換えることを行います。 自作ゲーム:チートチャレンジ - 株式会社Ninjastars 技術研究部 自作ゲーム:チートチャレンジ2 - 株式会社Ninjastars 技術研究部 上記記事はUbuntu18.04の場合でしたが、今回はAndroidで行います。 基本的にAndroi
株式会社Ninjastars 取締役:齊藤和輝 ランサムウェアについて ランサムウェアとはマルウェアの一種であり、 感染すると攻撃対象のマシン(PC/スマートフォン)上でのユーザー操作が制限されてしまいます。 現在、ランサムウェアは暗号化タイプと非暗号化タイプの2種類に分類できます。 暗号化ランサムウェアでは攻撃対象の外部記憶装置のデータを暗号化し、ファイルへのアクセスを制限します。 それに対して、非暗号化ランサムウェアではポルノ画像やグロ画像を表示し続けることでシステムへのアクセスを制限してきます。 どちらのタイプであってもPCやファイルを人質にとり、制限を解除したければ金を払えという風に金銭を要求します。 今回の記事では「Reversing.Kr」のRansomwareを題材にランサムウェアについて解説していきます。 Reversing.Krとはリバースエンジニアリングの技術を学ぶため
株式会社Ninjastars セキュリティエンジニア:一瀬健二郎 今回は2018年に開かれたHarekaze CTF 2018のReversingの問題「15 Puzzle」について記載します。 この問題を通して.NET製アプリケーションがどのような構造を持っているか解析してみたいと思います。 解析ツールとしてCheat Engineとdnspyを利用します。 またCheat Engineについてはツールの詳細な使い方は省略します。 製作者のst98様のwriteup Harekaze CTF 2018 で出題した問題 (Obfuscated Password Checker, Sokosoko Secure Uploader, 15 Puzzle, Logger) の解説 - st98 の日記帳 問題について dnspyでデコンパイル->改変->再コンパイルを行い実行すると、実行プログラ
株式会社Ninjastarsセキュリティエンジニアの一瀬です。 今日は前回の記事でも取り上げたFridaについてWindowsでの利用方法を解説させていただきたいと思います。 Fridaとは何か FridaはJavaScriptを用いて各種アプリケーションを調査・解析できる動的解析ツールです。 対象OSとしてWindows,MacOS,GNU/Linux,iOS,Android等といった幅広いプラットフォームで使用することができます。 AndroidやiOS端末内にサーバーを立ててホストOSからアタッチして解析するなども可能です。 Fridaのセットアップ Fridaのインストールはpip(Pythonのパッケージインストール用コマンド)を用いて以下のように簡単にできます。 「pip install frida」 今回やること www.frida.re この記事ではFridaのウェブサイト
株式会社Ninjastars 取締役:齊藤和輝 今回の記事では株式会社Ninjastarsが提供しているリバースエンジニアリング対策の1つである実行ファイルの難読化についてご紹介したいと思います。 リバースエンジニアリング対策における難読化とは、ソフトウェアの内部的な動作の構造・データなどを人間が理解しにくいように加工することです。 難読化することでGhidraやIDA Proなどの解析ツールでソフトウェアが逆アセンブルされたとしても、攻撃の起点となる脆弱性を発見しにくくなります。 難読化方式について 一般的に難読化方式は3種類に分類できます。 1.ライブラリ方式されている 2.パッカー方式 3.コンパイラ方式 これらはそれぞれ利点と欠点があり、ソフトウェアに応じて使い分ける必要があります。 1.ライブラリ方式 難読化を施す関数を定義したライブラリを作成し、関数を呼び出すことでソフトウェア
株式会社Ninjastars 取締役:齊藤和輝 今回の記事では、難読化方式の1つであるパッカー方式についてより詳細な部分までご紹介いたします。 難読化方式の概要は前回の記事をご参考に。 www.ninjastars-net.com 動作環境 Windows10 64bit版 パッカー方式について 多くのマルウェアはリバースエンジニアリング対策としてパッカーでパッキングされています。 パッカーはリバースエンジニアリング対策として有効な手段であるが、必ずしも万能な対策とは言い難いと言えます。 強度の高いパッカーもあれば強度の低いパッカーも存在します。 有名なパッカーを使用しているのであれば専用のアンパッキングツールも存在する可能性が高く、自然に強度は低くなります。 また、パッカーはアンパッキングルーチンの過程で多くのAPIの呼び出しが必要になり、プログラムの本処理よりもパッカーの処理の方が重く
株式会社Ninjastars セキュリティエンジニア:一瀬健二郎 このページでは弊社で行っている脆弱性診断技術の教育資料を公開しています。 Reversing編ではCTFや脆弱性診断においてのリバーシング技術の基本をお教えできればと思います。 またGhidraのチュートリアルとしても利用できるようにしております。 Ghidraについてはこちらを参照。 NSA 米国国家安全保障局 リバースエンジニアリングツール Ghidraを使う - 株式会社Ninjastars 技術研究部 参考問題 Hack.lu CTF 2013のRoboAuthという問題を使います。 http://shell-storm.org/repo/CTF/Hacklu-2013/Reversing/RoboAuth-150/ 使用ツール Ghidra x64dbg x64dbgはオープンソースのWindows用の高機能デバッ
株式会社Ninastars 取締役:齊藤和輝 前回に引き続きReversing編ではCTFや脆弱性診断においてのリバーシング技術の基本をお教えします。 今回の記事ではどういった思考でアセンブリを読んでいくのかということを詳細に書いていきます。 またGhidraのチュートリアルとしても利用できるようにしています。 前回記事 ninjastars.hatenablog.com 参考問題集 今回はeagle0wl氏のcrackmeシリーズのcrkme04という問題を使用します。 リンク先からeagle0wl's crackme VOL.01 ver1.02をクリックしてダウンロードしてください。 www.mysys.org 参考サイト アセンブリ言語の基本知識が掲載されている。 programmer.main.jp 使用ツール Ghidra NSA(米国国家安全保障局)が公開した高機能なバイナリ
株式会社Ninjastarsセキュリティエンジニアの一瀬です。 今日はAndroidアプリケーションでのLD_PRELOAD攻撃とその対策について書かせていただきます。 チート行為などにおいてはLD_PRELOADを利用した攻撃は一般的ではありませんが、存在を知らないとリスク対策もできないのでご紹介いたします。 前提 Android Studioセットアップ済み ndk-buildができる状態 環境 rootedな実機 or Android Emulator 今回やること LD_PRELOADで動的ライブラリ関数を上書きする | Siguniang's Blog まず上記の方の実験用プログラムをAndroidで動かすことを目標とします。 また今回はその対策手法についてもご説明させていただきます。 セットアップ手順 適当に作成したフォルダにjniフォルダを作り下記のAndroid.mk、Ap
株式会社Ninjastars セキュリティエンジニア:一瀬健二郎 今回の記事では弊社で行っているリバースエンジニアリング技術の教育資料を公開しています。 Reversing編ではCTFや脆弱性診断においてのリバーシング技術の基本をお教えできればと思います。 またGhidraのチュートリアルとしても利用できるようにしております。 Ghidraについてはこちらをご参照ください。 NSA 米国国家安全保障局 リバースエンジニアリングツール Ghidraを使う - 株式会社Ninjastars 技術研究部 参考問題集 今回はeagle0wl氏のcrackmeシリーズのcrkme01という問題を使用します。 リンク先からeagle0wl's crackme VOL.01 ver1.02をクリックしてダウンロードしてください。 このシリーズは順を追ってReversingについて学ぶことができ、非常に参
株式会社Ninjastars セキュリティエンジニア:一瀬健二郎 このページでは弊社で行っている脆弱性診断技術の教育資料を公開しています。 Reversing編ではCTFや脆弱性診断においてのリバーシング技術の基本をお教えできればと思います。 今回はバイナリ解析ツールとしてGhidraではなくIDAを用います。 何故GhidraではなくIDAかは考察に記載しています。 また今回は解説を記事ではなく動画で行いました。 RoboAuthに挑戦! 参考問題 Hack.lu CTF 2013のRoboAuthという問題を使います。 下記リンクからRoboAuth.exeをダウンロードしてください。 shell-storm | Repository 使用ツール IDA 下記からFreeware版をダウンロードできます。 www.hex-rays.com x64dbg x64dbgはオープンソースのW
株式会社Ninjastarsセキュリティエンジニアの一瀬健二郎です。 2019年3月6日に公開されたNSA製のリバースエンジニアリングツールである「Ghidra」についてのページとなります。 情報は適時更新していきます。 ghidra-sre.org 対象OS Windows,Mac,Linuxで動作します。 Tips 発音 Frequently asked questions · NationalSecurityAgency/ghidra Wiki · GitHub Gee-druh. The G sounds like the G in goto, great, good, graph, and GitHub. The emphasis goes on the first syllable. 開発言語 Java等でコーディング。 ソースコード github.com デバッガ機能はあるか
このページを最初にブックマークしてみませんか?
『株式会社Ninjastars 技術系ブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く