zoukankan      html  css  js  c++  java
  • scapy--初识

    常用的包结构:

    (1)OSI 5层模型
    
    OSI中的层   功能 TCP/IP协议族
     应用层    文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
     传输层    提供端对端的接口 TCP,UDP
     网络层       为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
     数据链路层   传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
     物理层    以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2
     常用包的数据结构:
    >>> ls(Ether)
    dst        : DestMACField                        = (None)
    src        : SourceMACField                      = (None)
    type       : XShortEnumField                     = (36864)
    >>> ls(UDP)
    sport      : ShortEnumField       = (53)
    dport      : ShortEnumField       = (53)
    len        : ShortField           = (None)
    chksum     : XShortField          = (None)
    >>> ls(TCP)
    sport      : ShortEnumField                      = (20)
    dport      : ShortEnumField                      = (80)
    seq        : IntField                            = (0)
    ack        : IntField                            = (0)
    dataofs    : BitField (4 bits)                   = (None)
    reserved   : BitField (3 bits)                   = (0)
    flags      : FlagsField (9 bits)                 = (<Flag 2 (S)>)
    window     : ShortField                          = (8192)
    chksum     : XShortField                         = (None)
    urgptr     : ShortField                          = (0)
    options    : TCPOptionsField                     = ([])
     >>> ls(IP)
    version    : BitField (4 bits)                   = (4)
    ihl        : BitField (4 bits)                   = (None)
    tos        : XByteField                          = (0)
    len        : ShortField                          = (None)
    id         : ShortField                          = (1)
    flags      : FlagsField (3 bits)                 = (<Flag 0 ()>)
    frag       : BitField (13 bits)                  = (0)
    ttl        : ByteField                           = (64)
    proto      : ByteEnumField                       = (0)
    chksum     : XShortField                         = (None)
    src        : SourceIPField                       = (None)
    dst        : DestIPField                         = (None)
    options    : PacketListField                     = ([])
    
     >>> ls(ARP)
    hwtype     : XShortField                         = (1)
    ptype      : XShortEnumField                     = (2048)
    hwlen      : ByteField                           = (6)
    plen       : ByteField                           = (4)
    op         : ShortEnumField                      = (1)
    hwsrc      : ARPSourceMACField                   = (None)
    psrc       : SourceIPField                       = (None)
    hwdst      : MACField                            = ('00:00:00:00:00:00')
    pdst       : IPField                             = ('0.0.0.0')
    >>> ls(ICMP)
    type       : ByteEnumField        = (8)
    code       : MultiEnumField       = (0)
    chksum     : XShortField          = (None)
    id         : ConditionalField     = (0)
    seq        : ConditionalField     = (0)
    ts_ori     : ConditionalField     = (79546771)
    ts_rx      : ConditionalField     = (79546771)
    ts_tx      : ConditionalField     = (79546771)
    gw         : ConditionalField     = ('0.0.0.0')
    ptr        : ConditionalField     = (0)
    reserved   : ConditionalField     = (0)
    addr_mask  : ConditionalField     = ('0.0.0.0')
    unused     : ConditionalField     = (0)
    >>> ls(DNS)
    id         : ShortField           = (0)
    qr         : BitField             = (0)
    opcode     : BitEnumField         = (0)
    aa         : BitField             = (0)
    tc         : BitField             = (0)
    rd         : BitField             = (0)
    ra         : BitField             = (0)
    z          : BitField             = (0)
    rcode      : BitEnumField         = (0)
    qdcount    : DNSRRCountField      = (None)
    ancount    : DNSRRCountField      = (None)
    nscount    : DNSRRCountField      = (None)
    arcount    : DNSRRCountField      = (None)
    qd         : DNSQRField           = (None)
    an         : DNSRRField           = (None)
    ns         : DNSRRField           = (None)
    ar         : DNSRRField           = (None)
    查看scapy函数
    >>> lsc()
    IPID_count          : Identify IP id values classes in a list of packets
    arpcachepoison      : Poison target's cache with (your MAC,victim's IP) couple
    arping              : Send ARP who-has requests to determine which hosts are up
    bind_layers         : Bind 2 layers on some specific fields' values
    bridge_and_sniff    : Forward traffic between interfaces if1 and if2, sniff and return
    chexdump            :  Build a per byte hexadecimal representation
    computeNIGroupAddr  : Compute the NI group Address. Can take a FQDN as input parameter
    corrupt_bits        : Flip a given percentage or number of bits from a string
    corrupt_bytes       : Corrupt a given percentage or number of bytes from a string
    defrag              : defrag(plist) -> ([not fragmented], [defragmented],
    defragment          : defrag(plist) -> plist defragmented as much as possible
    dhcp_request        : --
    dyndns_add          : Send a DNS add message to a nameserver for "name" to have a new "rdata"
    dyndns_del          : Send a DNS delete message to a nameserver for "name"
    etherleak           : Exploit Etherleak flaw
    fletcher16_checkbytes:  Calculates the Fletcher-16 checkbytes returned as 2 byte binary-string.
    fletcher16_checksum :  Calculates Fletcher-16 checksum of the given buffer.
    fragleak            : --
    fragleak2           : --
    fragment            : Fragment a big IP datagram
    fuzz                : Transform a layer into a fuzzy layer by replacing some default values by random objects
    getmacbyip          : Return MAC address corresponding to a given IP address
    getmacbyip6         : Returns the MAC address corresponding to an IPv6 address
    hexdiff             : Show differences between 2 binary strings
    hexdump             :  Build a tcpdump like hexadecimal view
    hexedit             : --
    hexstr              : --
    import_hexcap       : --
    is_promisc          : Try to guess if target is in Promisc mode. The target is provided by its ip.
    linehexdump         :  Build an equivalent view of hexdump() on a single line
    ls                  : List  available layers, or infos on a given layer class or name
    neighsol            : Sends an ICMPv6 Neighbor Solicitation message to get the MAC address of the neighbor with specified IPv6 address addr
    overlap_frag        : Build overlapping fragments to bypass NIPS
    promiscping         : Send ARP who-has requests to determine which hosts are in promiscuous mode
    rdpcap              : Read a pcap or pcapng file and return a packet list
    report_ports        : portscan a target and output a LaTeX table
    restart             : Restarts scapy
    send                : Send packets at layer 3
    sendp               : Send packets at layer 2
    sendpfast           : Send packets at layer 2 using tcpreplay for performance
    sniff               :
    split_layers        : Split 2 layers previously bound
    sr                  : Send and receive packets at layer 3
    sr1                 : Send packets at layer 3 and return only the first answer
    sr1flood            : Flood and receive packets at layer 3 and return only the first answer
    srbt                : send and receive using a bluetooth socket
    srbt1               : send and receive 1 packet using a bluetooth socket
    srflood             : Flood and receive packets at layer 3
    srloop              : Send a packet at layer 3 in loop and print the answer each time
    srp                 : Send and receive packets at layer 2
    srp1                : Send and receive packets at layer 2 and return only the first answer
    srp1flood           : Flood and receive packets at layer 2 and return only the first answer
    srpflood            : Flood and receive packets at layer 2
    srploop             : Send a packet at layer 2 in loop and print the answer each time
    tcpdump             : Run tcpdump or tshark on a list of packets
    traceroute          : Instant TCP traceroute
    traceroute6         : Instant TCP traceroute using IPv6
    traceroute_map      : Util function to call traceroute on multiple targets, then
    tshark              : Sniff packets and print them calling pkt.summary(), a bit like text wireshark
    wireshark           : Run wireshark on a list of packets
    wrpcap              : Write a list of packets to a pcap file
  • 相关阅读:
    Java中ArrayList和LinkedList区别
    poi操作excel之: 将NUMERIC转换成TEXT
    Spring事务异常回滚,捕获异常不抛出就不会回滚
    CollectionUtils.select用法
    名词解释
    jenkins
    代码测试文章推荐
    redis 参考文章
    zookeeper,dubbo,dubbo admin
    Navicat For Mysql快捷键
  • 原文地址:https://www.cnblogs.com/eilinge/p/9239185.html
Copyright © 2011-2022 走看看