通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 红客教程 >> 网络攻防 >> 文章正文
木马生成技术
责任编辑:酷酷の鱼   更新日期:2008-3-17
 
作者:open
来源:open’s Blog

经常会看到鸽子或一些木马可以自定义生成一个服务端程序,开始很奇怪,他是怎么做到的!后来去网上搜了下,但是没找到相关文章! 后来碰巧得到了一个QQ病毒的源代码,而这个程序就可以生成一个文件,于是就研究了下代码,但是收获不大,但是很实用,他的大致思路和鸽子是一样的:

原理一:
在程序的尾部追加数据,然后程序运行时从尾部读取数据,这个方法看似容易,但是实际操作的时候遇到了很多问题,我最不明白的是他既然加了数据又是怎么保持 PE文件本身的格式的!但是这个方法确实可行,我看了鸽子的源码,他所用的方法基本一样!先把一个文件复制出来然后把数据写到文件尾部!

后来一次偶然的机会看到一个很不错的文章!虽然写的不是很清楚,不过大致已经说明了思路,以及方法!

我简单介绍下他的思路及原理:

原理二:
这个方法破过软件的朋友肯定很容易理解,先将需要的数据保留出,然后让程序去替换!
简单的说比如我需要写入一个随机端口,这个时候我们可以先将端口留出来不写比如定义一个常量

Const
DuanKou:=’XXXXXXXXXXXXXXXXXXXXXXXXX’;

至于为什么定义是XXXXXXXX只是为了方便找!然后让程序去替换!,字很多我懒得一个一个写!

发出来大家慢慢看吧! 这个例子也是定义端口的!

原文: (这个也是Delphi的不过我试过在VC++下一样可以的,原理都一样,只是语法问题!)

DELPHI木马DIY之生成服务

我在这里就生成简单的服务端,为什么不先讲服务端的隐藏?因为我觉得生成服务端要好理解一点,简单一点,我们就由浅入深吧,OK,LET’S GO。

网络上其他的生成服务端的方式我不是很清楚,我就用我的方法来和大家讲解(不过还是先声明,我的方法亦是来自于网络,如果和谁的方法相同,请不要说我侵犯版权,因为我也不知道原作者是谁了,我这文章不作商业用途,如果有朋友认为我侵犯了他的版权,请立即通知我,我马上取消这个文章的继续发布!或者给他在文章中署名,OK,主要本人是学法律的,所以说话有点唠叨,不过中国有句俗话:“丑话说在前面。”不过用的人少啊)

开始:
一.我们要先改一下我们配置的服务端。
服务端我们就暂时不用自定端口了,跟着我一步一步的做,暂时不要问为什么,我稍后就解释
我们打开服务端的工程,在上面是不是有一句这个话
var
Form1: TForm1;
对,就在这,我们在下面加一句:duankou: string =’xxxxx’;
就是全局变量吧,然后我们再点一下Form1这个窗口,就是你的最初的窗口啦,添加一个事件
ONCREATE,就是TForm1.FormCreate,意思是当窗口建立的时候要做的事情。我们加上这个语句:
NMUDP1.LocalPort:=strtoint(duankou);
意思是NMUDP1的本地端口为duankou的数字。(strtoint的意思是把字符串转换为数字,懂吧)

意思已经很明白了,duankou: string =’xxxxx’为什么要是xxxxx?主要是一会好搜索,嘿。
好了,我们服务端基本上配置完了,现在我们来生成服务端,这个应该会了吧。

二.第二步实际我们要做两个事情
1).就是把服务端生成为资源
2).就是查找xxxxx在服务端的位置
ok我们还是先来查找xxxxx在服务端的位置吧。
1.我们打开任意一个16进制编辑器,用这个编辑器打开我们的服务端,这个简单吧。
2.搜索xxxxx,这样应该一次就能搜索出来xxxxx所在的位置,我这是4e240。OK,你的不同就自己定。
3.打开一个进制转换工具,把4e240转换为10进制的数字。320064我这是,一定要把这个数字记着哦,我们一会要用的东西,这是最主要的东西哦!(系统计算器就可以)

好了,我们再来把服务端生成为资源
1.我们在生成了服务端的文件夹里面建立一个文本文档,里面写上一句话
fuwuduan RCDATA server.exe
标识符 区域吧 文件名
标识符尽量不要和文件名一样,有时候会出错了,OK,听我一句吧,谢谢
我们把这个文本文档改名成为fuwu.rc这个应该不用解释了。
2.再建立一个批处理文件,里面写上这么一句话
path=C:\Program Files\Borland\Delphi7\Bin;
Brcc32 fuwu.rc
path为你的delphi7的BIN目录的路径,OK,然后运行这个批处理,在你的服务端的文件夹里就会生成一个fuwu.res这是资源哦,嘿嘿,重要的东西
我们把他复制到客服端的文件夹里,OK,我们这一步的准备工作就做完了~~~

三.第三步我们就要配置客服端了,让客服务端可以生成一个自定端口的服务

1.我们要在客服端的dpr里加上一句话{$R *.res}下面加上一个{$R fuwu.res}意思就是让程序生成时自动加载一个服务端的资源进去。
2.我们要开始试着生成一个服务端了,不过这步挺重要,我们还是在第四步说。

四.最重要的一步,要主要,一步一步来,跟着做,我会详细解释的。
1.我们生成一个全局的变量先
在uses的下面和type的上面加上一句:
const OFFSET_DUANKOU = 320064;//这个就根据你自己的值来定。
把这一段的代码给出来,免得新手看不懂

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, NMUDP;
const OFFSET_DUANKOU = 320064;
type
TForm1 = class(TForm)
Button1: TButton;//看懂我是加在什么位置了的吧

2.我们添加两个控件 edit和按扭,EDIT是用来写你要生成的服务端的端口,按扭是生成吧。
3.我们生成一个button2的点击事件
我们现在在button2的点击事件中声明一下
var
WriteBuff, ziyuanzhizhen: PChar;
ziyuanweizhi: HRSRC;
ziyuandaxiao, BytesWritten: Longword;
shujuchulijubing: THandle;
shenqingzhizhen: THandle;
duankou:string;

现在我们开始begin

BEGIN
duankou:=trim(Edit4.Text); //端口为edit4的文字
ziyuanweizhi := FindResource(HInstance, ’fuwuduan’, RT_RCDATA); //资源指针为寻找到的资源’fuwuduan’(就是我先说的标识符)
ziyuandaxiao := SizeofResource(HInstance, ziyuanweizhi);//资源大小
shujuchulijubing := LoadResource(HInstance, ziyuanweizhi); //数据处理句炳
ziyuanzhizhen := LockResource(shujuchulijubing);//资源指针
shenqingzhizhen := CreateFile(pchar(’server.exe’), GENERIC_WRITE, FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
WriteFile(shenqingzhizhen, ziyuanzhizhen^, ziyuandaxiao, BytesWritten, nil);//写文件
Sleep(100);
SetFilePointer(shenqingzhizhen, OFFSET_DUANKOU, nil, FILE_BEGIN);//重定位指针
WriteBuff := PChar(duankou + StringOfChar(#0, 5 - Length(duankou)));//要写的数据
WriteFile(shenqingzhizhen, WriteBuff^, 5, BytesWritten, nil);//再次修改文件
CloseHandle(shenqingzhizhen);//关闭资源
end;
我这没法给大家详细解释了,不过如果你聪明的话应该也可以融会惯通了。
注意的是SetFilePointer这里的OFFSET_DUANKOU为要开始写的地址,当然就是我们先找到的地址
WriteBuff的里面的5为XXXXX的长度,WriteFile里面的5也是,shenqingzhizhen里面的’server.exe’可以自己改名字,也可以是完整的路径,也可以是EDIT里面的东西

然后我们生成这个客服端,设置好EDIT4.text后(就是要生成的端口,我这为了方便就没有什么容错啊,提示错误之类的了,不过端口自定义的规则这些,大家应该清楚)点击BUTTON2,那么在当前的文件夹下就会生成一个服务端,运行后端口就会是EDIT4.text的内容
大家测试一下吧
我在XP+DELPHI的环境一切正常。
  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    固顶文章 Delphi编程培训班开课了
    普通文章 瑞星公司03月17日发布 每日计算机病毒及木马播报
    普通文章 “杀毒”立法成两会热点 安全厂商担重任
    普通文章 应用软件存在漏洞 互联网安全面临强劲挑战
    普通文章 给你加强操作系统安全的十个建议!
    推荐文章 推荐:SA权限下的思路变通
    普通文章 网管员需要注意十点安全技巧
    普通文章 浅谈黑客入侵的四条途径与防护
    普通文章 Cmsez(随易)全站系统 0day
    普通文章 木马生成技术
    热门文章
    普通文章瑞星公司03月07日发布 每日计算机病毒及木马播报
    普通文章浅析:以策略遵从为核心的终端安全
    普通文章如何使用FreeBSD防火墙保护企业网络
    推荐文章推荐:别以为你的电脑很安全(附BS马夫解决方案)
    普通文章从攻击者角度来阐述如何防御黑客攻击
    普通文章企业焦点 主动防御能否保障安全
    普通文章网络四面楚歌 杀毒软件遭遇严峻考验
    普通文章艳照暗藏陷阱 看艳照当心密码被盗
    普通文章微软宣布IE8将全面兼容通用网络标准
    普通文章金山预警:"狂犬病"肆虐互联网
    精彩专题