一个简单的DGA(Domain Generate Algorithm)

article/2025/9/20 19:23:30

 黑产的规模和技术是越来越强了,想到一句话:任何人都被骗过,所以同样的任何人都被黑过。

 针对大规模简单而粗暴的DDoS网络破坏是如何实现的呢,通常除了一些大规模有组织且政府允许的,还有各种各样的个人组织,目的都是为了利益,画了张图

 

通常在获取0-day漏洞后,马上编写针对该漏洞的代码,再把早就开发后的其它组件一起打包一下,取个霸气的英文名,就诞生了一个新的病毒,整个过程就像发明一种新的

发动机,然后按照生产线组装一下就有一辆新的车,然后就卖钱或勒索了,不然怎么能称为黑产呢?

概述:一个木马病毒通常包含几个部分,有些模块是可以重复利用的,像提供加密的RSA2048,蠕虫模块主要利用ARP协议来感染局域网存在该漏洞的计算机,提供DDoS

的洪水攻击(SYN Flood ,UDP Flood ACK Flood 等等),升级模块主要用来更新最新的病毒版本或者DGA算法,命令模块主要是用来接受主控服务器的命令来执行操作。

本文重点:介绍一下这些被感染的肉鸡是如何与主控服务器之间建立连接关系,而不被安全厂商发现,提高与安全狗的对抗能力,不能在木马或病毒中使用固定的主控IP地址或者域名来解析,这种固定的硬编码很容易被DNS解析服务列入黑名单,这样不就失去和主控服务器的连接。所以首先是洋葱网络(Tor),可以通过洋葱网络

来逃避反追踪,洋葱网络的匿名性可以隐藏主控服务器,关于洋葱网络的资料可以搜索到很多资料,但是在国内基本用不了,另外一个是使用DGA算法。DGA算法可以生成

伪随机的域名,看似没有规律,其实是有规律的。例如DGA算法可以生成10000个域名,然后尝试去解析各个域名,而黑客可以选择其中的几个或一个域名,注册后把域名

指向主控服务器的IP,而木马尝试解析成功后就开始建立连接(如果域名没注册,那么解析失败,会尝试解析其它域名)这样可以避免安全工作人员在短时间内把所有的域名

都注册了使得木马失效,毕竟注册域名要交很多钱,且要实名等等。

 

package com.copycat.utils;
import java.util.Random;
public class DGA
{public static String generateDomain(int year,int month,int day){String domain="";int random=new Random().nextInt(32);for(int i=0;i<random;i++){year = ((year ^ 8 * year) >> 11) ^ ((year & 0xFFFFFFF0) << 17);month = ((month ^ 4 * month) >> 25) ^ 16 * (month & 0xFFFFFFF8);day = ((day ^ (day << 13)) >> 19) ^ ((day & 0xFFFFFFFE) << 12);domain += (char)(Math.abs(((year ^ month ^ day) % 25)) + 97);}return new String(domain)+".infosec";}public static void main(String[] args){for(int i=0;i<50;i++){String result=generateDomain(2014, 6, 18);System.out.println(result);}        }
}

看看输出结果

 

kaju.infosec
kajugcffk.infosec
kaj.infosec
kaju.infosec
kajugcf.infosec
kajugcffktsgskchay.infosec
kajugcffktsgskchaymsjctbnty.infosec
kajugcf.infosec
kajugcffkts.infosec
kajugcffktsgskchaymsj.infosec
kajugcffkt.infosec
kajugcffktsg.infosec
kajugcf.infosec
kajugcffktsgs.infosec
kajugcffktsgskchaymsjctbn.infosec
kajugcffkt.infosec
kajugcffktsgskchaymsjctbntyp.infosec
kajugcffk.infosec
kajugcffkts.infosec
kajugcffktsgskchaymsjctbnty.infosec
kajugcffk.infosec
kajugcffktsgskchaym.infosec
kajugcffktsgskchaymsjctbntyp.infosec
kajugcf.infosec
kajugcffktsgskchaymsjctbntypl.infosec
.infosec
kajugcffk.infosec
k.infosec
kajugcffktsgskchaymsjctbnty.infosec
kajugcffktsgskchaymsjctbnty.infosec
kajugc.infosec
kajugcffktsgskchaym.infosec
kajugcffktsgskchay.infosec
kajugcffktsgskchaymsjctbntyp.infosec
kajugcffktsgskchaymsjctbntypl.infosec
kajugcffk.infosec
kajugcffktsgskchaym.infosec
kajugcffktsgskchaymsj.infosec
kajugcff.infosec
kajugcffktsg.infosec
kajugcffktsgskchaymsj.infosec
kaju.infosec
kajugcffktsgskchaymsj.infosec
kajugcffktsgskchay.infosec
kajugcffktsgskch.infosec
kajugcffktsgskc.infosec
kajugcffktsgskcha.infosec
k.infosec
kajugcffktsgskchaymsjct.infosec
kajugcffktsgskchayms.infosec

后序:关于C&C,其实一般是自己专有的会好很多,也可以使用社交网络服务的功能,比如可以根据规则在特定的时间去注册多个或一个账号,(过程类似DGA)然后在账号的主页,发布命令让傀儡机周期性的去读取命令,然后执行命令。

最近还发现了很多javaScript版本的挖矿程序,就是打开某个被嵌入挖矿程序的网页,然后会利用你的计算机CPU去挖矿,占用你的计算机资源,CPU飙升100%,最终电脑卡机,还有很多游戏辅助工具也是被植入挖矿程序,所以下载软件或工具一定要小心再小心,防不胜防啊,最后说一下,植入coinhive.min.js的网站多数是黄色网站

 

 


 

 


http://chatgpt.dhexx.cn/article/ZLlOV9pW.shtml

相关文章

DGA数据集和算法研究

针对DGA的研究现在已经很多了&#xff0c;cnki 里面有116篇论文&#xff0c;涉及到dga黑样本&#xff0c;域名白名单&#xff0c;dga算法分析等&#xff0c;在数据集和dga原理的基础上&#xff0c;提出创新检测方案。因此&#xff0c;抽取共性&#xff0c;综合各家dga之所长&am…

dga (Domain Generation Algorithm) 域名 生成算法 简介

目录 一、引言 二、背景 三、检测 四、发展 五、总结 一、引言 恶意软件如今已经发展为威胁网络安全的头号公敌&#xff0c;为了逃避安全设施的检测&#xff0c;其制作过程也越来越复杂&#xff0c;其中一个典型做法是在软件中集成DGA&#xff08;Domain Generation Algo…

你没见过的中文编程工具,用中文开发android安卓应用,安卓开发的初体验!

如果你对中文开发有一定的了解&#xff0c;那么你一定会知道易语言。易语言是仿VB制作的一款中文编程工具。它可以用来开发Windows软件。那有没有用于android安卓开发的中文编程工具呢&#xff1f;有&#xff01;那就是猎码安卓中文开发工具 小编身为一个程序员&#xff0c;在…

自学android编程教程,安卓编程入门教程 安卓编程如何自学

安卓编程入门教程 安卓编程如何自学 时间:2017-04-10 来源:Android开发学习网 安卓编程越来越火,发展前景无比诱人,越来越多的人加入了android开发者的行列。安卓编程入门很简单,今天小编给大家提供一份安卓编程入门教程,告诉大家安卓编程如何自学,希望能够给您带去帮…

没有编程基础如何做安卓开发,试试这款简单易学的中文开发编程工具!

对于没有java编程基础的人来说,想要开发自己的安卓app可能很难。 我们都知道,现在流行的编程工具都是外国人开发的。全英文的界面,再加上全程使英文来写代码,让很多初学者望而却步。绝大部分人选择花费一大笔学费去参加培训班,一学就是几个月,有的甚至半年多。那有没有什…

安卓编程基础——网格布局

目录 前言 一、新课讲解 &#xff08;一&#xff09;网格布局概述 1、布局特点 2、继承关系图 3、常用属性 &#xff08;二&#xff09;案例演示&#xff1a;计算器界面 1、创建安卓应用 2、准备背景图片 3、字符串资源文件 4、自定义边框配置文件 5、主布局资源文件…

Android应用程序开发需要哪些编程语言?

开发一款Android上的应用程序通常需要以下编程语言&#xff1a; Java&#xff1a;Java是Android开发的主要编程语言。几乎所有的Android应用程序都使用Java进行核心开发。你可以使用Java编写应用程序的业务逻辑、界面设计和数据处理等。 刚好我这里有嵌入式、plc、单片机的资料…

安卓编程基础——触摸事件

文章目录 前言 一、安卓事件触摸概述 1、触摸分类 2、触摸动作 3、触摸监听器 4、触摸方法 5、触点个数与坐标 6、安卓触摸事件处理机制 二、使用步骤讲解 1.创建安卓应用 3、字符串资源文件 4、主布局资源文件 5、主界面类实现功能 6、启动应用&#xff0c;查看效果​编辑 总结…

在手机上如何用c语言编译器编程,如何用手机进行编程?

这里介绍3种可以在手机上编程的app&#xff0c;分别是c语言编译器(c语言)、AIDE集成开发环境(java)、QPython3(python)&#xff0c;都不需要root&#xff0c;可以直接编写程序并运行&#xff0c;下面我简单介绍一下这3个app的安装和简单使用&#xff0c;主要内容如下&#xff1…

Android 网络编程

【Android 网络编程】 HTTP HTTP简介 HTTP是一个属于应用层的面向对象的协议&#xff0c;由于其简捷、快速的方式&#xff0c;适用于分布式超媒体信息系统。它于1990年提出&#xff0c;经过几年的使用与发展&#xff0c;得到不断地完善和扩展。 HTTP协议的主要特点 支持C/…

安卓编程基础——手势编程

目录 前言 &#xff08;一&#xff09;安卓手势操作原理 &#xff08;二&#xff09;安卓手势类与接口 二、利用手势切换图片 1.创建安卓应用 3、字符串资源文件 4、主布局资源文件 5、主界面类实现功能 6、启动应用&#xff0c;查看效果 总结 前言 现代智能手机都支持…

安卓编程基础——列表

零、本讲学习目标 理解列表视图的四大组成元素 能使用基于数组适配器的列表视图 能使用基于简单适配器的列表视图 能使用基于基适配器的列表视图 一、导入新课 列表视图是基于适配器的供用户从多个选项中进行选择控件&#xff0c;可以通过滑动显示很多列表项。 二、新课讲解…

安卓编程基础——标签

目录 前言 &#xff08;一&#xff09;继承关系图 &#xff08;二&#xff09;标签常用属性 &#xff08;三&#xff09;教学案例&#xff1a;标签演示 1、创建安卓应用 2、字符串资源文件 3、自定义边框配置文件 4、主布局资源文件 5、主界面类实现功能 6、启动应用&a…

安卓编程基础——菜单

前言&#xff1a;学习目标 知道三种菜单使用场景能够正确使用三种菜单 一、新课讲解 菜单在安卓应用程序中占有比较重要的位置。原生安卓提供了三种类型的菜单&#xff1a;选项菜单&#xff08;OptionsMenu&#xff09;、上下文菜单&#xff08;ContextMenu&#xff09;和子菜…

安卓并发编程基础

1.线程 1.线程与进程的区别。 进程是程序运行和资源分配的基本单位&#xff0c;一个程序至少有一个进程&#xff0c;一个进程至少有一个线程。进程在执行过程中拥有独立的内存单元&#xff0c;而多个线程共享内存资源&#xff0c;减少切换次数&#xff0c;从而效率更高。线程是…

【安卓开发】安卓网络编程

目录 一、安卓Socket客户端二、安卓Socket客户端优化&#xff08;小车遥控器拓展&#xff09;三、Android非UI线程修改空间程序崩溃问题一种新的解决办法&#xff1a;Handler类&#xff08;倒计时软件&#xff09; 四、Android网络接收数据并刷新界面&#xff08;综合练习&…

storm-executor-spout(2)

2121SCSDUSC storm-executor-spout&#xff08;2&#xff09; 用一个spout读取Twitter数据。采用拓扑并行化&#xff0c;多个spout从同一个流读取数据的不同部分。如果有多个流要读取&#xff0c;可以在任意组件内&#xff08;spouts/bolts&#xff09;访问TopologyContext。…

php读取excel效率,PhpSpreadsheet VS Box\Spout读取excel性能对比

phpspreadsheet版本:1.5.0 spout版本:2.7.3 在同样的环境下,运行代码,spout的在内存使用和时间花费上都占优,在phpspreadsheet读取失败的文档spout依然能正确完成读取。 spout代码 ini_set(memory_limit, 2G); var_dump(memory_get_usage()); var_dump(microtime()); $loa…

KafkaSpout 浅析

最近在使用storm做一个实时计算的项目,Spout需要从 KAFKA 集群中读取数据&#xff0c;为了提高开发效率&#xff0c;直接使用了Storm提供的KAFKA插件。今天抽空看了一下KafkaSpout的源码&#xff0c;记录下心得体会。 KafkaSpout基于kafka.javaapi.consumer.SimpleConsumer实现…

storm trident的多数据流,多spout

storm trident的多数据流&#xff0c;多spout (STORM)[storm, kafka] storm可以使用接收多个spout作为数据源&#xff0c;core storm与trident均可以&#xff0c;本文主要介绍trident的用法。 在trident中设置多个spout的基本思路是先建立多个spout&#xff0c;然后分别创建…