Debianでのダウンストリームのパッケージの使い方
DebianでDown Streamのパッケージの使用方法を書く。
down streamとは
OSにおいて、下流のOSのことをダウンストリームという。
debianに対するUbuntu,
rhelに対するFedora
などがメジャーなダウンストリームだ。
このダウンストリームの関係では互換性が強く、
下流のOSのパッケージを流用することができることが多い(できないこともある。)。
また、red hat社員がFedoraのコントリビューターだったり、
canonical社員がDebianのコントリビューターなど、
ビジネス的にもコミュニティ的にも関係が良好なことも多い(すべてでないが)。
使用するOS
今回はDebianのDown streamのKali linuxを使ってみる。
普段はDebianの安定性が欲しいが、たまにKaliみたいなOffensiveな環境が欲しい
ときに有用な組み合わせだ。
osのバージョン
そのkaliがどのdebianベースのバージョンなのか?を必ず調べる事。
2022-06-16日現在、最新のKaliはdebian10 busterベースなので、debian10をベースにkaliのパッケージを追加していく。
設定
kali linuxのレポジトリを追加
下のように実行するとkali linuxのレポジトリが入り、aptで管理されるようになる。
echo "# kali-last-snapshot is " >> /etc/apt/sources.list
echo "deb http://http.kali.org/kali kali-last-snapshot main contrib non-free" >> /etc/apt/sources.list
echo "deb-src http://http.kali.org/kali kali-last-snapshot main contrib non-free" >> /etc/apt/sources.list
レポジトリの優先度の設定
必須。これをしないとdebianにあるパッケージとkaliにあるパッケージがごちゃまぜになる。
本体はDebianなのにセキュリティ以外のkaliのパッケージ取ってきて、
パッケージの依存関係がおかしくなったりする原因になる。
基本はkaliの使いたいパッケージだけ、本体のdebianよりも
優先度を上げて、それ以外のパッケージは優先度を下げることで
依存関係が壊れないようにする。
PinPriorityは高ければ高いほど優先度が上がる。
設定はあとがきのものが優先される。
nmapはdebianにもあるはずだが、kaliの攻撃用のパッケージで依存関係があるものがある可能性が高いので、
Kaliのものを選択するように調整するなど。
sudo mkdir /etc/apt/preferences.d
cat << END >> /etc/apt/preferences.d/kali-linux.pref
# Kali posteritory to Debian in security tool
# Pin-Priorityを101にすると、特に指定しない限りこのパッケージを取ってこない。
# また優先度が100よりも大きいので、install後のupdate時にdebianのパッケージで上書きされることもない。
# Package * と指定しているので、kaliのすべてのパッケージは取ってこないという事。
# このあと、kaliの使うパッケージを個別に優先度を上げていくで対処していく。
Package: *
Pin: release o=Kali
Pin-Priority: 101
## security-tools
# pin-priority 501はインストールされていないパッケージの優先度500よりも高いため、
# debianのインストールされていないパッケージよりも常にkaliのnmapが優先されるという事になる。
Package: nmap
Pin: release o=Kali
Pin-Priority: 501
Package: netdiscover
Pin: release o=Kali
Pin-Priority: 501
Package: dirb dirbuster
Pin: release o=Kali
Pin-Priority: 501
Package: dirb dirbuster
Pin: release o=Kali
Pin-Priority: 501
Package: nikto
Pin: release o=Kali
Pin-Priority: 501
Package: skipfish
Pin: release o=Kali
Pin-Priority: 501
Package: wapiti
Pin: release o=Kali
Pin-Priority: 501
Package: wapiti
Pin: release o=Kali
Pin-Priority: 501
Package: joomscan
Pin: release o=Kali
Pin-Priority: 501
Package: ruby-public-suffix ruby-cms-scanner wpscan
Pin: release o=Kali
Pin-Priority: 501
Package: sqlmap
Pin: release o=Kali
Pin-Priority: 501
Package: netcat
Pin: release o=Kali
Pin-Priority: 501
Package: netcat
Pin: release o=Kali
Pin-Priority: 501
Package: wireshark
Pin: release o=Kali
Pin-Priority: 501
Package: nbtscan
Pin: release o=Kali
Pin-Priority: 501
Package: zaproxy
Pin: release o=Kali
Pin-Priority: 501
Package: unicornscan
Pin: release o=Kali
Pin-Priority: 501
Package: weevely
Pin: release o=Kali
Pin-Priority: 501
Package: beef-xss
Pin: release o=Kali
Pin-Priority: 501
Package: hydra-gtk
Pin: release o=Kali
Pin-Priority: 501
Package: patator
Pin: release o=Kali
Pin-Priority: 501
Package: enum4linux
Pin: release o=Kali
Pin-Priority: 501
Package: macchanger
Pin: release o=Kali
Pin-Priority: 501
Package: aircrack-ng
Pin: release o=Kali
Pin-Priority: 501
Package: kismet
Pin: release o=Kali
Pin-Priority: 501
Package: wifite
Pin: release o=Kali
Pin-Priority: 501
Package: fern-wifi-cracker
Pin: release o=Kali
Pin-Priority: 501
Package: anonsurf
Pin: release o=Kali
Pin-Priority: 501
Package: armitage
Pin: release o=Kali
Pin-Priority: 501
Package: openvas
Pin: release o=Kali
Pin-Priority: 501
Package: burpsuite
Pin: release o=Kali
Pin-Priority: 501
Package: expoitdb
Pin: release o=Kali
Pin-Priority: 501
Package: onionshare
Pin: release o=Kali
Pin-Priority: 501
Package: tor
Pin: release o=Kali
Pin-Priority: 501
END
kaliのarchive-keyのインストール
下の用に実行してarchive-keyをインストールしてください。
if cat /etc/debian_version | grep 10. > /dev/null; then
wget -qO- https://archive.kali.org/archive-key.asc | sudo apt-key add
# Since apt-key is deprecated in debian 11 and later, use below.
# apt-key will be removed in debian 12.
# elif cat /etc/debian_version | grep 11. > /dev/null; then
# wget https://archive.kali.org/archive-key.asc
# gpg --no-default-keyring --keyring /etc/apt/trusted.gpg.d/kali-repository.gpg --import ./archive-key.asc
fi
kaliのパッケージリストを追加したので一覧更新
sudo apt update
よく使う脆弱性ツールのインストール
インストールにつまずきそうなものだけ並べていく。
metasplot frameworkのインストール
必須。確実に使う。
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
chmod u+x msfinstall
sudo ./msfinstall
wpscanのインストール
wordpressの脆弱性を調べるツール。
インストールがちょっと複雑なので書きます。
wpscanはruby-cms-scannerに依存してて、
ruby-cms-scannerはruby-public-sufficに依存しているという
作りなので下の順番にインストールする必要があります。
特に指定しないとdebianのruby-public-sufficを取ってくるが、
これは古くてruby-cms-scannerのインストールに失敗するので、kali-last-snapshotとレポジトリを指定する事により、
kaliのruby-public-suffixを取ってきます。
# debian repository rusy-public-suffic is oldstable. debian 3.0.3+ds-1 is to be installed
sudo apt install -y ruby-public-suffix -t kali-last-snapshot
# Depends: ruby-public-suffix (>= 4.0.3)
sudo apt install -y ruby-cms-scanner
sudo apt install -y wpscan
他にも脆弱性ツールの依存関係で失敗する場合はkaliのパッケージを指定するか、
優先度を変更することにより調整してください。
まとめ
情報があまりないが以外と簡単な事がわかると思う。
これと同じ要領でdebianでubuntuのパッケージを使うことも可能。
Discussion