procfs の hidepid オプションについて調べた

<h2 id="profs-の-hidepid-オプションの値">profs の <code>hidepid</code> オプションの値</h2> <p>procfs のマウントオプションに <code>hidepid</code> というオプションがあることを知った。<br> <code>man</code> で確認すると 0~3 の値を取るらしい。</p> <pre tabindex="0"...

wazuh の Fluentd forwarder を使って agent の任意のファイルを td-agent に送る

<p>wazuh agent が入っているホストの任意のファイルを td-agent に送る方法をメモしておく。</p> <p>単純にログを収集するのであればホストに td-agent を入れればいいのだが、例えば管理している全てのホストにおいて、特定のログを収集したい場合、全部に td-agent を入れるのは面倒くさい。<br> (wazuh agent を全部入れるのも面倒じゃないか!という...

複数の Pod でコマンドを実行できる kubectl-multi-exec を作った

<p>Kubernetes で遊んでいると、指定した Pod 全てで同じコマンドを実行したいというケースがありました。<br> <code>kubectl exec -l app=test</code> のような感じで label を指定して実行できれば良いのですが、今はできません。</p> <ul> <li><a href="https://github.com/kubernetes/kuber...

fakeobj を利用して任意アドレスの読み書きを行う

<p><a href="https://blog.ssrf.in/post/webkit-memory-corrupution/">前回</a>は Memory Corrupution まで行ったので、今回は任意のアドレスを書き換えるまで行う。</p> <hr> <p>任意アドレスを行うにあたって、次のようなメモリレイアウトを用意する。</p> <p><img src="https://pbs.t...

fakeobj primitive を使った Memory Corrupution

<p><a href="https://blog.ssrf.in/post/webkit-jsc-exploit-analysis/">前回の記事</a> では <code>addrof</code> という関数を作り、メモリリークを行った。<br> <a href="http://www.phrack.org/papers/attacking_javascript_engines.html">こ...

Webkit の JIT の仕組みと JIT を利用した攻撃と防御について調べた

<p>WebKit で使われている JIT 周りについて調べたのでメモ。このあたりの知識全然ないまま手探りでリソースを探して解釈した結果を書いているので、間違っていたらご指摘ください。</p> <hr> <p>JSC の execution engine は次の4つの最適化レベルがある。これらは実行時に使い分けられる。</p> <ul> <li>LLInt</li> <li>Baseline JI...

WebKit の JSObject の Butterfly アドレスについて調べた

<p>WebKit の JSObject について調べていたのでメモ。</p> <h2 id="準備">準備</h2> <p>まずはリポジトリを clone する。</p> <pre tabindex="0"><code>$ ghq get git://git.webkit.org/WebKit.git </code></pre><p>debug 付きで JavaScriptCore のみをビルド...

Method Overwrite をリバースプロキシ環境下で悪用する

<p><code>X-HTTP-Method-Override</code> ヘッダは知っている人も多いと思います。<br> いわゆる Method Override と呼ばれるもので <code>POST</code> で他のメソッドを代替するときなどに使用されます。</p> <p>例えば次のようなリクエストを送ると POST ではなく PUT として処理されます。</p> <pre tabin...

Helm Chart で生成された manifests をテストする

<p>chart のテストは <a href="https://helm.sh/docs/topics/chart_tests/#helm">https://helm.sh/docs/topics/chart_tests/#helm</a> にあるように、実際に <code>helm install</code> する必要があります。<br> そうではなくて、単純に吐き出される manifests...