Windows运行及cmd常用命令

Windows系统的操作虽然以图形界面为主,但掌握一些运行和cmd命令往往能使工作更加简洁高效,现将平日操作及内网渗透过程中常用到的命令总结如下。

一、运行命令

cmd              # 打开cmd shell

\\xxx            # 连接ip为xxx的网络共享

control          # 控制面版 

mstsc            # 远程桌面连接

services.msc     # 本地服务设置

taskmsg          # 任务管理器

eventvwr.msc     # 事件(日志)查看器

regedit          # 注册表

notepad          # 打开记事本 

ncpa.cpl         # 打开网络连接

nslookup         # 域名服务查询

firewall.cpl     # Windows防火墙 

explorer         # 文件资源管理器

gpedit.msc       # 组策略编辑 

diskmgmt.msc     # 打开磁盘管理器

fsmgmt.msc       # 共享文件夹管理器

compmgmt.msc     # 计算机管理器

二、cmd命令

大多数运行命令都可以放在cmd中执行,反之cmd命令在运行中执行时要用cmd /k <command>,不然命令执行后cmd窗口会立即关闭。

(命令后加/?即为帮助文档,具体使用方法无需死记硬背,参考帮助文档即可)

ping             # 利用ICMP协议查看网络连接状态

ipconfig         # 显示当前ip配置

cd               # 目录切换,仅限当前磁盘目录

D:               # 切换磁盘目录到D盘

dir              # 显示目录内容,不包括隐藏文件
                 # 可通过通配符找文件,如: dir window*

dir /a           # 显示目录中所有内容,包括用attrib隐藏的文件

dir /s /b /l     # /s递归显示所有子目录及内容,/b简要显示内容及路径,/l显示小写字母
                 # 结合 | findstr 可对文件内容进行搜索

dir /r           # 显示目录中文件备用数据流

del/erase        # 删除文件

rmdir            # 删除文件夹

find             # 查找字符串,如:find "xxx"

whoami           # 查询当前登录的用户名
                 # 工作组用户显示:计算机名\用户名
                 # 域内用户显示:域名\用户名

hostname         # 查看计算机名(注意与用户名区分开)

type <filename>  # 显示文本文件内容   

cls              # 清屏

set              # 查看所有系统环境变量值

set <VAR>        # 查看指定的系统环境变量值
                 # 等同于echo %<VAR>%

systeminfo       # 查看系统详细信息,包括处理器、内存、BIOS、网卡等

netstat          # 显示当前服务,常与-ano参数以及find命令一同使用,如:netstat -ano | find "445"
                 # 可用于发现主机

arp -a           # 显示ARP缓存中IP-MAC转换列表,与netstat命令相同,都可用于发现主机

route print -4   # 打印IPv4路由表

ftp              # 交互使用ftp服务

query user       # 等同于quser,查看用户的登录状态

net user         # 查看所有计算机用户,net user username,查看用户的详细信息

net view \\<host_ip> # 查看host主机的共享文件(看不到$默认共享)

net use          # 查看已经建立的网络共享连接

net use \\<host_ip>\<path> [password] /user:[domain\]<usernamer> # 用账号密码连接host的共享文件,常用如IPC$、C$

net use z: \\<host_ip>\<path> [password] /user:[domain\]<usernamer> # 将远程主机的共享文件映射到本地主机z盘

net user <username> [password] {/add | /delete} # 新建用户并配置密码,删除用户

net user <username> /active:yes # 启用用户(Win7之后系统默认没有启用Administrator、Guest等用户)

net localgroup   # 查看本地用户组

net localgroup <groupname> <username> {/add | /delete} # 将用户添加到指定分组(或从指定分组删除)

net localgroup administrators # 查看本地administrators组中的用户,可以看到隐藏的$用户

sc query <service> # 查看已启动服务的状态,注意<service>必须用服务名称,不能用服务的显示名称
                   # 如查看远程桌面服务状态,服务名称要用"termservice",不能用"Remote Desktop Services"
                   # 如果不加<service>,则为查看所有已启动服务的状态,这里显示的是服务名称

sc start/stop/delete <service> # 启动/关闭/删除服务,<service>必须用服务名称

sc qc <service>    # 查看服务的配置信息,<service>必须用服务名称

sc GetDisplayName <service_keyname> # 通过服务的名称获取其显示名称

sc GetKeyName <service_displayname> # 通过服务的显示名称获取服务名称
 
net start          # 查看已启动服务的显示名称
                   # 注意与"sc query"命令显示的服务名称区分开

net start/stop <service> # 启动/关闭服务,这里的<service>用服务名称或服务的显示名称都可以
                         # 启动/关闭windows的文件共享服务:net start/stop server(重启后仍会恢复共享服务,要想彻底停止共享只能修改注册表)

net share         # 查看系统共享

net share C$ /del # 删除C$系统默认共享(重启后仍默认共享$会恢复,要想彻底停止共享只能修改注册表)
                  # C$、D$等此类默认共享只能用Administrator用户访问

net share myShare=C:\Users\... # 新建用户共享(重启后用户个人的共享修改不会恢复)

tasklist          # 列出当前运行的进程

tasklist /svc     # 列出当前运行的进程及其对应的服务

tasklist /m <module> # 列出当前使用所给 exe/dll 名称的所有任务
                     # 不指定模块名称则显示所有加载的模块
                
taskkill             # 杀死进程

taskkill /pid <pid1> /pid <pid2> /f /t # 一次性强制删除多个进程及其启动的子进程

taskkill /im <name>  # 指定要终止的进程名称,可以与通配符*一起使用

tracert          # 将数据包从计算机传递到目标位置的一组IP路由器,以及每个跃点所需的时间(即跟踪数据报传送路径),测试网络连通性问题

>  >>            # 重定向输出,如:echo nul > xxx,新建xxx文件
<  <<            # 重定向输入,如:cmd < file,使cmd命令从file读入

net accounts     # 查看当前主机密码策略

diskpart         # 磁盘操作命令,用help可以看到更多指令信息(不能用来查询磁盘序列号)

cacls <filename> # 查看文件的访问控制列表(ACL)

cacls <filename> /G user:perm # 赋予指定用户的perm访问权限,perm可以是R(读取)、W(写入)、C(更改)、F(完全控制)

certutil -hashfile C:\temp.exe MD5 # 计算文件HASH值,用来校验下载文件十分方便
                 # 支持MD2/MD4/MD5/SHA1/SHA256/SHA384/SHA512

wmic computersystem get Name,Domain # 查看主机名及加入的域

wmic diskdrive get serialnumber,mediatype,model  # 查看硬盘类型及序列号
# WMIC(Windows Management Instrumentation Command-line)是在Windows 2003之后默认配置在windows上的的命令行管理工具,可以通过交互和非交互两种方式运行

wmic bios get serialnumber          # 查看主机序列号

注:

1.关于查询磁盘序列号的命令
cmd中输入一句指令wmic diskdrive get serialnumber,mediatype,model就可以搞定,百度上查阅资料基本都是按照diskpart->list disk->select disk 0->detail disk进行查询,实际上这样查到的磁盘ID是磁盘的GUID分区表标识符或者MBR签名,并不是磁盘序列号。然而这还没有完,win10系统上显示的序列号是正确的,而win7上就变成了每4位HEX字符经过little endian的字符串,比如12345678就会变成34127856,所以要把输出结果再进行一次little endian变换才是真正的磁盘序列号,xp上要把serialnumber变成signature才可以查看。对,说了这么多查询序列号还不如用类似diskinfo的第三方软件来的方便。。。

2.关于查询磁盘分区格式的命令
cmd中输入指令diskpart->list disk,在GPT那一列有*则是GPT分区格式,没有则是MBR分区格式。


(2020.07更新)

1.cmd注册表操作

常用注册表操作reg add/delete/save/query/import/export,应用如下:

① 获取用户hash
reg save HKLM\SAM sam.hive

reg save HKLM\SYSTEM system.hive

reg save HKLM\SECURITY security.hive

生成hive数据库文件,可以用cain查看,system.hivesecurity.hive中可能会有明文密钥,sam.hive中保存了hash值。

② 远程桌面配置
# 打开远程桌面
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f 

# 开启RDP远程桌面服务
net start TermService

# 关闭远程桌面
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f 

# 查看远程桌面端口(十六进制)
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber 

# 修改远程桌面端口
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 38389 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v PortNumber /t REG_DWORD /d 38389 /f

# 禁用不允许空密码远程访问
reg add "HKLM\SYSTEM\ControlSet001\Control\Lsa" /v LimitBlankPasswordUse /t REG_DWORD /d 0 /f

# /v:要添加的注册表键的名称
# /t:要添加的注册表类型
# /f:覆盖不提醒
# /d:添加的值
③ 关闭系统默认共享
# 注意:以下命令需要重启后生效
# 关闭硬盘各分区(C$/D$/...)共享
reg add "HKLM\SYSTEM\CurrentControlSet\Services\lanmanServer\Parameters" /v AutoShareServer /t REG_DWORD /d 0 /f

# 关闭admin$共享
reg add "HKLM\SYSTEM\CurrentControlSet\Services\lanmanServer\Parameters" /v AutoShareWks /t REG_DWORD /d 0 /f

# 关闭IPC$共享
# IPC$共享关闭后用net share仍能看到,但是不允许匿名空连接,只能使用密码连接
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v restrictanonymous /t REG_DWORD /d 1 /f

# 关闭共享服务
net stop server
④ 开启内存保存明文密码
# server 2012/windows 8之后版本的系统默认不会在内存中保存明文密码
# 可以通过以下命令修改,修改之后需要用户重新登录生效
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" /v UseLogonCredential /t REG_DWORD /d 1 /f
⑤ 删除注册表键
# 删除UseLogonCredential键
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" /v UseLogonCredential /f
⑥ 导入/导出注册表
reg import c:\config.reg
reg export HKLM\SYSTEM c:\config.reg
2.cmd查看域信息

注意区分:

  • /domain的命令是请求DC处理执行的,所以必须是域内主机才能执行此类命令,返回的是DC的查询结果,针对域,与在DC上查询是一样的;
  • 没有/domain的命令是在本机执行的,返回的是本机的查询结果,针对本机,与DC上查询的结果是不同的
net view                               # 查看当前域中在线主机
net view /domain                       # 查看当前加入的域
net view /domain:<domain_name>         # 查看domain_name域中的计算机

net config workstation                 # 查看本机加入的域 (Workstation domain) 和当前登录域 (Logon domain)

net accounts /domain                   # 查看域内密码策略

wmic computersystem get Name,Domain    # 查看主机名及当前加入的域

#---------以下命令只能以域成员身份执行---------#

net group /domain                      # 查看域内所有全局组
net group "Domain Admins" /domain      # 查看所有域管理员
net group "Domain Controllers" /domain # 查看所有域控主机
net group "Domain Users"  /domain      # 查看域内所有用户
net group "Domain Computers" /domain   # 查看域内所有主机

net localgroup administrators /domain  # 查看DC的本地管理员组

net time /domain                       # 查看域的当前时间
                                       # 一般由主域控担任时间同步服务器,可以用来初步判断主域控
                                       
#---------以下命令只能在DC上执行---------#

netdom query fsmo                      # 查看FSMO角色,可用来查看架构主控

dsquery computer                       # 查看目录中的计算机
dsquery subnet                         # 查看目录中的子网
dsquery group                          # 查看目录中的组
dsquery ou                             # 查看目录中的组织单位
dsquery site                           # 查看目录中的站点
dsquery server                         # 查看目录中的AD DC/LDS实例
dsquery server –forest –hasfsmo schema # 查看目录中的架构主控
dsquery user                           # 查看目录中的用户
dsquery *                              # 查看目录中的所有对象
  • 10
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值