Windows内部命令

Windows系统中最有用的命令行工具:包括WMIC、net、openfiles、netstat和查找命令。我将集中阐述五个比较有用的命令,并分析安全专家如何使用这些命令来帮助他们更好地工作,从而完整地列出十大命令。

与使用tasklist的程序相结合

当没有其它选择,只运行tasklist命令时,它会显示一列所有正在运行的程序,显示这些程序的名称、PID码和其它统计信息。要获得更多的tasklist信息,可以考虑这样运行该命令:

C:/> tasklist /svc

这个命令可以使tasklist显示每个进程中是哪个服务正在运行。许多Windows用户并不理解服务与进程之间的关系,Windows系统中的每个服务必须在某个程序中运行,并且一些程序内部有多个服务。因此,程序与服务之间的关系是一对多的关系,tasklist命令可以揭示这一点。

Tasklist命令的另一种有用形式是:

C:/> tasklist /m

“m”代表“模块(modules)”,或者代表tasklist指代DLL和代码库的方式,代码库是程序在运行过程中按照主机的命令而加载的。当用这种方法调用命令时,tasklist可以显示当前加载到所有运行程序中的每一个DLL。这就为用户在特定的时间内提供了大量的信息,这些信息是关于其计算机上正在发生的情况。虽然非常麻烦,Google搜索特定的程序和DLL,可能会带回反病毒厂商站点中的恶意软件描述,有了特定样本,就可以洞察到攻击者的动机。

高级注册表分析的reg命令

Reg命令可以使用户与其机器的注册表在命令行进行交互。没有采用麻烦的regedit GUI来操纵注册表,安全专家可以简单地弹出打开一个Windows命令界面,并运行reg命令,进而读取或更新注册表。然而,reg命令不允许注册表的交互式浏览;用户需要知道他们想要查看或改变的注册表索引的完整路径。但是,一旦知道了路径,reg命令是一种进行更改的简单方式。

如果要查看特定注册表索引的设置,使用reg命令的“查询”选项,具体如下所示:

C:/> reg query hklm/software/microsoft/windows/currentversion/run

这个索引控制Windows上不同的自动启动程序,当计算机启动以及随后用户登录到系统时,这些程序开始运行。许多恶意软件样本可以改变这个索引,来确保当系统重新启动时,恶意软件也开始运行。

将单个索引或者整个注册表输出到一个文件,用于分析或者将其安装在一个隔离的系统中,reg命令支持“reg输出”功能。除了读取和输出注册表设置以外,reg命令也可以进行更新。“reg add”命令将更新现有索引值,或者在不存在索引的情况下,创建一个索引。“reg import”命令可以导入多个注册表索引。

使用ipconfig进行DNS分析

大多数真正的Windows用户都熟悉ipconfig命令,它非常有用,可以显示Windows中的网络设置。但是,ipconfig有一个非常有用的功能,Ipconfig命令可以显示本地Windows机器中的DNS缓冲器,如下所示:

C:/> ipconfig /displaydns

该命令的输出可以显示各种缓冲域名、其相关的IP地址以及DNS记录的停留时间(以秒计)。如果用户重复运行这个命令,他们可以看到停留时间在减少,直到记录终止并且被放弃,或者得到更新。在研究快速通量僵尸网络时,查看DNS缓冲器和停留时间(TTL)值是非常重要的,可以利用带有小部分TTL的DNS记录,来迫使连续更新,并使研究者宁不清楚黑客主要的后端服务器的地址。无可否认,ipconfig并不拥有诸如本文中提到的其它命令(比如tasklist和reg)那么多的功能。但是,这条命令的一个用处就非常有用。

利用FOR /L循环重复运行

有时,管理员或者安全专家想要重复运行一条命令,可能在5秒的间隔内寻找其输出的变化。要实现这一目的,他们可以采用Windows 系统的FOR循环。Windows支持五种不同的FOR循环,它们可以遍历文件整数、文件名、目录名称、文件内容和字符串。这里的重点是这些循环的最简化,尤其是FOR /L,由于它可以用来使命令连续运行,进而实现无数次遍历。FOR /L循环的语法是:

C:/> for /L %[var] in ([start],[step],[stop]) do [command]

[var]是我们的迭代变量,一个英文字母将会在循环中的每一步显示不同的迭代值。然后,用户指定变量的初始值,在循环中的每一步中,数值会增加,并且其最大值会终止循环。也应当指定循环中每一步运行的命令。具体说来,需要考虑下面的几点:

C:/> for /L %i in (1,1,10) do @echo %i

这个循环会使用%i作为一个变量,初始值为1。循环中的每一次迭代,%i会增加1,直至升到10。然后,在循环中,用户可以使用echo命令,简单地在屏幕上打印出迭代变量的值。@告诉系统不要打印出命令本身,这使得输出稍微漂亮一些。用户仅仅告诉系统从1计数到10。

现在,我们来看看如何使用这条命令来实现tasklist命令的连续运行:

C:/> for /L %i in (1,0,2) do @tasklist

输入这条命令,就意味着用户告诉计算机为变量赋值为1 ,启动循环,计数为0 ,自始至终升到2。这就会无限计数,直到用户单击CTRL-C来终止它。用户可以在每次迭代中简单地运行tasklist命令。

要在迭代之间延迟几秒,只需要添加“& ping --n 6 127.0.0.1 > nul”,在循环的每次迭代中简单地多次ping本地主机(127.0.0.1)。如下所示:

C:/> for /L %i in (1,0,2) do @tasklist & ping --n 6 127.0.0.1 > nul

由于Windows命令行没有内置的睡眠功能,来等待某个特定的延迟,用户可以使用ping,进而产生一个延迟。上面的命令可以ping本地主机地址六次(-n 6),引入一个五秒的延迟(第一次ping立即发生,紧接着是每秒一次ping,持续五秒)。我们正将ping烦人的输出转储为nul,并使之消失。结果是一个命令可以让tasklist每五秒运行一次,这个技术可以用于重复运行本文中提到的每条命令,用户可以更仔细地检查输出。更复杂的语法甚至可以解析命令的输出,允许产生专门制作的脚本,进而用于详细的系统分析,但是这种语法超出了每月技巧的讨论范围。

通过命令行启动管理GUI

虽然Windows命令行有许多功能强大的工具,但是,不论你相信与否,有时候,GUI工具可以比命令行做的更好。然而,Microsoft已经在其GUI的某些地址中埋藏了不同的控件,记忆这些模糊的地址是一项令人混乱的任务。

幸运的是,用户不必挖掘GUI来寻找他们想要的东西;相反,他们可以依赖命令行快捷方式。比如,不用在开始菜单中寻找并运行本地用户管理GUI,用户可以采用就近的命令提示和类型:

C:/> lusrmgr.msc

大量的其它GUI控件都可以采用这种方法从命令行中启动,这样就可以节省大量的时间。下面是我钟爱的一些控件:

Secpol.msc:这是本地安全策略的管理者,用于在机器上配置大量的安全设置。

Services.msc:这条命令可以启动服务的控制面板GUI。

Control:这个命令可以调出工具的整个控制面板设置。

Taskmgr.exe:该命令用于启动任务管理器。

Explorer.exe:运行这条命令,可以采用便捷的方式调用Windows file explorer。

Eventvwr.ms:该命令可以运行此命令运行Windows事件查看器(Windows Event Viewer),有助于日志分析。

这些Windows命令行工具可以帮助管理员和安全专家更有力的掌控其Windows机器,当受到攻击时,可以更安全地进行配置,更详尽地进行分析。

(0)

相关推荐

  • oracle数据库exp不是内部命令或外部命令

    oracle数据库导出时,输入exp指令后,结果显示exp不是内部命令或外部命令. 出现这个问题的原因是系统找不到exp.exe程序,也就是没有给系统变量配置exp.exe的路径.所以解决办法就是将e ...

  • cmd不是内部命令解决方法

    当进入cmd之后,经常会出现这样的提示"不是内部命令"等,给一些习惯使用cmd排查故障的IT管理员带来了困扰,现将解决方法介绍一下,希望能帮助你. 1.看看你机子里的 c:\win ...

  • JAVAC不是内部命令或外部命令怎么解决

    jdk安装完成后,在cmd命令窗口输入Java可以显示帮助信息,输入javac提示不是内部命令或外部命令,一般是因为环境变量没有配置或者配置错误导致的,下面就介绍下解决办法 操作方法 01 键盘win ...

  • 如何处理taskkill不是内部命令?

    DOS下我们经常使用taskkill命令来杀掉进程.但是经常会遇到 taskkill不是内部命令,遇到这种情况我们该怎么办呢 ?? 操作方法 01 首先运行DOS: 02 执行taskkill命令,提 ...

  • win7命令提示符里不管输入什么命令都提示不是内部命令

    命令提示符是系统中一个非常实用的功能,我们要看电脑的所有IP地址等,都可以在命令提示符窗口里面输入命令,然后知道结果。但是如果你出现不管输入什么命令都是提示你不是内部命令或者不是外部命令。在你保证命令 ...

  • 如何设置Windows默认命令行窗口大小和缓冲区大小

    如何设置Windows默认命令行窗口大小和缓冲区大小 Windows 命令行 cmd 窗口系统默认的大小(80*40)对于现在的屏幕配置已经跟不上时代了,我们总是要把它改大些,而且缓冲区大小也想改得大 ...

  • windows下命令行发送邮件blat.exe

    windows下命令行发送邮件blat.exe简介 下载最新的工具包,解压并拷贝到操作系统盘的System32 目录下。我的环境C:WindowsSystem32. 确认文件已经拷贝过去: blat. ...

  • Win10提示"Windows内部版本许可证即将过期"是什么原因

    Win10提示"Windows内部版本许可证即将过期"是什么原因 Win10正式版提示"Windows许可证即将过期",导致此窗口频繁弹出的重要原因是Win10 ...

  • windows cmd命令中如何复制文件

    最近一些朋友咨询我关于windows cmd命令中如何复制文件的问题,今天的篇就和大家聊一聊这个问题,希望可以帮助到大家. 操作方法 01 按下键盘win+r键调出运行窗口. 02 输入cmd回车,首 ...