声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章
声明:本文主要用作技术分享,所有内容仅供参考。任何使用或依赖于本文信息所造成的法律后果均与本人无关。请读者自行判断风险,并遵循相关法律法规。
感谢泷羽sec 团队的教学
视频地址:windows基础(1)_哔哩哔哩_bilibili
本文主要讲解Windows 和 Linux 操作系统的一些基础知识总结,以及Windows操作系统的常用命令。
一、Windows 系统概述
Windows 操作系统由微软开发,是广泛应用于个人电脑和企业的操作系统。由于 Windows 在企业和个人用户中的广泛部署,安全人员需要熟悉其内部工作原理,包括 Windows 的内网和域渗透机制,以应对权限提升和网络渗透等场景。
二、文件系统和路径格式
Linux:
- 采用 FHS 目录结构,块设备可以挂载到目录下,一切皆为文件。
- 路径以
/
开始,并且区分大小写。
Windows:
- 文件系统以驱动器盘符(如
C:
)起始,也可以通过目录挂载分区。 - 路径使用反斜杠
\
进行分隔,不区分大小写。
三、系统配置存储
Linux:
- 系统配置文件位于 /etc 和 /proc 等目录。
Windows:
- 系统配置信息主要存储在 注册表 中,是 Windows 配置和设置的核心数据库。
四、Windows 四种 Shell 接口
- GUI:图形化用户界面,操作简单。
- cmd:传统命令行接口,提供一组预定义命令。
- wmic:Windows Management Instrumentation Command-line。已在 Windows 21H1 版本中弃用,推荐使用 PowerShell。
- PowerShell:基于 .NET 的自动化脚本框架,功能强大,支持 WSL(Windows Subsystem for Linux)在 Windows 上运行 Linux 子系统。
五、Windows 常用命令及用法
1. cd
- 更改目录
- 用法:
cd [目录名]
- 示例:
cd C:\Users // 更改到 Users 目录
cd .. // 返回上一级目录
cd \ // 返回根目录
2. cmd
- 打开命令提示符
- 用法:
cmd
- 示例:
cmd //打开另一个命令提示符窗口
3. copy
- 复制文件
- 用法:
copy [源文件] [目标文件]
- 示例:
copy file.txt E:\file.txt // 将 file.txt 复制到 E盘
4. del
- 删除文件
- 用法:
del [文件名]
- 示例:
del file.txt // 删除当前目录下的 file.txt
del /Q *.tmp // 安静模式删除当前目录下的所有 .tmp 文件
5. dir
- 显示目录内容
- 用法:
dir [目录名]
- 示例:
dir // 显示当前目录的文件和子目录
dir C:\Users // 显示 C:\Users 目录内容
6. echo
- 输出消息
- 用法:
echo [文本]
- 示例:
echo Hello World // 输出 Hello World
echo on // 打开命令回显
echo off // 关闭命令回显
7. erase
- 删除文件
- 用法:
erase [文件名]
- 示例:
erase file.txt // 删除 file.txt 文件
8. find
- 在文件中查找字符串
- 用法:
find "[字符串]" [文件名]
- 示例:
find "error" logfile.txt // 在 logfile.txt 中查找 "error"
9. findstr
- 在多个文件中查找字符串
- 用法:
findstr "[字符串]" [文件名]
- 示例:
findstr "error" *.log // 在所有 .log 文件中查找 "error"
10. mkdir
- 创建目录
- 用法:
mkdir [目录名]
- 示例:
mkdir new_1 // 创建名为 new_1 的目录
11. more
- 分页显示输出
- 用法:
more [文件名]
- 示例:
more 1.log // 分页显示 1.log 的内容
12. move
- 移动文件
- 用法:
move [源文件] [目标文件]
- 示例:
move 1.log E:\ // 将 1.log 移动到 E:\
13. ren
- 重命名文件
- 用法:
ren [旧文件名] [新文件名]
- 示例:
ren 1.log gg.log // 将 1.log 重命名为 gg.log
14. rmdir
- 删除目录
- 用法:
rmdir [目录名]
- 示例:
rmdir new_1 // 删除名为 new_1 的目录
15. type
- 显示文本文件内容
- 用法:
type [文件名]
- 示例:
type file.txt // 显示 file.txt 的内容
16. attrib
- 显示或更改文件属性
- 用法:
attrib [属性] [文件名]
- 示例:
attrib +h file.txt // 设置 file.txt 为隐藏属性
attrib -r file.txt // 移除 file.txt 的只读属性
17. cacls
- 显示或修改文件的访问控制列表
- 用法:
cacls [文件名]
- 示例:
cacls file.txt // 显示 file.txt 的访问权限
cacls file.txt /E /G ggg:R // 给ggg 用户添加只读权限
18. chcp
- 显示或设置活动代码页
- 用法:
chcp [代码页]
- 示例:
chcp 65001 // 设置代码页为 UTF-8
19. comp
- 比较两个文件或文件集
- 用法:
comp [文件1] [文件2]
- 示例:
comp file.txt 1.log // 比较 file.txt 和 1.log 的内容
20. date
- 显示或设置系统日期
- 用法:
date [yy-mm-dd]
- 示例:
date 2024-12-01 // 设置日期为 2024年12月1日
date // 显示当前日期
21. diskpart
- 显示或配置磁盘分区
- 用法:
diskpart
- 示例:
diskpart // 进入磁盘管理工具
22. doskey
- 编辑命令行或创建宏
- 用法:
doskey [宏名称]=[命令]
- 示例:
doskey ls=dir // 创建 ls 的宏命令
23. driverquery
- 显示设备驱动程序状态和属性
- 用法:
driverquery
- 示例:
driverquery // 显示所有驱动程序的状态
24. fc
- 比较两个文件并显示差异
- 用法:
fc [文件1] [文件2]
- 示例:
fc file.txt 1.log // 比较 file.txt 和 1.log
25. for
- 为一组文件中的每个文件运行一个指定命令
- 用法:
for %变量 in (文件集) do [命令]
- 示例:
for %f in (*.txt) do type %f // 显示所有 .txt 文件的内容
26. fsutil
- 显示或配置文件系统属性
- 用法:
fsutil [命令] [参数]
- 示例:
fsutil behavior query DisableLastAccess // 查询是否禁用最后访问时间
27. gpresult
- 显示组策略信息
- 用法:
gpresult /h [文件名]
- 示例:
gpresult /h report.html // 生成组策略结果的 HTML 报告
28. mklink
- 创建符号链接或硬链接
- 用法:
mklink [选项] [链接] [目标]
- 示例:
mklink /D LinkFolder C:\TargetFolder // 创建目录链接
29. icacls
- 显示、修改、备份或还原文件 ACL
- 用法:
icacls [文件名] [命令]
- 示例:
icacls file.txt /grant ggg:F // 给 ggg 用户赋予 file.txt 的完全控制权限
30. openfiles
- 显示远程用户通过文件共享打开的本地文件
- 用法:
openfiles
- 示例:
openfiles // 显示当前打开的文件
31. path
- 为可执行文件显示或者设置搜索路径
- 用法:
path
- 示例:
path=C:\Windows\System32;C:\ // 将
path
变量设置为 C:\Users\Administrator 和 C:\ 两个目录。
32. set
- 显示、设置或删除 Windows 环境变量
- 用法:
set [变量名]=[值]
- 示例:
set PATH=C:\Program Files;%PATH% // 添加路径
33. sc
- 显示或配置服务
- 用法:
sc [命令] [服务名]
- 示例:
sc query // 查询所有服务
34. schtasks
- 安排在计算机上运行的命令和程序
- 用法:
schtasks /create /tn [任务名称] /tr [程序路径] /sc [计划类型]
- 示例:
schtasks /create /tn "MyTask" /tr "C:\Program.exe" /sc daily // 创建一个每日执行的任务
35. shutdown
- 关闭计算机
- 用法:
shutdown [选项]
- 示例:
shutdown /s /t 0 // 立即关闭计算机
36. start
- 启动指定程序
- 用法:
start [程序名]
- 示例:
start notepad.exe // 启动记事本
37. systeminfo
- 显示系统信息
- 用法:
systeminfo
- 示例:
systeminfo // 显示系统的详细信息
38. tasklist
- 显示当前运行的进程
- 用法:
tasklist
- 示例:
tasklist // 显示所有当前运行的进程
39. taskkill
- 结束当前运行的进程
- 用法:
taskkill /PID [进程ID]
- 示例:
taskkill /PID 772 // 结束进程 ID 为 772 的进程
40. tree
- 以图形显示目录结构
- 用法:
tree [目录名]
- 示例:
tree C:\Users\Administrator // 显示 C:\Users\Administrator 的目录结构
41. time
- 显示或设置系统时间
- 用法:
time [HH:MM:SS]
- 示例:
time 12:30:00 // 设置时间为 12:30
time // 显示当前时间
42. tracert
- 网络路径追踪
- 用法:
tracert [目标主机]
- 示例:
tracert www.baidu.com // 跟踪到 baidu.com 的路由
43. nslookup
- 查询域名系统(DNS)
- 用法:
nslookup [域名]
- 示例:
nslookup www.baidu.com // 查询 www.baidu.com 的 IP 地址
44. netstat
- 列出所有打开的端口和相关进程信息
- 用法:
netstat -a
- 示例:
netstat -an // 显示所有活动连接及端口状态
六、系统标准目录
-
perflogs
:存储 Windows 性能日志。 -
program files
:存储 32 位程序(在 64 位系统上为Program Files (x86)
)。 -
programdata
:隐藏目录,包含全局程序数据,所有登录用户均可访问。 -
users
:包含用户主目录。-
users\public
:用户间共享文件夹。 -
users\[username]\appdata
:隐藏子目录,存储用户应用程序数据和设置。
-
-
Windows
、system
、system32
、syswow64
:存储动态链接库和系统核心文件。
七、环境变量
-
查看环境变量:
echo %username% // 显示当前用户
echo %path% // 显示 PATH 环境变量
echo %temp% // 显示临时文件目录
echo %userprofile% // 显示用户主目录
-
列出当前命令行下的环境变量:
set
-
查看以 p 开头的变量:
set p
-
永久修改环境变量:
setx var1 brand1
-
以其他用户身份设置环境变量:
setx /s host1 /u domain\user /p pass var1 brand1
命令解析
- setx: 用于设置用户或系统环境变量的命令。
- /s host1: 指定要进行操作的远程计算机名为 host1。
- /u domain\user: 指定用于身份验证的用户账户,即 domain\user。
- /p pass: 指定用户的密码。
- var1: 要设置的环境变量的名称。
- brand1: 环境变量 var1 的值。
-
设置 PATH 环境变量:
setx /s host1 /u domain\user /p pass mypath %path%
命令解析
- setx: 用于设置用户或系统环境变量的命令。
- /s host1: 指定操作的目标远程计算机名为 host1。
- /u domain\user: 用于身份验证的用户账户,即 domain\user。
- /p pass: 指定用户的密码。
- mypath: 要设置的环境变量的名称。
- %path%: 这是一个环境变量,表示当前系统的 PATH 变量值。将原有 PATH 的值附加到新的环境变量中。
-
变量存储位置:
HKEY_CURRENT_USER\Environment
HKEY_CURRENT_USER\Environment 是 Windows 注册表中的一个键,存储当前用户的环境变量。