DOS命令,计算机术语,是指DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其它命令。
DOS系统
DOS是Disk Operating System的缩写,即磁盘操作系统。它是一个基于磁盘管理的操作系统,在微软公司的Windows2000出版之前,DOS 系统基本统治着个人操作系统世界。即便是Windows3.x/9x都是建立在DOS平台之上的大型GUI界面应用程序。随着Windows操作系统的风行,DOS系统已逐渐成为一种历史,失去了往日那样的熠熠生辉。但是别看Windows风光无限,但是还是有很多的很难解决或者无法解决的的问题,而这个时候我们的DOS系统就可以大显身手了,用DOS命令来解决一些问题,往往会收到事半功倍的效果。 [1]
还有大量的微机的运行仍在使用DOS操作系统,因此掌握DOS的基本命令是必要的。
主要分类
提供用户使用的DOS命令可分为三类:
内部命令
属DOS命令中常驻内存的一部分,它是在当系统作冷、热启动时由磁盘上的系统文件装入内存的。用户使用时仅仅是调用内存中系统区的某一程序段来执行。例如,DIR、TYPE、COPY等命令都属内部命令。
外部命令
是以可执行的程序文件形式(通常后缀为.EXE或.COM)存在于磁盘上。这就意味着该命令文件必须记录在磁盘或已插入驱动器的软盘上,否则DOS是找不到该命令的。例如,FORMAT.COM,DISKCOPY.COM等。
批处理命令
在使用磁盘命令过程中,有时需要连续使用几条DOS命令,有时则要多次重复使用若干条DOS命令,还有的时候需要有选择地使用某些DOS命令。为了满足这些要求,DOS提供了一些特殊文件——后缀为BAT的文件。该文件允许用户组织键盘命令语言程序,一次建立,多次执行。这个BAT文件可用字处理软件来建立。最典型的例子是在DOS系统盘上一个名为AUTOEXEC.BAT的批命令文件,当系统作冷、热启动时,机器会自动执行该文件上的DOS命令。
基本命令
ping
Ping 命令是专用于TCP/IP 协议的探测工具,它对测试网络连接状况以及信息包发送和接收状况非常有用,这是TCP/IP 协议中最有用的命令之一。它给另一个系统发送一系列的数据包,该系统本身又发回一个响应,这条实用程序对查找远程主机很有用,它返回的结果表示是否能到达主机,宿主机发送一个返回数据包需要多长时间。 [2]
-t 表示将不间断向目标IP发送数据包,直到我们强迫其停止。试想,如果你使用100M的宽带接入,而目标IP是56K的小猫,那么要不了多久,目标IP就因为承受不了这么多的数据而掉线,呵呵,一次攻击就这么简单的实现了。
-l 定义发送数据包的大小,默认为32字节,我们利用它可以最大定义到65500字节。结合上面介绍的-t参数一起使用,会有更好的效果哦。
-n 定义向目标IP发送数据包的次数,默认为3次。如果网络速度比较慢,3次对我们来说也浪费了不少时间,因为我们的目的仅仅是判断目标IP是否存在,那么就定义为一次吧。
说明一下,如果-t 参数和 -n参数一起使用,ping命令就以放在后面的参数为标准,比如“ping IP -t -n 3”,虽然使用了-t参数,但并不是一直ping下去,而是只ping 3次。另外,ping命令不一定非得ping IP,也可以直接ping主机域名,这样就可以得到主机的IP。
nbtstat
该命令使用TCP/IP上的NetBIOS显示协议统计和当前TCP/IP连接,使用这个命令你可以得到远程主机的NETBIOS信息,比如用户名、所属的工作组、网卡的MAC地址等。在此我们就有必要了解几个基本的参数。
-a 使用这个参数,只要你知道了远程主机的机器名称,就可以得到它的NETBIOS信息(下同)。
-A 这个参数也可以得到远程主机的NETBIOS信息,但需要你知道它的IP。
-n 列出本地机器的NETBIOS信息。
当得到了对方的IP或者机器名的时候,就可以使用nbtstat命令来进一步得到对方的信息了,这又增加了我们入侵的保险系数。
netstat
这是一个用来查看网络状态的命令,操作简便功能强大。
-a 查看本地机器的所有开放端口,可以有效发现和预防木马,可以知道机器所开的服务等信息。
这里可以看出本地机器开放有FTP服务、Telnet服务、邮件服务、WEB服务等。用法:netstat -a IP。
-r 列出当前的路由信息,告诉我们本地机器的网关、子网掩码等信息。用法:netstat -r IP。
tracert
跟踪路由信息,使用此命令可以查出数据从本地机器传输到目标主机所经过的所有途径,这对我们了解网络布局和结构很有帮助。
这里说明数据从本地机器传输到192.168.0.1的机器上,中间没有经过任何中转,说明这两台机器是在同一段局域网内。用法:tracert IP。
net
这个命令是网络命令中最重要的一个,必须透彻掌握它的每一个子命令的用法,因为它的功能实在是太强大了 在这里,我们重点掌握几个常用的子命令。
net view
使用此命令查看远程主机的所有共享资源。命令格式为net view \IP。
net use
把远程主机的某个共享资源影射为本地盘符,图形界面方便使用。命令格式为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 start
使用它来启动远程主机上的服务。当你和远程主机建立连接后,如果发现它的什么服务没有启动,而你又想利用此服务怎么办?就使用这个命令来启动吧。用法:net start servername,如图1,成功启动了telnet服务。
图1DOS命令
图1DOS命令
net stop
入侵后发现远程主机的某个服务碍手碍脚,怎么办?利用这个命令停掉就ok了,用法和net start同。
net user
查看和帐户有关的情况,包括新建帐户、删除帐户、查看特定帐户、激活帐户、帐户禁用等。这对我们入侵是很有利的,最重要的,它为我们克隆帐户提供了前提。键入不带参数的net user,可以查看所有用户,包括已经禁用的。下面分别讲解。
1,net user abcd 1234 /add,新建一个用户名为abcd,密码为1234的帐户,默认为user组成员。
2,net user abcd /del,将用户名为abcd的用户删除。
3,net user abcd /active:no,将用户名为abcd的用户禁用。
4,net user abcd /active:yes,激活用户名为abcd的用户。
5,net user abcd,查看用户名为abcd的用户的情况
net localgroup 查看所有和用户组有关的信息和进行相关操作。键入不带参数的net localgroup即列出当前所有的用户组。在入侵过程中,我们一般利用它来把某个帐户提升为administrator组帐户,这样我们利用这个帐户就可以控制整个远程主机了。
net time
这个命令可以查看远程主机当前的时间。如果你的目标只是进入到远程主机里面,那么也许就用不到这个命令了。但简单的入侵成功了,难道只是看看吗?我们需要进一步渗透。这就连远程主机当前的时间都需要知道,因为利用时间和其他手段(后面会讲到)可以实现某个命令和程序的定时启动,为我们进一步入侵打好基础。用法:net time \IP。
at
这个命令的作用是安排在特定日期或时间执行某个特定的命令和程序(知道net time的重要了吧?)。当我们知道了远程主机的当前时间,就可以利用此命令让其在以后的某个时间(比如2分钟后)执行某个程序和命令。用法:at time command \computer。
表示在6点55分时,让名称为a-01的计算机开启telnet服务(这里net start telnet即为开启telnet服务的命令)。
ftp
首先在命令行键入ftp回车,出现ftp的提示符,这时候可以键入“help”来查看帮助(任何DOS命令都可以使用此方法查看其帮助)。
首先是登陆过程,这就要用到open了,直接在ftp的提示符下输入“open 主机IP ftp端口”回车即可,一般端口默认都是21,可以不写。接着就是输入合法的用户名和密码进行登陆了,这里以匿名ftp为例介绍。
用户名和密码都是ftp,密码是不显示的。当提示** logged in时,就说明登陆成功。这里因为是匿名登陆,所以用户显示为Anonymous。 接下来就要介绍具体命令的使用方法了。
dir 跟DOS命令一样,用于查看服务器的文件,直接敲上dir回车,就可以看到此ftp服务器上的文件。
cd 进入某个文件夹。
get 下载文件到本地机器。
DOS命令
DOS命令
put 上传文件到远程服务器。这就要看远程ftp服务器是否给了你可写的权限了,如果可以,呵呵,该怎么 利用就不多说了,大家就自由发挥去吧。
delete 删除远程ftp服务器上的文件。这也必须保证你有可写的权限。
bye 退出当前连接。
quit 同上。
telnet
功能强大的远程登陆命令,几乎所有的入侵者都喜欢用它,屡试不爽。为什么?它操作简单,如同使用自己的机器一样,只要你熟悉DOS命令,在成功以administrator身份连接了远程机器后,就可以用它来**想干的一切了。下面介绍一下使用方法,首先键入telnet回车,再键入help查看其帮助信息。
然后在提示符下键入open IP回车,这时就出现了登陆窗口,让你输入合法的用户名和密码,这里输入任何密码都是不显示的。
当输入用户名和密码都正确后就成功建立了telnet连接,这时候你就在远程主机上具有了和此用户一样的权限,利用DOS命令就可以实现你想干的事情了。这里我使用的超级管理员权限登陆的。
隐藏命令编辑 播报
在平时工作过程中,要是我们认为数据保护、磁盘加密等专业工具还不够用,或觉得它们使用起来比较麻烦时,完全可以考虑试用隐藏在Windows系统中的Cipher命令。该命令可以帮助我们对重要数据文件进行加密、解密,以满足大家的数据安全保护需求。 [3]
在平时工作过程中,要是我们认为数据保护、磁盘加密等专业工具还不够用,或觉得它们使用起来比较麻烦时,完全可以考虑试用隐藏在Windows系统中的Cipher命令。该命令可以帮助我们对重要数据文件进行加密、解密,以满足大家的数据安全保护需求,特别是该命令带上“/w”参数时,能将特定的数据文件从Windows系统中彻底删除干净,日后无论使用哪种类型的数据恢复或还原工具,都无法将其成功恢复。
字符应用编辑 播报
单符号
【~】
① 在for中表示使用增强的变量扩展。
② 在%var:~n,m%中表示使用扩展环境变量指定位置的字符串。
③ 在set/a中表示一元运算符,将操作数按位取反。
【!】
① 在set /a中一元运算符,表示逻辑非。比如set /a a=!0,这时a就表示逻辑1。
【@】
① 隐藏命令行本身的回显,常用于批处理中。
【$】
① 在findstr命令里面表示一行的结束。
② 在prompt命令里面,表示将其后的字符转义(符号化或者效果化)。
【%】
① 在set /a中的二元运算符,表示算术取余。
② 命令行环境下,在for命令in前,后面接一个字符(可以是字母、数字或者一些特定字符),表示指定一个循环或者遍历指标变量。
③ 批处理中,后接一个数字表示引用本批处理当前执行时的指定的参数。
④ 其它情况下,%将会被脱去(批处理)或保留(命令行)
【^】
① 取消特定字符的转义作用,比如& | > < ! "等,但不包括%。比如要在屏幕显示一些特殊的字符,比如> >> | ^ &;等符号时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了;
② 在set/a中的二元运算符,表示按位异或。
③ 在findstr/r的[]中表示不匹配指定的字符集。
【&;】
① 命令连接字符。比如我要在一行文本上同时执行两个命令,就可以用&;命令连接这两个命令。
② 在set/a中是按位与。
【*】
① 代表任意个任意字符,就是我们通常所说的"通配符";比如想在c盘的根目录查找c盘根目录里所有的文本文件(.txt),那么就可以输入命令"dir c:*.txt"。
② 在set /a中的二元运算符,表示算术乘法。
③ 在findstr/r中表示将前一个字符多次匹配。
【-】
① 范围表示符,比如日期的查找,for命令里的tokens操作中就可以用到这个字符。
② 在findstr/r中连接两个字符表示匹配范围。
③ -跟在某些命令的/后表示取反向的开关。
④ 在set /a中:
1.表示一个负数。
2.表示算术减运算。
【+】
① 主要是在copy命令里面会用到它,表示将很多个文件合并为一个文件,就要用到这个+字符了。
② 在set/a中的二元运算符,表示算术加法。
【:】
① 标签定位符,表示其后的字符串为以标签,可以作为goto命令的作用对象。比如在批处理文件里面定义了一个":begin"标签,用"goto begin"命令就可以转到":begin"标签后面来执行批处理命令了。
② 在%var:string1=string2%中分隔变量名和被替换字串关系。
【|】
① 管道符,就是将上一个命令的输出,作为下一个命令的输入."dir /a/b |more"就可以逐屏的显示dir命令所输出的信息。
② 在set/a中的二元运算符,表示按位或。
③ 在帮助文档中表示其前后两个开关、选项或参数是二选一的。
【/】
① 表示其后的字符(串)是命令的功能开关(选项)。比如"dir /s/b/a-d"表示"dir"命令指定的不同的参数。
② 在set/a中表示除法。
【>;】
① 命令重定向符,
参数:命令+ > +写入路径\文件名
实例:
echo 唐山味儿不浓 欢迎你 >d:\1.txt ;写入文本到指定文件(如果文件存在则替换)
② 在findstr/r中表示匹配单词的右边界,需要配合转义字符\使用。
【<;】
① 将其后面的文件的内容作为其前面命令的输入。
② 在findstr/r中表示匹配单词的左边界,需要配合转义字符\使用。
【=】
① 赋值符号,用于变量的赋值。比如"set a=windows"的意思意思是将"windows"这个字符串赋给变量"a"。
② 在set/a中表示算术运算,比如"set /a x=5-6*5"。
【\】
① 这个"\"符号在有的情况下,代表的是当前路径的根目录.比如当前目录在c:\windows\system32下,那么你"dir \"的话,就相当与"dir c:\"。
② 在findstr/r中表示正则转义字符。
【,】
① 在set /a中表示连续表达式的分割符。
② 在某些命令中分割元素。
【.】
① 在路径的\后紧跟或者单独出现时:
一个.表示当前目录。
两个.表示上一级目录。
② 在路径中的文件名中出现时:
最后的一个.表示主文件名与扩展文件名的分隔。
【?】
① 在findstr/r中表示在此位置匹配一个任意字符。
② 在路径中表示在此位置通配任意一个字符。
③ 紧跟在/后表示获取命令的帮助文档。
多符号
【&&;】
① 连接两个命令,当&&;前的命令成功时,才执行&&;后的命令。
【||】
① 连接两个命令,当||前的命令失败时,才执行||后的命令。
【>&;】
① 将一个句柄的输出写入到另一个句柄的输入中。
【<&;】
① 从一个句柄读取输入并将其写入到另一个句柄输出中。
【%%】
① 两个连续的%表示在预处理中脱为一个%。
② 批处理中,在for语句的in子句之前,连续两个%紧跟一个字符(可以是字母、数字和一些特定字符),表示指定一个循
环或者遍历指标变量。
③ 批处理中,在for语句中,使用与in之前指定的指标变量相同的串,表示引用这个指标变量。
【>>;】
① 命令重定向符,将其前面的命令的输出结果追加到其后面。
参数:命令+ >> +写入路径\文件名
实例:
echo 唐山味儿不浓 欢迎你 >d:\1.txt ;写入文本到指定文件(如果文件存在则替换)
netstat -an >>d:\1.txt ;即追随‘1.txt’的尾端继续写入‘netstat -an’命令输出结果
② 在set /a中的二元运算符,表示逻辑右移。
【==】
① 在if命令中判断==两边的元素是否相同。
【<<;】
① 在set /a中的二元运算符,表示逻辑左移。
【+=】
① 在set /a中的二元运算符。例如set /a a+=b表示将a加上b的结果赋值给a。
【-=】
① 在set /a中的二元运算符。例如set /a a-=b表示将a减去b的结果赋值给a。
【*=】
① 在set /a中的二元运算符。例如set /a a*=b表示将a乘以b的结果赋值给a。
【/=】
① 在set /a中的二元运算符。例如set /a a/=b表示将a加上b的结果赋值给a。
【%=】
① 在set /a中的二元运算符。例如set /a a%=b表示将a除以b的余数赋值给a。
注:命令行可以直接用 set /a a%=b ,在批处理里面可以用 set /a a%%=b。
【^=】
① 在set /a中的二元运算符。例如set /a a"^="b表示将a与b按位异的结果赋值给a。
注:这里 "^=" 加引号是为了防止^被转义,下同。
【&=】
① 在set /a中的二元运算符。例如set /a a"&="b表示将a与b按位与的结果赋值给a。
【|=】
① 在set /a中的二元运算符。例如set /a a"|="b表示将a与b按位或的结果赋值给a。
【<<=】
① 在set /a中的二元运算符。例如set /a a"<<="b表示将a按位左移b位的结果赋值给a。
【>>=】
① 在set /a中的二元运算符。例如set /a a">>="b表示将a按位右移b位的结果赋值给a。
【\<;】
① 在findstr的一般表达式中表示字的开始处。
【\>;】
① 在findstr的一般表达式中表示字的结束处。
【! !】
① 当启用变量延迟时,使用!!将变量名扩起来表示对变量值的引用。
【' '】
① 在for/f中表示将它们包含的内容当作命令行执行并分析其输出。
② 在for/f "usebackq"中表示将它们包含的字符串当作字符串分析。
【( )】
① 命令包含或者是具有优先权的界定符,比如for命令要用到这个(),我们还可以在if,echo等命令中见到它的身影。
② 在set /a中表示表达式分组。
【" "】
① 界定符,在表示带有空格的路径时常要用""来将路径括起来,在一些命令里面也需要" "符号。
② 在for/f中将表示它们包含的内容当作字符串分析。
③ 在for/f "usebackq"表示它们包含的内容当作文件路径并分析其文件的内容。
④ 在其它情况下表示其中的内容是一个完整的字符串,其中的>;、>>;、<;、&;、|、空格等不再转义。
【
】
① 在for/f中表示它们所包含的内容当作命令行执行并分析它的输出。
【[ ]】
① 在帮助文档表示其中的开关、选项或参数是可选的。
② 在findstr /r中表示按其中指定的字符集匹配
按住shift可少量输入大写字母,?+?键表示先按住前一个键,同时按第二个键。
ctrl+sc或ctrl+num lock 暂停以便观察屏幕显示,在按一次继续。
ctrl+c或ctrl+break 终止程序运行,返回操作系统。