Windows基础(1)

Target

了解Windows的基本系统信息,常用cmd命令的使用

基础

1. 操作系统简介
   - Windows操作系统:由微软开发的一系列操作系统,广泛应用于个人电脑和企业服务器。

2. 攻击者视角
   - 攻击者通常从低权限访问开始,需要提升权限或进一步渗透网络,因此理解Windows系统基础知识对于攻防双方都很重要。

   -windows最高权限:system

3. 系统配置
   - Linux系统配置信息存储在/etc和/proc目录中。
   - Windows系统配置信息存储在注册表中。

4. Windows Shell接口
   - GUI(Graphical User Interface):图形化用户界面,操作简单直观。
   - cmd(Command Prompt):命令行用户接口,包含一组预定义命令
   - WMIC(Windows Management Instrumentation Command-line):基于WBEM(Web-Based Enterprise Management)的实现,用于管理Windows系统,从Windows 21H1版本开始已弃用。
   - PowerShell:自动化脚本框架,支持.NET架构,用于任务自动化和配置管理。

5. WSL(Windows Subsystem for Linux)
   - 在Windows上运行的Linux子系统,允许用户在Windows环境中运行Linux命令、工具、应用程序。

6. 安全性 - 用户账户控制(UAC):限制应用程序的权限,防止恶意软件获取过多权限。

  - Windows Defender:内置的防病毒和反恶意软件工具。

  - BitLocker:提供磁盘加密功能,保护数据安全。

7.系统管理

  -注册表:存储系统和应用程序的配置信息

  -控制面板:提供系统设置和应用程序管理界面

注册表

1. 注册表概述
   - Windows注册表是一个包含系统和应用程序配置信息的数据库,它存储在Windows操作系统中。

2. 功能和作用
   - 存储硬件配置信息,如设备驱动程序和系统服务。
   - 存储应用程序设置,如用户界面偏好和网络连接。
   - 存储系统启动和运行所需的关键信息。

3. 结构
   - 注册表由键(Key)和值(Value)组成,类似于文件系统中的文件夹和文件。
   - 键是分层的,可以包含子键,形成树状结构。

4. 主要部分
   - HKEY_CLASSES_ROOT (HKCR):存储文件类型关联和COM对象的信息。
   - HKEY_CURRENT_USER (HKCU):存储当前登录用户的配置信息。
   - HKEY_LOCAL_MACHINE (HKLM):存储所有用户和计算机的配置信息。
   - HKEY_USERS (HKU):存储所有用户账户的配置信息。
   - HKEY_CURRENT_CONFIG (HKCC):存储当前硬件配置文件的信息。

5. 注册表编辑器
   - regedit.exe:Windows自带的注册表编辑器,允许用户查看和编辑注册表项。
   - 注意:不当的编辑可能导致系统不稳定或无法启动。

6. 注册表文件
   - 注册表数据存储在Windows目录下的多个文件中,如system.dat、user.dat等。
   - 这些文件在系统启动时被加载到内存中。

7. 安全性
   - 注册表包含敏感信息,不当的修改可能导致安全风险。
   - 可以通过权限设置限制对注册表的访问。

8. 备份和恢复
   - 可以备份注册表,以便在出现问题时恢复。
   - 使用注册表编辑器或第三方工具进行备份和恢复。

9. 注册表清理
   - 随着时间的推移,注册表可能会积累无效或过时的条目。
   - 可以使用注册表清理工具来优化和清理注册表。

10. 注册表与系统性能
    - 注册表中的无效条目可能会影响系统性能。
    - 定期维护注册表有助于保持系统性能。

11. 注册表与软件安装
    - 软件安装过程中会向注册表添加条目,以存储其配置信息。
    - 卸载软件时,相关注册表条目也应被清理。

12. 注册表与硬件驱动
    - 硬件驱动程序的配置信息存储在注册表中。
    - 更新或移除硬件时,注册表中的相应条目也会更新。

13. 注册表与系统策略
    - 系统管理员可以使用组策略编辑器(gpedit.msc)来配置注册表设置,以控制用户和计算机的行为。

14. 注册表与Windows服务
    - Windows服务的配置信息存储在注册表中,控制服务的启动类型和依赖关系。

15. 注册表与环境变量
    - 环境变量存储在注册表中,影响系统和应用程序的运行环境。

实操

备份注册表

win+r 输入 regedit 打开注册表编辑器,文件 --》 导出

当更错误更改注册表信息造成计算机某些功能无法正常使用时,可将原先备份好的注册表导入。

新建和修改

创建项之后--》修改--》数值   即可

CMD

1. CMD概述
   - CMD(Command Prompt)是Windows操作系统中的命令行解释器,允许用户通过命令行界面与操作系统交互。

2. 功能
   - 执行各种命令来管理系统、运行程序、配置网络设置、管理文件和目录等。

3. 启动CMD
   - 可以通过搜索“cmd”或“命令提示符”在开始菜单中启动。
   - 使用快捷键Win + R,输入“cmd”并按回车键。

4. 命令行界面
   - 提供文本界面,用户可以输入命令并接收文本形式的输出。

5. 基本命令
   - `dir`:列出当前目录下的文件和文件夹。
   - `cd`:更改当前工作目录。
   - `copy`:复制文件。
   - `move`:移动或重命名文件。
   - `del`:删除文件。
   - `mkdir`:创建新目录。
   - `rmdir`:删除目录。

6. 环境变量
   - 允许用户访问操作系统级别的变量,如`PATH`、`TEMP`和`USERPROFILE`。

7. 管道和重定向
   - 使用`|`(管道)将一个命令的输出作为另一个命令的输入。
   - 使用`>`(重定向)将命令的输出保存到文件中。
   - 使用`>>`追加输出到现有文件。

8. 批处理文件
   - 使用`.bat`或`.cmd`文件存储一系列命令,可以一次性执行。
   - 允许创建自动化脚本,用于执行复杂的任务。

9. 命令别名
   - 使用`alias`命令为常用命令创建快捷方式。

10. 命令历史
    - 使用上下箭头键可以浏览之前输入的命令。

11. 通配符
    - 使用`*`和`?`作为通配符,匹配文件名中的多个字符或单个字符。

12. 权限
    - 以管理员身份运行CMD可以执行需要更高权限的命令。

13. 网络命令
    - 如`ping`、`ipconfig`、`netstat`等,用于网络诊断和管理。

14. 文件比较
    - 使用`fc`命令比较两个文件的内容。

15. 任务自动化
    - 可以编写脚本自动执行常规任务,如系统备份、文件同步等。

16. 系统信息
    - 使用`systeminfo`命令查看系统详细信息。

17. 任务管理
    - 使用`tasklist`和`taskkill`命令查看和管理正在运行的进程。

18. CMD与PowerShell
    - CMD和PowerShell都是命令行工具,但PowerShell提供了更高级的功能和面向对象的命令。

19. 安全性
    - 通过限制对CMD的访问,可以提高系统的安全性。
    - 避免在CMD中运行未知来源的脚本或命令。

20. CMD的局限性
    - 与PowerShell相比,CMD的功能和灵活性有限,但在某些情况下,CMD仍然是快速执行简单任务的有效工具。

常用命令详解

都可以用   /?  查看使用说明

1. cd /d [directory] - 更改目录到指定路径
2. copy [source] [destination] - 复制文件到指定位置
3. del /q [file] - 删除文件
4. dir /p - 列出目录内容,分页显示
5. echo [text] - 显示文本信息
6. mkdir [directory] - 创建新目录
7. rmdir /s /q [directory] - 删除目录及其内容
8. move [source] [destination] - 移动或重命名文件
9. cls - 清除屏幕
10. ver - 显示操作系统版本
11. ipconfig /all - 显示所有网络适配器的配置信息
12. ping [address] - 测试网络连接
13. nslookup [hostname] - 查询域名的IP地址
14. netstat -an - 显示所有网络连接和监听端口
15. tasklist - 显示当前运行的进程
16. taskkill /im [processname] - 终止指定进程
17. systeminfo - 显示系统详细信息
18. shutdown /s /t [seconds] - 关闭计算机
19. restart /r /t [seconds] - 重启计算机
20. chkdsk /f - 检查磁盘并修复错误
21. diskpart - 磁盘分区管理工具
22. format [drive:] - 格式化指定驱动器
23. fsutil - 显示或配置文件系统属性
24. robocopy [source] [destination] - 高级文件复制工具
25. xcopy [source] [destination] - 复制文件和目录
26. assoc [.ext] - 查看或更改文件扩展名关联
27. ftype [filename] - 查看或设置文件类型关联
28. sc [create|delete|query] [servicename] - 服务管理
29. schtasks /create - 创建计划任务
30. certmgr.msc - 证书管理器

cmd本身不提供创建文件命令,但可以使用以下方法创建

echo flag{whoami} > flag.txt

help

显示所有预定义命令

[命令] -help

[命令] /?                      显示帮助信息

type

用于显示文本内容

type flag.txt        //显示内容

type nul > flag.txt        //创建新文件

type flag1.txt flag2.txt > flag.txt   //合并文件内容

type *.txt                //查看当前目录下所有以 .txt 结尾的文件

type flag1.txt > flag2.txt   //将文件内容输出到另一个文件

type flag.txt | findstr /I  "flag"  //不区分大小写在文件中搜索flag

findstr

搜索文本文件中特定字符串

findstr "flag" flag.txt    //基本文本搜索

/s                               //递归搜索

findstr "flag" flag1.txt flag2.txt         //多文件搜索

/i                        //忽略大小写

/n                        //显示匹配的行号

/C:                         //匹配字符串

findstr /C:"Kimi" *.txt 会在当前目录下所有 .txt 文件中查找包含 "Kimi" 的行,并显示这些行。

find

和 findstr 差不多,但find只能单文件查找且不支持正则

copy

复制一个或多个文件

格式:copy [source] [destination]

copy flag1.txt  ..\flag3.txt    //单个文件复制到指定位置

如果目标是现有文件,且源文件和目标文件同名,将覆盖目标文件

copy *.txt D:\flag        //利用通配符复制多个文件

copy 1.txt+2.txt  3.txt  //合并文件内容

move

move ..\1.txt  4.txt  将上一级的 1.txt 移动到本级并重命名

del

del 命令(也称为 erase 命令)在 Windows 命令提示符(CMD)中用于删除文件

  1. 删除单个文件

    • 删除指定的单个文件。
    • 格式:del [filename]
  2. 删除多个文件

    • 删除当前目录下符合指定模式的多个文件。
    • 格式:del [filename1] [filename2] ...
  3. 使用通配符

    • 删除符合特定模式的文件,如删除所有文本文件。
    • 格式:del *.txt
  4. 删除并提示确认

    • 在删除文件之前提示用户确认。
    • 格式:del /p [filename]
  5. 强制删除

    • 忽略只读属性,强制删除文件。
    • 格式:del /f [filename]
  6. 删除前移动到回收站

    • 将文件删除并移动到回收站,而不是永久删除。
    • 格式:del /s [filename]
  7. 删除所有属性的文件

    • 删除具有任何属性的文件。
    • 格式:del /a [filename]

del 命令只能删除文件,不能直接删除目录。要删除目录及其内容,需要使用 rmdirrd 命令。此外,使用 del 命令时要小心,因为删除操作是不可逆的,一旦文件被删除,就无法恢复。

dir

用于显示目录(文件夹)中的文件和子目录列表

  1. 基本文件列表

    • 显示当前目录中的文件和子目录。
    • 格式:dir
  2. 指定路径

    • 显示指定路径下的文件和子目录。
    • 格式:dir [path]
  3. 分页显示

    • 以分页形式显示文件列表,每页之后暂停。
    • 格式:dir /p
  4. 显示隐藏文件

    • 显示包括隐藏和系统文件在内的所有文件。
    • 格式:dir /a
  5. 递归显示

    • 递归显示所有子目录中的文件。
    • 格式:dir /s

建议 dir /s | more   分页查看

  1. 使用通配符

    • 显示符合特定模式的文件。
    • 格式:dir *.txt

dir 命令的参数包括:

  • /a:显示所有文件,包括隐藏和系统文件。
  • /d:按日期排序,而不是默认的文件名排序。
  • /p:分页显示。
  • /q:显示文件的所有者。
  • /s:递归显示所有子目录中的文件。
  • /w:以宽格式显示,即每行显示多个文件名。

查找文件 dir/s flag.txt

tree

以树状结构显示指定路径下的目录和文件

显示目录树tree [drive:][path]
显示指定路径或当前路径的目录树结构。

参数

/?:  显示帮助文档

/F:显示每个文件夹中的文件名称。

/a:使用 ASCII 字符绘制树状结构,而不是扩展字符。

tree C:\Users\Administrator /a  比较常用

md和rd

md创建文件夹(等价于 mkdir)

rd删除文件夹

ping -t

一直ping

tasklist 和 taskkill

tasklist         //显示进程

taskkill

  • /F 强制终止进程。
  • /PID process id 指定要终止的进程ID。
  • /IM image name 指定要终止的进程的映像名称。
  • /T 终止指定的进程和由它启动的所有子进程。
  • taskkill /IM notepad.exe /F     强制结束进程名为 notepad.exe 的进程

打开计算器

查看进程信息

强制结束计算器。(也可以用 /pid 15572)

ver和winver

显示系统版本和弹窗显示系统版本

systeminfo

查看系统详细信息,可用于查看打了哪些补丁,可利用哪些进行提权。

logoff

logoff 命令是 Windows 操作系统中的一个命令行工具,用于注销当前用户并关闭会话。

命令格式:

shutdown

/s                 //关闭计算机

/r                       //重启计算机

/a                       //终止系统关闭计算机

/t xxx                //将关闭前的超时时间设置为 xxx 秒

/f         强制关闭正在运行的应用程序而不事先警告用户

shutdown /s /t 0                立即关机

telnet

用于通过 Telnet 协议连接到远程主机。

Telnet 协议是远程登录服务器或主机的协议。

telnet [选项] [主机名/IP地址] [端口号]

使用示例: 
- 连接到远程主机:`telnet remotehost` 
- 连接到远程主机的特定端口:`telnet remotehost 23` 
- 使用详细模式连接:`telnet /v remotehost` 
- 使用用户名自动登录:`telnet /l username remotehost` 

注意事项: - Telnet不是一种安全的协议,因为它以明文形式传输所有数据,包括用户名和密码。因此,它不推荐用于敏感信息的传输。 - 许多现代系统已经禁用了Telnet服务,转而使用更安全的SSH(Secure Shell)协议。 - 在使用Telnet之前,确保远程主机允许Telnet连接,并且你知道正确的登录凭据。

本地查看客户端telnet服务是否打开

控制面板 --》程序--》启用或关闭 windows 功能

打开后即可与远程主机进行连接

arp

ARP 是一种网络层协议,用于将网络层的 IP 地址解析为数据链路层的 MAC 地址。当设备需要发送数据到另一个设备时,如果只知道目标设备的 IP 地址,它将使用 ARP 协议来查询目标设备的 MAC 地址。ARP 协议通过广播请求,目标设备响应其 MAC 地址,从而实现地址解析。

即建立物理机与ip的映射关系

arp  /?

arp  -a

                通过询问当前协议数据,显示当前 ARP 项。
                如果指定 inet_addr,则只显示指定计算机
                的 IP 地址和物理地址。如果不止一个网络
                接口使用 ARP,则显示每个 ARP 表的项。

假设拿到了一台内网机器,通过 -a 查看有哪些主机可用于横向移动,用于发现同一网络有哪些主机

net

NET 是 Windows 系统中用于管理网络服务、用户、本地组等的命令行工具。它包含多个子命令,用于执行不同的网络管理任务
 

net stop telnet       关闭 telnet服务

net start telnet        开启telnet 服务

net user (查看当前用户)

net user admin 123 /add   (添加用户)

net user administrator  (查看管理员用户权限)

将admin变成管理员权限==》

net localgroup administrator admin /add  (提权)

net user admin  (删除用户)

 

有点问题

netstat

netstat /?

显示协议统计信息和当前 TCP/IP 网络连接。

 -a            显示所有连接和侦听端口。

 -r            显示路由表。

环境变量

环境变量是操作系统中的一种机制,用于存储有关系统环境的信息。它们是一系列的键值对,其中键是环境变量的名称,值是相应的数据。环境变量可以被操作系统、运行在系统上的应用程序以及用户在命令行中使用。

特点

动态获取信息:应用程序可以在运行时读取环境变量,以获取所需的配置信息,而无需在程序代码中硬编码这些信息。

影响命令搜索路径:环境变量如 PATH 指定了系统在执行命令时搜索可执行文件的目录。

... ...

1. 查看当前环境变量:
   - 命令:`set`
   - 显示当前会话的所有环境变量及其值。

2. 设置环境变量(当前会话有效):
   - 命令:`set variable_name=variable_value`
   - 设置一个环境变量,只对当前CMD会话有效。

3. 查看特定环境变量的值:
   - 命令:`echo %variable_name%`        比如 echo %path%
   - 显示指定环境变量的值。

4. 删除环境变量(当前会话有效):
   - 命令:`set variable_name=`
   - 删除指定的环境变量,使其在当前会话中不再存在。

5. 在系统环境变量中添加或修改变量:
   - 通过“系统属性”窗口中的“环境变量”按钮进行设置。
   - 在“用户变量”区域添加或修改用户级别的环境变量。
   - 在“系统变量”区域添加或修改系统级别的环境变量。

6. 永久删除系统环境变量:
   - 通过“系统属性”窗口中的“环境变量”按钮进行设置。
   - 在“用户变量”或“系统变量”区域选择要删除的变量,点击“删除”。

7. 导出环境变量到文件:
   - 命令:`set > environment_variables.txt`
   - 将当前会话的所有环境变量及其值导出到文本文件。

8. 从文件导入环境变量:
   - 命令:`set /p | set`
   - 从标准输入(如文件)导入环境变量设置。

9. 使用CMD脚本设置环境变量:
   - 在批处理文件(.bat或.cmd)中使用`set`命令设置环境变量,这些变量将在脚本执行期间有效。

请注意,通过CMD会话设置的环境变量仅对当前会话有效。要永久设置环境变量,需要通过系统属性中的“环境变量”对话框进行设置,或者在系统启动脚本(如注册表或系统启动批处理文件)中设置。```

系统标准目录

在 Windows 操作系统中,标准目录结构是文件和文件夹的组织方式,它们在系统中扮演着特定的角色。以下是一些常见的 Windows 标准目录及其作用:

- C:\Windows:存放 Windows 操作系统的核心文件,包括系统文件、DLLs、资源和配置文件。
- C:\Program Files:默认的应用程序安装目录,用于存放 64 位应用程序。
- C:\Program Files (x86):用于存放 32 位应用程序的目录,即使在 64 位系统上也是如此。
- C:\ProgramData:存放应用程序共享的数据,这些数据对所有用户都可用。
- C:\Users:包含所有用户账户的文件夹,每个用户都有自己的子文件夹,如“Documents”、“Pictures”、“Desktop”等。
- C:\Users\用户名:代表当前登录用户的主目录,包含用户的个人文件和设置。
- C:\Users\用户名\AppData:存放应用程序数据、缓存和临时文件的隐藏文件夹。
  - AppData\Local:存放不需要在用户之间共享的应用程序数据。
  - AppData\LocalLow:存放安全性较低的应用程序数据。
  - AppData\Roaming:存放需要在用户之间共享的应用程序数据,如设置和配置文件。
- C:\Windows\System32:存放 64 位系统文件和用于运行 Windows 操作系统的 DLLs。
- C:\Windows\SysWOW64:在 64 位系统上,这是存放 32 位系统文件和 DLLs 的目录。
- C:\System Volume Information:一个隐藏的系统文件夹,用于存放系统还原点和卷影复制信息。
- C:\$Recycle.Bin:存放被删除文件的文件夹,直到它们被永久删除或清空回收站。
- C:\Boot:包含启动加载程序的文件。
- C:\Windows\Temp:存放临时文件,这些文件可以被系统或应用程序使用。

这些目录是 Windows 系统正常运行的基础,用户在操作时应谨慎,避免删除或修改这些目录中的重要文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值