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…

jpegとかをpdfに変換したり、まとめたりできるim2pdfつくった。

背景 資料をスキャンしたときに、出力形式をpdfにファイル名をtest.pdfにしてもtest.pdf.jpgで出てきてつらかったので作った。スキャンむずかしい... im2pdfとは jpegとかのimageをpdfに変換するコマンドラインツール。複数のファイルをpdfにまとめたりもで…

メールサーバー立てて、メールアドレスを偽装してみた。

CentOS7でPostfixを使ってSMTPサーバー立ててみて、メールアドレスの偽装とか簡単にできるなあと思った。 Postfixの設定方法 /etc/postfix/main.cfでmydomainにメールサーバーのホスト名(@以下)を、myhostnameに自ドメインのドメイン名(@以前)を、ネットワー…

SECCON CTF 2014 online 予選(冬) writeup

CTF

チームで参加した。97位だった。全然解けなくてつらぽよだったし修行したい。 Get the key httpが散見されるので、export objectでファイルを取り出して開くと以下のようなhtmlがあった。これを見て、http://133.242.224.21:6809/nw100/key.htmlにアクセスし…

mixiのScrap challenge行ってきた

11月16日に行われたmixiのScrap challengeに行ってきました。Scrap Challenge 2014 | 株式会社ミクシィ 学生向けエンジニアイベント 倒壊で有名なヒカリエ。軽く感想とかやったこととか書く。 午前 午前中は、過去にmixiであった事案に絡めて軽くwebセキュリ…

ミニキャンプ in 北海道 行ってきた!!

11月1日、2日に行われたミニキャンプ in 北海道に行ってきました。 http://www.security-camp.org/minicamp/hokkaido2014.html メモリダンプやディスクダンプを読むというとても内容の濃い講義で、いい刺激となったので、もっと精進しないとなあという感じで…

vmを移したらwindowsがキーボードを誤認識した件

JPキーボードなPCに載ったwindows XPのVMをUSキーボードなPCに載せかえると、XPのコントロールパネルではUSキーボードと認識しているのに、JPキーボードと認識しているということになり悩まされていたが、レジストリをいじることで解決できた。 HKEY_LOCAL_M…

macのaviraでの例外ディレクトリの設定方法

mac版のaviraでは残念なことに例外ディレクトリをGUIからは設定できない。設定ファイルをいじってaviraを再起動することで対処できた。 1 設定ファイルを書き換える /Applications/Avira.app/Contents/config内のavguard.confとavscan.confに以下のように例…