From:https://www.douban.com/note/185257401/
DOS 在线手册 DOS W3School 教程
DOS下的可执行文件有三种,分别是EXE,COM,BAT和cmd。其中,EXE和COM文件都是二进制形式的,只有BAT文件是文本形式的,可以直接阅读。因此,BAT文件和以上二进制可执行文件相比,内容要简单的多。这些文件内包含着DOS命令的集合,通常叫作批处理文件。批处理文件的组成虽然比较简单,但其用处非常大,使用也比较广泛。比如每次都执行一些相同的命令,您一定会觉得非常麻烦,而放在批处理文件中执行的话则轻松得多。AUTOEXEC.BAT就是一个特殊的批处理文件,它在DOS的启动时自动运行,在系统的配置中发挥着非常大的作用。因此,要学好DOS,就要学好批处理文件。下面介绍批处理文件的命令及其使用。
@ :
将这个符号放在批文件中其它命令的前面,运行时将不显示命令本身。 如@ECHO OFF命令就在批文件首经常用到。
CALL :
从一个批文件中调用另一个批文件,调用完后继续执行原来的批文件。 用法:CALL [批文件名] 注:也可以使用COMMAND /C命令完成同样的操作。
CHOICE :
选择命令。这是一个DOS外部命令,但它主要用在批文件中。 CHOICE命令执行后将提示可选择的项目,这时通过一个按键来选则。
用法:CHOICE:[/C[:]按键表] [/N] [/S] [/T[:]选择值,秒数] [显示文本] 其中,/C表示可选则的按键,/N表示不要显示提示信息,/S表示大小写字符敏感方式,/T表示若在批定的时间内没有选则的话,自动执行/C中定义的某个选择值。 显示文本是CHOICE命令执行时的提示信息。选择结果将用ERRORLEVEL值来表示。
ECHO :
显示指定的信息。通常显示在屏幕上。 如ECHO Hello将在屏幕上显示Hello的字样。 另外,ECHO ON|OFF用来设置在批文件执行时是否显示命令本身。而ECHO OFF与@的意思一样,但它是一个单独的命令,而不能像@那样放在其它命令之前。
FOR :
对于指定的文件运行相应的命令。 大家知道,DOS下许多命令支持通配符,如?和*,可以一次指定一批文件,非常方便。
然而,并非所有的DOS命令都支持通配符,如TYPE(文件内容显示命令)就不支持。有了FOR命令就没有关系了,利于它可以使TYPE命令可以一次显示多个文件。 用法:FOR %变量名 IN (文件集) DO 命令 [命令参数] 注:以上是FOR命令的固定形式,IN和DO的位置必须正确,否则将提示语法错误。 如FOR %F IN (*.*) DO TYPE %F命令就可以实现TYPE命令一次显示多个文件。 注:%F是变量名,也可用%G等代替,但前后必须一致。在批文件中用%%F代替。
GOTO :
转到批文件内部的某个标号下执行。 大家知道,在编程中往往需要重复或跳转到某个地方继续执行,如BASIC语言中的GOTO命令。
批文件中的GOTO命令也可以完成类似的功能。 用法:GOTO [标号名] 其中,标号名是可以随意设置的,如Hello等。设置标号用“:”符号,如“:Hello”,这时用GOTO Hello命令将转到“:Hello”所在的位置继续执行批文件。
IF : 条件判断命令。这是一项很有用的批处理命令。 用法1:IF [NOT] EXIST 文件名 命令 [命令参数] 意义:如果[不]存在某个文件将执行某个命令。 用法2:IF [NOT] ERRORLEVEL 错误返回代号 命令 [命令参数] 意义:如果错误返回代号[不]大于或等于指定的代号将执行某个命令。 其中,ERRORLEVEL表示错误返回代号,很有用。 对于很多DOS命令,由于执行的结果不同(如执行成功,执行失败,或被用户中断等),这些命令会返回不同的代号,以表示不同的结果。 IF ERRORLEVEL命令就根据这个不同结果而产生的不同代号来执行不同的命令,通常用在某条命令之后。 如IF ERRORLEVEL 1 ECHO OK!表示如果当前的错误返回代号大于或等于1时将在屏幕上显示“OK!”的字样。 用法3:IF [NOT] 字符串1==字符串2 命令 [命令参数] 意义:当字符串1和字符串2[不]相等的时候执行某个命令。
PAUSE : 暂停批文件的执行,并显示“按任意键继续”的字样。
REM : 添加注解。用于增加文件可读性,将不被执行。也可以用::来代替。
DOS中是通过输入英文命令加回车键这种方式来执行程序的,DOS称为单任务的操作系统。 凡后缀为exe、com或bat的文件都是可以直接执行的。这些以exe为后缀的文件叫可执行文件;以com为后缀的文件叫命令文件;以bat为后缀的文件叫批处理文件。如果我们要执行这些文件,只需在提示符下敲入文件基本名然后回车即可,不需输入文件后缀。
所谓批处理,就是一下可以执行很多条命令,当我们想让电脑完成一系列任务时,可以一个一个命令的执行,也可以将这些命令都装入一个文件中,只要敲一下这个文件名,电脑就会将这一批命令一次执行完毕。 在DOS中,有个当前目录的概念,就是提示符所显示的目录,现在的提示符是C:\,那么当前目录就是C盘的根目录,这个\(反斜杠)就表示根目录。
DOS命令分为内部命令和外部命令, 内部命令是随每次启动的COMMAND.COM装入并常驻内存,而外部命令是一条单独的可执行文件。在操作时要记住的是,内部命令在任何时候都可以使用,而外部命令需要保证命令文件在当前的目录中,或在Autoexec.bat文件已经被加载了路径。
dos 命令不区分大小写
常用的内部命令有:
md (创建目录)、cd (改变目录)、rd (删除目录)、dir (显示目录内容)、path (设置路径)、copy (文件复制)、type (显示文件内容)、edit (编辑)、ren (重命名)、del (删除文件)、cls (清屏)、ver (查看系统版本号)、date (日期)、time (时间)、prompt (改变提示符)。
常用的外部命令有:
deltree (删除整个目录命令)、format (磁盘格式化)、diskcopy (整盘复制)、label (建立磁盘卷标)、vol (显示磁盘卷标)、sys (系统复制)、xcopy (目录复制)、fc (文件比较)、attrib (修改文件属性)、mem、tree (显示目录结构)。
1.MD——建立子目录 功能:创建新的子目录 类型:内部命令 格式:MD[盘符:][路径名]〈子目录名〉 示例:C:\>md y /*---建立y子目录---*/ 2.CD——改变当前目录 功能:显示当前目录 类型:内部命令 格式:CD[盘符:][路径名][子目录名] 说明:CD命令不能改变当前所在的盘,CD..退回到上一级目录,CD\表示返回到当前盘的目录下,CD无参数时显示当前目录名。 示例:C:\>cd y /*---显示当前目录y---*/ 3.RD——删除子目录命令 功能:从指定的磁盘删除了目录。 类型:内部命令 格式:RD[盘符:][路径名][子目录名] 示例:C:\>rd y 4.DIR——显示磁盘目录命令 功能:显示磁盘目录的内容。 类型:内部命令 格式:DIR [盘符][路径][/P][/W] 示例:C:\>dir y 5.PATH——路径设置命令 功能:设备可执行文件的搜索路径,只对文件有效。 类型:内部命令 格式:PATH[盘符1]目录[路径名1]{[;盘符2:],〈目录路径名2〉…} C:\>path PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\PROGRAMFILES\MTS 6.COPY文件复制命令 功能:拷贝一个或多个文件到指定盘上。 类型:内部命令 格式:COPY [源盘][路径]〈源文件名〉[目标盘][路径][目标文件名] C:\>copy yyy.txt yyy 1 file(s) copied C:\yyy>dir yyy 说明: 如果是将多个文件复制到一个新的文件, 命令 COPY [源盘][路径]〈源文件A〉+[源盘][路径]〈源文件B〉[目标盘][路径][目标文件名] C:\>copy x.txt+y.txt xy.t 7.TYPE——显示文件内容命令 功能:显示ASCII码文件的内容. 类型:内部命令。 格式:TYPE[盘符:][路径]〈文件名〉 C:\>trpe yyy.txt /*---假设C盘目录下存在yyy.txt文件---*/ 8.EDIT——编辑文件内容命令 功能:编辑ASCII文件的内容,也可建立一个新文件。 类型:内部命令。 EDIT[盘符:][路径]〈文件名〉 说明: EDIT即可以编辑ASCII文件的内容,也可以新建立一个文件, 他们的扩展名命名方式也很灵活,比如.txt、.bat,甚至可以编辑.c、.bas的格式。 C:\>edit /*进入编辑模式*/ C:\>edit yyy.txt /*---编辑yyy.txt文件的内容,如果要选择支持中文格式,应该安装UCDOS---*/ 9.REN——文件改名命令 功能:更改文件名称 类型:内部命令 格式:REN[盘符:][路径]〈旧文件名〉〈新文件名〉 C:\>ren yyy.txt cly.txt 10.DEL——删除文件命令 功能:删除指定的文件。 类型:内部命令 格式:DEL[盘符:][路径]〈文件名〉[/P] 说明:选用/P参数,系统在删除前询问是否真要删除该文件,若不使用这个参数,则自动删除。 11.CLS——清屏幕命令 功能:清除屏幕上的所有显示,光标置于屏幕左上角。 类型:内部命令 格式:CLS C:\>CLS 12.VER查看系统版本号命令 功能:显示当前系统版本号 类型:内部命令 格式:VER C:\>VER 13.DATA日期设置命令 功能:设置或显示系统日期。 类型:内部命令 格式:DATE[mm—dd—yy] C:\>DATE Current date is Sun 11-23-2 Enter new date (mm-dd-yy): /*---提示你输入新的日期---*/ 14.TIME系统时钟设置命令 功能:设置或显示系统时期。 类型:内部命令 格式:TIME[hh:mm:ss:xx] C:\>time Current time is 22:49:28.81 Enter new time: 15.PROMPT:更改命令提示符 功能:改变DOS系统提示符的风格。 16. deltree--删除目录树 [格式] [C:][path]DELTREE [C1:][path1] [[C2:][path2] […]] 17. mem--查看你的计算机内存有多少,以及内存的使用情况。 [格式] 直接键入mem命令 18. chkdsk--检查你的磁盘的使用情况。 [格式] chkdsk 磁盘名 21. FORMAT(Format.COM)--格式化命令 格式为"FORMAT [盘符] [参数]",例如:"FORMAT A: /S"。它有两个常见的参数: /Q:进行快速格式化; /S:完成格式化,并将系统引导文件拷贝到该磁盘。 22. FDISK(Fdisk.EXE)--分区命令 windows运行命令全集 有关某个命令的详细信息,请键入 HELP 命令名 winver检查Windows版本 dxdiag检查DirectX信息 mem.exe显示内存使用情况 Sndvol32音量控制程序 sfc.exe系统文件检查器 gpedit.msc 组策略 regedit.exe 注册表 Msconfig.exe 系统配置实用程序 cmd.exe CMD命令提示符 chkdsk.exe Chkdsk磁盘检查 mem.exe显示内存使用情况 gpedit.msc 组策略 regedit.exe 注册表 Msconfig.exe 系统配置实用程序 cmd.exe CMD命令提示符 services.msc 服务 lusrmgr.msc 本地账户管理 drwtsn32 系统医生 cleanmgr 垃圾整理 iexpress 木马捆绑工具,系统自带 mmc 控制台 dcpromo 活动目录安装 ntbackup 系统备份和还原 rononce -p 15秒关机 taskmgr 任务管理器 conf 启动netmeeting devmgmt.msc 设备管理器 diskmgmt.msc NT的磁盘管理器 compmgmt.msc 计算机管理 winchat 局域网聊天 dvdplay DVD播放器 mplayer2 简易widnows media player mspaint 画图板 nslookup 网络管理的工具 syskey 系统加密,一旦加密就不能解开,保护windows xp系统的双重密码 wupdmgr WIDNOWS UPDATE Clipbrd 剪贴板查看器 Odbcad32 ODBC数据源管理器 Nslookup IP地址侦测器 XP.CMD命令大全 有关某个命令的详细信息,请键入 HELP 命令名 ASSOC 显示或修改文件扩展名关联。 AT 计划在计算机上运行的命令和程序。 ATTRIB 显示或更改文件属性。 BREAK 设置或清除扩展式 CTRL+C 检查。 CACLS 显示或修改文件的访问控制列表(ACLs)。 CALL 从另一个批处理程序调用这一个。 CD 显示当前目录的名称或将其更改。 CHCP 显示或设置活动代码页数。 CHDIR 显示当前目录的名称或将其更改。 CHKDSK 检查磁盘并显示状态报告。 CHKNTFS 显示或修改启动时间磁盘检查。 CLS 清除屏幕。 CMD 打开另一个 Windows 命令解释程序窗口。 COLOR 设置默认控制台前景和背景颜色。 COMP 比较两个或两套文件的内容。 COMPACT 显示或更改 NTFS 分区上文件的压缩。 CONVERT 将 FAT 卷转换成 NTFS。您不能转换当前驱动器。 COPY 将至少一个文件复制到另一个位置。 DATE 显示或设置日期。 DEL 删除至少一个文件。 DIR 显示一个目录中的文件和子目录。 DISKCOMP 比较两个软盘的内容。 DISKCOPY 将一个软盘的内容复制到另一个软盘。 DOSKEY 编辑命令行、调用 Windows 命令并创建宏。 ECHO 显示消息,或将命令回显打开或关上。 ENDLOCAL 结束批文件中环境更改的本地化。 ERASE 删除至少一个文件。 EXIT 退出 CMD.EXE 程序(命令解释程序)。 FC 比较两个或两套文件,并显示不同处。 FIND 在文件中搜索文字字符串。 FINDSTR 在文件中搜索字符串。 FOR 为一套文件中的每个文件运行一个指定的命令。 FORMAT 格式化磁盘,以便跟 Windows 使用。 FTYPE 显示或修改用于文件扩展名关联的文件类型。 GOTO 将 Windows 命令解释程序指向批处理程序中某个标明的行。 GRAFTABL 启用 Windows 来以图像模式显示扩展字符集。 HELP 提供 Windows 命令的帮助信息。 IF 执行批处理程序中的条件性处理。 LABEL 创建、更改或删除磁盘的卷标。 MD 创建目录。 MKDIR 创建目录。 MODE 配置系统设备。 MORE 一次显示一个结果屏幕。 MOVE 将文件从一个目录移到另一个目录。 PATH 显示或设置可执行文件的搜索路径。 PAUSE 暂停批文件的处理并显示消息。 POPD 还原 PUSHD 保存的当前目录的上一个值。 PRINT 打印文本文件。 PROMPT 更改 Windows 命令提示符。 PUSHD 保存当前目录,然后对其进行更改。 RD 删除目录。 RECOVER 从有问题的磁盘恢复可读信息。 REM 记录批文件或 CONFIG.SYS 中的注释。 REN 重命名文件。 RENAME 重命名文件。 REPLACE 替换文件。 RMDIR 删除目录。 SET 显示、设置或删除 Windows 环境变量。 SETLOCAL 开始批文件中环境更改的本地化。 SHIFT 更换批文件中可替换参数的位置。 SORT 对输入进行分类。 START 启动另一个窗口来运行指定的程序或命令。 SUBST 将路径跟一个驱动器号关联。 TIME 显示或设置系统时间。 TITLE 设置 CMD.EXE 会话的窗口标题。 TREE 以图形模式显示驱动器或路径的目录结构。 TYPE 显示文本文件的内容。 VER 显示 Windows 版本。 VERIFY 告诉 Windows 是否验证文件是否已正确写入磁盘。 VOL 显示磁盘卷标和序列号。 XCOPY 复制文件和目录树。检查网络是否通畅或者网络连接速度的命令。ping命令是第一个必须掌握的DOS命令,原理:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看帮助吧,在DOS窗口中键入:ping /? 回车,出现如图1所示的帮助画面。在此,我们只掌握一些基本的很有用的参数就可以了(下同)。
该命令使用TCP/IP上的NetBIOS显示协议统计和当前TCP/IP连接,使用这个命令你可以得到远程主机的NETBIOS信息,比如用户名、所属的工作组、网卡的MAC地址等
查看网络状态的命令,操作简便功能强大。
跟踪路由信息,使用此命令可以查出数据从本地机器传输到目标主机所经过的所有途径,这对我们了解网络布局和结构很有帮助。如图5,这里说明数据从本地机器传输到192.168.0.1的机器上,中间没有经过任何中转,说明这两台机器是在同一段局域网内。用法:tracert IP。
NET指令是一个由众多命令作为参数组成的庞大命令集,其语法是:
net [ accounts | computer | config | continue | file | group | help | helpmsg | localgroup | name | pause | print | send | session | share | start | statistics | stop | time | use | user | view ]
所有 net 命令接受选项 / yes 和 /no(可缩写为 / y 和 /n )。/ y 对命令产生的任何交互提示自动回答“是”,/n 回答“否”。 例如,net stop server 通常提示确认是否根据服务器服务结束所有服务,net stop server /y 自动回答“是”并关闭服务器服务。这个命令是网络命令中最重要的一个,必须透彻掌握它的每一个子命令的用法,因为它的功能实在是太强大了,这简直就是微软为我们提供的最好的入侵工具。首先让我们来看一看它都有那些子命令,键入net /?回车。
使用此命令查看远程主机的所以共享资源。命令格式为net view \\IP
NET VIEW命令 用于显示一个计算机上共享资源的列表。当不带选项使用本命令时,它就会显示当前域或工作组中计算机的列表。
其命令格式如下:
NET VIEW [//computername [/CACHE] | /DOMAIN[:domainname]]或 NET VIEW /NETWORK:NW [//computername]//Computername 指定希望查看其共享资源的目标计算机。
/domain[:domainname] 指定要查看其可用计算机的域或工作组。如果省略 DomainName,/domain 将显示网络上的所有域或工作组名。
/network:nw 显示 NetWare 网络上所有可用的服务器。如果指定计算机名,/network:nw 将通过 NetWare 网络显示该计算机上的可用资源。也可以指定添加到系统中的其他网络。
使用 net view 命令显示计算机列表。输出内容与以下相似:
服务器名称 注释 ------------------------------------------------- //Production Production file server //Print1 Printer room, first floor //Print2 Printer room, second floor现在,我们已经接触了net view,net use,net share这三个命令,我们已经可以用这三个命令来完成大部分windows网络共享相关的工作,我们可以用net view命令在网络上查找共享资源,用net use命令使用指定的共享资源并用net share命令向网络添加共享资源。
下面是一些net view命令的使用范例:
要查看由 //Production 计算机共享的资源列表,:
net view //production要查看 NetWare 服务器 //Marketing 上的可用资源:
net view /network:nw //marketing要查看sale域或工作组中的计算机列表:
net view /domain:sales要查看 NetWare 网络中的所有服务器:
net view /network:nw把远程主机的某个共享资源影射为本地盘符,图形界面方便使用。命令格式为net use x: \\IP\sharename。
上面一个表示把192.168.0.5IP的共享名为magic的目录影射为本地的Z盘。
下面表示和192.168.0.7建立IPC$连接(net use \\IP\IPC$ "password" /user:"name"),
建立了IPC$连接后,就可以上传文件了:copy nc.exe \\192.168.0.7\admin$,表示把本地目录下的nc.exe传到远程主机,结合后面要介绍到的其他DOS命令就可以实现入侵了。
NET SHARE 用于管理共享资源,使网络用户可以使用某一服务器上的资源。 当不带选项使用此命令时,它会列出该计算机上正在被共享的所有资源。 对于每一种资源,Windows 都会报告其设备名或路径名,以及与之相关的描述性注释。
参数 ShareName 指定共享资源的网络名称。键入带参数 ShareName 的 net share 命令仅显示有关该共享的信息。 drive:path 指定要共享目录的绝对路径。 /users:number 设置可以同时访问共享资源的最多用户数。 /unlimited 指定可以同时访问共享资源的、数量不受限制的用户。 /remark:"text" 添加关于资源的描述注释。给文本加上引号。 /cache:automatic 启用带自动重新集成的脱机客户缓存。 /cache:manual 启用带手动重新集成的脱机客户缓存。 /cache:no 提醒客户脱机缓存不合适。 /delete 停止共享资源。 net help command 显示指定 net 命令的帮助。 注释 要共享带有包含空格字符路径的目录,请使用引号将目录的驱动器和路径引起来(例如, "C:\Path Name")。 当显示计算机上的所有共享资源时,将显示资源的共享名、与资源相关的设备名或路径,以及与资源有关的描述性注释。输出内容与以下相似: share name resource remark ------------------------------------------------------ ADMIN$ C:\WINNT Remote Admin C$ C:\ Default Share for Internal Use print$ C:\WINNT\SYSTEM\SPOOL IPC$ Remote IPC LASER LPT1 Spooled Laser printer 在服务器上创建共享时,这些共享将被保存。 在停止 Server 服务时,所有共享都断开,但是在下一次启动 Server 服务或者重新启动计算机时将自动重新连接它们。 有关服务的详细信息,请参阅服务。 当从远程计算机浏览本地计算机时,将不显示以字符 $ 结尾的共享资源名。 范例 要显示有关计算机上共享资源的信息,请键入: 网络共享 要使用共享名 DataShare 共享计算机的 C:\Data 目录并包括注释,请键入: net share DataShare=c:\Data /remark:"For department 123." 要停止上例中创建的 DataShare 文件夹共享,请键入: net share DataShare /delete 要使用共享名 List 共享计算机的 C:\Art Lst 目录,请键入: net share list="c:\art lst" ============================================================================================ 测试实例: \\172.168.68.191上添加共享名: D:\config>net share app$=d:\config app$ 共享成功。 \\172.168.68.177机器执行copy命令: D:\>net use \\172.168.68.191\app$ "ffcs" /user:"administrator" 命令成功完成。 D:\>copy \\172.168.68.191\app$\php.ini d:\copy 已复制 1 个文件。 D:\>cd copy D:\copy>dir启动/停止 本地主机或者远程主机上的服务。当你和远程主机建立连接后,如果发现它的什么服务没有启动,而你又想利用此服务怎么办?就使用这个命令来启动吧。
用法:net start servername
查看和帐户有关的情况,包括新建帐户、删除帐户、查看特定帐户、激活帐户、帐户禁用等。这对我们入侵是很有利的,最重要的,它为我们克隆帐户提供了前提。键入不带参数的net user,可以查看所有用户,包括已经禁用的。下面分别讲解。
net user abcd 1234 /add,新建一个用户名为abcd,密码为1234的帐户,默认为user组成员。 net user abcd /del,将用户名为abcd的用户删除。 net user abcd,查看用户名为abcd的用户的情况。 net user abcd /active:no,将用户名为abcd的用户禁用。 net user abcd /active:yes,激活用户名为abcd的用户。 net localgroup 查看所有和用户组有关的信息和进行相关操作。键入不带参数的net localgroup即列出当前所有的用户组。 在入侵过程中,我们一般利用它来把某个帐户提升为administrator组帐户,这样我们利用这个帐户就可以控制整个远程主机了。 用法:net localgroup groupname username /add,现在我们把刚才新建的用户abcd加到administrator组里去了,这时候abcd用户已经是超级管理员了。你可以再使用 net u ser abcd来查看他的状态。但这样太明显了,网管一看用户情况就能漏出破绽,所以这种方法只能对付菜鸟网管,但我们还得知道。现在的手段都是利用其他工具和手段克隆一个让网管看不出来的超级管理员,这是后话。有兴趣的朋友可以参照《黑客防线》第30期上的《由浅入深解析隆帐户》一文。
查看远程主机当前的时间。如果你的目标只是进入到远程主机里面,那么也许就用不到这个命令了。但简单的入侵成功了,难道只是看看吗?我们需要进一步渗透。这就连远程主机当前的时间都需要知道,因为利用时间和其他手段(后面会讲到)可以实现某个命令和程序的定时启动,为我们进一步入侵打好基础。用法:net time \\IP。
这个命令的作用是安排在特定日期或时间执行某个特定的命令和程序(知道net time的重要了吧?)。
当我们知道了远程主机的当前时间,就可以利用此命令让其在以后的某个时间(比如2分钟后)执行某个程序和命令。
用法:at time command \\computer。如图:表示在6点55分时,让名称为a-01的计算机开启telnet服务(这里net start telnet即为开启telnet服务的命令)。
FTP命令详解: FTP命令是Internet用户使用最频繁的命令之一 熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。 如果你想学习使用进行后台FTP下载,那么就必须学习FTP指令。
FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,其中 -v 显示远程服务器的所有响应信息 -n 限制ftp的自动登录,即不使用;.n etrc文件; -d 使用调试方式; -g 取消全局文件名。 FTP使用的内部命令如下(中括号表示可选项): 1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip 2.$ macro-ame[args]: 执行宏定义macro-name。 3.account[password]: 提供登录远程系统成功后访问系统资源所需的补充口令。 4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。 5.ascii:使用ascii类型传输方式。 6.bell:每个命令执行完毕后计算机响铃一次。 7.bin:使用二进制文件传输方式。 8.bye:退出ftp会话过程。 9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。 10.cd remote-dir:进入远程主机目录。 11.cdup:进入远程主机目录的父目录。 12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。 13.close:中断与远程服务器的ftp会话(与open对应)。 14.cr:使用asscii方式传输文件时,将回车换行转换为回行。 15.delete remote-file:删除远程主机文件。 16.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。 17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件。 18.disconnection:同close。 19.form format:将文件传输方式设置为format,缺省为file方式。 20.get remote-file[local-file]: 将远程主机的文件remote-file传至本地硬盘的local-file。 21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。 22.hash:每传输1024字节,显示一个hash符号(#)。 23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。 24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。 25.image:设置二进制传输方式(同binary)。 26.lcd[dir]:将本地工作目录切换至dir。 27.ls[remote-dir][local-file]:显示远程目录remote-dir, 并存入本地文件local-file。 28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。 29.mdelete[remote-file]:删除远程主机文件。 30.mdir remote-files local-file:与dir类似,但可指定多个远程文件,如 :mdir *.o.*.zipoutfile 。 31.mget remote-files:传输多个远程文件。 32.mkdir dir-name:在远程主机中建一目录。 33.mls remote-file local-file:同nlist,但可指定多个文件名。 34.mode[modename]:将文件传输方式设置为modename, 缺省为stream方式。 35.modtime file-name:显示远程主机文件的最后修改时间。 36.mput local-file:将多个文件传输至远程主机。 37.newer file-name: 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。 38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。 39.nmap[inpattern outpattern]:设置文件名映射机制, 使得文件传输时,文件中的某些字符相互转换, 如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。 该命令特别适用于远程主机为非UNIX机的情况。 40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。 41.open host[port]:建立指定ftp服务器连接,可指定连接端口。 42.passive:进入被动传输方式。 43.prompt:设置多个文件传输时的交互提示。 44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令, 该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。 45.put local-file[remote-file]:将本地文件local-file传送至远程主机。 46.pwd:显示远程主机的当前工作目录。 47.quit:同bye,退出ftp会话。 48.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst. 49.recv remote-file[local-file]:同get。 50.reget remote-file[local-file]:类似于get, 但若local-file存在,则从上次传输中断处续传。 51.rhelp[cmd-name]:请求获得远程主机的帮助。 52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态, 否则显示文件状态。 53.rename[from][to]:更改远程主机文件名。 54.reset:清除回答队列。 55.restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。 56.rmdir dir-name:删除远程主机目录。 57.runique:设置文件名只一性存储,若文件存在,则在原文件后加后缀.1, .2等。 58.send local-file[remote-file]:同put。 59.sendport:设置PORT命令的使用。 60.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。 61.size file-name:显示远程主机文件大小,如:site idle 7200。 62.status:显示当前ftp状态。 63.struct[struct-name]:将文件传输结构设置为struct-name, 缺省时使用stream结构。 64.sunique:将远程主机文件名存储设置为只一(与runique对应)。 65.system:显示远程主机的操作系统类型。 66.tenex:将文件传输类型设置为TENEX机的所需的类型。 67.tick:设置传输时的字节计数器。 68.trace:设置包跟踪。 69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。 70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3 71.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。 72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp 服务器的所有响 应都将显示给用户,缺省为on. 73.?[cmd]:同help.telent 详解
描述:该工具显示在本地或远程机器上当前运行的进程列表。
在Windows XP中新增了两个命令行工具“tasklist、taskkill”。通过“Ctrl+Alt+Del”组合键,打开“任务管理器”就可以查看到本机完整的进程列表,而且可以通过手工定制进程列表的方式获的更多的进程信息,如会话ID、用户名等,遗憾的是,我们查看不到这些进程到底提供了哪些系统服务。而tasklist、taskkill两个工具就能实现上面所说的功能。
“Tasklist”命令用来显示运行在本地或远程计算机上的所有进程的命令行工具,带有多个执行参数。它的格式为
TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH] 参数列表: /S system 指定连接到的远程系统。 /U [domain\]user 指定应该在哪个用户上下文执行这个命令。 /P [password] 为提供的用户上下文指定密码。如果省略,则 提示输入。 /M [module] 列出当前使用所给 exe/dll 名称的所有任务。 如果没有指定模块名称,显示所有加载的模块。 /SVC 显示每个进程中主持的服务。 /V 显示详述任务信息。 /FI filter 显示一系列符合筛选器指定的标准的任务。 /FO format 指定输出格式。 有效值: "TABLE"、"LIST"、"CSV"。 /NH 指定列标题不应该在输出中显示。 只对 "TABLE" 和 "CSV" 格式有效。 /? 显示帮助消息。 筛选器: 筛选器名 有效操作符 有效值 ----------- --------------- -------------------------- STATUS eq, ne RUNNING | NOT RESPONDING | UNKNOWN IMAGENAME eq, ne 映像名称 PID eq, ne, gt, lt, ge, le PID 值 SESSION eq, ne, gt, lt, ge, le 会话编号 SESSIONNAME eq, ne 会话名 CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为 hh:mm:ss。 hh - 时, mm - 分,ss - 秒 MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量,单位为 KB USERNAME eq, ne 用户名,格式为 [domain\]user SERVICES eq, ne 服务名称 WINDOWTITLE eq, ne 窗口标题 MODULES eq, ne DLL 名称 说明: 当查询远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。 示例: TASKLIST TASKLIST /M TASKLIST /V /FO CSV TASKLIST /SVC /FO LIST TASKLIST /M wbem* TASKLIST /S system /FO LIST TASKLIST /S system /U domain\username /FO CSV /NH TASKLIST /S system /U username /P password /FO TABLE /NH TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"1、使用“Tasklist”命令查看本机进程 在DOS命令提示符下输入:“tasklist”命令,就可显示本机的所有进程。本机的显示结果由五部分组成:图像名(进程名)、PID、会话名、会话#、内存使用。
2、查看远程系统的进程 在命令提示符下输入:“tasklist /s 218.22.123.26 /u jtdd /p 12345678”(不包括引号)。其中/s参数后的“218.22.123.26”指要查看的远程系统的IP地址,/u后的“jtdd”指tasklist命令使用的用户帐号,它是远程系统上的一个合法帐号,/p后的“12345678”指jtdd帐号的密码。这样,通过上面的命令,我们就可以查看到远程系统的进程了。 小提示:使用tasklist命令查看远程系统的进程时,需要远程机器的RPC 服务器的支持,否则,该命令就不能正常使用。
3、查看系统进程提供的服务 tasklist命令不但可以查看系统进程,而且还可以查看每个进程提供的服务。如查看本机的进程“SVCHOST.EXE”提供的服务,在命令提示符下输入:“tasklist /svc”命令即可,你会惊奇的发现,有四个“SVCHOST.EXE”进程,原来有二十几项服务使用这个进程,对于远程系统来说,查看系统服务也很简单,使用“tasklist /s 218.22.123.26 /u jtdd /p 12345678 /svc”命令,就可以查看IP地址为“218.22.123.26”的远程系统进程所提供的服务。
4、查看调用DLL模块文件的进程列表 例如,我们要查看本地系统中哪些进程调用了“shell32.dll” DLL模块文件。在命令提示符下输入: tasklist /m shell32.dll 这时系统将显示调用进程列表。
5、使用筛选器查找指定的进程 在命令提示符下输入:“TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running“ 这样就列出了系统中正在运行的非“SYSTEM“状态的所有进程。其中“/FI“为筛选器参数,” ne“和”eq“为关系运算符”不相等“和”相等。
谈到“Tasklist”命令,就不得不提及它的孪生兄弟“taskkill”命令,顾名思义,它是用来杀死进程的。 如要杀死本机的“notepad.exe”进程。首先,使用Tasklist查找它的PID,系统显示本机“notepad.exe”进程的PID值为“1132“,然后运行“taskkill /pid 1132”即可,或者运行 “taskkill /IM notepad.exe”也可,其中” /pid “参数后面跟要终止进程的PID值,“/IM“参数后面为进程的图像名。
描述: 使用该工具按照进程 ID (PID) 或映像名称终止任务。
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F] 参数列表: /S system 指定要连接的远程系统。 /U [domain\]user 指定应该在哪个用户上下文执行这个命令。 /P [password] 为提供的用户上下文指定密码。如果忽略,提示 输入。 /FI filter 应用筛选器以选择一组任务。 允许使用 "*"。例如,映像名称 eq acme* /PID processid 指定要终止的进程的 PID。 使用 TaskList 取得 PID。 /IM imagename 指定要终止的进程的映像名称。通配符 '*'可用来 指定所有任务或映像名称。 /T 终止指定的进程和由它启用的子进程。 /F 指定强制终止进程。 /? 显示帮助消息。 筛选器: 筛选器名 有效运算符 有效值 ----------- --------------- ------------------------- STATUS eq, ne RUNNING | NOT RESPONDING | UNKNOWN IMAGENAME eq, ne 映像名称 PID eq, ne, gt, lt, ge, le PID 值 SESSION eq, ne, gt, lt, ge, le 会话编号。 CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为 hh:mm:ss。 hh - 时, mm - 分,ss - 秒 MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量,单位为 KB USERNAME eq, ne 用户名,格式为 [domain\]user MODULES eq, ne DLL 名称 SERVICES eq, ne 服务名称 WINDOWTITLE eq, ne 窗口标题 说明 ---- 1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '*'。 2) 远程进程总是要强行 (/F) 终止。 3) 当指定远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。 例如: TASKKILL /IM notepad.exe TASKKILL /PID 1230 /PID 1241 /PID 1253 /T TASKKILL /F /IM cmd.exe /T TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*" TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe TASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM * TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"基本的用法就是:Taskkill /pid ****(pid号) 至于eq,ne,ge,le,gt,lt,是等于,不等于,不小于,不大于,大于,小于意思,主要是用来终止一组进程的,不过这个参数可以通过多组taskkill 来实现。 /F是强制命令。
使用系统外部命令时,均需下载相关工具
1、瑞士军刀:nc.exe
2、扫锚工具:xscan.exe
3、命令行方式嗅探器: xsniff.exe
4、终端服务密码破解: tscrack.exe
5、其它: Shutdown.exe Shutdown IP地址 t:20 20秒后将对方NT自动关闭(Windows 2003系统自带工具,在Windows2000下用进就得下载此工具才能用。在前面Windows 2003 DOS命令中有详细介绍。) fpipe.exe (TCP端口重定向工具) 在第二篇中有详细说明(端口重定向绕过防火墙) fpipe -l 80 -s 1029 -r 80 www.sina.com.cn 当有人扫锚你的80端口时,他扫到的结果会完全是www.sina.com.cn的主机信息 Fpipe -l 23 -s 88 -r 23 目标IP 把本机向目标IP发送的23端口Telnet请求经端口重定向后,就通过88端口发送到目标IP的23端口。(与目标IP建立Telnet时本机就用的88端口与其相连接)然后:直接Telnet 127.0.0.1(本机IP)就连接到目标IP的23端口了。 OpenTelnet.exe (远程开启telnet工具) opentelnet.exe IP 帐号 密码 ntlm认证方式 Telnet端口 (不需要上传ntlm.exe破坏微软的身份验证方式)直接远程开启对方的telnet服务后,就可用telnet ip 连接上对方。 NTLM认证方式:0:不使用NTLM身份验证;1:先尝试NTLM身份验证,如果失败,再使用用户名和密码;2:只使用NTLM身份验证。 ResumeTelnet.exe (OpenTelnet附带的另一个工具) resumetelnet.exe IP 帐号 密码 用Telnet连接完对方后,就用这个命令将对方的Telnet设置还原,并同时关闭Telnet服务。
