渗透测试笔记—window基础
声明:
学习视频来自B站up主 【泷羽sec】有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!
内容有误的地方欢迎各位大佬及时指正修改,虚心求教,共同进步!
有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec]
https://space.bilibili.com/350329294
Windows 操作系统简介
Windows 是由微软公司开发的一系列操作系统,广泛应用于个人计算机、工作站、服务器、平板电脑和嵌入式设备。自 1985 年首次发布以来,Windows 系列操作系统已经经历了多个版本的演变,成为当今最流行的桌面操作系统之一。
1. 历史背景
- Windows 1.0(1985):Windows 的第一个版本,提供基本的图形用户界面 (GUI) 以提高 MS-DOS 的可用性。
- Windows 3.0(1990):有效提升了 Windows 的用户界面和功能,使得 Windows 成为一个主流的操作系统。
- Windows 95(1995):引入了开始菜单、任务栏等创新界面,标志着 Windows 平台的重大飞跃。
- Windows XP(2001):具有较为稳定的性能和用户友好的界面,广受欢迎。
- Windows Vista(2007):在安全性和用户界面方面进行了重大改进,但其性能和兼容性问题受到批评。
- Windows 7(2009):改进了 Vista 的问题,提供了更好的用户体验和性能。
- Windows 8(2012):引入了平板模式和新的开始屏幕界面,虽然受到设计上的争议。
- Windows 10(2015):融合了传统桌面和新界面,支持多个设备的统一操作。
- Windows 11(2021):引入了视觉上的重大改进,如新的开始菜单、任务栏设计以及对游戏和多任务处理的增强支持。
2. 主要特性
-
图形用户界面 (GUI):Windows 提供直观的图形界面,使用户更易于进行操作。
-
多任务处理:允许用户同时运行多个程序,并在它们之间切换。
-
兼容性:支持大量的硬件和软件,使用户能够使用众多应用程序。
-
安全功能:
- 防火墙功能,帮助抵御网络攻击。
- 用户账户控制 (UAC),限制应用的操作权限,增强安全性。
- Windows Defender 提供实时的病毒和恶意软件保护。
-
云服务:与 Microsoft Azure 和 OneDrive 等服务紧密集成,提供数据备份和文件同步功能。
-
系统更新:通过 Windows Update 方便用户更新操作系统和安全补丁。
3. 版本分类
Windows 操作系统可以按用户类型和应用场景进行分类:
-
个人用户版本:
- Windows Home、Windows Pro、Windows Education 等,针对家庭和个人用户,提供不同级别的功能。
-
企业版本:
- Windows Enterprise、Windows Pro for Workstations 等,包含企业所需的安全性和管理功能。
-
服务器版本:
- Windows Server 系列,专为服务器环境设计,提供高性能和管理功能。
4. 应用场景
- 个人计算机: 在家庭和办公室环境中广泛使用,适用于办公、娱乐、上网和游戏等多种用途。
- 企业环境: 企业使用 Windows 进行集中管理、文档处理、财务应用和数据分析等。
- 服务器与虚拟化: Windows Server 被广泛应用于网络服务、虚拟化、数据库管理等领域。
5. 市场地位
Windows 不仅是全球最广泛使用的桌面操作系统之一,还是许多企业基础设施的重要组成部分。在全球 PC 操作系统市场中,Windows 持续占据着显著的市场份额。
Linux 和 Windows 操作系统在文件结构和路径管理的比较
1. 文件系统
-
Linux:
- fhs 目录结构:Linux 使用 Filesystem Hierarchy Standard (FHS) 目录结构,设备和文件系统的挂载都是以目录形式展示,即所有的设备都是文件的一部分。
- 示例:在 Linux 中,所有的设备(如 USB、硬盘等)都可以通过
/mnt
或/media
目录挂载。
-
Windows:
- 驱动器字母:Windows 使用驱动器字母(例如 C:、D: 等)来标识不同的存储设备。系统通过驱动器字母启动,不同的存储分区通过字母分配。
- 示例:在 Windows 中,文件路径如
C:\Users\username\Documents
表示在 C: 驱动器中的路径。
2. 路径格式
-
Linux:
- 路径格式:路径以斜杠
/
开始,遵循区分大小写的规则,目录结构在视觉上分为大写和小写(左斜线标识)。 - 示例:路径示例为
/home/user/docs
。
- 路径格式:路径以斜杠
-
Windows:
- 路径格式:路径以分隔符
\
开始,不区分大小写(右斜线标识)。Windows 用于区别不同的驱动器和目录。 - 示例:路径示例为
C:\Program Files\MyApp
。
- 路径格式:路径以分隔符
3. 系统配置
-
Linux:
- 配置文件:大多数系统配置通过文本文件进行管理,这些文件通常位于
/etc
目录下。用户可以使用文本编辑器(如nano
、vim
)直接修改这些配置文件。- 示例:网络配置文件(如
interfaces
文件)、服务配置(如sshd_config
)等都是以文本文件方式存在,用户可以方便地进行编辑和版本控制。
- 示例:网络配置文件(如
- 包管理:Linux 的软件安装和管理通常通过包管理器(如
apt
、yum
、pacman
)进行,用户可以通过命令行快速安装、升级和删除软件。 - 终端操作:Linux 提供强大的命令行终端,许多操作和配置更倾向于命令行操作,适合技术用户。
- 配置文件:大多数系统配置通过文本文件进行管理,这些文件通常位于
-
Windows:
- 图形用户界面(GUI):Windows 系统提供广泛的图形界面,用户通过“控制面板”或“设置”进行许多系统配置,无需直接编辑文件。
- 示例:网络设置、用户管理、程序安装等大多通过图形界面来完成,普通用户更易上手。
- 注册表配置:许多系统和应用的配置存储在 Windows 注册表中(Registry),这是一种层次化的数据库,用户需要小心操作,避免手动错误。
- 示例:像
regedit
命令可以用来打开注册表编辑器,用户可以查看或修改配置。
- 示例:像
- 软件安装:Windows 通常使用安装向导进行软件安装,支持
.exe
,.msi
等格式的安装包,安装过程相对简便。
- 图形用户界面(GUI):Windows 系统提供广泛的图形界面,用户通过“控制面板”或“设置”进行许多系统配置,无需直接编辑文件。
Windows的shell接口
1. Windows 命令提示符 (Command Prompt)
- 描述:命令提示符是 Windows 中的传统命令行界面,允许用户通过输入命令与系统交互。
- 特点:
- 基于字符的界面,支持多种内置命令进行文件和系统管理。
- 适合执行简单的命令和批处理操作。
- 访问方式:通过运行
cmd
或在搜索中输入 “cmd” 打开。
2. Windows PowerShell
- 描述:PowerShell 是一种先进的命令行外壳和脚本语言,旨在进行系统管理和自动化任务。
- 特点:
- 支持对象导向编程,能够处理复杂任务。
- 允许访问 .NET Framework 和执行高级脚本。
- 拥有丰富的模块和命令集合,适合自动化系统管理。
- 访问方式:通过运行 PowerShell 或在搜索中输入 “PowerShell” 打开。
3. Windows Terminal
- 描述:Windows Terminal 是一个现代化的终端应用,集成了 PowerShell、命令提示符和 WSL(Windows Subsystem for Linux)等多个环境。
- 特点:
- 允许多标签页操作,管理多个 shell 会话。
- 提供丰富的自定义选项,包括主题和配色。
- 对 Unicode 和文本渲染的支持更好。
- 访问方式:在 Microsoft Store 安装,或通过搜索 “Windows Terminal” 打开。
4. Windows Subsystem for Linux (WSL)
- 描述:WSL 允许用户在 Windows 上运行完整的 Linux 发行版。
- 特点:
- 支持多种 Linux 发行版(如 Ubuntu、Debian)。
- 允许直接使用 Linux 命令行工具,与 Windows 文件系统互操作。
- 适合开发和测试使用 Linux 环境的应用程序。
- 访问方式:通过安装所需的 Linux 发行版,使用
wsl
命令打开。
5. WMIC (Windows Management Instrumentation Command-Line)
- 描述:WMIC 是一种命令行工具,允许用户通过 Windows Management Instrumentation (WMI) 与系统进行交互,获取和修改系统信息。
- 特点:
- 提供丰富的系统管理功能,包括查询硬件和软件配置、管理系统服务、网络设置等。
- 支持复杂的查询和自动化脚本。
- 简化了访问 WMI 的复杂性,使其更易于从命令行运行。
- 访问方式:在命令提示符中输入
wmic
进入 WMIC 命令行环境。
6. 图形用户界面 (GUI)
- 描述:Windows 的桌面环境是操作系统的核心部分,用户通过可视化界面与系统进行交互。
- 特点:
- 提供用户友好的界面,允许通过点击图标、菜单和窗口进行操作。
- 主要组件包括“控制面板”、“设置”、“文件资源管理器”等。
- 适合不熟悉命令行操作的普通用户,提供直观的操作体验。
- 访问方式:通过点击 Windows 菜单或桌面的图标访问。
总结
在 Windows 操作系统中,用户有多种方式与系统进行交互:
- 命令提示符(Command Prompt):适合基础命令行操作。
- Windows PowerShell:更强大,适合复杂管理和自动化任务。
- Windows Terminal:现代终端,支持多种 shell 的集成。
- Windows Subsystem for Linux(WSL):在 Windows 上运行 Linux 环境。
- WMIC:用于管理和查询系统信息的命令行工具。
- 图形用户界面(GUI):提供友好的可视化操作体验,适合大多数用户。
通过选择不同的接口,用户可以根据自己的需求和技术水平灵活地与 Windows 操作系统进行交互。
CMD常用命令总结
常用 CMD 命令
命令 | 简要描述 |
---|---|
assoc | 显示或修改文件扩展名与文件类型的关联。 |
attrib | 显示或更改文件的属性(如只读、隐藏、系统文件等)。 |
cd | 更改当前目录。 |
chkdsk | 检查磁盘并显示状态报告。 |
cls | 清除命令提示符窗口中的内容。 |
copy | 复制文件或目录到一个位置。 |
del | 删除一个或多个文件。 |
dir | 列出指定目录中的文件和子目录。 |
echo | 显示消息或开启/关闭命令回显。 |
exit | 关闭命令提示符窗口。 |
fc | 比较两个文件并显示它们之间的不同。 |
find | 在文件中搜索指定文本字符串。 |
format | 格式化磁盘以进行使用。 |
help | 显示命令的简单帮助信息。 |
ipconfig | 显示当前网络连接的 IP 地址和其他网络信息。 |
mkdir | 创建一个新目录。 |
move | 移动文件或目录到新位置。 |
ping | 检查与另一个计算机的网络连接。 |
rd | 删除目录。 |
ren | 重命名文件或目录。 |
rmdir | 删除空目录。 |
set | 显示、设置或删除 Windows 环境变量。 |
shutdown | 关闭或重启计算机。 |
tasklist | 列出当前运行的所有进程。 |
taskkill | 结束或杀死一个或多个正在运行的进程。 |
type | 显示文本文件的内容。 |
xcopy | 复制文件和目录,包括子目录,支持文件属性的保留。 |
robocopy | 增强的复制命令,支持镜像文件和文件夹,具备更强大的功能和选项。 |
tree | 以树状图的格式显示目录结构。 |
rename | 重命名文件或目录(与 ren 相同)。 |
copy con | 创建新文件并从控制台输入内容。 |
sfc | 系统文件检查器,扫描并修复系统文件。 |
defrag | 磁盘碎片整理,优化磁盘性能。 |
timeout | 暂停执行指定时间。 |
start | 在新窗口中启动一个程序或打开文件。 |
tree | 以树状图的格式显示目录结构。 |
arp | 显示或修改 TCP/IP 地址解析协议缓存。 |
nbtstat | 用于测试和修复 NetBIOS 名称解析问题。 |
nslookup | 查询 DNS 记录,确认域名解析。 |
whoami | 显示当前用户的详细信息,包括用户名和域名。 |
ver | 显示当前 Windows 操作系统的版本信息。 |
systeminfo | 显示关于计算机的详细配置信息。 |
diskpart | 用于分区管理和磁盘配置。 |
fsutil | 提供文件系统配置和管理的命令。 |
net user | 管理计算机中的用户账户。 |
其他常用命令及其功能
-
系统管理命令:
wmic
:Windows Management Instrumentation Command-line,获取系统信息和管理设置。systeminfo
:显示计算机的配置和操作系统信息。
-
网络命令:
netstat
:显示网络连接、路由表和网络接口信息。tracert
:跟踪数据包到目标计算机的路径。route
:显示和修改网络路由表。
-
磁盘管理命令:
diskpart
:用于分区管理和磁盘配置。fsutil
:提供文件系统配置和管理的命令。
-
用户管理命令:
net user
:管理计算机中的用户账户。net localgroup
:管理本地用户组。
Windows系统的标准目录
1. 根目录(Root Directory)
C:\
: 磁盘的根目录,通常是 Windows 系统所在的主分区(例如 C 盘)。
2. 常见的标准目录
以下是 Windows 系统中一些预定义的标准目录及其功能:
目录 | 描述 |
---|---|
C:\Windows\ | Windows 操作系统的安装目录,包含系统核心文件和库。 |
C:\Program Files\ | 默认安装 32 位应用程序的目录。对于 64 位系统,还会有 C:\Program Files (x86)\ 目录用于安装 32 位应用程序。 |
C:\Users\ | 存放所有用户的个人文件和设置的目录。每个用户会有自己的子目录,如 C:\Users\Username\ 。 |
C:\Documents and Settings\ | 在较早版本的 Windows (如 Windows XP) 中,存放用户配置和数据的目录,Windows Vista 及以后的版本使用 C:\Users\ 。 |
C:\ProgramData\ | 存放所有用户共享的数据和应用程序配置的数据。某些应用程序可能会在这里存放通用设置和数据。 |
C:\System32\ | 存放 32 位和 64 位 Windows 系统文件,以及 DLLs、驱动程序和系统工具等。 |
C:\Temp\ | 用于存放临时文件的目录,某些程序在运行时会创建和使用此目录。 |
C:\Recycle Bin\ | 回收站的存放位置,用户删除的文件会被放入此目录(在文件资源管理器中显示为“回收站”)。 |
3. 用户目录
每个用户的目录(如 C:\Users\Username\
)通常包含几个默认的子目录,用于组织个人文件:
目录 | 描述 |
---|---|
Documents | 存放用户文档的默认目录。 |
Downloads | 存放下载文件的默认目录。 |
Desktop | 存放用户桌面文件和快捷方式的目录。 |
Pictures | 存放用户图片和图像文件的目录。 |
Music | 存放用户音乐文件和音频的目录。 |
Videos | 存放用户视频文件的目录。 |
AppData | 存放应用程序数据的目录。此目录通常是隐藏的,分为三个子目录: |
- Local : 用于存放特定于本地计算机的应用数据。 | |
- Roaming : 用于存放可在不同计算机之间同步的应用数据。 | |
- LocalLow : 存放较低权限的应用数据。 |
4. 系统目录
C:\Program Files\Common Files\
: 存放多个应用共享的组件和库的目录。C:\Windows\System32\
: 存放系统级别的 DLL 文件、可执行文件和系统管理工具。
环境变量简介及基本操作
1. 环境变量的作用
- 配置系统和应用行为:环境变量可以用来指定软件的运行参数,例如 Java 的
JAVA_HOME
环境变量。 - 路径配置:
PATH
环境变量定义了操作系统查找可执行文件的路径,允许用户在命令行中输入命令而不需要指定其完整路径。 - 用户信息:保存用户的临时文件目录、主目录以及其他个性化信息。
- 控制程序行为:许多应用程序会依据环境变量的值来决定其行为或优化配置。
2. 常见的环境变量
以下是一些常用的 Windows 环境变量及其描述:
变量名 | 描述 |
---|---|
PATH | 包含程序可执行文件所在目录的列表,用于查找可执行文件。 |
USERPROFILE | 当前用户的主目录,通常为 C:\Users\用户名 。 |
TEMP | 存放临时文件的目录路径,通常指向 C:\Users\用户名\AppData\Local\Temp 。 |
SystemRoot | Windows 操作系统的安装目录,通常为 C:\Windows 。 |
ProgramFiles | 存放程序文件的默认目录,通常为 C:\Program Files 。 |
USERNAME | 当前登录用户的用户名。 |
HOMEPATH | 当前用户的主目录的相对路径。 |
COMSPEC | 默认命令解释器的路径,通常为 C:\Windows\System32\cmd.exe 。 |
3. 查看和设置环境变量
3.1 查看环境变量
要查看当前的环境变量,可以通过命令行或图形用户界面来进行。
-
使用命令行:
- 打开命令提示符(cmd),并输入命令:
bash复制
set
- 这会列出所有当前环境变量及其值。
- 打开命令提示符(cmd),并输入命令:
-
使用图形用户界面:
- 右键点击“此电脑”或“我的电脑”,选择“属性”。
- 在左侧,选择“高级系统设置”。
- 点击“环境变量”按钮,查看用户和系统的环境变量。
3.2 设置环境变量
-
使用命令行:
- 在命令提示符下,可以使用
set
命令来设置临时环境变量(仅在当前会话有效):set VARIABLE_NAME=value
- 如果希望设置永久环境变量,则需要使用
setx
命令:setx VARIABLE_NAME "value"
- 例如,设置 Java 的
JAVA_HOME
变量:setx JAVA_HOME "C:\Program Files\Java\jdk-XX"
- 在命令提示符下,可以使用
-
使用图形用户界面:
- 按照上面的步骤打开环境变量窗口。
- 在用户变量或系统变量部分,点击“新建”以添加新变量,或选择已有的变量并点击“编辑”进行修改。
- 输入变量名和变量值,点击“确定”。
4. 环境变量注意事项
- 变量名区分大小写:虽然 Windows 的环境变量不严格区分大小写,但在某些情况下,父子系统(例如 WSL)中可能会受到影响。
- 路径分隔符:在
PATH
变量中,路径之间用分号 (;
) 分隔。 - 重启程序:更改了环境变量后,通常需要重启相关程序才能使更改生效。