2015-07-01から1ヶ月間の記事一覧

x86 bootloaderでHello Worldを書いてみる

x86環境においてHello Worldを表示するbootloaderを作成し、VirtualBoxの仮想フロッピードライブから起動してみる。 環境 Ubuntu 14.04.2 LTS 64bit版、VirtualBox 4.3.28 $ uname -a Linux vm-ubuntu64 3.13.0-48-generic #80-Ubuntu SMP Thu Mar 12 11:16:…

Windows x64で電卓を起動するシェルコードを書いてみる

「Windowsで電卓を起動するシェルコードを書いてみる」では、Windows 32bitアプリケーション用のシェルコードを作成した。 ここでは、Windows 64bitアプリケーションから電卓を起動するシェルコードを書いてみる。 環境 Windows 8.1 Pro 64 bit版、Visual St…

tsharkでpcapファイルからHTTP情報を抽出する

Wiresharkには、Wiresharkと同等の機能を持つCLIコマンドとしてtsharkが付属している。 tsharkではオプションとして-T fields -e <field> [-e <field> ...]を指定することで、指定したフィールドのデータをタブ区切りで出力することができる。 次の例では、dump.pcapという</field></field>…

WindowsでUNC LoadLibraryによる任意コード実行をやってみる

LoadLibrary関数は実行時にDLLをロードする関数であるが、引数にUNCパスを与えることにより、SMBプロトコル(Windowsファイル共有)を介してリモートホストにあるDLLをロードできることが知られている。 また、DLLはロード時にDLLMain関数が自動的に呼び出さ…

Metasploitのexploitモジュールを書いてみる

Metasploit Frameworkは、エクスプロイトコード実行をはじめとした種々のタスクを統一されたインタフェースで扱うための統合環境(フレームワーク)である。 ここでは、スタックバッファオーバーフロー脆弱性のあるプログラムを用意し、これに対するexploit…

Windowsでスタックバッファオーバーフロー脆弱性からMeterpreterに接続してみる

主にWindows環境に対して使われる高機能なリモート操作コンソールとして、Meterpreterと呼ばれるものがある。 ここでは、Metasploit Frameworkを使いMeterpreter用のシェルコードを生成してみる。 さらに、スタックバッファオーバーフロー脆弱性を利用してこ…

WindowsでSEH overwriteによるstack canary(/GS)回避をやってみる

スタックバッファオーバーフロー攻撃に対する防御手法のひとつにstack canaryがある。 これは関数の先頭でcanaryと呼ばれるランダムな値をスタックに積んでおき、関数の末尾でこの値が書き換えられていないかチェックすることで攻撃を検知するというものであ…

cdb/Windbgの使い方のメモ

よく使いそうなものの覚書。 シンボルサーバの指定 環境変数を用いて指定しておくとよい。 >set _NT_SYMBOL_PATH=srv*C:\Symbols*http://msdl.microsoft.com/download/symbols デバッグ情報付きでコンパイル コンパイルオプションとして/Ziを付ける。 >cd /Z…

Windowsでnon-ASLR DLLを利用したROPによるDEP回避をやってみる

「WindowsでReturn-oriented Programming(ROP)によるDEP回避をやってみる」では、実行ファイル中でVitrualProtect関数が使われていることを前提にROPを行った。 ここでは、ASLRが無効な古いシステムDLLを利用することにより、VirtualProtect関数を呼び出し…

WindowsでReturn-oriented Programming(ROP)によるDEP回避をやってみる

「Windowsで単純なスタックバッファオーバーフロー攻撃をやってみる」では、DEPを無効にした状態でシェルコードの実行を行った。 ここでは、DEPが有効な環境下において、ROP(Return-oriented Programming)によるシェルコード実行をやってみる。 環境 Windo…

Windowsで単純なスタックバッファオーバーフロー攻撃をやってみる

Windowsで各種セキュリティ機構をオフにして、単純なスタックバッファオーバーフローによるシェルコード実行をやってみる。 環境 Windows 8.1 Pro 64 bit版、Visual Studio Community 2013 with Update 4 >systeminfo OS 名: Microsoft Windows 8.1 Pro OS …