zoukankan      html  css  js  c++  java
  • Python Ethical Hacking

    INTERCEPTING & MODIFYING PACKETS

    Scapy can be used to:

    • Create packets.
    • Analyze packets.
    • Send/receive packets.

    But it can't be used to intercept packets/flows.

    CLASSIC MITM SCENARIO

     MITM - SNIFFING DATA

     MITM - MODIFYING DATA

     

     

     1. Execute the command - iptables to capture the packets into a queue.

    iptables -I INPUT -d 10.0.0.0/24 -j NFQUEUE --queue-num 1

     2. Access the Packets queue.

    Install the module netfilterqueue first.

    pip3 install -U git+https://github.com/kti/python-netfilterqueue

    3. Write the Python script to intercept and process the packets.

    #!/usr/bin/env python
    from netfilterqueue import NetfilterQueue
    
    
    def process_packet(packet):
        print(packet)
        packet.accept()
    
    
    queue = NetfilterQueue()
    queue.bind(1, process_packet)
    try:
        queue.run()
    except KeyboardInterrupt:
        print('')

     We can also drop the packets through function packet.drop().

    4. Use the following command to stop the packet capturing.

    iptables --flush

    Converting Packets to Scapy Packets

    1. Execute the iptables command to capture the OUTPUT and INPUT packets.

    iptables -I OUTPUT -j NFQUEUE --queue-num 0
    
    iptables -I INPUT -j NFQUEUE --queue-num 0

     2. Execute the following Python script to process the captured packets.

    #!/usr/bin/env python
    from netfilterqueue import NetfilterQueue
    
    
    def process_packet(packet):
        print(packet)
        packet.accept()
    
    
    queue = NetfilterQueue()
    queue.bind(0, process_packet)
    try:
        queue.run()
    except KeyboardInterrupt:
        print('')

     3. Convert the packet to scapy packet and show on the screen.

    #!/usr/bin/env python
    
    from netfilterqueue import NetfilterQueue
    from scapy.layers.inet import IP
    
    
    def process_packet(packet):
        scapy_packet = IP(packet.get_payload())
        print(scapy_packet.show())
        packet.accept()
    
    
    queue = NetfilterQueue()
    queue.bind(0, process_packet)
    try:
        queue.run()
    except KeyboardInterrupt:
        print('')

     4. Stop the capture of the packet by the command.

    iptables --flush
    相信未来 - 该面对的绝不逃避,该执著的永不怨悔,该舍弃的不再留念,该珍惜的好好把握。
  • 相关阅读:
    实用函数,array_column。从二维数组中获取想要的一位数组。
    解决小程序swiper层级太高问题
    小程序模拟领红包
    小程序,红包弹出层布局
    小程序核销功能
    小程序 text标签中一定 不要换行,不要随便格式化!!!
    小程序动态修改json中的配置
    小程序支付
    docker常用命令
    ssh修改默认端口
  • 原文地址:https://www.cnblogs.com/keepmoving1113/p/11442423.html
Copyright © 2011-2022 走看看