泷羽sec专题课笔记--windows命令讲解--基础命令

  本笔记为 泷羽sec 《红队全栈课程》学习笔记,课程请可自行前往B站学习,课程/笔记主要涉及网络安全相关知识、系统以及工具的介绍等,请使用该课程、本笔记以及课程和笔记中提及工具的读者,遵守网络安全相关法律法规,切勿进行违法违规违纪的操作。


写在最前面的话,我们为什么要学习网络安全这门技术:

  • 维护国家安全

  防范网络攻击:网络安全威胁已成为国家安全的重要挑战。学习网络安全有助于识别和防范来自国内外的网络攻击,防止敌对势力通过网络手段窃取敏感信息、破坏关键基础设施或干扰社会正常运作。
  保护关键基础设施:现代社会高度依赖网络技术,金融系统、交通网络、电力供应等关键基础设施都依赖于稳定的网络环境。掌握网络安全知识有助于保护这些基础设施免受网络攻击,确保国家的正常运转。

  • 促进经济发展

  保障数字经济安全:数字经济已成为国家经济增长的重要引擎。通过学习网络安全,可以保障数字经济的健康发展,防止数据泄露和网络犯罪对经济活动的干扰。
  增强国际竞争力:在全球化的背景下,网络安全技术水平直接影响国家的国际竞争力。掌握先进的网络安全技术和策略,有助于提升国家在全球数字经济中的地位。

  • 提升社会稳定

  防范社会风险:网络犯罪和网络恐怖主义对社会稳定构成严重威胁。学习网络安全有助于及时发现和应对这些风险,维护社会的和谐与稳定。
  保护公民权益:网络安全直接关系到公民的隐私权和信息安全。通过学习网络安全,可以更好地保护公民的合法权益,增强公众对政府和企业的信任。

  • 推动科技进步

  创新安全技术:网络安全领域的技术创新不断推动信息技术的进步。学习网络安全有助于推动新技术的研发和应用,提升国家在科技领域的整体实力。
  促进国际合作:网络安全是全球性问题,需要各国共同努力应对。通过学习网络安全,可以参与国际网络安全合作,共同制定国际标准和规范,提升全球网络安全水平。

  • 强化法治建设

  完善法律法规:学习网络安全有助于推动和完善相关法律法规的制定和实施,确保网络安全工作有法可依、有章可循。
  提升执法能力:掌握网络安全知识可以提升执法部门的网络侦查和取证能力,有效打击网络犯罪,维护法律权威。

  • 培养专业人才

  构建人才梯队:网络安全领域需要大量高素质的专业人才。通过系统学习和培训,可以培养出一批具备专业知识和实战经验的网络安全专家,为国家的网络安全事业提供坚实的人才保障。

  总之,学习网络安全不仅是个人职业发展的需要,更是维护国家安全、促进经济发展、保障社会稳定和推动科技进步的重要手段。通过不断提升网络安全意识和能力,我们可以更好地应对日益复杂的网络安全挑战,为实现国家的长期稳定和发展贡献力量。


 系列课程视频详见泷羽sec 的小破站主页 传送门 ==> 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频 约9分钟左右开始


  先说下我们为什么要学习Windows的基础命令,在渗透测试中我们可能会取得windows的shell打进靶机内网,拿到的往往是cmd或者powershell的shell环境,这种情况下面我们是没有图形化操作界面对靶机进行操作的,所以如果要继续进行渗透的学习,就只能用命令行对试验的靶机进行相关操作。其次,Windows的操作过程中,有些命令行往往比鼠标点击更加快,有些甚至是鼠标点击无法替代的,比如一些组合操作,快速查找文件并对查找文件进行过滤,另外一些批量化的命令操作,比如要建100个文件夹,从1到500。

  那么接下来就开始对Windows的基础命令进行学习吧。  

一、cd / chdir 命令

  cd/chdir命令比较简单,有几个细节注意下即可

  • cd命令可以使用 cd\ 或者 cd/ 或者 cd \ 或者 cd / 直接退回当前盘符根目录
  • cd命令没有cd ~进到家目录的方法,但是可以用 cd %homepath% 进到家目录
  • cd命令可以用tab键补全
  • cd命令过程中如果切换了盼复,可以用/d参数直接切换
  • cd命令进入带空格的文件夹
  • cd命令可以使用“..”退回上层目录

  下面演示如下:

  退到当前盘符的根目录,理论上正斜杠/反斜杠,以及带不带空格都可以,不过linux用习惯的同学应该会使用cd /命令。

# windows这几个命令都可以退到当前盘符的根目录

cd\

cd/

cd \

cd /

cd %homepath% # 这条命令可以进到家目录

  cd过程中可以使用tab补全路径,具体演示略,这个请小伙伴自行多多尝试

  /d参数,如果进到其他盘符的目录中,cd时使用该参数可直接切换盘符并进入路径

  注意,终端打开某个文件夹的时候,这个文件夹默认会被cmd这个终端的进程占用,此时如果操作 ctrl+x / ctrl+v 就会出错。

  目录中带空格,这个可能有些高版本的windows会出错,如果发现有问题,两边带双引号即可,具体演示略。

  使用“..”退回上级目录,下图演示从  e:\test\test01\01\01 通过两层“..”进入 e:\test\test01\02\01 目录

二、dir 命令

  dir命令核心用途是列出指定文件夹内的所有文件和文件夹。我们一般常用的参数是

dir /s 递归列出文件夹下面的文件和文件夹

dir /p 分页显示

dir /b 缩略显示

dir /a 显示所有文件夹包括隐藏文件

上面这些参数可以组合使用

  下图演示了,在E盘查找所有包含vmware关键字,且同时扩展名是exe的可执行文件。

E:\>dir *vmware* /s/a/b | findstr exe
E:\Program Files (x86)\VMware\VMware Workstation\vmware-authd.exe
E:\Program Files (x86)\VMware\VMware Workstation\vmware-autostart.exe
E:\Program Files (x86)\VMware\VMware Workstation\vmware-kvm.exe
E:\Program Files (x86)\VMware\VMware Workstation\vmware-remotemks.exe
E:\Program Files (x86)\VMware\VMware Workstation\vmware-tray.exe
E:\Program Files (x86)\VMware\VMware Workstation\vmware-unity-helper.exe
E:\Program Files (x86)\VMware\VMware Workstation\vmware-vdiskmanager.exe
E:\Program Files (x86)\VMware\VMware Workstation\vmware.exe
E:\Program Files (x86)\VMware\VMware Workstation\bin\docker-machine-driver-vmware.exe
E:\Program Files (x86)\VMware\VMware Workstation\tools-upgraders\VMwareToolsUpgrader.exe
E:\Program Files (x86)\VMware\VMware Workstation\tools-upgraders\VMwareToolsUpgrader9x.exe
E:\Program Files (x86)\VMware\VMware Workstation\tools-upgraders\VMwareToolsUpgraderNT.exe
E:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx-debug.exe
E:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx-stats.exe
E:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe

  dir接重定向符“>” 保存输出结果,如果“>>”则是追加写入

F:\>dir > 1.txt

F:\>type 1.txt
 驱动器 F 中的卷是 娱乐
 卷的序列号是 0006-BB37

 F:\ 的目录

2024/11/10  23:55                 0 1.txt
2024/10/31  04:38    <DIR>          111
2023/01/28  00:27    <DIR>          BaiZhi
2024/10/30  00:22    <DIR>          game
2024/11/09  02:56    <DIR>          Program Files (x86)
2024/02/05  22:32    <DIR>          video
2024/02/10  22:13    <DIR>          学习video
2023/09/29  07:13    <DIR>          学习资料
               1 个文件              0 字节
               7 个目录 15,817,871,360 可用字节

  dir 支持管道符,比如使用dir | clip,可以将输出结果复制到剪贴板的内存中,后续可以通过ctrl+v命令将dir的结果copy出来。

   本笔记只是举例了dir的基本用途,dir完整的用法应该使用dir/?进一步查看/学习。 

 三、echo 命令

  Windows的echo命令和Linux的echo命令很像,具体略。

  但是在Windows的bat文件中(类似Linux的.sh脚本),使用echo off/on可以作为命令行的修饰符作用,开启或者关闭命令本身是否显示的功能。

  下图中,如果echo off情况下,则不会显示整个bat文件中的命令,如果echo on的话,则会显示执行了相应的命令。

  另外加上@符号是连echo on/off 都不显示,@也可以单独加在某个命令之前,这样即便echo on了,也不会显示执行的命令,只会显示结果。

 四、tree 命令

  tree命令也比较简单,tree /f 参数可以将文件夹中的文件也枚举出来,/a 参数是输出格式的调整。另外tree命令同样支持重定向符,将输出结果保存在一个文本文件中。

五、md / mkdir 和 rd / rmdir 命令

  md / mkdir

  这2个命令都是创建文件夹,有别与Linux,它可以直接创建多级文件夹目录

  rd / rmdir

  这2条命令都是删除文件夹,/s 可以直接删除。另外,/s的时候,不管文件夹里有没有文件,都会删除。

E:\1>md 2\3\4\5\6   # windows中可以直接创建深度几层的文件夹

E:\1>tree           # 使用tree命令可以看到文件夹的深度
卷 新加卷 的文件夹 PATH 列表
卷序列号为 00000001 6EBC:5CB2
E:.
└─2
    └─3
        └─4
            └─5
                └─6

E:\1>rd 2\3\4\5\6  # 直接使用rd命令可以这串深度若干层的文件夹

E:\1>tree
卷 新加卷 的文件夹 PATH 列表
卷序列号为 000000A1 6EBC:5CB2
E:.
└─2
    └─3
        └─4
            └─5

E:\1>rd 2\3\4\5 /s /q  # 使用rd命令只能删除最深一层的文件夹

E:\1>tree     # 使用tree命令可以看到,4文件夹下面的5文件夹已经被删除
卷 新加卷 的文件夹 PATH 列表
卷序列号为 0000006F 6EBC:5CB2
E:.
└─2
    └─3
        └─4

E:\1>rd 2      # 如果直接删除1文件夹下的2文件夹,会提示拟删除的文件夹非空
目录不是空的。

E:\1>rd 2 /s   # 如果使用/s参数,会递归删除里面的文件夹
2, 是否确认(Y/N)? y

E:\1>

六、copy 命令

  copy命令较简单,具体可以看其帮助教程。

F:\>copy/?
将一份或多份文件复制到另一个位置。

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B]
     [+ source [/A | /B] [+ ...]] [destination [/A | /B]]

  source       指定要复制的文件。
  /A           表示一个 ASCII 文本文件。
  /B           表示一个二进位文件。
  /D           允许解密要创建的目标文件
  destination  为新文件指定目录和/或文件名。
  /V           验证新文件写入是否正确。
  /N           复制带有非 8dot3 名称的文件时,
               尽可能使用短文件名。
  /Y           不使用确认是否要覆盖现有目标文件
               的提示。
  /-Y          使用确认是否要覆盖现有目标文件
               的提示。
  /Z           用可重新启动模式复制已联网的文件。
/L           如果源是符号链接,请将链接复制
               到目标而不是源链接指向的实际文件。

  下面演示使用copy命令制作图片马,准备一张正常的图片(假设叫1.jpg),一个文本文件(假设叫2.txt),文本文件中放入如下文本:

<?php phpinfo();?>

  Windows中执行下列命令:

copy 1.jpg/b+2.txt/a 3.jpg

  将3.jpg传入kali,并copy一份改名成3.php,在图片和php文件当前目录开启php的http服务:

php -S 0.0.0.0:8000

  物理机或者kali浏览器访问http://kali-ip:8000/3.jpg,可以看到是一张正常的图片。

   物理机或者kali浏览器访问http://kali-ip:8000/3.php,服务器执行并回显了phpinfo()函数信息。如果将上述php语法换成其他恶意代码,则可以达到攻击效果,具体演示略。

七、windows 一些常用程序命令

mspaint画图
calc计算器
write写字板
notepad记事本
SoundRecorder录音机
SnippingToolwin自带的截图工具
control控制面板
wf.msc防火墙
lusrmgr.msc本地用户和组

  命令有很多上面仅为抛砖引玉,这些命令直接输入在cmd终端或者文件夹导航栏就可以启动相应程序,另外这些命令基本全部都在c:\Windows\system32文件夹中,因为path路径的关系,我们无论在系统的哪里,基本都可以执行到这些命令。

C:\Users\Lenovo>path   # 我们使用path命令可以看到环境变量
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem

C:\Users\Lenovo>where notepad   # 查找下记事本在哪里
C:\Windows\System32\notepad.exe  # 可以看到2个地方都有记事本
C:\Windows\notepad.exe

C:\Users\Lenovo>where mspaint    # 顺便查找下画笔
C:\Windows\System32\mspaint.exe

八、move 命令

  move命令同linux的mv命令很像,具体参数细节可以查看其帮助文件

  另外演示下结合通配符使用move命令

E:\>dir   
 驱动器 E 中的卷是 新加卷
 卷的序列号是 6EBC-5CB2

 E:\ 的目录

2024/11/11  02:23                32 1.txt
2024/11/11  02:19    <DIR>          1test
2024/11/11  02:23               726 2.jpg
2024/11/11  02:26                18 2.txt
2024/11/11  02:24               759 3.jpg
2024/11/11  02:27               745 4.jpg
               5 个文件          2,280 字节
               1 个目录  5,300,015,104 可用字节

E:\>move *.jpg 1test
E:\2.jpg
E:\3.jpg
E:\4.jpg
移动了         3 个文件。

E:\>move *.* 1test
覆盖 E:\1test\1.txt 吗? (Yes/No/All): y
E:\1.txt
E:\2.txt
移动了         2 个文件。

E:\>

九、ren 命令

  ren命令具体参数略,演示下ren命令通过通配符批量修改文件名称

E:\>dir
 驱动器 E 中的卷是 新加卷
 卷的序列号是 6EBC-5CB2

 E:\ 的目录

2024/11/11  02:50                21 11.txt
2024/11/11  02:50                21 12.txt
2024/11/11  02:50                21 13.txt
2024/11/11  02:48    <DIR>          1test
               3 个文件             63 字节
               1 个目录  5,300,011,008 可用字节

E:\>ren *.txt *.txt.log

E:\>dir
 驱动器 E 中的卷是 新加卷
 卷的序列号是 6EBC-5CB2

 E:\ 的目录

2024/11/11  02:50                21 11.txt.log
2024/11/11  02:50                21 12.txt.log
2024/11/11  02:50                21 13.txt.log
2024/11/11  02:48    <DIR>          1test
               3 个文件             63 字节
               1 个目录  5,300,011,008 可用字节

E:\>ren *.log a*.log

E:\>dir
 驱动器 E 中的卷是 新加卷
 卷的序列号是 6EBC-5CB2

 E:\ 的目录

2024/11/11  02:50                21 .ttt
2024/11/11  02:48    <DIR>          1test
2024/11/11  02:50                21 a1.txt.log
2024/11/11  02:50                21 a2.txt.log
2024/11/11  02:50                21 a3.txt.log
               4 个文件             84 字节
               1 个目录  5,300,011,008 可用字节

十、find 命令

  先说下 type 命令,type命令类似 Linux 的 cat 命令,显示文本内容,另外 type 也支持通配符,将

  该条命令可以快速在文件中查找特定的字符串,查找的主体格式如下,注意查找的文本关键字必须用双引号包裹:

find "str" files

find /?
在文件中搜索字符串。

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]

  /V         显示所有未包含指定字符串的行。
  /C         仅显示包含字符串的行数。
  /N         显示行号。
  /I         搜索字符串时忽略大小写。
  /OFF[LINE] 不要跳过具有脱机属性集的文件。
  "string" 指定要搜索的文本字符串。
  [drive:][path]filename
             指定要搜索的文件。

如果没有指定路径,FIND 将搜索在提示符处键入
的文本或者由另一命令产生的文本。

  下图分别执行了默认搜索,/c 只统计符合条件的行数,/v 反向搜索,/n 返回结果带行号,/i 忽略大小写。

   另外,值得注意的是,find命令搜索的目标文件,一般仅限于文本类型。如果是word/excel等文件,这类文件实际是个压缩文件,可以用7z/RAR等尝试解压。解压后可能还无法直接搜到,因为编码的问题,终端执行chcp 65001后,就可以实现搜索。

​       

十一、ipconfig 命令

  这条命令可以查看自己的网卡对应的IP地址(IPv4/IPv6)、状态、MAC地址等。

  另外注意的是,手机也好自己电脑也好,IPv6地址信息不要随意泄漏,因为测试过几次,发现某运营商电话卡是独立公网IPv6的ip,其他电脑可以ping到,用termux+python启用了个http服务,其他电脑也可以访问,各位小伙伴有兴趣可以自己尝试下,访问地址是 http://[手机的IPv6]:8000/ ,具体演示过程略。

  Termux 可以在到github下载 Releases · termux/termux-app

十二、Ping 命令

  Ping 命令常规用法

  Ping命令是一个网络工具,用于测试另一台主机是否可达。它发送ICMP(Internet Control Message Protocol)回显请求给目标主机,并等待接收回显应答。该命令通常用于诊断网络连接问题,验证主机是否在线。如果我们直接 Ping一个域名,会把域名解析成IP返回。比如:

F:\>ping -n 1 www.baidu.com

正在 Ping www.a.shifen.com [180.101.50.242] 具有 32 字节的数据:
来自 180.101.50.242 的回复: 字节=32 时间=12ms TTL=52

180.101.50.242 的 Ping 统计信息:
    数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 12ms,最长 = 12ms,平均 = 12ms

F:\>ping -n 1 baidu.com

正在 Ping baidu.com [110.242.68.66] 具有 32 字节的数据:
来自 110.242.68.66 的回复: 字节=32 时间=33ms TTL=50

110.242.68.66 的 Ping 统计信息:
    数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 33ms,最长 = 33ms,平均 = 33ms

  Ping 命令判断主机系统 

  另外,ping的时候返回的TTL信息,以下2台主机中,130是Windows,128是Linux,可以看到Ping Windows主机返回的TTL是128,而Ping Linux主机返回的TTL是64。所以根据TTL的时间我们大概率可以判断出目标机器是什么操作系统。

F:\>ping -n 1 192.168.175.130 | findstr TTL
来自 192.168.175.130 的回复: 字节=32 时间<1ms TTL=128

F:\>ping -n 1 192.168.175.128 | findstr TTL
来自 192.168.175.128 的回复: 字节=32 时间<1ms TTL=64

  Windows修改注册表调整TTL时间 

  另外,TTL时间也可以进行修改,以Windows为例,进入注册表,在该键中新建个健值,DefaultTTL,设置为000000ff,保存后需要重启操作系统。

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters]

  再Ping的话,我们看到TTL变成了255

  -a 参数

  该参数可以探测主机名(蓝框cmd为虚拟机,白框cmd为物理机)

  -n 参数

  该参数是ping的次数,默认是Ping 4次,另外ping的间隔是1秒一次,所以下面这条命令可以计时30秒,在有些 cmd 批处理命令中需要计时处理的,可以使用该条命令代替,Ping完30次后执行下面一条命令。

ping -n 30 127.0.01 > NUL       # 30秒后执行其他命令

  设置防火墙阻止Ping

  复现环境

  靶机:Windows 7 旗舰版

  靶机IP:192.168.200.137

  下图可以看到,默认情况下,物理机(终端背景黑色)可以直接Ping到靶机(终端背景白色)

  接下来打开高级防火墙,终端内可使用下条命令,注意家庭版Win7可能没有该功能。

wf.msc

  接下来按下列步骤进行操作

 

 

  此时再Ping靶机就会发现无法Ping通。

  注意,上述方法只禁用了IPv4,如果使用IPv6依旧可以Ping到靶机的IPv6地址,如需禁止向本机Ping IPv6,防火墙还需设置如下的新规则。

  具体细节略,但阻止ICMP v6协议后,我们可以发现ping 靶机的 IPv6地址也无法ping通了。

十三、tasklist / taskkill

1.tasklist 命令

  该命令是一个强大的进程管理工具,用于显示本地或远程计算机上当前正在运行的进程列表‌。该命令可以帮助用户了解系统的运行状况,并进行相应的管理操作。

  下图演示了运行计算器 calc 后,使用 task /fi 过滤出 calc.exe 的操作,我们也可以使用管道符 + findstr 从结果中进行筛选。注意使用 /fi 过滤时,imagename 必须是完整的 calc.exe,不然会无法搜索到。

  我们还可以使用下面的命令,把 tasklist 的结果保存成 csv 文件,一种无格式的 excel 可以直接打开的文件。

tasklist /fo csv > .\tasklist.csv

2.taskkill 命令

  taskkill 命令是一个用于终止进程的命令行工具。它可以根据进程ID(PID)或进程名来结束一个或多个正在运行的进程。该命令对于系统管理员和高级用户来说非常有用,特别是在需要快速关闭不响应或占用大量资源的进程时。

  下面做几个小实验,开启一个记事本,用 tasklist 检索出pid进程号,然后用 taskkill 结束这个进程:

d:\c\desktop>notepad

d:\c\desktop>tasklist /fi "imagename eq notepad.exe"

映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
notepad.exe                  16368 Console                    3     17,172 K

d:\c\desktop>taskkill /pid 16368
成功: 给进程发送了终止信号,进程的 PID 为 16368。

  我们开启3个计算器,用 tasklist /fi 检索出(非必须),再用 taskkill /fi 结束进程,第一次并未成功,第二次加上 /f 才成功结束进程。注意,如果是win7,imagename 应该检索 calc.exe。

d:\c\desktop>calc

d:\c\desktop>calc

d:\c\desktop>calc

d:\c\desktop>tasklist /fi "imagename eq CalculatorApp.exe"

映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
CalculatorApp.exe            13192 Console                    3     89,588 K
CalculatorApp.exe             9992 Console                    3     90,596 K
CalculatorApp.exe            13884 Console                    3     90,352 K

d:\c\desktop>taskkill /fi  "imagename eq CalculatorApp.exe"
成功: 给进程发送了终止信号,进程的 PID 为 13192。
成功: 给进程发送了终止信号,进程的 PID 为 9992。
成功: 给进程发送了终止信号,进程的 PID 为 13884。

d:\c\desktop>taskkill /fi  "imagename eq CalculatorApp.exe" /f
成功: 已终止 PID 为 13192 的进程。
成功: 已终止 PID 为 9992 的进程。
成功: 已终止 PID 为 13884 的进程。

  我们开启3个记事本,用 taskkill /im 通配符格式结束3个记事本的进程。

d:\c\desktop>notepad

d:\c\desktop>notepad

d:\c\desktop>notepad

d:\c\desktop>tasklist /fi "imagename eq notepad.exe"

映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
notepad.exe                   7104 Console                    3     16,480 K
notepad.exe                  11512 Console                    3     16,448 K
notepad.exe                  17368 Console                    3     16,444 K

d:\c\desktop>taskkill /im notepad.*
成功: 给进程 "notepad.exe" 发送了终止信号,进程的 PID 为 7104。
成功: 给进程 "notepad.exe" 发送了终止信号,进程的 PID 为 11512。
成功: 给进程 "notepad.exe" 发送了终止信号,进程的 PID 为 17368。

十四、ver / winver / systeminfo

  前两条命令都是显示 windows的版本,ver 直接在终端上显示,winver会弹窗显示,systeminfo 显示本地或远程机器(包括服务包级别)的操作系统配置的信息,三条命令较简单具体演示略,但这些命令尤其是systeminfo命令信息收集用处较大,对渗透测试人员来说,在内网渗透过程中非常重要。

十五、start 命令

   start 命令是一个用于启动程序、打开文件夹或文档、以及执行其他常见任务的命令行工具。该命令非常灵活,可以通过多种方式使用,以满足不同用户的需求。值得注意的是 start 命令更多是运用在 cmd / powershell 等与各种命令结合使用,以完成各种复杂的语法和自动化任务。

  下图演示了在 cmd 中用 start cmd 打开一个新的 cmd 窗口,再在新的 cmd 中使用 start powershell 命令打开一个 新的powershell 窗口。

  如果 start 命令后面接一个有扩展名的文件,那么windows会用和这个扩展名相关联的应用程序打开这个文件。

 十六、shutdown 命令

  该命令为Windows系统的管理工具,可以实现正常关机、‌快速重启‌、计划任务、紧急处理、‌远程操作,以及包括注销用户、强制关闭程序、进入休眠等功能。

  下面这条命令是立即关机

shutdown /s /t 0 

  下面这条是立即重启

shutdown /r /t 0 

  下面这条是30秒后关机,/t 后面是秒

shutdown /s /t 30

  下面这条命令的 /f 参数是强制关闭正在运行的应用程序而不事先警告用户,可能导致未保存的文件丢失,故谨慎使用 /f 参数。

 shutdown /s /t 0

十七、at 命令

   该条命令用于在 Windows 操作系统中计划任务在指定的时间运行。它允许用户在未来的某个时间点执行命令或脚本。at 命令可以帮助自动化一些任务,减少手动操作的需要。主要用途包括: 调度脚本和批处理文件:在指定时间自动运行脚本或批处理文件。 系统维护任务:安排系统维护任务,例如定期清理磁盘、备份数据等。 应用程序启动:在特定时间启动应用程序。

  注意 at 这条命令win8后已经弃用,win7 的话我们还可以利用下,做个小实验如下,假设现在是 19:36 我们让系统19:37 往E盘写入个文本文件,内容是hello world。注意,cmd 需要有管理员权限。

  win10 弃用 at 的提示,并提示已经改用 schtasks.exe 。

d:\>ver

Microsoft Windows [版本 10.0.19045.5131]

d:\>at
AT 命令已弃用。请改用 schtasks.exe。

不支持该请求。

十八、arp 命令

  arp(Address Resolution Protocol)命令用于显示和修改操作系统中的 ARP 缓存表。ARP 是一种用于将网络层地址(如 IP 地址)转换为链路层地址(如 MAC 地址)的协议。这在以太网等网络中尤为重要,因为设备需要知道彼此的 MAC 地址才能进行通信。

  arp 命令参数较少,主要参数及功能如下:

arp -a      # 显示 arp 表

arp -d      # 删除指定主机

arp -s      # 将 IP 和 MAC 地址设置为静态关联

  下面来做个小实验,两台 win7 的靶机,两台win7靶机的ip分别为 192.168.200.137 / 192.168.200.143。2台靶机中有一台是刚上线的,所以arp表中没有互相都没有对方。

  我们可以看到,当1台机器ping了对方之后,2台机器的arp表都有了对方。

  接下来我们使用kali 的arpspoof进行arp欺骗,让IP 137 结尾的 win7 误以为网关的MAC地址为kali的网卡MAC,使用的命令如下,注意命令带有攻击性,请仅在靶机或者实验环境进行

sudo arpspoof -t 192.168.200.137 -r 192.168.200.2

  发起攻击后,我们可以看到win7的网关MAC地址变成了kali 的网卡MAC地址,此时ping 百度已经ping不通了。

  arp欺骗防御据说改成静态就可以,但是未能复现,这里先挖个坑,后续有机会再补。

arp -d *

netsh interface ip delete  arpcache  # 和 arp -d * 效果一样,都是清arp表

arp -s ip mac  # 如果添加静态失败可以用下面一条命令

netsh -c "i i" add neighbors Idx ip mac    # Idx 是个数字,用下面命令看

netsh i i show in

   arp部分参考资料:

https://ask.zol.com.cn/x/2495732.html

浅谈ARP欺骗的实现与防御_arp欺骗防御-优快云博客

arpspoof 命令详解-优快云博客

网络安全入门学习第十课——ARP spoofing-优快云博客

十九、logoff

  该命令用于在 Windows 操作系统中注销当前用户或其他用户会话。这在多用户环境中尤其有用,例如服务器或远程桌面会话。

logoff  [SessionName | SessionID]  [/server:ServerName]  [/v]

  接下来,我们做个试验。在 VMware 里面有两个已经激活的 Windows 10 企业版虚拟机:win10-a 和 win10-b。win10-a 通过 mstsc 远程登录到 win10-b,我们可以使用 logoff [SessionName | SessionID] 命令来注销会话(其实直接运行 logoff 命令也可以)。另外,据说:

  1)如果使用 VMware 或者 VirtualBox 登录到 Windows,在物理机上也可以查询到虚拟机中的 SessionName 或者 SessionID,从而使用 logoff 命令来注销虚拟机中的会话。但是,由于物理机是 Windows 家庭版,因此无法复现这种操作。

  2)Windows Server 版本支持多用户会话,可以同时容纳多个远程桌面连接。该场景下管理员可以使用该方式关闭连接。因电脑配置跑不动故未复现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值