前言

前不久的一次线下比赛,自己拿到了webshell权限,但是死活上不去蚁剑,没办法,只能手动执行命令,这时才发现自己对windows的常用命令和敏感目录都不是很了解,真是折磨。这里就快速总结,好记性不如烂笔头。
win命令网上总结的都不是很全,建议直接看官网:https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/windows-commands

windows命令比较单一,还有很多linux命令的功能,win根本不支持,怪不得ctf里的命令执行题目默认是linux环境。

环境变量

环境变量可以分为以下三种
用户变量:只对当前用户生效
系统变量:对所有用户生效(需要管理员权限修改)
Path变量:是用户变量和系统变量都有的一个叫做path的变量,path变量可以看成是一个数组,里面存储的可执行文件的路径

环境变量优先级:系统变量先定义,用户变量覆盖系统变量。Path的合并:系统Path + 用户Path
也就是说系统变量会被用户变量覆盖,但系统变量path不会被用户path覆盖,系统 PATH 中的目录优先于用户 PATH 中的目录 被搜索

通过echo就能查看环境变量里的值

Windows系统自带的系统环境变量

普通变量的值是固定的,由系统或用户设定后存储在注册表中,可以修改;而动态变量的值是由系统或当前环境决定的。也就是说不是所有环境变量都能通过修改系统属性里的环境变量或者使用setx 修改

常见动态变量(不是全部)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
%HOMEPATH%                  用户主目录相对路径                 \Users\Admin
%SESSIONNAME% 当前会话名称 Console

%SystemDrive% 系统驱动器(Windows所在盘) C:
%HOMEDRIVE% 用户主目录所在盘符 C:
%SYSTEMROOT% Windows系统目录 C:\Windows\
%USERPROFILE% 当前用户配置文件根目录 C:\Users\Admin
%APPDATA% 用户漫游配置目录 C:\Users\Admin\AppData\Roaming
%LOCALAPPDATA% 用户本地配置目录 C:\Users\Admin\AppData\Local
%PROGRAMFILES% 64位程序目录 C:\Program Files
%PROGRAMFILES(X86)% 32位程序目录 C:\Program Files (x86)
%PROGRAMW6432% 64位程序目录 C:\Program Files
%COMMONPROGRAMFILES% 公共组件目录 C:\Program Files\Common Files
%COMMONPROGRAMFILES(X86)% 32位公共组件目录 C:\Program Files (x86)\Common Files
%ALLUSERSPROFILE% 所有用户配置目录 C:\ProgramData
%PROGRAMDATA% 程序公共数据目录 C:\ProgramData
%PUBLIC% 公共用户目录 C:\Users\Public

下述无默认值:
%USERDOMAIN% 当前用户所属计算机/域名 DESKTOP-ABC123
%COMPUTERNAME% 当前计算机名 DESKTOP-ABC123
%LOGONSERVER% 登录验证服务器 \\DESKTOP-ABC123
%CD% 当前工作目录 C:\Users\DELL
%DATE% 当前日期 2026-06-08
%TIME% 当前时间 14:23:45.12
%RANDOM% 0~32767 随机数 12345
%ERRORLEVEL% 上一条命令的退出码 0

普通变量

1
2
3
4
5
6
7
8
%TEMP%/%TMP%                用户临时目录                       C:\Users\Admin\AppData\Local\Temp
%WINDIR% Windows系统目录 C:\Windows\
%USERNAME% 当前登录用户名 Admin
%PROCESSOR_ARCHITECTURE% CPU架构 AMD64
%PATH% 程序搜索路径 多个目录拼接
%PATHEXT% 可执行扩展名列表 .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
%COMSPEC% CMD解释器路径 C:\Windows\System32\cmd.exe
%OS% 操作系统标识 Windows_NT

常见开发环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
%JAVA_HOME%                 JDK安装目录
%JRE_HOME% JRE安装目录

%MAVEN_HOME% Maven安装目录
%M2_HOME% Maven安装目录

%GRADLE_HOME% Gradle安装目录

%NODE_HOME% Node.js安装目录
%NPM_CONFIG_PREFIX% npm全局安装目录

%PYTHON_HOME% Python安装目录
%PYTHONPATH% Python模块搜索路径

%GOROOT% Go安装目录
%GOPATH% Go工作目录

%ANDROID_HOME% Android SDK目录
%ANDROID_SDK_ROOT% Android SDK目录

set命令

set可以设置进程级别的环境变量,关闭终端就会结束
下面是设置终端临时代理

1
2
set HTTP_PROXY=http://127.0.0.1:7890
set HTTPS_PROXY=http://127.0.0.1:7890

setx可以永久的修改环境变量

1
2
setx JAVA_HOME "D:\Java\jdk21" /M #修改系统变量要加/m
setx JAVA_HOME "D:\Java\jdk21"

windows敏感文件

系统根目录下的敏感文件

C:\Windows\system.ini
C:\windows\system32\drivers\etc\hosts //DNS解析地址
C:\windows\System32\drivers\etc\networks //网络设置
C:\Windows\system32\config\SAM //用户名和密码HASH
C:\Windows\prefetch //存储预读取文件

第三方配置文件

C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件
C:\Program Files\mysql\my.ini //Mysql配置
C:\Program Files\mysql\data\mysql\user.MYD //Mysql root
C:\Windows\php.ini //php配置信息
C:\Windows\my.ini //Mysql配置信息

启动项目录

启动文件夹(Startup Folder)是一个实际的文件夹,放入其中的程序(如 .exe 文件、.bat 文件、.vbs 文件等)将在 Windows 启动时自动运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Windows Server 2003 的启动项路径:
C:\Documents and Settings\Administrator\Start Menu\Programs\Startup
C:\Documents and Settings\All Users\Start Menu\Programs\Startup

# Windows Server 2008 的启动项路径:
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup



#适用于 Windows 9x
%SystemDrive%\wmiOWS\Start Menu\Programs\Startup
tan
#适用于 Windows NT 4.0、3.51、3.50
%SystemDrive%\WINNT\Profiles\All Users\Start Menu\Programs\Startup

windows 命令

弹计算器

calc

获取使用提升

win cmd下 命令加/?,即可获取提示

1
2
命令 -help    #第1种形式的使用帮助
命令 /? #第2种形式的使用帮助

输出命令

1
2
3
4
C:\Users\DELL>echo 1123
1123
C:\Users\DELL>echo "1123"
"1123"

管理目录

cd命令

1
2
3
4
5
6
cd             #显示当前目录相当于linux的pwd
cd \ #跳转到硬盘的根目录
cd C:\WINDOWS #跳转到当前硬盘的其他文件
d: #切换到d盘
cd /d e:\software #跳转到其他硬盘的其他文件夹,注意此处必须加/d参数。否则无法跳转。
cd.. #跳转到上一层目录

dir命令

1
2
3
4
5
6
7
8
9
dir           #默认情况下,dir 会显示文件名、大小、日期和时间等信息。
dir /b #只列出文件名,不包含详细信息
dir /a #显示隐藏文件
dir /q #显示文件和文件夹的 所有者 信息
dir *.txt #只显示 .txt 文件
dir /s #/s(递归查找子目录)
dir C:\*.log /s /b #递归查找c盘下以.log结尾的文件

tree #查看目录的树形结构

目录和文件操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mkdir 123   #创建文件夹
rmdir 123
#注意:rmdir删除的目录dir必须是空目录,否则删除不掉dir这个目录。
echo. > 1.txt #创建空文件
type nul >test.txt
echo hello >c:\1.txt #1.txt的文件内容先被清空,然后写入hello。
echo hello >>c:\1.txt # 在1.txt文件末尾加上hello
move C:\temp\test.txt D:\backup\

copy C:\temp\test.txt D:\backup\test_backup.txt
copy file1 + file2 + file3 merged.bin #多文件合并

del \data\*.xls
erase test.txt #del的别名

ren 原文件名字 新的文件名字 #修改文件名

文件读取

1
2
type file.txt
more file.txt

文本查询

1
2
3
4
findstr "flag" 1.log    #查找文件中包含字符串的行
findstr /s /n "flag" * #/s:在当前目录和所有子目录中搜索。/n:打印行号
findstr /s /m "flag" * #/m:如果文件含有匹配项,只打印其文件名
findstr /s /n "flag" C:\*.* #递归搜索c盘

文件属性控制

attrib 显示和修改的属性是文件/目录的“文件系统属性”,不是权限属性。这些属性对所有用户都一样,不是针对某个用户的,只要用户拥有对文件的“写入权限”,其就可以使用 attrib

Hidden (H):是否在资源管理器中隐藏
System (S):是否作为系统文件,受保护
Read-only (R):是否允许写入
Archive (A):文件被修改过,需要备份
Not Indexed (I):搜索服务不用索引这个文件

1
2
3
4
attrib   #查看当前文件夹下所有文件的属性
attrib filename.txt #查看属性
attrib [+属性 | -属性] [文件名] [/s [/d]]
attrib -s -h -r /s /d *.* #递归子目录 ,/s → 处理子目录,/d → 处理目录

快捷键

win系统常见快捷键

1
2
3
4
5
6
7
8
9
10
11
12
Win + D	            显示桌面
Win + E 打开文件资源管理器
Win + L 锁定电脑
Win + M 最小化所有窗口
Ctrl + Shift + Esc 打开任务管理器
ctrl+F 在一个文本或者网页里面查找
ctrl+tab 在浏览器中快速切换窗口

Win + PrtSc 自动截图全屏并保存到E:\user\Pictures\Screenshots目录
PrtSc 截图到剪贴板

Win + Tab 任务视图,可以开虚拟桌面

Win + R 快捷键

cmd 命令窗口
msconfig 系统配置工具,用于管理启动项、服务等
regedit 注册表编辑器,用于修改系统注册表
devmgmt.msc 设备管理器
compmgmt.msc 计算机管理
services.msc Windows 服务管理器
eventvwr 事件查看器(查看系统日志)
secpol.msc 本地安全策略管理工具。
fsmgmt.msc 共享文件夹管理器。
diskmgmt.msc 磁盘管理工具。
gpedit.msc 本地组策略编辑器(仅在专业版及更高版本的 Windows 中可用)。
lusrmgr.msc 本地用户和组管理工具。
mstsc 远程桌面连接(Remote Desktop)。
taskschd.msc 任务计划程序。
perfmon.msc 性能监视器。
sysdm.cpl 系统属性(可以更改环境变量)
appwiz.cpl 程序和功能界面(用于卸载程序)