brew install dsniff
これではbrewや、brewのgitを最新にしても出てこなくて、githubからdsniffのソースを取得して自前でコンパイルしてやる必要があった。kali linuxなどでは一発で入るんだろうがMacだと微妙にパスの違いなどで一発ではコンパイルが通らなかったので、Macでdsniffを試してみたい場合、こうしたらうまくいったという方法を書いておきます。
dsniffとは、ARPスプーフィングなどのLAN内のパケットを収集したり、他の接続ユーザーの通信を傍受したりするツールです。一見攻撃ツールのような言い回しで危険な香りがしますが、ネットワーク関係のツールに過ぎません。攻撃だとかハッキングという言葉を使うことによって頭が中学生な人たちに魅力的に見えるようにしてるだけです。
dsniffをgithubから取得してくる
git clone https://github.com/ggreer/dsniff
cd dsniff
chmod +x configure
./configure
でまずは通常の./configureをしてみるとエラーが出ます。
error: libpcap not found
が./configureのcheckで入ってない、と出てきました。
brew list | grep libpcap
で入ってないのか確認をしてみたら入ってます。最新に更新も試してみます。
git –version
で最新のgitになっているか確認、
brew update
brew upgrade
ここまでで最新に更新しても./configureでlibpcapはnoのままです。pathがおかしいんでは、とよくあるエラーでpathを探してみました。
emacs configure
エディタはなんでもいいんですが、configureの5099行目あたりに
Check whether –with-libpcap was given.
libpcapがインストールされているかのチェック項目があります。チェックするプログラムの部分は50行ほどなのでそう大変なものではないので自分でチェックしてみます。
libpcapの部分を見つけるのは、./configureで出たエラー libpcap not found この文字がある場所を検索で見つけます。
libpcapがインストールされているのにnot found と出てくるということは、pathの指定が怪しいので、
pcapがある場所を指定してる部分で、prefix というpathがあってない可能性があり、指定されているprefix は /usr/local になっていて brewでインストールしたなら/usr/local/Cellar にインストールされるから指定を変えてやります。
prefixの大元を変更すると、他のcheckにも影響が出るのでlibpcapの部分だけ、画像の通りコメントアウトした3行を /usr/local/Cellar に変更しました。
if test -f /usr/local/Cellar/libpcap/1.0.0/include/pcap.h; then
PCAPINC=”-I/usr/local/Cellar/libpcap/1.9.0/include”
PCAPLIB=”-L/usr/local/Cellar/libpcap/1.9.0/lib -lpcap”
これでlibpcapのcheckはOKが出ました。
続いてlibnidsも入ってない、とエラーが出ましたがこれは単純に入ってないだけでした。
Barkeley DBも入ってない、とエラーが出ました。これもberkeley-dbをbrew installするだけでした。
OpenSSLでもpathがおかしいとエラーが出ました。原因はMacがOpenSSLではなくlibsslをデフォルトで使っているからOpenSSLはちゃんとpathを指定しないと見つけられないようになります。
openssl version
LibreSSLと出ればlibsslがデフォルトで使用されているので、OpenSSLに変更します。
brew install openssl
echo ‘export PATH=”/usr/local/opt/openssl/bin:$PATH”‘ >> ~/.bash_profile
これでOpenSSLに変更完了。
OpenSSLのcheck項目はconfigureの5272行目から50行ほどの部分です。これも同じく/usr/local/Cellar にpathを指定するとconfigureのcheckがOKになります。
今気がついたんですがlibresslを指定してますが、動作してるので問題ないということで。
ここまでで./configureが通るようになり、Makefileが作られました。
make したら出たエラー
続いてmakeでもエラーが出たんですね。errorだとダメでwarningは厳格に言えばここ直した方がいいんでは、という程度なのでerrorが2箇所出ました。
./sshcrypto.cでdes_key_scheduleが呼び出せないよ、des_cblockも呼べないよ、というエラーです。
Makefileです。ここでさっきlibresslを指定してたのが載っててそれで止まっていたようです。指定をopensslのpath、
/usr/local/opt/openssl/include
/usr/local/opt/openssl/lib -lssl -lcrypto
に変更してmakeすると通るようになります。
./sshcrypto.c がerrorだったのでこちらも一応チェックしました。
des_key_scheduleが呼び出せないと出てたので検索したらdes.hにdes_key_scheduleがある、ということだったので一応pathを追加、これは関係あったかはわかりませんが#includeするだけなので追記しても悪影響はなさそうなので追記。
最後にmakeが通ったのを確認したらmake installでコンパイル完了です。
同じディレクトリにarpspoof、dsniff、webspyなどのツールが生成されています。実行は./dsniff などで必要なら/usr/local/binにコピーして使ってもいいと思います。