《python渗透测试模块》
2021/4/7 20:15:44
本文主要是介绍《python渗透测试模块》,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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服务的服务器。
这篇关于《python渗透测试模块》的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程