htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ ! バグバウンティのヒント : ハッカーによって作成されたプレミアムバグバウンティプラットフォーム であるIntigriti にサインアップ してください!今すぐhttps://go.intigriti.com/hacktricks に参加して、最大**$100,000**のバウンティを獲得し始めましょう!
WMIC
Wmic を使用して、起動時 にプログラムを実行できます。次のコマンドで、起動時にプログラムが設定されているバイナリを確認できます:
Copy wmic startup get caption,command 2> nul & ^
Get-CimInstance Win32_StartupCommand | select Name, command, Location, User | fl
スケジュールされたタスク
タスク は特定の頻度 で実行されるようにスケジュールできます。次のコマンドでスケジュールされた実行ファイルを確認します:
Copy schtasks /query /fo TABLE /nh | findstr /v /i "disable deshab"
schtasks /query /fo LIST 2> nul | findstr TaskName
schtasks /query /fo LIST /v > schtasks.txt ; cat schtask.txt | grep "SYSTEM\|Task To Run" | grep -B 1 SYSTEM
Get-ScheduledTask | where { $_ .TaskPath -notlike "\Microsoft*" } | ft TaskName,TaskPath,State
#Schtask to give admin access
#You can also write that content on a bat file that is being executed by a scheduled task
schtasks /Create /RU "SYSTEM" /SC ONLOGON /TN "SchedPE" /TR "cmd /c net localgroup administrators user /add"
フォルダ
スタートアップフォルダにあるすべてのバイナリは起動時に実行されます 。一般的なスタートアップフォルダは以下にリストされていますが、スタートアップフォルダはレジストリで示されています。こちらを読んで、場所を知ってください。
Copy dir /b "C:\Documents and Settings\All Users\Start Menu\Programs\Startup" 2> nul
dir /b "C:\Documents and Settings\%username%\Start Menu\Programs\Startup" 2> nul
dir /b "%programdata%\Microsoft\Windows\Start Menu\Programs\Startup" 2> nul
dir /b "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup" 2> nul
Get-ChildItem "C:\Users\All Users\Start Menu\Programs\Startup"
Get-ChildItem "C:\Users\$env:USERNAME\Start Menu\Programs\Startup"
レジストリ
ここからの注意 : Wow6432Node レジストリエントリは、64ビットWindowsバージョンを実行していることを示します。オペレーティングシステムは、64ビットWindowsバージョンで実行される32ビットアプリケーションのために HKEY_LOCAL_MACHINE\SOFTWARE の別ビューを表示するためにこのキーを使用します。
実行
一般的に知られている AutoRun レジストリ:
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Wow6432Npde\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Runonce
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\RunonceEx
Run および RunOnce として知られるレジストリキーは、ユーザーがシステムにログインするたびにプログラムを自動的に実行するように設計されています。キーのデータ値として割り当てられたコマンドラインは、260文字以下に制限されています。
サービスの実行 (起動時にサービスの自動起動を制御できます):
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServices
HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServices
RunOnceEx:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnceEx
Windows Vista 以降のバージョンでは、Run および RunOnce レジストリキーは自動的に生成されません。これらのキーのエントリは、プログラムを直接起動するか、依存関係として指定することができます。たとえば、ログオン時に DLL ファイルを読み込むには、RunOnceEx レジストリキーと "Depend" キーを使用できます。これは、システムの起動時に "C:\temp\evil.dll" を実行するレジストリエントリを追加することで示されます。
Copy reg add HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnceEx\\0001\\Depend /v 1 /d "C:\\temp\\evil.dll"
Exploit 1 : もしHKLM 内のいずれかのレジストリに書き込むことができれば、異なるユーザーがログインする際に特権を昇格させることができます。
Exploit 2 : もしHKLM 内のいずれかのレジストリに示されているバイナリのいずれかを上書きできれば、異なるユーザーがログインする際にそのバイナリにバックドアを埋め込んで特権を昇格させることができます。
Copy #CMD
reg query HKLM \S oftware \M icrosoft \W indows \C urrentVersion \R un
reg query HKLM \S oftware \M icrosoft \W indows \C urrentVersion \R unOnce
reg query HKLM \S oftware \W ow6432Node \M icrosoft \W indows \C urrentVersion \R un
reg query HKLM \S oftware \W ow6432Node \M icrosoft \W indows \C urrentVersion \R unOnce
reg query HKCU \S oftware \M icrosoft \W indows \C urrentVersion \R un
reg query HKCU \S oftware \M icrosoft \W indows \C urrentVersion \R unOnce
reg query HKCU \S oftware \W ow6432Node \M icrosoft \W indows \C urrentVersion \R un
reg query HKCU \S oftware \W ow6432Node \M icrosoft \W indows \C urrentVersion \R unOnce
reg query HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Run
reg query HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\RunOnce
reg query HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\RunE
reg query HKLM \S oftware \M icrosoft \W indows \C urrentVersion \R unServicesOnce
reg query HKCU \S oftware \M icrosoft \W indows \C urrentVersion \R unServicesOnce
reg query HKLM \S oftware \M icrosoft \W indows \C urrentVersion \R unServices
reg query HKCU \S oftware \M icrosoft \W indows \C urrentVersion \R unServices
reg query HKLM \S oftware \W ow6432Node \M icrosoft \W indows \C urrentVersion \R unServicesOnce
reg query HKCU \S oftware \W ow6432Node \M icrosoft \W indows \C urrentVersion \R unServicesOnce
reg query HKLM \S oftware \W ow6432Node \M icrosoft \W indows \C urrentVersion \R unServices
reg query HKCU \S oftware \W ow5432Node \M icrosoft \W indows \C urrentVersion \R unServices
reg query HKLM \S oftware \M icrosoft \W indows \R unOnceEx
reg query HKLM \S oftware \W ow6432Node \M icrosoft \W indows \R unOnceEx
reg query HKCU \S oftware \M icrosoft \W indows \R unOnceEx
reg query HKCU \S oftware \W ow6432Node \M icrosoft \W indows \R unOnceEx
#PowerShell
Get-ItemProperty -Path 'Registry::HKLM\Software\Microsoft\Windows\CurrentVersion\Run'
Get-ItemProperty -Path 'Registry::HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce'
Get-ItemProperty -Path 'Registry::HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run'
Get-ItemProperty -Path 'Registry::HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce'
Get-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Run'
Get-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce'
Get-ItemProperty -Path 'Registry::HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run'
Get-ItemProperty -Path 'Registry::HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce'
Get-ItemProperty -Path 'Registry::HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Run'
Get-ItemProperty -Path 'Registry::HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\RunOnce'
Get-ItemProperty -Path 'Registry::HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\RunE'
Get-ItemProperty -Path 'Registry::HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce'
Get-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce'
Get-ItemProperty -Path 'Registry::HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices'
Get-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices'
Get-ItemProperty -Path 'Registry::HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServicesOnce'
Get-ItemProperty -Path 'Registry::HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServicesOnce'
Get-ItemProperty -Path 'Registry::HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServices'
Get-ItemProperty -Path 'Registry::HKCU\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\RunServices'
Get-ItemProperty -Path 'Registry::HKLM\Software\Microsoft\Windows\RunOnceEx'
Get-ItemProperty -Path 'Registry::HKLM\Software\Wow6432Node\Microsoft\Windows\RunOnceEx'
Get-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\RunOnceEx'
Get-ItemProperty -Path 'Registry::HKCU\Software\Wow6432Node\Microsoft\Windows\RunOnceEx'
スタートアップパス
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
スタートアップ フォルダに配置されたショートカットは、ユーザーログオン時やシステム再起動時に自動的にサービスやアプリケーションを起動させます。スタートアップ フォルダの場所は、ローカルマシン および現在のユーザー のスコープのためにレジストリで定義されています。これは、これらの指定されたスタートアップ 場所に追加されたショートカットは、ログオンまたは再起動プロセスの後にリンクされたサービスやプログラムが起動することを確実にするため、プログラムを自動的に実行するための簡単な方法です。
もしHKLM の下の任意の[User] Shell Folderを上書きできれば、それを自分が制御するフォルダを指すように変更し、バックドアを配置して、ユーザーがシステムにログインするたびに実行される特権昇格を行うことができます。
Copy reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common Startup"
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common Startup"
Get-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders' -Name "Common Startup"
Get-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders' -Name "Common Startup"
Get-ItemProperty -Path 'Registry::HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders' -Name "Common Startup"
Get-ItemProperty -Path 'Registry::HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders' -Name "Common Startup"
Winlogon Keys
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
通常、Userinit キーは userinit.exe に設定されています。ただし、このキーが変更されると、指定された実行ファイルもユーザーログオン時に Winlogon によって起動されます。同様に、Shell キーは explorer.exe を指すように意図されており、これはWindowsのデフォルトシェルです。
Copy reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Userinit"
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Shell"
Get-ItemProperty -Path 'Registry::HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name "Userinit"
Get-ItemProperty -Path 'Registry::HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name "Shell"
レジストリ値またはバイナリを上書きできる場合、特権を昇格させることができます。
ポリシー設定
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
Run キーを確認してください。
Copy reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "Run"
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "Run"
Get-ItemProperty -Path 'Registry::HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer' -Name "Run"
Get-ItemProperty -Path 'Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer' -Name "Run"
AlternateShell
セーフモードのコマンドプロンプトの変更
WindowsレジストリのHKLM\SYSTEM\CurrentControlSet\Control\SafeBoot
の下には、デフォルトでcmd.exe
に設定された**AlternateShell
**値があります。これは、起動時に「コマンドプロンプト付きセーフモード」を選択すると、cmd.exe
が使用されることを意味します。ただし、F8を押す必要なく、手動で選択することなく、コンピュータをこのモードで自動的に起動するように設定することが可能です。
「コマンドプロンプト付きセーフモードで自動的に起動する」ブートオプションを作成する手順:
boot.ini
ファイルの属性を変更して読み取り専用、システム、非表示フラグを削除します:attrib c:\boot.ini -r -s -h
次のような行を挿入します:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /SAFEBOOT:MINIMAL(ALTERNATESHELL)
元のファイル属性を再適用します:attrib c:\boot.ini +r +s +h
Exploit 1: AlternateShell レジストリキーを変更することで、カスタムコマンドシェルのセットアップが可能になり、不正アクセスが行われる可能性があります。
Exploit 2 (PATH Write Permissions): システムのPATH 変数の任意の部分に書き込み権限がある場合、特にC:\Windows\system32
の前に、カスタムcmd.exe
を実行できるようになり、システムがセーフモードで起動された場合にはバックドアとなる可能性があります。
Exploit 3 (PATH and boot.ini Write Permissions): boot.ini
への書き込みアクセスを持つことで、自動的なセーフモードの起動が可能になり、次回の再起動時に不正アクセスが容易になります。
現在のAlternateShell 設定を確認するには、次のコマンドを使用します:
Copy reg query HKLM \S YSTEM \C urrentControlSet \C ontrol \S afeBoot /v AlternateShell
Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot' -Name 'AlternateShell'
インストールされたコンポーネント
Active Setupは、デスクトップ環境が完全にロードされる前に開始される Windowsの機能です。特定のコマンドの実行を優先し、ユーザーログオンが進行する前に完了する必要があります。このプロセスは、RunまたはRunOnceレジストリセクションなど、他の起動エントリよりも前に発生します。
Active Setupは次のレジストリキーを介して管理されます:
HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components
HKLM\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components
HKCU\SOFTWARE\Microsoft\Active Setup\Installed Components
HKCU\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components
これらのキー内には、特定のコンポーネントに対応する各サブキーが存在します。特に興味深いキー値には次のものがあります:
IsInstalled:
0
はコンポーネントのコマンドが実行されないことを示します。
1
はコマンドが各ユーザーごとに1回実行されることを意味し、IsInstalled
値が欠落している場合はデフォルトの動作です。
StubPath: Active Setupによって実行されるコマンドを定義します。notepad
の起動など、有効なコマンドラインであることができます。
セキュリティInsights:
特定の**StubPath
**でIsInstalled
が"1"
に設定されたキーを変更または書き込むと、権限が十分であれば権限昇格のための権限のないコマンド実行につながる可能性があります。
任意の**StubPath
**値で参照されるバイナリファイルを変更することも、十分な権限があれば権限昇格を達成できる可能性があります。
Active Setupコンポーネント全体の**StubPath
**構成を検査するには、次のコマンドを使用できます:
Copy reg query "HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components" /s /v StubPath
reg query "HKCU\SOFTWARE\Microsoft\Active Setup\Installed Components" /s /v StubPath
reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components" /s /v StubPath
reg query "HKCU\SOFTWARE\Wow6432Node\Microsoft\Active Setup\Installed Components" /s /v StubPath
ブラウザーヘルパーオブジェクト
ブラウザーヘルパーオブジェクト(BHO)の概要
ブラウザーヘルパーオブジェクト(BHO)は、MicrosoftのInternet Explorerに追加機能を提供するDLLモジュールです。これらは、Internet ExplorerとWindows Explorerの起動時に読み込まれます。ただし、NoExplorer キーを1に設定することで、Windows Explorerのインスタンスでの読み込みを防ぐことができます。
BHOは、Internet Explorer 11を介してWindows 10と互換性がありますが、新しいバージョンのWindowsでデフォルトのブラウザであるMicrosoft Edgeではサポートされていません。
システムに登録されているBHOを調査するには、次のレジストリキーを調べることができます:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
各BHOは、レジストリ内のCLSID によって表され、一意の識別子として機能します。各CLSIDに関する詳細情報は、HKLM\SOFTWARE\Classes\CLSID\{<CLSID>}
の下で見つけることができます。
レジストリ内のBHOをクエリするために、次のコマンドを利用できます:
Copy reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects" /s
reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects" /s
Internet Explorer Extensions
HKLM\Software\Microsoft\Internet Explorer\Extensions
HKLM\Software\Wow6432Node\Microsoft\Internet Explorer\Extensions
注意:レジストリには、各dllごとに1つの新しいレジストリが含まれ、CLSID によって表されます。HKLM\SOFTWARE\Classes\CLSID\{<CLSID>}
でCLSID情報を見つけることができます。
Font Drivers
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Font Drivers
HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Font Drivers
Copy reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Font Drivers"
reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Font Drivers"
Get-ItemProperty -Path 'Registry::HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Font Drivers'
Get-ItemProperty -Path 'Registry::HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Font Drivers'
オープンコマンド
HKLM\SOFTWARE\Classes\htmlfile\shell\open\command
HKLM\SOFTWARE\Wow6432Node\Classes\htmlfile\shell\open\command
Copy reg query "HKLM\SOFTWARE\Classes\htmlfile\shell\open\command" /v ""
reg query "HKLM\SOFTWARE\Wow6432Node\Classes\htmlfile\shell\open\command" /v ""
Get-ItemProperty -Path 'Registry::HKLM\SOFTWARE\Classes\htmlfile\shell\open\command' -Name ""
Get-ItemProperty -Path 'Registry::HKLM\SOFTWARE\Wow6432Node\Classes\htmlfile\shell\open\command' -Name ""
イメージ ファイルの実行オプション
Copy HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
HKLM\Software\Microsoft\Wow6432Node\Windows NT\CurrentVersion\Image File Execution Options
SysInternals
自動実行ファイルのより包括的なリストを取得するには、SysInternalsのautoruns を使用できます。注意すべきは、autorunsを見つけることができるすべてのサイトはすでにwinpeas.exe によって検索されていることです。
Copy autorunsc.exe -m -nobanner -a * -ct /accepteula
もっと
レジストリのようなAutorunsの詳細は https://www.microsoftpressstore.com/articles/article.aspx?p=2762082&seqNum=2 で見つけることができます
参考文献
バグバウンティのヒント : Intigriti にサインアップ してください。これは、ハッカーによって作成されたプレミアムバグバウンティプラットフォーム です!今すぐhttps://go.intigriti.com/hacktricks に参加して、最大**$100,000**のバウンティを獲得しましょう!
**ゼロからヒーローまでのAWSハッキングを学ぶ** htARTE(HackTricks AWS Red Team Expert) ! Last updated 2 months ago