拾い物のコンパス

まともに書いたメモ

CiscoルータからSCPでIOSを抽出する方法メモ

CiscoのルータからIOSを抜き出すときは,FTP経由での方法をよく聞く. そこでFTPを試してみたが,上手く行かない. デバッグする気が起きなかったから,SCPで抜き出してみることにした. コピー先のWindows上でサーバを立てるのは手間だから,ルータ上でSSH…

pycを読む(スクリプト味)

前回はpycを低レベルな命令に変換して読む方法を説明した. あれはあれで読めはするが,アセンブリ言語と同様の読みづらさはある. 今回は直接pycをpythonのスクリプトまで変換する方法を紹介する. 変換するライブラリは複数あるが,ここでは uncompyleを使…

pycを読む(アセンブリ味)

pycファイルだけが手元にあり,なにが書いてあるか読みたいときがある. pycのバイトコードは逆アセンブルして読める. やり方と例文をまとめる. ただし,これは低レベルな命令になるから可読性は良くない. 直接pythonコードにまで戻す方法があるから,そ…

volatilityにSANSのプラグインを追加する方法

volatilityでmimikatzを使いたくなった. セットアップ方法が見つからなかったから書き残す. mimikatzとは Windowsのパスワードなどの各種認証情報をメモリから抜き出すツール. 管理者権限の取得やなりすましにも使える. CTFではメモリダンプからアカウン…

Linux系のバックアップ方法メモ

Linuxが動いているサーバのバックアップを取ろうとした時に考えたことのメモ. 差分とか定期的バックアップとかいった頭の良いことは他に書いてあるから,取り扱わない. サクッとできるやつだけ. あくまでメモだから,詳しい方法とかは割愛する. 状況 そ…

いつの間にかLinuxの/bin関係が/usrへのシンボリックリンクへ変わっていた話

タイトルの通り.気になったから調べた. 調査結果を書き残すが,誰にとって役に立つのかはわからない. 何が起こった 普段はArch Linuxを使っている. 何気なくls / をすると,いつの間にか/binが/usr/binへのシンボリックリンクになっていた. な・・・ な…

Arch Linuxでカーネルパニックが起こった時にやったこと

普段使っている相棒はArch Linuxをインストールしている。 Ubuntuと違い、提供されるパッケージが最新のものだから使いやすい。 しかし今回pacman -Syuを実行したところ、多分kernel panic(freeze?、hang up?、違いがわからない)と呼ばれる現象が起こるよう…

Ubuntuでインストールできるradare2が古い時の対処法

Ubuntuのapt/apt-getでインストールできるradare2が古いため、一部のコマンドが実行できないという話をブログや知り合いから聞くようになった。 初めて使うツールは動かないだけで使うのをやめてしまうことが多いだけに、割と深刻である。 というわけで、調…

main関数の無いプログラムを動かすために奔走した話

ディレクトリを眺めていたら,セキュリティを始める直前あたりに頑張ったプログラムが見つかった. 初めの一歩みたいなものだから,改めて見直しがてらいじったことを書き残す. 内容はmain関数が実装されていないけど動くプログラム. 確か元ネタはこれ. …

pythonでシェルコードを実行する方法

オライリー出版のサイバーセキュリティプログラミング(英題: Black Hat Python)にPythonでシェルコードを実行するスクリプトが載っていた.前から実行する方法を探していたから,喜んで試してみたが上手く行かない. 原因は簡単でPythonのバイナリ自体にNX…

PEMUを動かしてみる

Dynamic Binary Instrumentation(DBI)を行うフレームワークの一つ,PEMUを使ってみた.githubの説明が簡潔すぎて動くまでに時間がかかったから,手順を書き残す. pemu自体はqemuをベースに作成されているから,作業の所々にQEMU関連の操作が入る. OSの準備…

radare2によるバイナリ編集

radare2はデバッガであり,バイナリエディタでもある.バイナリエディタとして使えると何かと便利だと思い,調べてみた. 基本的なことを書き残す. 環境 $ uname -a Linux poppycompass 4.11.3-1-ARCH #1 SMP PREEMPT Sun May 28 10:40:17 CEST 2017 x86_64…

volatilityにプロファイルを追加する方法

メモリダンプ解析用ツールvolatilityはデフォルトではWindowsのメモリダンプのみが解析できる.LinuxやOSXで作成されたメモリダンプを解析するためにはプロファイルを追加してやれば良い.公式から用意されているものを使うこともできるし,自作することもで…

サイボウズの開発インターンに参加してきた

サイボウズで行われている開発インターンに3週間行ってきた.何をしたのかを含めて振り返りを書き残す. きっかけ 就職が近くなってきて,どこか行かなきゃとは思うけどどこにいったらいいのかわからない. 周りの人は有名企業のエリートコースを狙って頑張…

findしてlessする動作を自動化するシェル関数

基本的にfindコマンドで探したファイルはlessなどで閲覧することが多い.大きなプログラムだと,ディレクトリごとに名前が同じファイルがあったりするから,findして目grepしてパスをコピーしてlessするって動作を繰り返しているとうんざりしてくる.そこで…

既出の値を判定するコードについて思いついたこと(ビンゴゲームをネタに考える)

重複を許さないランダムな数値を一定数生成したいという機会は割りと遭遇する.このときの既出判定についてふと思いついたことを書き残す. 「そんなの一般的に使われている」というツッコミは置いておく.実装についての答えを示すものではなく,「簡単な用…

Linuxで突然startxが起動しなくなったときの対処

startxが上手くいかないときの対処はググると色々出てくるが,ややこしいやつばかり出てきた.そして,それを試しても成功しなかった.最終的に上手くいったことを書き残す. 症状 それまで普通に使えたUbuntuを再起動した途端にGUIで起動しなくなった.$ st…

使えれば良いやradare2(静的解析編)

バイナリ関連の機能を一通り提供するフレームワークradare2,通称r2(d2はない模様)による静的解析をざっくりと紹介する.CLIベースの使い方はいろんなサイトが詳しくやっているから,Visual Modeの使い方を中心に解説する. radare2について radare2について…

csawctf 2016 writeup(forensics)

書くことがないから,最近参加したCSAWCTF 2016のWriteupをメモしておく.分野はforensics.ExploitやWebに比べると日本では人気がない印象があるのが残念. evidence evidence.zipという壊れたZIPファイルが与えられる. $ unzip -l evidence.zip Archive: …

OSX(mac)にXmonadをインストールする方法

普段はLinuxにXmonadを入れて作業をしているが,短期間だけOSX(mac)を使うこととなった(知っている企業や大学ってやたらとLet's NoteとMacbookが好き.ThinkPadも選択肢に入れて欲しい).普段通りに作業するためにOSXにXmonadを入れる方法を模索し,動かすと…

ELFバイナリのデバッグ時の関数名を読めなくする方法

Defconとかでは問題のELFバイナリをデバッグすると,ユーザ定義関数名だけでなく,ライブラリ関数名も読めなくなっている.どうやるとこんなバイナリを作れるのかを調べてみた.結論から言えば,静的リンクでコンパイルして,stripでデバッグシンボルを消す…

ダウンローダ型のマルウェアを眺めてみた

この記事では本物のマルウェアを取り扱っています.この記事の検証などで問題が起こっても一切責任は取れないので,行う際は自己責任でお願いします.また,この記事では心無い人による悪用を避けるため,マルウェアの全文は記載しません.興味のある方はハ…

メモリダンプについてのまとめ

このエントリで紹介したコマンドの一部は高確率でOSがクラッシュします.行う際は自己責任でお願いします. マルウェア解析に使われるメモリダンプはどのように作成されるのかを調べたメモを書き残す. 結論として,Windowsはやり方が多い(設定をいじってか…

radare2のエイリアス機能をソースコードレベルでいじって使いやすくしてみる

この記事はプログラムのソースコードを書き換えるものです.行う際は自己責任でお願いします. radare2でエイリアスやマクロを使っていたが,どうにもコマンドを打ちにくいのでソースコードをいじって試行錯誤してみた.マクロ機能をいじるのは大規模な改変…

Vimで簡単なファイルテンプレートを入力するコマンドを作成してみた

プログラムを組むとき,テンプレートを毎回手で入力することが面倒くさくなったので,Vimのショートカットにした. 編集中のファイル名を挿入する方法やレジスタについて勉強したので簡単にまとめておく. 目的 作成したいのは現在編集しているファイルに対…

BlackArchの紹介

Gentooにはセキュリティ用にチューニングされたPentooがある.Arch Linuxにもあるんじゃないのかなと思って探したら案の定あった. という訳で,今回はArch Linuxのセキュリティ特化ディストリBlackArchを紹介する. BlackArchとは ペンテスターやセキュリテ…

セキュリティキャンプ講義「仮想化技術を用いたマルウェア解析」にチャレンジしてみた(プラグイン開発編)

前回のエントリでDECAFをコンパイル、仮想マシンの用意・起動とプラグインを読み込ませるところまでやった。 今回は講義の本題であるプラグインの開発をやっていく。 私自身はQemu, DECAFや関数Hook,PEB構造体とかも全く知らず,マルウェア解析の経験もない…

セキュリティキャンプ講義「仮想化技術を用いたマルウェア解析」にチャレンジしてみた(準備編)

今年の八月中旬に行われたセキュリティキャンプ全国大会2015の解析トラック15・16-Dでの講義「仮想化技術を用いたマルウェア解析」にチャレンジして、一通りできた。 発表者の黒米さんの許可が戴けたのでその流れを書き残す。 発表で使われたスライドは黒米…

アセンブリ言語をコンパイル・実行してみる

GASとNASMで64bitプログラミングの基本をやってみた。 実行するのは基本中の基本である"hello, world"を出力するだけのプログラム。 環境 gcc: version 5.2.0 (GCC) nasm: NASM version 2.11.08 compiled on Mar 24 2015 Arch Linux x86_64: 4.2.5-1-ARCH 64…

LightDMの壁紙が変わらないときの対処

Arch Linuxをインストールする際に最初はDM(デスクトップマネージャ)にGDMを使っていたが、認証成功時に一瞬CUIっぽいのが出ていた。これが微妙だったからUbuntuやOpenSUSEで利用されている軽量DMのLightDMに変えた。 このとき認証画面の背景を変更するのに…