恶意URL检测
源代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138# 数据提取&处理(csv)import pandas as pdfrom sklearn.utils import shuffle# 特征提取import refrom sklearn.feature_extraction.text import TfidfVectorizer# 训练集和测试集划分from sklearn.model_selection impo...
机器学习
机器学习在很多场景, 分类&回归简单来说,分类解决离散问题;回归解决连续问题。分类(Binary Classification):一个例子,对于给定的一个字符串,检测是否为恶意的,那么这种就是分类问题,一般来说二分类问题比较常见。回归(Regression):给定一个人的各方面信息,评估他的个人收入,他的收入显然是有大量可能的,因此这是回归问题。 分类模型线性回归回归模型Logist回归朴素贝叶斯了解更多 决策树机器学习一般步骤: 文件读取 数据处理 特征提取&向量化 训练集&测试集划分 模型训练 模型测试 模型保存 模型使用 1. 文件读取一般来说,数据集存储在txt或者csv文件中,它包括数据和标签两个部分。需要注意的是数据集的并没有统一格式,需要根据具体情况便携代码。首先将其读入程序,以便我们能够处理,可以将其读入列表,字典或者pd对象当中。下面提供pandas读取csv文件的代码,并将数据集存储到pd对象中: 12345def read_file(file_path): file_pd = pd.read_csv(file_path, us...
XSS注入检测
源代码pd对象和python字典类似,行为属性,列为列表 pd.read_csv()函数: 参数header:pandas是否选择csv文件第一行作为列名 参数usecols:pandas读取csv文件列 pd.to_csv()函数: 参数header:pandas是否将属性名写入csv文件 参数columns:pandas写入csv文件的属性(影响写入的顺序) 参数index:pandas是否写入序号 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104# 数据提取&处理import pandas as pdfrom sklearn.utils import shuffle# 特征提取import refrom sk...
垃圾邮件检测
1. 数据集tre06ctre06c/data:邮件数据,包括真实世界的正常邮件和垃圾邮件tre06c/full:标签 2. 数据提取&处理jieba官方文档列表推导式(expression for li in list if condition) 读取邮件数据递归读取目录trec06c/data的文件,获取邮件数据并进行分词处理,返回处理后的邮件列表。 1234567891011121314151617181920212223242526272829# 读取邮件数据def read_file(file_path): # print(file_path) email_list = [] files = os.listdir(file_path) for file in files: if os.path.isdir(file_path + '/' + file): email_list = email_list + read_file(file_path + ...
SEED:DNS
一 DNS概述为什么需要DNS?网络中的计算机使用IP地址进行标识,如果你想连接一台网络中的计算机,你必须知道它的IP地址。然而记住一串点分二进制的表示是困难的,因为它们没有什么实际意义,因此在公开的网络中,服务器使用对外公开的域名进行标识。DNS:Domain Name System域名系统将域名转换为IP地址。 DNS如何构建?DNS被设计成树状结构,就像这样: Root根服务器: TLS顶级域名服务器: NS权威域名服务器:另外还有本地DNS服务器,这个DNS服务器帮助主机对DNS进行查询,包括迭代查询和递归查询: DNS如何使用?进行DNS查询非常简单,因为本地DNS服务器会帮助主机完成这个工作。因此,本地DNS服务器可以收集用户访问网站的信息。 DNS缓存和Hosts文件DNS的安全问题DNS被要求一个快的速度,DNS解析的速度越快,那么浏览器访问网页的速度也就越快,因此DNS使用明文。这样DNS就会出现问题:受到恶意的DNS回复。现在的DNS系统使用DNS缓存和随机化的DNS端口和序列号。DNS本地攻击实验&&DNS远程攻击实验二、 实验步骤及结果...
SEED:MD5 Collision Attack Lab
你可以到SEED官网获取实验资料:MD5 Collision Attack Lab MD5碰撞概述哈希函数哈希究竟代表什么?哈希表和哈希函数的核心原理归纳起来,哈希函数应该有以下几个特点: 单向 压缩 弱抗碰撞性:给出一个输入,无法找到一个不同的输入使得它们输出相同。 强抗碰撞性:无法找到两个不同的输入有相同的输出。 MD5碰撞由于哈希函数压缩的特性,因此必然产生碰撞。但是一个好的哈希函数应该让寻找碰撞的计算代价尽可能的大,让它在计算上满足抗碰撞性。然而,MD5不是这样一个合格的哈希函数。对于MD5哈希函数,使用特定程序能够轻易的找出两个不同输入。 哈希函数 && 安全哈希函数广泛用于数据完整性校验。在网络中,在一条消息后面附上其哈希输出,那么接收消息后检查消息的哈希输出是否一致就可以判断消息是否被更改。在计算机系统中,可以为文件附上哈希,那么当这个文件被恶意篡改就能够及时发现。另外,由于单向的特性,哈希函数也能用于信息保密。在账号口令系统中,通常使用哈希加盐的方式存储口令,这样可以避免泄露用户的真实口令。 一、 作业题目本次实验主要是加深大家对MD5碰撞及其...
SEED:Sniff and Spoof
课程实践报告课程 网络攻防技术(314006040)课 序 号 3作业名称 网络流量嗅探和窃取实验评分姓名 杨森 学号 2021141530084评阅意见 一、 作业题目嗅探和欺骗二、 实验步骤及结果1. 实验环境设置1) 拓扑结构网路接口bridge,host,none都是docker自己创建的。三个容器使用我们自定义的网络接口:636082fa98c9,这个网络接口相当于三个容器的交换机: 容器使用首先进入Labsetup文件夹,使用命令dcbuild和dcup编译和启动容器。如果需要关闭:dcdown。你可以通过以下命令(dockps)查看容器id:如果需要使用某个容器的终端,需要执行命令:docksh ,或者这样也行:(键入exit退出) 关于攻击机共享文件夹/volumes:虚拟机和attacker容器之间的共享文件夹,为了方便在docker容器中使用虚拟机的编辑器编写的代码。主机模式:对于桥接模式下的三个容器,他们并不能互相访问各自的网络接口,因为他们被桥接模...
SEED:TCP
一、 作业题目TCP攻击实验二、 实验步骤及结果1. 实验环境拓扑结构:关于容器启动:使用命令dcbuild构建镜像。使用命令dcup,dcdown控制容器启动与关闭。使用命令dockps查看容器id,使用命令dcsh 转到容器。关于容器启动:共享文件夹:攻击机与主机共享文件夹volumes。主机模式:攻击机使用主机模式可以访问虚拟机的所有网络接口。Seed账户:在所有容器中都创建了一个名为seed的账户,它的密码是dees。它可以被远程登录。SYN洪泛攻击概述:SYN泛洪攻击是DOS的一种形式,攻击者向受害者的TCP端口发送大量伪造源IP的SYN请求,但是不完成整个连接,这样受害者存储半连接的队列被充满,无法接收正常用户的连接。队列的大小被操作系统设置,一般来说计算机内存越大,这个值也就越大。在Ubuntu系统中可以使用下面命令编辑队列大小:同时可以使用“netstat -nat”查看队列的使用情况,状态为“SYN-RECV”为半连接,完成3次握手状态为“ESTABLISHED”。SYN Cookie策略:默认情况下,这种策略在Ubuntu中被默认开启,你可以通过下面命令查看:...
ARP毒化
一. ARP协议概述建议你先学习计算机网络以及ARP协议部分。 1. arp缓存查看你的主机arp缓存arp缓存表存储在主机的内存中。 对于Windows操作系统,你可以在终端中使用命令arp -a查看电脑的arp缓存表。 对于Linux操作系统,使用命令arp即可。 你的arp缓存表的内容一般来说,arp缓存只关心子网下其他主机。 对于路由器下的子网,arp缓存其他主机的MAC地址为路由器(网关)的MAC地址,因为主机访问其他主机的下一跳是路由器。 对于交换机下的子网,arp缓存其他主机的真实MAC地址。 当你访问子网外的IP地址时,MAC地址默认为网关地址。 2. arp报文你可以使用python的scapy库写一个arp请求函数,这非常简单。 123456789101112131415161718def arp(ipy): dst_ip_list = IPY(ipy) alive_ip_list = [] for dst_ip in dst_ip_list: pkt = ARP(pdst=str(dst_ip)) # p...
DHCP安全性分析
一. DHCP协议概述1. 上网配置信息计算机在连入WIFI后,需要获取网络配置信息才能正常上网,这些信息包括以下: 主机IP地址 子网掩码 网关IP地址 DNS服务器IP地址 2. DHCP报文当你连入WIFI之前,使用Warshark对进行抓包,可以捕获到到以下DHCP报文: DISCOVER OFFER REQUEST ACK如果你已经接入WIFI,你可以在终端输入命令 ipconfig release 释放你已经获取的网络配置信息。重新接入WIFI。如果你只是单纯断开WIFI,那么原来的网络配置信息并不会清空。相比正常的DHCP交互缺少 DISCOVER 和 OFFER 报文。 二. DHCP饿死攻击1. 概述DHCP服务器根据DHCP报文中提供的MAC地址分发IP地址。因此,使用主机伪造DHCP报文中的MAC地址,耗尽DHCP能够分配的IP地址,那么正常连接网络的主机将不能够接入网络,攻击完成。 2. 试试?环境Windows7(虚拟机);Ubuntu20.04(虚拟机) 下载Yersiniasudo apt install yersinia 打开Yersini...











