可以实现的效果
也就是:cd
命令可以直接跨盘,c~
回到主页,c-
返回上一次的目录
当然,因为这些都是别名的原因,因此可以直接修改,比如:我就觉得ch
(cd to home)比c~
好按,这里只是为了贴近匹配linux命令行的操作
修改方法
首先,实现最简单的c~(回到主页)
可以通过set↙
命令看到终端所有的变量,可以通过%val%
的方式在批处理文件中引用
可以看到%HOMEPATH%
这个被init.bat
初始化的变量就是我们想要的,直接在aliase
文件里写入
c~=cd /d %HOMEPATH% $T "%pentestbox_ROOT%\bin\scripts\new_dir.bat"
$T
(相当于&)后面的命令是c-
所要用到的一个批处理,现在先不管它
cd /d
实现的就是跨盘符的转移了
然后实现c-
,使用两个变量now_dir
和last_dir
,每次cd
的时候更新,c-
的时候互换即可
首先,要在终端的初始化脚本(init.bat
)里初始化这两个变量
箭头所指的几行就是新加的了
然后要求每次cd
时都更新一下,写了一个脚本位于 %pentestbox_ROOT%\bin\scripts\new_dir.bat
c-
命令时的互换也是一个脚本
%pentestbox_ROOT%\bin\scripts\exchange.bat
aliases
文件里
c-="%pentestbox_ROOT%\bin\scripts\exchange.bat"
cd= cd /d $* $T "%pentestbox_ROOT%\bin\scripts\new_dir.bat"
以实现命令行中输入cd
命令后%last_dir%
和%now_dir%
的更新,然后因为别名文件(aliases)中也有一些cd
命令而它们不会被这里的cd
别名替换(否则就是无限循环了),所以要手动在它们后面加入$T "%pentestbox_ROOT%\bin\scripts\new_dir.bat"
以执行更新脚本,比如:
beefproject=cd /d "%pentestbox_ROOT%\bin\beef" {$T "%pentestbox_ROOT%\bin\scripts\new_dir.bat" }$T ruby "%pentestbox_ROOT%\bin\beef\beef" $*
大括号之间的内容就是加入的了,这也就是之前c~
别名后面那一串的来源了
唯一一个特殊的就是pwd=cd
这一行,因为只是显示一下当前目录,所以不用更新
OK,enjoy yourself!
资源下载
我的new_dir.bat
我的exchange.bat
我的aliases
我的init.bat
(ps:既然已经暴露了,那欢迎来玩我的个人主页啊,网络实验写的,一共4个网页,不要扫,会崩的😂
后续
其实直接使用pentestbox里自带的PortableGit
里的bash.exe
和mintty.exe
作为终端就可以实现cd -
和cd ~
,并且可以使用``反引号运行里面的命令,这对缓冲区漏洞的测试很有用(主要是将perl
或python -c
的输出,或是cat
一个文件内容作为程序的参数)
具体动作:
我发现又可以水一篇博客了!!( ̄︶ ̄)↗
pentestbox的wsl及其他终端的设置