読者です 読者をやめる 読者になる 読者になる

Pythonスクリプトに対してユニットテストするときのディレクトリ構成

フレームワークを使って開発しているとユニットテスト用にディレクトリが用意されていることもあるが、単体のPythonスクリプトに対してユニットテストを書くときはディレクトリ構成を考える必要がある。やはりユニットテストとそれ以外は違うディレクトリに…

近況

nao: No-meaning Assembly Omitter for IDA proを公開したところ、リポジトリめっちゃふぁぼられたり、unicornの作者にコメントされたり、unicornのshowcaseに載せてもらえたりして高まった。 ツイートされた! w0w, finally someone used Unicorn emulator …

Shuffler: Fast and Deployable Continuous Code Re-Randomization の紹介

はじめに 情報セキュリティ系論文紹介 Advent Calendar 2016 - Adventarの23日目の記事として、Shuffler: Fast and Deployable Continuous Code Re-Randomization | USENIXの紹介をやっていく。今日は12月23日であり、明日はクリスマス・イブである。 これは…

Railsを5.0にupdateした時のメモ

方法 Gemfileを編集する。Railsのversionを最新版に指定してbundle update。 gem 'rails', '5.0.0.1' # そのときの最新版を指定してくれ! Rails5に対応していないversionを指定されているgemがあったりするのでエラーメッセージに応じてversion指定を抜く必…

SSPのエラーメッセージからのinfomation leak

SSPのエラーメッセージとは SSP(stack-smashing protection)とはスタック上にあるcanaryと呼ばれる値を配置し、それが書き換えられたか否かでstack overflowしたかどうかを判定するセキュリティ機構である。 stack overflowが起こるコードを実行してみる。 #…

デーモンの仕組み

デーモンはバックグラウンドで動き、terminalからインタラクティブに操作されることがないプロセスである。起動時に開始し、rootユーザやapache、postfixなどの特権ユーザにより動かされる。systemdで操作するcrondとかsshdとかのことである。 デーモンは一…

DMCAに調査目的でのリバースエンジニアリングが例外に追加されそう

DMCA updated – toaster penetration testing gets green light in America • The Registerによると、アメリカの法律であるDMCA(デジタルミレニアム著作権法)の例外に、調査目的でのリバースエンジニアリング等のセキュリティテストが2年以内に追加されるよ…

IDAにカラースキーマ(.clr)を適用する

メニューバーの Options から Colors を選択すると以下の画面が出てくる。 importボタンを押してファイルを選択すれば終わり。 おすすめカラースキーマはeugeii/ida-consonance: Consonance, a dark color scheme for IDA.。 完全にやり方を忘れていたので備…

CODE BLUE 2016とAV TOKYOに行った。

去年はカスペルスキー大先生の学生支援枠で参加していたCODE BLUEに学生スタッフとして参加した。今年のスタッフはスーツ着なくてよくなっていたり、スタッフ数が倍になっていたりで、去年のスタッフのみなさんに比べてかなり楽になっていた。相変わらず異常…

サイバーエージェントの長期インターンに行ってきた

8/16から9/21までサイバーエージェントの長期インターンに行っていたので感想を書く。 某インターン以外でも最高の夏は過ごせる!! 面接 インフラかサーバサイドやりたいけど、インフラは自信ないとか言ってたら、「OpenStackって知ってる?」って聞かれて「…

androidでpwnできる環境を作ってみる

ndk-buildにより作成したプログラムをandroid上で待ち受けさせる。arm環境でpwnするときに使える。 準備 プログラムを用意する ソース /* test.c */ # include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; } ビルドスクリプト Application.mkを</stdio.h>…

社会...

給料日 給料日なのにまだ振り込まれてないのでこれはキテますよ— 友利たけまる (@tkmru) 2016年8月25日 なんか今日は口座確認しただけでつかれた— 友利たけまる (@tkmru) 2016年8月25日 最悪レベルで人権がなくて給料が振り込まれない(2度目)— 友利たけまる …

goのバイナリを簡単に読みたい

先日の goのバイナリをちょっとまじめに読んでみる、strippedなgoのバイナリを読み解くでは気合いでgoのバイナリを読んでいった。goのバイナリの解析の難しいところは、strippedだった場合に静的リンクされたライブラリの1000個以上の関数がどの関数なのか分…

gccでlibc抜きでコンパイルを通す

Hello from a libc-free world! (Part 1) (Ksplice Blog) がおもしろかったのでやっていく。 libcありのとき コード よくあるhello worldのコード $ cat hello_with_libc.c # include <stdio.h> int main() { printf("Hello World\n"); return 0; } コンパイル $ gcc </stdio.h>…

Unbreakable Enterprise Product Activationをz3pyを使って解いてみる

はじめに z3pyにkatagaitai勉強会#6 - 関西|easyで入門したので、練習がてらGoogle CTF 2016のUnbreakable Enterprise Product Activationを解いた。 この問題を人力で解くのは難しく、競技期間中は解けなかったが、z3pyを使えば楽に解くことができた。 実行…

IoTセキュリティハッキングコンテスト神戸で大洗女子学園は廃校になりました

IoTセキュリティハッキングコンテスト神戸2016 | Kobe Digital Labo 神戸デジタル・ラボ に大洗女子学園を代表して参加してきました。IoTセキュリティハッキングコンテストというのは、要はIoTに関係がある問題が出るCTFですね。 様子 高校の廃校を回避する…

strippedなgoのバイナリを読み解く

この前はふつーのgoのバイナリを読んだ。今回はstrippedなgoのバイナリを読んでいく。 環境 $ uname -a Linux ubuntu 3.19.0-58-generic #64~14.04.1-Ubuntu SMP Fri Mar 18 19:05:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modu…

医療セキュリティハッキングコンテスト神戸2016に行ってきた

医療セキュリティハッキングコンテストとは 実際に運用されている医療系ソフトウェアを合法的に叩き潰せて、賞金も出る最高のイベントです。学校の先輩達とチームで出場してました。医療セキュリティハッキングコンテスト神戸2016 | Kobe Digital Labo 神戸…

goのバイナリをちょっとまじめに読んでみる

goのバイナリをちょっとまじめに読んだのでメモ。 環境 $ uname -a Linux ubuntu 3.19.0-58-generic #64~14.04.1-Ubuntu SMP Fri Mar 18 19:05:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID:…

log2timelineの使い方

この記事は1年半前から下書きのままになっていたものである。 log2timelineとは タイムライン解析というファイルシステムのタイムスタンプ情報を元に、時系列順に痕跡を解析していく手法がある。 log2timelineはそのためのフレームワークである。plasoという…

Unicorn、usercornを使ってみる

Unicornとは この記事での Unicorn は、エミュレータの方であり、決してRackサーバの方ではない。 Unicornは軽量でマルチプラットフォーム、マルチアーキテクチャな CPU emulator frameworkである。UnicornはNguyen Anh Quynh氏が中心となって開発されている…

急にCSSがくずれた話

大分前に作ったchrome拡張のCSSがくずれていた。favurl - Chrome Web Store確認してみたらpreタグに対しての word-wrap: break-word; が効いていなかった。 html - How do I wrap text in a pre tag? - Stack Overflowによると、CSS3ではwhite-space: pre-wr…

セキュリティ・キャンプ・フォーラムで公開処刑されてきた

セキュリティ・キャンプ・フォーラムとは セキュリティ・キャンプの卒業生の同窓会的なイベントです。 「セキュリティ・キャンプフォーラム2016」開催のご案内:IPA 独立行政法人 情報処理推進機構 経緯 今年からセキュリティ・キャンプ・フォーラムにセキュ…

Rubyでparse.com経由でPush通知をする

parse.comとは MBaaS(Mobile Backend as a Service)の一種で、簡単にAndroidやIOSにPush通知できるサービス。https://www.parse.com/ RubyでPush通知を送る gem Rubyからはparse-ruby-clientというgemを使うことで楽に使える。しかし、ドキュメントが分かり…

pysandboxの話

Python Advent Calendar 2015の15日目担当の たけまる(@tkmru)です。 今日はSECCON 2015 九州大会で見かけたpysandboxの話をしようと思います。 pysandboxとは Pythonで作られたsandboxのひとつで、2010年から2013年まで開発が行われていましたが、設計上の…

slackが☀︎を読んで死んで落ちた話

slack 1.1.8 on Marvericksが☀︎を読んで死んだ。起動してchannelを読むとすぐに落ちてしまう。 slackを再インストールしても、アカウント情報やどのチャンネルを開いていたか等のデータを保持しつづけるので、直らない。~/Library/Containers/com.tinyspeck.…

CODE BLUEに行ってきた。

CODE BLUE 2015に行ってきた。 世界トップクラスの専門家による情報セキュリティ国際会議「CODE BLUE(コードブルー)」 ああいうカンファレンスは初めてで、スーツ率が意外と高くてビビってたけど、セキュキャンとか勉強会とかで知り合った人が結構いて助か…

CTF for ビギナーズ 2015 滋賀 と 奈良

CTF for ビギナーズ 2015 滋賀にはスタッフとして、CTF for ビギナーズ 2015 奈良ではやったことのないA&D形式のCTFをやるということで参加者として参加してきました。 奈良の帰りに同族のたけまる号に会った。 CTF for ビギナーズ 2015 奈良ではビキナーで…

setup.pyの操作まとめ

はじめに setup.pyはつくったモジュールの情報を書いておくファイル。 モジュールの名前やバージョン、作者、ライセンスなどなど。 たまにしか使わないし忘れるのでメモ。 操作いろいろ モジュールのインストール python setup.py install long_description…

Cuckoo Sandboxを構築した

Cuckoo Sandboxとは Cuckoo SandboxとはOSSのマルウェアの自動解析システムで動的解析に使うことができる。使用にあたっては以下の記事が参考になりそう。www.ffri.jp 構築 最初はOS X上に構築しようとしてたが、yaraのエラーなどが出て消耗したのでやめて、…

Trend Micro CTF Asia Pacific & Japan 2015 Writeup

CTF

今回は大和セキュリティのみなさんとわいわい参加してきた。atnd.org普段、1人か2人でCTFやってるので大人数でわいわい解くと楽しくてよかった。 オールナイトで参加すると、寝る人にはミーティングルームを1人1部屋使わせてもらえて最高だった。 会場を提供…

Pythonから外部コマンドを実行する

関数がいくつかあってややこしいのでメモ。 非推奨の方法 osモジュールや、commandsモジュールを使う方法は古いので非推奨となっている。 osモジュールを使う osモジュールのsystem()を使う。この関数は標準 C 関数のsystem() を使って実装されている。戻り…

CSAW CTF 2015 writeup

CTF

Trivia ググって調べたり、google先生が出してくれる候補を見れば答えが分かる。 Trivia 1 This family of malware has gained notoriety after anti-virus and threat intelligence companies claimed that it was being used by several Chinese military …

IDA freeのIDA View-Aのアドレスとasm命令、オペランドの表示が途中で切れるときの対処法

タイトルだけでは状況がよく分からない感じだが、とあるファイルを読み込んだら、IDA View-Aが以下の画像のようになってしまった。Graph viewのスクショしかとってなかったが、Text viewではアドレスとasm命令、オペランドの表示が途中で切れるようになって…

asmでスマートに文字列の長さを算出する

asm

文字列の長さを算出 以下のasmコード(x64)で、文字列の長さを取得することができる。 mov eax, 0x0 mov rcx, 0xffffffffffffffff repnz scas al, BYTE PTR es:[rdi] not rcx lea rcx, [rcx - 1] // dec rcxでも可x86がいい人は適宜読みかえて欲しい。 解説 r…

セキュリティ・キャンプ 全国大会 2015 行ってきた!!

8/11 から 8/15 までセキュリティ・キャンプ 全国大会 2015 に行ってました。 セキュリティ・キャンプとは 宿泊費、参加費無料でガチプロの講師の講義が受けれるとてもナイスなイベントです。主に解析トラックの講義を受けてきました。 セキュリティ・キャン…

Pythonの外部入力をunpickle化することによる脆弱性を用いたexploitを書いた

背景 @inaz2氏のツイートでこの脆弱性を知り、exploitを書くに至った。デストラクタ等が自動実行される。ちなみにPythonのpickleにも同様の脆弱性がある https://t.co/Xkw3KBE3Es / PHPのunserialize関数に外部由来の値を処理させると脆弱性の原因になる htt…

承認情報です

一時的にホットエントリ入りした!!VMの検知について - 脱力系日記承認だ!!ちなみにあの記事はセキュキャン応募用紙の設問10の解答の一部だったりします。

VMの検知について

マルウェアを解析する際にはVMで解析を行うことが多いので、VMを検知してアンチデバッキングするマルウェアが存在する。それらが用いる手法についてまとめた。 1. TSCを用いる TSC(IA32_TIME_STAMP_COUNTER_MSR: TSC_MSR)とは、CPUクロックごとに加算される6…

/dev/null さんと出会った

いい夢を見た。しゃべりかけても反応してくれない子がいて、悲しんでたら/dev/nullさんだったっていう夢を見た— babyたけまる (@tkmru) 2015, 6月 4

シンボルを削ることによるmain関数のアンチデバッキング

CTFでよく見かけるmain関数のシンボルを削ることによるmain関数のアンチデバッキングについて。 まず、以下のコードをgccでコンパイルして、main関数のシンボルを確かめる。 #include <stdio.h> int main() { printf("test\n"); } $ objdump -d a.out|grep main 00000</stdio.h>…

Exploit Exercises Protostar stack5 writeup

問題のコード Protostar Stack5 - Exploit Exercises #include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <string.h> int main(int argc, char **argv) { char buffer[64]; gets(buffer); } stack overflow で shellをとればいいっぽい。 writeup gdbでリターンアドレスと、gets</string.h></stdio.h></unistd.h></stdlib.h>…

Exploit Exercises Protostar stack0-4 writeup

Exploit ExercisesのProtostarのstack0-4のwriteup。需要なさそう... stack0 Protostar Stack0 - Exploit Exercises問題のコード #include <stdlib.h> #include <unistd.h> #include <stdio.h> int main(int argc, char **argv) { volatile int modified; char buffer[64]; modified = 0; </stdio.h></unistd.h></stdlib.h>…

Exploit Exercises Nebula Level00-06 writeup

Exploit Exercisesとは exploit寄りの問題がいっぱい載っているサイトで、問題が入ったVMが配布されている。https://exploit-exercises.comNebula, Protostar, Fusion, Main Sequence, Cloud Roadの5つのコースがあって、今回はNebulaをlevel00-06まで解いた…

GDB アンチデバッギング

GDB アンチデバッギングについて調べたのでメモ。 ptraceを使う検知法とファイルディスクリプタの増加による検知法の2通りの方法を発見したけど、後者は古いバージョンでしか動かないっぽい。 ptraceを使って検知 ptraceとはプロセス追跡をするシステムコ…

Tcpreplayのインストールにつまづいた

Tcpreplayをmacにインストールするのに、つまづいたのでメモ。ふつーにbrewでインストールするも、Library not loadedとか言われる。 tcprewriteはTcpreplayに入ってるツールの1つ。 $ brew install tcprelay $ tcprewrite dyld: Library not loaded: /usr/l…

favurlが窓の杜で紹介された

favurlという以前つくったchrome拡張が窓の杜で紹介されました。【レビュー】Twitterでお気に入り追加した“あとで読むURL”を自動で開けるChrome拡張「favurl」 - 窓の杜www.forest.impress.co.jp やったね!! エイプリルフールネタではなかった!!

Icon Resizerていうwebアプリつくった

Icon Resizerていうアイコンをリサイズするwebアプリをつくった。Icon Resizerドロップした画像からスマホアプリとかブラウザの拡張を開発するのに必要な複数のサイズのアイコンを一気に生成してくれるっていうやつ。 スマホアプリとかブラウザの拡張作る時…

pixiv 2015 SPRING BOOT CAMP行ってきた!!

pixiv 2015 SPRING BOOT CAMPとは 3月2日(月)~3月13日(金) に行われたピクシブ社のインターンシップのことです。 お賃金と交通費、宿泊費が支給されるとてもイケイケでナイスなイベントです。pixiv 2015 SPRING BOOT CAMP エントリー - ピクシブ株式会社 採…

アキバで絵の押し売りにあった話

押し売り pic.twitter.com/nqAVBbONnS— たけまる (@tkmru) February 7, 2015 で油断してたら絵の押し売りにあった— たけまる (@tkmru) February 7, 2015 にじみ出る人の良さを隠しきれないオタクなので秋葉に来るたびに絵の押し売りされてる— たけまる (@tk…