仿照kevin1986的vb版肉肉管理器的bat版鸡鸡管理器
kevin这个工具蛮好玩的,其中直接调用了mstsc文件引起了我的兴趣,采用的方式可以有以下几种
1。vb有现成的终端连接控件,直接添加使用
2。捕获mstsc的窗口再从mdb读取信息添加
3。存在命令行的发送形式,以此调用
如果要写bat版的鸡鸡管理器只能采用第三种方法,呵呵let's try
首先mstsc 123.45.67.8 妈的失败了,搞出一个空白的mstsc窗口。嗯我们使用echo传递一下参数试试
echo 123.45.67.8|mstsc 爸的又失败了。这时候我觉得我不能采用黑盒测试来搞这个东西
万一mstsc没有命令行的调用方式呢?我们还是先看看mstsc的帮助。爷的竟然没有帮助文件,可能是
我装的是盗版的缘故。
山穷水尽疑无路柳暗花明又一村,我发了一个email给比尔盖茨让他给我讲讲mstsc是咋回事。
小比倒是蛮严谨的一个人很快就给了我回复
mstsc -v:服务器名 /F -console
其中 mstsc 是远程桌面连接的可执行文件,-v 指定要连接到的服务器,/F 指定全屏模式,
-console 则是连接到控制台会话的指令。
他很和蔼的告诉我其实帮助文件就在mstsc里面,我一试果然如此,吐血ing。
我反汇编了一下肉肉管理器发现kevin用的是mstsc /v参数,嗯那么用的应该是第三种调用方法。
(这里是猜测,我并不确定,即使最终的方式是mstsc /v,但也不能排除vb调用控件,而控件再
调用mstsc /v)
00403B74 5C006D00730074007300+ unicode '\mstsc.exe /v ',0000h
这样我们就可以采用命令行的方式编写鸡鸡管理器了,娃哈哈
由于bat对数据库的操作管理还蛮麻烦的所以我这里只是一个功能比较弱的演示代码,如果你是要是管理肉鸡
还是kevin的肉肉管理器最好的(后来想想如果采用目前在研究的一些bat代码也能达到非常好的效果
只是不想那么快公布,以后再说了)
下面是演示代码
引用:
@echo off
cls
echo.
rem bulid by ALLyeSNO;Team FreeXploiT
set count=0
set stepskip=0
if "%1"=="" goto help
if "%1"=="?" goto help
if /i "%1"=="h" goto help
if /i "%1"=="t" if "%3"=="" (
mstsc/v %2:3389
) else (
if /i "%1"=="t" mstsc/v %2:%3 && goto help
)&& goto help
if /i "%1"=="add" goto update
if not exist jj.data.txt echo 你还没有建立鸡鸡数据库,请使用 jj add 建立鸡鸡数据库&&goto end
for /f %%i in (jj.data.txt) do set /a count+=1
if /i "%1"=="n" if "%2" gtr "%count%" echo 你输入的编号大于你的肉鸡总数&&goto help
if /i "%1"=="n" if "%2" lss "1" echo 鸡鸡编号必须大于等于1&goto help
if /i "%1"=="n" if "%2"=="1" for /f "tokens=2-3" %%i in (jj.data.txt) do mstsc/v %%i:%%j&goto help
if /i "%1"=="n" set /a stepskip=%2-1 && goto setgoon
:setgoon
if /i "%1"=="v" (if exist jj.data.txt type jj.data.txt|more&goto end) else (if not exist jj.data.txt echo 你还没有建立鸡鸡数据库,请使用 jj add 建立鸡鸡数据库&&goto end)
for /f "tokens=2-3 skip=%stepskip%" %%i in (jj.data.txt) do mstsc/v %%i:%%j&goto help
goto help
:update
if not exist jj.data.txt goto first
for /f %%i in (jj.data.txt) do set /a count+=1
set/a count=count+1
echo .|set/p update=%count% >>jj.data.txt
goto second
:first
echo .|set/p update=1 >jj.data.txt
:second
echo 请输入鸡鸡长度(ip)
set /p update=
echo .|set/p update= %update%>>jj.data.txt
echo 请输入鸡鸡洞口(port)
set /p update=
echo .|set/p update= %update%>>jj.data.txt
echo 请输入鸡鸡使用者(username)
set /p update=
echo .|set/p update= %update%>>jj.data.txt
echo 请输入鸡鸡密码(password)
set /p update=
echo .|set/p update= %update%>>jj.data.txt
echo 性能力指数(1-100)
set /p update=
echo .|set/p update= %update%>>jj.data.txt
echo 关于这台鸡鸡你想说的话
set /p update=
echo .|set/p update= %update%>>jj.data.txt
echo.>>jj.data.txt
goto end
:help
echo 查看鸡鸡信息 jj v
echo 直接连接鸡鸡 jj t 127.0.0.1 3389 【如果你不指定端口则端口默认为3389】
echo 采用编号连接鸡鸡 jj n ? 【?的值范围是你添加的肉鸡数量】
echo 添加鸡鸡信息 jj add
echo 查看帮助 jj ? 或者 jj h
:cmdload
if "%cmdload%"=="1" goto end
cmd/k set cmdload=1
:end
使用方法,命令行下输入jj 就可以看到帮助
查看鸡鸡信息 jj v
直接连接鸡鸡 jj t 127.0.0.1 3389 【如果你不指定端口则端口默认为3389】
采用编号连接鸡鸡 jj n ? 【?的值范围是你添加的肉鸡数量】
添加鸡鸡信息 jj add
查看帮助 jj ? 或者 jj h
ps:这个程序可以添加自己的肉鸡,但是我没有把删除肉鸡的代码写上去,对于bat来说更新数据库还存在比较慢的缺点
如果以后找到比较快的办法的时候我会写一个好一点的版本出来的
后来查到msdn上有用vb写终端连接的例子,大家可以去找找看,另外通过分析rdp文件的结构
我们可以自己构造自动登录的帐号。顺便说说rdp保存密码时候的加密方式是长密码hash方式。
不过具体的加密过程没有找到相关文章,我推测是也是跟sql服务器一样采用未公开函数加密。
如果以后我汇编学好了或许可以反汇编看看加密过程。
参考工具及文献:
kevin1986肉肉管理器
http://hididi.net/public/kevin/blogview.asp?logID=233
如何使用 Windows Server 2003 终端服务连接到并隐藏控制台会话
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;278845