Windows_Learning


第一部分:Windows命令行学习

一、系统管理命令

1、Windows命令行的快速操作

  • Ctrl + 和Ctrl + :跳到后一个/前一个单词

  • F1:逐个字符输入上一个命令

  • F2:当用户输入一个命令后,按F2功能键,然后输入命令中包含的一个字符,系统将自 动输入到用户输入字符的位置。例如先运行 cd Desktop\test_valecalida命令,然后 按下F2功能键,接着输入v,系统就会自动输入以下内容:cd Desktop\test_ (即前一个命令中字符v之前的部分),注意,这里通常使用绝对路径

  • F7:显示所有历史记录,并且可以使用命令的首字母快速导航

2、关机命令

2.1、本地与远程关机命令–shutdown

2.1.1、命令简介

Windows10的关机是通过shutdown.exe程序来实现的,这个程序在C:\Windows\System32这个目录下,由于该目录已经添加到环境变量中,所以该程序是可以直接在命令行中使用的。

2.1.2、命令格式
  • shutdown [ -i | -l | -s | -r | -a] [-f] [-m \\\computername] [-t xx] [-c “comment”]
2.1.3、命令参数说明
  • -i:使用该参数将会显示图形界面,需要注意的是,这个参数必须放在第一位。
  • -l:注销计算机,该参数只能用于本地计算机,不能与-m参数一起使用
  • -s:关闭计算机
  • -r:重新启动计算机
  • -a:放弃关闭计算机的操作
  • -f:强行关闭正在运行的程序,以避免因某些程序无法退出而导致关机失败现象
  • -m \\\computername:该参数用于控制远程计算机进行关机、重新启动及放弃操作。用户需要 先获取远程计算机的操作权限。此外,该参数不能与-1参数-起使用。(通常需要修改组策略)
  • -t xx:设置倒计时xx秒
  • -c “comment”:该参数用于设置关机对话框中的提示信息,但长度不能超过127个字符。

3、文件管理命令

3.1、文件及文件夹查看命令–dir

3.2.1、命令简介

Windows中查看文件与文件夹的命令有dirtree ,但是后者使用频率不高且功能单一,这里主要描述 dir

3.2.2、命令格式
  • dir [drive:][path][filename] [/A[[:]attributes]] [/B] [/D] [/O[:]sortorder] [/P] [/Q] [[:]timefield] [/W] [/X] [/4]
3.2.3、命令参数说明
  • [drive:][path][filename]:指定要查看的驱动器(盘符)、目录及文件,不带参数指当前目录
  • /A:attributes:表示显示指定属性的文件。D:目录,R:只读文件,H:隐藏文件,A:准备存档的文件,S:系统文件。其中”-“表示非,”+”表示已生效。
  • /B:简明扼要的显示文件及文件夹信息,不显示文件大小创建时间等额外信息
  • /D:把文件及文件夹分栏列出
  • /O:sortorder,按指定分类排列显示。N:名称,S:大小,E:扩展名,D:时间,使用”-“表示颠倒顺序
  • /P:显示满屏后暂停,确认后显示下一屏
  • /Q:文件的所有者
  • /T:timefield:控制显示的时间字符域。C:创建时间,A:上次访问时间,W:上次写入的时间
  • /W:表示使用宽列表格式
  • /X:显示短名称
  • /4:用四位数字显示年

3.2、修改文件夹及文件属性命令–attrib

3.2.1、命令简介

attrib命令用于修改文件夹及文件的属性,文件属性主要有:存档、只读、隐藏和系统

  • 存档:用来标记文件的改动
  • 只读:只可读取文件内容,不能修改
  • 隐藏:通常无法直观的看到,需要使用特定的参数后才能看到
  • 系统:表示该文件或文件夹属于操作系统管控,这个属性在Windows中无法更改
3.2.2、命令格式
  • attrib [+R | -R] [+A | -A] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S] [/D]
3.2.3、命令参数说明
  • +:设置属性
  • -:取消属性
  • R:与+或-组合,设置或取消只读属性
  • A:与+或-组合,设置或取消存档属性
  • S:与+或-组合,设置或取消系统文件属性
  • H:与+或-组合,设置或取消隐藏文件属性
  • [drive:] [path] [filename]:指定要设置的文件
  • /S:处理当前文件夹啊及子文件夹中的匹配文件(也就是递归处理)
  • /D:也处理文件夹,需要跟/S参数一起使用

3.3、文件复制命令–copy

3.3.1、命令简介

copy命令用于复制文件,但是不能复制子目录及子目录下的文件

3.3.2、命令格式
  • copy [/D] [/V] [/N] [/Y | /-Y] [/A | /B] source [/A | /B] [+ source [/A | /B] [+…]] [destination[/A | /B] ]
3.3.3、命令参数说明
  • /D:允许解密要创建的目标文件
  • /V:验证新文件写入是否正确
  • /N:复制带有非8dot3名称的文件名时,极可能使用短文件名
  • /Y:不适用确认是否要覆盖现有目标的提示
  • /-Y:使用确认是否要覆盖现有目标的提示
  • /A:表示一个ASCII文本文件
  • /B:表示一个二进制文件
  • source:表示要复制的文件
  • destination:为新文件指定目录和/或文件名
3.3.4、典型案例

使用copy命令将图片和压缩包以16进制结合,其实也就是在图片后面追加一个压缩包

C:\Users\valecalida\Desktop>copy /b 2.png + /b flag.zip new.png
2.png
flag.zip
已复制         1 个文件。

如果想获取到这个 flag.zip 里的信息,可以通过直接修改 new.png 后缀名为 new.zip ,这样就能获取到了,也可以通过16进制编辑器来将两个文件分离。

3.4、文件移动命令–move

3.4.1、命令简介

move是将文件或文件夹移动到另外一个路径下去的Windows命令

3.4.2、命令格式

要移动至少一个文件

  • move [/Y |/-Y] [drive:] [path] filename destination

要重命名一个目录

  • move [/Y | /-Y] [drive:] [path] dirname1 [drive:] [path] dirname2
3.4.3、命令参数说明
  • [drive:] [path] filename:指定要移动的文件位置和名称
  • destination:指定文件的新位置
  • [drive:] [path] dirname1:指定要重命名的目录
  • dirname2:指定目录的新名称
  • /Y:这个参数用于取消确认改写一个现有目标文件的提示
  • /-Y:这个参数用于对确认改写一个现有目标文件的提示

3.5、高级文件复制命令–xcopy

3.5.1、命令简介

xcopy是一个用于复制文件及目录外部命令,当系统存在这个程序文件时才可以使用

3.5.2、命令格式
  • xcopy source [destination] [/A] [/M] [/D[:date]] [/P] [/S] [/E] [/V] [/W] [/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U] [/K] [/O] [/Z] [/EXECLUDE:file1[+file2] [+file3]…]
3.5.3、命令参数说明
  • source:指定要复制的文件
  • destination:指定新文件的位置和名称
  • /A:只复制有存档属性的文档,并且不改变属性
  • /M:只复制有存档属性的文档,并关闭存档属性
  • /D:m-d-y:复制在指定日期或指定日期以后更改的文件,如果没有提供日期,只复制源时间比目标时间新的文件
  • /P:创建每个目标文件前提示
  • /S:复制目录和子目录,除了空的
  • /E:复制目录和子目录,包括空的
  • /V:验证每一个新文件
  • /W:提示您在复制前按键
  • /C:即使有错误,也继续复制
  • /I:如果目标不存在,又在复制一个以上的文件,则鉴定目标是一个目录
  • /Q:复制时显示完整的源和目标文件名
  • /L:显示要复制的文件
  • /H:复制隐藏的系统文件
  • /R:覆盖只读文件
  • /T:创建目录结构,但不复制文件。不包括空目录或子目录。/T /E包括空目录和子目录
  • /U:只复制已经存在于目标中的文件
  • /K:复制属性,一般的xcopy会重置只读属性
  • /N:用生成的短名复制
  • /O:复制文件所有权和ACL信息
  • /Z:用重新启动模式复制网络文件
  • /EXCLUDE:file1 [+file2] [+file3] …:在复制时排除不想要的文件或文件夹,使用这个参数时需要新建一个文本文件,写下要排除的字符串

3.6、重命名命令–rename

3.6.1、命令简介

rename命令的功能时重新命令文件,通常可以简写为ren

3.6.2、命令格式
  • rename [drive:] [path] filename1 filename2
  • ren [drive:] [path] filename1 filename2
3.6.3、命令参数说明
  • [drive:] [path] filename1:要重命名的文件位置及名称
  • filename2:新的名称

3.7、删除文件命令–del

3.7.1、命令简介

del是用于删除多余文件的Windows命令

3.7.2、命令格式
  • del [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
3.7.3、命令参数说明
  • /P:删除每一个文件之前提示确认
  • /F:强制删除只读文件
  • /S:从所有子目录删除指定文件
  • /Q:安静模式。删除全局通配符时,不要求确认
  • /A:attrubutes:根据属性选择要删除的文件,属性包括RSHA-
  • names:指定一个或数个文件或目录列表,允许使用通配符.如果制定了一个目录,目录中所有文件将会被删除

4、目录管理命令

4.1、目录切换命令–cd

4.1.1、命令简介

cd命令用于显示当前的目录命及切换当前目录

4.1.2、命令格式
  • cd [/D] [drive:] [path]
  • cd [..]
  • cd [/]
4.1.3、命令参数
  • /D:一个开关参数,使用该参数时可以直接使用带盘符的绝对路径
  • [drive:] [path]:要设置的驱动器和目录
  • ..:返回上一层目录
  • /:返回根目录
  • 不带参数的cd显示当前驱动器和目录
4.1.4、典型案例
C:\Users\valecalida\Desktop>cd /d "D:Program Files"
#如果不用/d这个参数的话就需要先选盘符再切换路径
D:\Program Files>C:

C:\Users\valecalida\Desktop>

4.2、创建目录命令–md

4.2.1、命令简介

md(mkdir)命令用于创建目录。

4.2.2、命令格式
  • md [drive:] path
  • mkdir [drive:] path(大部分情况下这个是不能用的)
4.23、命令参数
  • [drive:] path:新建目录的位置

4.3、删除目录命令–rd

4.3.1、命令简介

rd是Windows下用于删除目录的命令

4.3.2、命令格式
  • rd [/S] [/Q] [drive:] path
  • rmdir [/S] [/Q] [drive:] path(大部分情况下这个是不能用的)
4.3.3、命令参数
  • /S:用于删除目录树,可以删除指定目录下的所有子目录和文件
  • /Q:安静模式,带/S删除目录树时不要求确认
  • [drive:] path:删除目录的位置
4.3.4、典型案例
C:\Users\valecalida\Desktop>rd va
目录不是空的。

C:\Users\valecalida\Desktop>rd /s va
va, 是否确认(Y/N)? y

4.4、将目录映射为驱动命令:subst

4.4.1、命令简介

subst命令时将一个目录映射为虚拟的驱动器,用户可以像访问驱动器那样访问该目录

4.4.2、命令格式
  • subst [drive1: [drive2:]path]]
  • subst drive1 /D
4.4.3、命令参数
  • drive1:指定要分配给虚拟驱动器的盘符
  • [drive2:]path:指定要映射的目录
  • /D:删除虚拟驱动器
4.4.4、典型案例

这里需要注意,映射出来的虚拟驱动器是额外的盘符,也就是在根目录下,但是所占用空间是映射到的文件夹的可用空间

C:\Users\valecalida>md valecalida
#先创建一个名为valecalida的文件夹
C:\Users\valecalida>subst m: C:\Users\valecalida\valecalida
#将这个文件夹映射到m盘
C:\Users\valecalida>cd /d m:
#进入到m这个盘符查看
M:\>dir
 驱动器 M 中的卷没有标签。
 卷的序列号是 381B-9955
 M:\ 的目录
2020/06/23  14:31    <DIR>          .
2020/06/23  14:31    <DIR>          ..
               0 个文件              0 字节
               2 个目录 21,672,689,664 可用字节

5、磁盘管理命令

5.1、磁盘分区配置命令–diskpart

5.1.1、命令简介

diskpart实际上是一个集成环境,在命令提示符窗口中输入diskpart后,将会进入diskpart环境,此时屏幕上显示的是

DISKPART>

而不是类似 C:\的提示符。需要注意的是,在diskpart环境下用户只能运行diskpart相关的命令,如果要执行其他dos命令,需要输入exit命令退出diskpart环境。

5.1.2、命令参数
  • list:显示磁盘或分区列表,例如 list disk表示显示磁盘列表,list partition表示显示所选磁盘的分区列表,输入list后,屏幕会显示可用的后缀
  • detail:查看选择的磁盘、分区的详细信息
  • select:选择要操作的磁盘、分区及虚拟磁盘,被选中的目标在使用list命令查看时会带有*****号
  • create:在选择的磁盘上创建分区,输入create时可以看到可用的后缀
  • assign:为分区分配一个盘符
  • remove:删除选择分区的盘符或装载点
  • active:将一个分区标为活动分区,让它成为系统盘
  • format:格式化磁盘
  • delete:删除磁盘或分区
  • exit:退出diskpart状态
5.1.3、典型案例

把一个全新五GB的硬盘划成两个分区,并把第一个分区激活为系统盘

Step1:以管理员身份进入命令提示符界面,输入 diskpart 命令

Step2:输入list disk,查看磁盘列表

DISKPART> list disk
  磁盘 ###  状态           大小     可用     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  磁盘 0    联机               60 GB      0 B
  磁盘 1    联机             5120 MB  5120 MB

Step3:输入select可以查看命令用法,这里先使用已经有分区的磁盘0测试下其他命令

DISKPART> select disk 0

磁盘 0 现在是所选磁盘。
DISKPART> list partition

  分区 ###       类型              大小     偏移量
  -------------  ----------------  -------  -------
  分区      1    主要                 100 MB  1024 KB
  分区      2    主要                  59 GB   101 MB

Step4:对全新的硬盘进行划分

DISKPART> list partition

这个磁盘上没有显示的分区。

DISKPART> create partition primary size=1024    #创建一个1G大小的主分区

DiskPart 成功地创建了指定分区。

DISKPART> list partition

  分区 ###       类型              大小     偏移量
  -------------  ----------------  -------  -------
* 分区      1    主要                1024 MB  1024 KB

Step5:由于Windows下每块磁盘支持四个主分区,这里用不到扩展分区和逻辑分区,所以这里剩下的也用主分区

#因为把剩下的直接弄成一个分区,所以不需要指定分区大小
DISKPART> create partition primary

DiskPart 成功地创建了指定分区。

DISKPART> list partition

  分区 ###       类型              大小     偏移量
  -------------  ----------------  -------  -------
  分区      1    主要                1024 MB  1024 KB
* 分区      2    主要                4094 MB  1025 MB

Step6:给两个分区指定盘符,这里是选择分区,不是选择磁盘,需要注意一下

DISKPART> select partition 1

分区 1 现在是所选分区。

DISKPART> assign letter=v

DiskPart 成功地分配了驱动器号或装载点。

DISKPART> select partition 2

分区 2 现在是所选分区。

DISKPART> assign letter=z

DiskPart 成功地分配了驱动器号或装载点。
DISKPART> detail disk        #查看硬盘的详细信息

VMware, VMware Virtual S SCSI Disk Device
磁盘 ID: 53875065
类型   : SAS
状态 : 联机
路径   : 0
目标 : 1
LUN ID : 0
位置路径 : PCIROOT(0)#PCI(1500)#PCI(0000)#SAS(P00T01L00)
当前只读状态: 否
只读: 否
启动磁盘: 否
页面文件磁盘: 否
休眠文件磁盘: 否
故障转储磁盘: 否
群集磁盘  : 否

  卷 ###      LTR  标签          FS     类型           大小     状态      信息
  ----------  ---  -----------  -----  ----------  -------  ---------  ---
  卷     3     V                RAW    磁盘分区        1024 MB  正常
* 卷     4     Z                RAW    磁盘分区        4094 MB  正常

Step7:格式化磁盘,如果使用创建分区命令后查看图形化界面可以看到提示格式化磁盘,这里使用命令来对分区进行格式化

DISKPART> select partition 1

分区 1 现在是所选分区。

DISKPART> format quick

  100 百分比已完成

DiskPart 成功格式化该卷。
DISKPART> select partition 2

分区 2 现在是所选分区。

DISKPART> format quick

  100 百分比已完成

DiskPart 成功格式化该卷。

Step8:将磁盘分区标记为活动分区

DISKPART> select partition 2

分区 2 现在是所选分区。

DISKPART> active

DiskPart 将当前分区标为活动。

5.2、文件系统转换命令–convert

5.2.1、命令简介

convert这个命令的作用是把FAT文件系统转换为NTFS格式,使用这个命令转换文件系统,不会遗失磁盘分区中的格式

5.2.2、命令格式
  • convert volume /FS:NTFS [/V] [/NoSecurity] [/X]
5.2.3、命令参数
  • volume:指定驱动器号、装入点或者卷名(通常是盘符)
  • /FS:NTFS:指定要将此卷转换为NTFS格式
  • /V:指定在详细模式下运行convert
  • /NoSecurity:指定所有用户均可以访问转为文件和目录的安全设置
  • /X:如果必要,需要先强制卸载卷,该卷的所有打开句柄将无效
5.2.4、典型案例

我这里需要将 Z 盘从 FAT 转换为 NTFS

C:\Windows\system32>convert Z: /fs:ntfs /x
文件系统的类型是 FAT。
卷序列号为 6C96-2D7A
Windows 正在校验文件和文件夹...
已完成文件和文件夹验证。
Windows 已检查文件系统并确定没有问题。

磁盘空间总数 4,292,542,464 字节。
可用磁盘空间: 4,292,542,464 字节。

每个分配单元中有        65,536 字节。
磁盘上共有        65,499 个分配单元。
磁盘上有        65,499 个可用的分配单元。

正在确定文件系统转换所需的磁盘空间...
磁盘总空间:                  4192256 KB
卷上的可用空间:                  4191936 KB
转换所需的空间:                    27536 KB
正在转换文件系统
转换完成

6、进程管理命令

6.1、进程查询命令–tasklist

6.1.1、命令简介

tasklist命令用于查询进程列表,该命令既可以用于本地,也可以用于远程计算机

6.1.2、命令格式
  • tasklist [/S system [/U username [/P password]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format]
6.1.3、命令参数
  • /S system:指定要连接的远程系统
  • /U username:指定执行该命令的账户
  • /P [password]:为用户指定密码,如果省略就提示输入密码
  • /M [module]:列出调用指定DLL模块的所有进程,如果没有指定模块,就显示每个进程加载的所有模块
  • /SVC:显示每个进程中的服务
  • /V:显示详细信息
  • /FI filter:显示一系列符合筛选器指定的任务
  • /FO format:指定输出格式,有效格式为”TABLE”、”LIST”、”CSV”
6.1.4、典型案例

查看本机的任务列表

C:\Windows\system32>tasklist
映像名称                   PID 会话名        会话#       内存使用
============================== ====================== ============
System Idle Process          0 Services             0         24 K
System                       4 Services             0        740 K
smss.exe                   264 Services             0         76 K
csrss.exe                  352 Services             0      1,712 K
wininit.exe                404 Services             0        196 K
csrss.exe                  416 Console              1      5,468 K
services.exe               460 Services             0      5,008 K
lsass.exe                  480 Services             0      4,344 K
lsm.exe                    488 Services             0      1,392 K
winlogon.exe               512 Console              1        228 K
taskhost.exe              1460 Console              1      2,848 K
dwm.exe                   1504 Console              1        388 K
explorer.exe              1536 Console              1     29,100 K
svchost.exe               2260 Services             0        400 K
msdtc.exe                 2480 Services             0        308 K
cmd.exe                   3236 Console              1      1,292 K
conhost.exe               3100 Console              1      1,668 K
wuauclt.exe               2148 Services             0      6,356 K
msiexec.exe               1440 Services             0     14,776 K
mscorsvw.exe              3216 Services             0      7,860 K
WmiPrvSE.exe              3036 Services             0      6,020 K
mscorsvw.exe              3420 Services             0      9,336 K
tasklist.exe              2208 Console              1      5,584 K

远程查看另外一台机器的任务列表

C:\Users\valecalida>tasklist /s 10.87.51.5 /u John /p netlab

映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
System Idle Process              0                   0         24 K
System                           4                   0        612 K
smss.exe                       260                   0        312 K
csrss.exe                      352                   0      1,920 K
wininit.exe                    396                   0        332 K
csrss.exe                      404                   1     12,840 K
winlogon.exe                   452                   1      1,564 K
services.exe                   496                   0      5,080 K
lsass.exe                      512                   0      8,488 K
lsm.exe                        524                   0      1,692 K
svchost.exe                    608                   0      5,708 K
svchost.exe                    688                   0      5,156 K
svchost.exe                    776                   0     12,220 K
svchost.exe                    828                   0    164,972 K
svchost.exe                    860                   0    250,996 K
svchost.exe                    976                   0     11,356 K
svchost.exe                    316                   0     10,548 K
spoolsv.exe                   1032                   0      2,320 K
svchost.exe                   1068                   0      8,248 K
svchost.exe                   1176                   0      6,576 K
svchost.exe                   1204                   0      7,456 K
QQProtect.exe                 1284                   0      7,648 K
VGAuthService.exe             1424                   0      1,980 K
vmtoolsd.exe                  1556                   0      7,428 K
svchost.exe                   1892                   0      2,668 K
dllhost.exe                   1104                   0      3,080 K
msdtc.exe                     2068                   0      1,956 K
mscorsvw.exe                  2152                   0      4,596 K
mscorsvw.exe                  2176                   0      8,344 K
WmiPrvSE.exe                  2308                   0     10,676 K
taskhost.exe                  2604                   1      3,344 K
dwm.exe                       2908                   1      1,716 K
explorer.exe                  2956                   1     36,572 K
vm3dservice.exe               2532                   1        568 K
vmtoolsd.exe                  2560                   1      7,860 K
SearchIndexer.exe             2148                   0     16,212 K
wmpnetwk.exe                  2456                   0     13,368 K
svchost.exe                   2568                   0      9,916 K
svchost.exe                   3488                   0     16,152 K
TrustedInstaller.exe          3740                   0     52,696 K
wuauclt.exe                   4072                   1      3,068 K
ScanRpcOpen.exe               4000                   1     10,448 K
SearchProtocolHost.exe        1828                   0      5,556 K
SearchFilterHost.exe          2548                   0      5,268 K

这里需要注意的是,RPC服务需要开启,可以使用RPC服务修复工具

想看哪些进程调用了ntdll.dl模块,可以采用下面的模块

C:\Users\valecalida>tasklist /m ntdll.dll

映像名称                       PID 模块
========================= ======== ==============
taskhost.exe                  2604 ntdll.dll
dwm.exe                       2908 ntdll.dll
explorer.exe                  2956 ntdll.dll
vm3dservice.exe               2532 ntdll.dll
vmtoolsd.exe                  2560 ntdll.dll
wuauclt.exe                   4072 ntdll.dll
cmd.exe                       2472 ntdll.dll
conhost.exe                    960 ntdll.dll
tasklist.exe                  2028 ntdll.dll

6.2、进程终止命令–taskkill

6.1.1、命令简介

taskkill命令的作用是终止正在运行的进程

6.1.2、命令格式
  • taskkill [/S system [/U username [/P password]]] {[/FI filter] [/PID process id | IM imagename]} [/T] [/F]
6.1.3、命令参数
  • /S system:指定耀连接的远程系统
  • /U username:指定执行该命令的账户
  • /P password:为用户指定密码
  • /FI filter:应用筛选器以选择一组任务
  • /PID processid:指定要终止的进程的PID
  • /IM imagename:指定耀终止的进程的映像名称
  • /T:终止指定的进程和由它启用的子进程
  • /F:强制终止进程
6.1.4、典型案例

先查看是否存在notepad.exe 这个进程

C:\Users\John>tasklist | findstr "notepad"
#映像名称                       PID 会话名              会话#       内存使用
notepad.exe                    856 Console               1      5,268 K

然后使用命令终止指定的进程

C:\Users\John>taskkill /pid 856
成功: 给进程发送了终止信号,进程的 PID 为 856。

远程关闭主机上的画图程序

C:\Users\john>tasklist /s 10.87.51.5 /u John /p netlab | findstr "mspaint"
mspaint.exe                   1860                        1     19,768 K
#指定用户、密码,删除指定的PID
C:\Users\john>taskkill /s 10.87.51.5 /u John /p netlab /pid 1860
成功: 已终止 PID 为 1860 的进程。

7、服务管理命令–sc

7.1、查询服务状态–sc query

7.1.1、命令简介

sc query命令用于查询服务的状态以及列举各种类型的服务。

7.1.2、命令格式
  • sc \ [query] [service name] [options]
7.1.3、命令参数
  • server:选项\的格式为 \\\\ServerName
  • service name:表示要查询的服务名称
  • 如果查询命令带服务器名称,讲返回该服务器的状态,如果查询命令不带参数或带下列参数之一将列举符合条件的服务
    • type= 要枚举的服务的类型(driver,service,all)(默认 =service)
    • state= 要枚举的服务的状态(inactive,all)(默认是active)
    • bufsize= 枚举缓冲区的大小(以字节计)(默认=4096)
    • ri= 开始枚举的恢复索引号(默认=0)
    • group= 要枚举的服务组(默认=all groups)
7.1.4、典型案例

查询本机所有类型的服务

C:\Users\valecalida>sc query type= all
SERVICE_NAME: ACPI
DISPLAY_NAME: Microsoft ACPI Driver
        TYPE               : 1  KERNEL_DRIVER  
        STATE              : 4  RUNNING 
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
#这里由于篇幅原因就只贴一个了,实在是太长了

7.2、查看服务的详细描述–sc description

7.2.1、命令简介

sc description命令用于服务的详细描述

7.2.2、命令格式
  • sc \ qdescription [server name] \
7.2.3、命令参数
  • server:选项的格式为 \\\\ServerName
  • service name:表示要查询的服务名称
  • bufferSize:指定缓冲区大小,如果缓冲区容量不够,输出的内容可能不完整
7.2.4、典型案例

查看 wlansvc 服务的具体信息

C:\Users\valecalida>sc qdescription wlansvc
[SC] QueryServiceConfig2 成功

SERVICE_NAME: wlansvc
描述:  WLANSVC 服务提供配置、发现、连接、断开与 IEEE 802.11 标准定义的无线局域网(WLAN)的连接所需的逻辑。它还包含将计算机变成软件访问点的逻辑,以便其他设备或计算机可以使用支持它的 WLAN 适配器无线连接到计算机。停止或禁用 WLANSVC 服务将使得计 算机上的所有 WLAN 适配器无法访问 Windows 网络连接 UI。强烈建议: 如果你的计算机具有 WLAN 适配器,则运行 WLANSVC 服务。

7.3、启动服务– sc start

7.3.1、命令简介

sc start命令用于开启某项服务

7.3.2、命令格式
  • sc \ start [service name]
7.3.3、命令参数
  • server:选项 \ 的格式为\\\\ServerName
  • service name:表示要开启的服务名称
7.3.4、典型案例

开启本机的DNScache服务

#注意,这里需要管理员权限
C:\Windows\system32>sc start dnscache

SERVICE_NAME: dnscache
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 2  START_PENDING
                                (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x7d0
        PID                : 316
        FLAGS              :

7.4、停止服务–sc stop

7.4.1、命令简介

使用sc stop来停止某项正常运行的服务

7.4.2、命令格式
  • sc \ stop [service name] \ \
7.4.3、命令参数
  • server:选项\的格式为\\\\ServerName
  • service name:表示要停止的服务名称
  • reason:该参数是可选的,用于记录服务停止的原因代码编号,由下列元素组成,格式如下
    • 标志:主要原因:次要原因,例如(1:2:8 表示硬件:磁盘(计划外))
    • 标志:1-计划外,2-自定义,3-计划内
    • 主要原因:1-其他;2-硬件;3-操作系统;4-软件;5-应用程序;65~255-自定义
    • 次要原因:1-其他;2-维护;3-安装;4-升级;5-重新配置;6-挂起;7-不稳定;8-磁盘;9-网卡;10-环境;11-硬件驱动程序,12-其他驱动程序;13-Server Pack;14-软件更新;15-安全修补;16-安全性;17-网络连接性;18-WMI;19-ServerPack协助;20-软件更新协助;22-安全修补卸载;23-MMC;256~65535-自定义
  • comment:关于以上原因的可选备注(最多127个字符)
7.4.4、典型案例

停止本机的DNSCache

C:\Windows\system32>sc stop dnscache

SERVICE_NAME: dnscache
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 3  STOP_PENDING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x1
        WAIT_HINT          : 0xea60

7.5、创建服务–sc create

7.5.1、命令简介

使用sc create命令创建服务,这里比较麻烦,只做简单介绍,具体的大佬们自己发掘好了

7.5.2、命令格式
  • sc \ create [service name] [binPath=] <\option1> \
7.5.3、命令参数
  • type=\<own|share|interact|kernel|filesys|rec>(默认=own),说明建立服务的类型
  • start=\<boot|system|auto|demand|disabled|delayed-auto>(默认=demand),说明服务启动的类型,默认是手动
  • error=\<normal|sereve|critical|ignore>(默认=normal),设置当服务导入失败时,记录的错误严重等级
  • binPath=\,要创建成服务的程序的路径
  • group=\
  • tag=\<yes|no>,如果设置为yes,sc可以从createService call中得等一个tagID,可以不用管
  • depend=<依存关系(以/(斜线分割))>,在启动服务之前需要先启动的其他服务
  • obj=<AccountName|ObjectName>(默认=LocalSystem),登录的身份
  • DisplayName=<显示的名称>
  • password=<密码>,登录的密码
7.5.4、典型案例
sc create name binpath= f:\log.exe

这里没做真实事例,大佬们自行操作

7.6、删除服务–sc delete

7.6.1、命令简介

使用sc delete命令删除某项服务

7.6.2、命令格式
  • sc \ delete [service]
7.6.3、命令参数
  • Server:选项\ 的格式为\\ServerName
  • Service name:要删除的服务名称
7.6.4、典型案例
sc delete name

8、账户及组管理命令

8.1、账户命令–net user

8.1.1、命令简介

net user 命令可以完成新增、删除、激活、停用账户等操作,以及修改密码、列举所有的账户等

8.1.2、命令格式
  • net user [username [password | *] [options] [/DOMAIN] username {password | *} /ADD [options] [/DOMAIN] username [/DELETE] [/DOMAIN]]
8.1.3、命令参数
  • username:指定要添加、删除、修改或查看的用户账户命令
  • password:为用户账户设置或更改密码,键入*号讲显示密码提示信息
  • /domain:在计算机主域的域控制器上执行操作
  • /add:增加。
  • /delete:删除。
  • options:命令行选项,可用的语法如下
    • /active:{no|yes}:启用或禁用用户账户,如果用户账户不是活动状态,用户将不能访问计算机上的资源,默认设置为yes
    • /comment:”text”:提供关于用户账户的描述性注释,最多48个字符
    • /countrycode:NNN:使用操作系统”国家(地区)”代码为用户帮助及错误消息执行指定的语言文件,值0表示默认的代码
    • /expires:\{\{MM/DD/YYYY|DD/MM/YYYY|mmm,dd,YYYY\} | never \}:设置用户过期时间
    • /fullname:”Name”:指定用户的全名而不是用户名
    • /homedir:Path:为用户的主目录设置路径
    • passwordchg:{yes|no}:指定用户是否可以更改密码,默认为yes
    • passwordreq:{yes|no}:指定用户账户是否必须具有密码,默认为yes
    • /profilepath:[Path]:为用户登录配置文件设置路径,该路径将指向某个注册表配置文件
    • /scripthpath:Path:为用户登录脚本设置路径,Path不能是绝对路径,path是相对于%systemroot%\System32\Repl\Import\Scripts 的路径
    • times:{Day[-Day] [,Day]],Time[-Time] [,Time[-Time]] [;] | all}:指定允许用户使用该计算机的次数。Time被限定为一小时的增量,对于Day值,可以将其拼出或使用缩写(即M、T、W、Th、F、Sa和Su),Time值可以采用12小时制或24小时制表示法,当采用12小时制表示法时,应使用AM和PM或A.M和P.M。值all表示允许用户始终登录,控制表示用户永远不能登录。用逗号分隔日期和时间,用分号分隔日期和时间单元(M,4AM-PM;T,1PM-3PM),指定时间时不要使用空格
8.1.4、典型案例

查看本机的用户

C:\Windows\system32>net user

\\SAVALEN 的用户帐户

-------------------------------------------------------------
Administrator            Guest                    John
命令成功完成。

新建一个隐藏用户并查看

C:\Windows\system32>net user valecalida$ /add
命令成功完成。

#这时候直接查看是看不到的
C:\Windows\system32>net user

\\SAVALEN 的用户帐户

-------------------------------------------------------
Administrator            Guest                    John
命令成功完成。
#可以采用下面这种方式查看
C:\Windows\system32>wmic useraccount get name
Name
Administrator
Guest
HomeGroupUser$
John
valecalida$
##这里这个用户可以直接通过net user valecalida$ /del删除

限制用户在特定时间登陆

#前提是需要一个已存在的用户
C:\Windows\system32>net user vale /time:M,9am-6pm;T-F,8:00-17:00
命令成功完成。


C:\Windows\system32>net user vale
用户名                 vale
全名
注释
用户的注释
国家/地区代码          000 (系统默认值)
帐户启用               Yes
帐户到期               从不

上次设置密码           2020/6/28 14:00:48
密码到期               2020/8/9 14:00:48
密码可更改             2020/6/28 14:00:48
需要密码               Yes
用户可以更改密码       Yes

允许的工作站           All
登录脚本
用户配置文件
主目录
上次登录               从不

可允许的登录小时数     星期一 9:00:00 - 18:00:00
                       星期二 8:00:00 - 17:00:00
                       星期三 8:00:00 - 17:00:00
                       星期四 8:00:00 - 17:00:00
                       星期五 8:00:00 - 17:00:00

本地组成员             *Users
全局组成员             *None
命令成功完成。

8.2、组成员管理–net localgroup

8.2.1、命令简介

net localgroup命令管理组内成员

8.2.2、命令格式
  • net localgroup [groupname [/COMMENT:”TEXT”]] [/DOMAIN] groupname {/ADD [/COMMENT:”text”] | /DELETE} [/DOMAIN] groupname name […] {/ADD | /DELETE} [/DOMAIN]
8.2.3、命令参数
  • groupname:要查看、添加、删除的组名
  • /COMMENT:”text”:为组添加描述信息
  • /DOMAIN:在计算机主域的域控制器执行操作
  • name:要添加或删除到组的用户名
  • /ADD:将组名或者用户名添加到本地组
  • /DELETE:从本地组中删除组名或者用户名
8.2.4、典型案例

查看本机组中的信息

C:\Windows\system32>net localgroup

\\SAVALEN 的别名

-------------------------------------
*Administrators
*Backup Operators
*Cryptographic Operators
*Distributed COM Users
*Event Log Readers
*Guests
*HomeUsers
*IIS_IUSRS
*Network Configuration Operators
*Performance Log Users
*Performance Monitor Users
*Power Users
*Remote Desktop Users
*Replicator
*Users
命令成功完成。

查看本机组中的Administrators组详细信息

C:\Windows\system32>net localgroup Administrators
别名     Administrators
注释     管理员对计算机/域有不受限制的完全访问权

成员
--------------------------------------------------
Administrator
John
命令成功完成。

添加专门的组并设置描述,添加用户到这个组中

C:\Windows\system32>net localgroup valecalida /add /comment:"valecalida's personal group"
命令成功完成。

C:\Windows\system32>net localgroup valecalida
别名     valecalida
注释     valecalida's personal group
成员
--------------------------------------------------------------------------
命令成功完成。
"""
#这里也可以用net localgroup valecalida vale /add /comment:"content"来实现上下两条命令的效果
"""
C:\Windows\system32>net localgroup valecalida vale /add
命令成功完成。


C:\Windows\system32>net localgroup valecalida
别名     valecalida
注释     valecalida's personal group

成员

-------------------------------------------------------
vale
命令成功完成。

删除某个组

C:\Windows\system32>net localgroup valecalida /delete
命令成功完成。

C:\Windows\system32>net localgroup

\\SAVALEN 的别名

----------------------------------------------------------
*Administrators
*Backup Operators
*Cryptographic Operators
*Distributed COM Users
*Event Log Readers
*Guests
*HomeUsers
*IIS_IUSRS
*Network Configuration Operators
*Performance Log Users
*Performance Monitor Users
*Power Users
*Remote Desktop Users
*Replicator
*Users
命令成功完成。

二、远程连接及管理命令

1、远程管理及文件传输

1.1、终端连接命令–Telnet

1.1.1、命令简介

Telnet是系统集成的远程登录服务,包括”命令模式”及”行输入”两种运行模式,其中命令模式在命令中包含完整的登录参数,可直接登录远程主机;而行输入模式切换至Telnet行输入状态,用户可进一步设置调整、连接及断开远程主机。

1.1.2、命令格式
  • telnet [-a] [-e escape char] [-f log file] [-l user] [-t term] [host [port]]
1.1.3、命令参数
  • -a:尝试匿名自动登录
  • -e escape char:设置返回快捷键,例如输入 telnet -e^l(Ctrl键命令提示符中显示^)进入telnet状态后按下Ctrl+L快捷键就可以将当前连接置于后台并返回本机命令提示符状态,其中Ctrl+是默认快捷键
  • -f log file:指定日志文件,以记录telnet后的各项操作及输出
  • -l user:指定登录用户名称,要求远程系统支持TELNET ENVIRON选项
  • -t term:指定终端类型。支持的终端类型包括vt100,vt52,ansi和vtnt
  • host:指定要连接的远程主机的主机名或IP地址
  • port:指定端口号或服务名,不填默认为23
1.1.4、典型案例

直接登录模式:使用log 文件来记录操作,此时所有操作都会被写入 telnet.log 文件中

#这里的实例是windowsXP,Windows10需要开启相应功能
C:\Documents and Settings\Administrator>telnet -f C:\logs\telnet.log
Telnet server could not log you in using NTLM authentication.
Your password may have expired.
Login using username and password
Welcome to Microsoft Telnet Service
login: Arnyek
password:#####此处是密码
*===============================================================
Welcome to Microsoft Telnet Server.
*===============================================================

命令行模式:

此时应当先输入 telnet 进入命令行模式

C:\Documents and Settings\Administrator>telnet
欢迎使用 Microsoft Telnet Client

Escape 字符是 'CTRL+]'

Microsoft Telnet> ?/help

命令可以缩写。支持的命令为:

c    - close                    关闭当前连接
d    - display                  显示操作参数
o    - open hostname [port]     连接到主机名称(默认端口 23)。
q    - quit                     退出 telnet
set  - set                      设置选项 (要列表,请键入 'set ?')
sen  - send                     将字符串发送到服务器
st   - status                   打印状态信息
u    - unset                    解除设置选项 (要列表,请键入 'unset ?')
?/h  - help                     打印帮助信息
Microsoft Telnet> o 10.87.51.10
正在连接到10.87.51.10...
您将要把您的密码信息送到 Internet 区内的一台远程计算机上。这可能不安全。您还要送
吗(y/n): n
#然后就会进入到连接页面
Welcome to Microsoft Telnet Service

login: Arnyek
password:
#然后会直接进入系统*===============================================================
Welcome to Microsoft Telnet Server.
*===============================================================
C:\Documents and Settings\Arnyek>
#此时如果按Ctrl + ]键会回到命令模式,输入st
Microsoft Telnet> st
已连接到 10.87.51.10
协商的终端类型为 ANSI
#然后再输入set escape^P后两次回车会回到通话界面
Microsoft Telnet> set escape^P
格式为 'set Name <Value>'
要查看帮助,请键入 'set ?'。
Microsoft Telnet>
#个人觉得最好这个没哈用,而且铭文传输一点都不安全

1.2、FTP命令

1.2.1、命令简介

FTP(File Transfer Protocol)是文件传输协议的简称。

1.2.2、命令格式
  • FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-A]
1.2.3、命令参数
  • -v:禁止显示远程服务相应
  • -d:启动调试
  • -i:关闭多文件传输过程中的交互式提醒
  • -n:禁止在初始连接时自动登录
  • -g:禁用文件名统配
  • -s:filename:指定包含FTP命令的文本文件
  • -a:数据传输时使用所有可用本地连接
  • -A:匿名登录
  • host:指定主机名称或要连接到的远程主机
  • 以上参数用于建立FTP连接,连接创建并进入FTP交互模式后可以使用下面的子命令来管理、传输文件和文件夹(下面仅做介绍)
    • !:退出FTP交互模式
    • ?:显示帮助信息
    • append:将本地文件上传至服务器,并与指定的文件合并
    • Ascii:将传送模式转换为ASCII模式
    • Bell:文件传送完毕响铃
    • Bye/quit:结束当前连接并推出FTP交互模式
    • Cd:更改服务器端的当前目录
    • close:关闭当前连接,返回FTP交互模式
    • Debug:切换至调试模式,连接打印机的话可以打印所执行的命令
    • Delete/Mdelete:删除服务端的文件
    • Dir/mdir/ls/pwd:显示服务端的文件及子目录列表
    • Glod:通配符开关,执行一次为开,两次为关
    • Hash:打印哈希字符串
    • Lcd:切换本机当前陌路,如参数则显示当前目录
    • Literal:将参数柱子发送至服务器端。
    • mget:将服务端文件下载至本机
    • Mkdir:在服务端当前目录创建子目录
    • Mput/Put/send:将文件上传至服务器端
    • Open:连接指定的FTP服务器
    • status:显示当前的连接状态
1.2.4、典型案例

常见操作合集:

PS C:\Users\valecalida> ftp 10.87.51.10
连接到 10.87.51.10。
220 Welcome to valecalida's FTP Server!
530 Please login with USER and PASS.
用户(10.87.51.10:(none)): anonymous
331 Password required for anonymous
密码:
230 Client :anonymous successfully logged in. Client IP :10.87.51.1
ftp> dir
200 Port command successful.
150 Opening ASCII mode data connection for directory list.
04-20-20 04:54PM                    7 cmd.bat
11-24-18 00:00AM                 2265 Google Chrome.lnk
09-05-18 03:49PM               952930 ntfsstreamseditor.exe
06-29-20 01:54PM       <DIR>          quickeasyftpserver
08-24-19 10:04PM               338255 quickeasyftpserver.zip
10-26-17 10:05PM       <DIR>          shop靶机需在XP环境下
226 Transfer complete.
ftp: 收到 348 字节,用时 0.02秒 21.75千字节/秒。
ftp> put flag.txt                            ##上传文件
200 Port command successful.
150 Opening BINARY mode data connection for file transfer.
226 Transfer complete.
ftp: 发送 17 字节,用时 0.22秒 0.08千字节/秒。
ftp> get flag.txt flag                        ##下载文件
200 Port command successful.
150 Opening BINARY mode data connection for file transfer.
226 Transfer complete.
ftp: 收到 17 字节,用时 0.00秒 17.00千字节/秒。
ftp> cd shop靶机需在XP环境下                    ##切换路径
250 "/shop靶机需在xp环境下" is current directory.
ftp> pwd
257 "/shop靶机需在xp环境下" is current directory.
ftp> mkdir hello                            ##创建子目录
250 Directory created successfully.
ftp> lcd Desktop                            ##切换本地路径
目前的本地目录 C:\Users\valecalida\Desktop。

命令不一一做实例了,大佬们自己探究

1.3、IPC$远程连接

1.3.1、命令简介

IPC是Internet Process Connect,是Windows主机之间相互通信的管道,名称后面附带$,该管道不呈现给普通用户,只隐藏在操作系统中,默认状态下该管道使用139、445段扩侦听其他电脑发出的连接请求,利用IPC$可以管理没有开启任何共享文档的远程主机。根据连接权限的不同,IPC$连接可以分为IPC$空连接和IPC$特定权限连接两种

  • 建立空连接只需要目标主机没有去默认的IPC$管道且Server服务处于运行状态即可
  • 特定权限连接是在空连接的基础上附加可用的账户和密码,即需要提前知道账户密码才行
1.3.2、命令格式

建立IPC$空连接

用户可以使用net use命令建立IPC$空连接

  • net use \\\目标IP地址\ipc$ “” /user:””

IPC$空连接无法进行任何管理操作,如传输文件,执行程序,但是可以提供少量主机信息,如或得共享文件夹列表,还能获取用户账户列表等

PS C:\Users\valecalida> net use \\10.87.51.5\ipc$
密码或用户名在 \\10.87.51.5\ipc$ 无效。

为“10.87.51.5”输入用户名: John
输入 10.87.51.5 的密码:
命令成功完成。

PS C:\Users\valecalida> net view \\10.87.51.5
在 \\10.87.51.5 的共享资源

共享名  类型  使用为  注释

-------------------------------------------------------------------------------
Users   Disk
命令成功完成。
1.3.3、命令参数
1.3.4、典型案例

2、连接测试命令

3、TCP/IP设置命令

4、多功能网络命令Net

5、网络组件命令行及脚本处理Netsh

开启WSL

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

第N部分:参考资料

#黑客命令行攻防实战详解                    --中国铁道出版社

文章作者: valecalida
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 valecalida !
评论
  目录