2015-01-01から1年間の記事一覧

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年まで開発が行われていましたが、設計上の…

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

タイトルだけでは状況がよく分からない感じだが、とあるファイルを読み込んだら、Graph Viewが以下の画像のようになってしまっていた。 表示設定がおかしくなってしまったのだと思ったが、どこが悪いか特定できず、再インストールしてみたが直らなかった。再…

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化することによる脆弱性を検証した

背景 @inaz2氏のツイートでこの脆弱性を知り、exploitを書くに至った。 unpickleによる脆弱性 Pythonには、listやdictなどのオブジェクトをバイトストリームに変換するためのpickleという標準モジュールがあり、オブジェクトをバイトストリームに変換するこ…

承認情報です

一時的にホットエントリ入りした!!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

シンボルがないELFバイナリのmain関数を特定する

まず、以下のコードをgccでコンパイルして、main関数のシンボルを確かめる。 #include <stdio.h> int main() { printf("test\n"); } $ objdump -d a.out|grep main 0000000000400420 <__libc_start_main@plt>: 400464: e8 b7 ff ff ff callq 400420 <__libc_start_main@plt> 000000000040052d <main>:stripコマンドでmain関</main></__libc_start_main@plt></__libc_start_main@plt></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; gets(buffer); if(</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拡張が窓の杜で紹介されました。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…

ハニポで収集したマルウェアで使用されているpackerを調べてみた。

はじめに ハニーポット dionaeaで収集した209の検体がどんなpackerを用いてるのか調べた。 運用中のdionaeaに対し、nmap -sSした結果は以下のとおり。 Starting Nmap 6.46 ( http://nmap.org ) at 2015-02-03 01:12 JST Nmap scan report for <ipアドレス> Host is up (0</ipアドレス>…

.pyじゃないPythonスクリプトをimportする

拡張子が.pyじゃないPythonスクリプトをimportできると、/usr/local/binにあった実行可能ファイルが実はPython製だった時にPythonから利用しやすくなって便利になる。シェルスクリプト書くより便利な気がする。impモジュールのload_souceを使うことでできる…

IOCについて

はじめに SECCON 2014 online予選 冬のforensic500 Confused analyteにてIOCについて知った。 当時はIOCの名前を聞いたことがある程度だったので、軽くまとめてみた。 IOCとは IOC(Indicators of Compromise)とはマルウェアがシステムに残す痕跡の情報のこと…

virtualboxのvmをリサイズした。

win7のvmの容量がきつくなってきたのでリサイズした。手間取ったのでメモ。 VBoxManage modifyhdコマンドでリサイズしようとするとなんかめっちゃエラー出た。 $ VBoxManage modifyhd './VirtualBox VMs/7_pro_64bit/7_pro_64bit.vdi' --resize 40960 VBoxMa…