Polymorph:支持几乎所有现有协议的实时网络数据包操作框架

为此,框架实现了前提函数的观点,前提函数是用Python编写的函数,它将在实时拦截的收集数据包

Polymorph是一个用Python3编写的框架,其容许实时改动收集数据包,为用户供给对数据包内容的最大年夜化节制该框架旨在实现任何现有协议(包括没有公共规范的私有协议)的收集数据包的实时改动除此之外,其主要目的之一是为用户供给对数据包内容的最大年夜化节制,并能够对信息履行繁杂处置惩罚

安装

项目地址:https://github.com/shramos/polymorph

在Windows上安装

Polymorph可以在Windows操作系统上被安装,若要正常运行,必要以下必备组件:

Python3(添加到Path),URL:https://www.python.org/downloads/

Wireshark添加到Path),URL:https://www.wireshark.org/download.html

Visual C++ Build Tools,URL:https://www.visualstudio.com/en/thank-you-downloading-visual-studio/?sku=BuildToolsrel=15

Winpcap(假如没和wireshark一路安装)URL:https://www.winpcap.org/install/default.htm

一旦依附安装好,你只必要打开节制台履行以下敕令:

pip install –process -dependency -links polymorph

留意,必须要以治理员身份打开节制台应用polymorph

在Linux高低载和安装

Polymorph也用于在Linux操作系统(如Kali Linux)上安装和运行 在安装框架之前,必须安装以下依附:

apt-get install build-essential python-dev libnetfilter-queue-dev tshark tcpdump python3-pip wireshark

在安装好依附之后,可以应用Python pip经由过程以下要领安装框架本身:

pip3 install polymorph

Docker情况

从项目根目录:

docker-compose up -d

任何机械造访:

docker exec -ti [polymorph | alice | bob] bash

若何应用Polymorph

Polymorph框架由两个主要界面组成:

Polymorph:它由一个敕令节制台界面组成也是主界面,建议将其用于繁杂的义务,例如改动繁杂协议,改动字段中的类型或在无需规范的环境下改动协议

Phcli:它是Polymorph框架的敕令行界面建议用于改动简单协议或履行先前天生的模板等义务

应用Polymorph主界面

参照:https://github.com/shramos/polymorph/blob/master/doc/whitepaper/whitepaper_english.pdf

应用Phcli

解析险些任何收集协议

现在让我们看看Polymorph若何解析不合收集协议的字段,假如我们想要实时改动这些字段,那么引用它们将会很有用你可以考试测验任何想到的协议

HTTP协议,仅显示HTTP层和属于它的字段

# phcli –protocol http –show-fields

显示完备的HTTP数据包及其所属的字段

# phcli –protocol http –show-packet

你还可以对收集数据包进行过滤,例如,你可以仅显示包孕特定字符串或数字的数据包

# phcli -p dns –show-fields –in-pkt “phrack”

# phcli -p icmp –show-packet –in-pkt “84” –type “int”

过滤也可以这样用:

# phcli -p http –show-packet –in-pkt “phrack;GET;issues”

# phcli -p icmp –show-packet –in-pkt “012345;84” –type “str;int”

你可以按协议包孕的字段名称进行筛选,但要留意的是,此名称是Polymorph在阐发收集数据包时供给的名称

# phcli -p icmp –show-packet –field “chksum”

# phcli -p mqtt –show-packet –field “topic;msg”

实时改动收集数据包

知道了Polymorph中显示的要改动的收集数据包,我们将要实时改动它让我们先从一些例子开始上一节中先容的所有过滤器也可以在此处利用

该例子将经由过程在request_uri字段中插入值/issues/61/1.html来改动包孕字符串/issues/40/1.html及GET的数据包 是以,当用户造访http://phrack.org/issues/40/1.html时,浏览器将造访http://phrack.org/issues/61/1.html

# phcli -p http –field “request_uri” –value “/issues/61/1.html” –in-pkt “/issues/40/1.html;GET”

假如我们处于机械和网关之间,则上一个敕令会起感化

# phcli –spoof arp –target 192.168.1.20 –gateway 192.168.1.1 -p http -f “request_uri” -v “/issues/61/1.html” –in-pkt “/issues/40/1.html;GET”

或者大概用户想在localhost上考试测验它,由于他只必要改动Polymorph默认建立的iptables规则

# phcli -p http -f “request_uri” -v “/issues/61/1.html” –in-pkt “/issues/40/1.html;GET” -ipt “iptables -A OUTPUT -j NFQUEUE –queue-num 1”

用户可能想要改动未被Polymorph解释为字段的收集分组的一组字节的环境为此,你可以应用“切分”直接造访数据包字节(假如在localhost中考试测验,请记着添加iptables规则)

# phcli -p icmp –bytes “50:55” –value “hello” –in-pkt “012345”

# phcli -p icmp -b “\-6:\-1” –value “hello” –in-pkt “012345”

# phcli -p tcp -b “\-54:\-20” -v ‘”>script>alert(“hacked”)script>’ –in-pkt “html>”

实时添加繁杂处置惩罚

在某些环境下,PHCLI选项可能不够以履行某个操作

前提函数具有以下款式:

def precondition(packet):

# Processing on the packet intercepted in real time

return packet

举个简单的例子,我们将樊篱我们拦截的数据包的原始字节(假如在localhost中考试测验,请记着添加iptables规则)

def execution(packet):

print(packet.get_payload())

return None

# phcli -p icmp –executions execution.py -v “None”

赞(0) 打赏
分享到: 更多 (0)
免责申明:本站所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,不保证真实性,并不承担任何法律责任

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

阿里云优惠网 更专业 更优惠

阿里云优惠券阿里云大礼包