如何执行这个特定的 python 脚本(附在问题中)

如何执行这个特定的 python 脚本(附在问题中)

我有一个小网络,过去两周我的无线网络断线次数很多,我的朋友告诉我 90% 的断线都是由 deauth 数据包攻击的,我研究了一下,找到了这个 py 脚本。但不幸的是,我找不到任何关于如何使用它的帮助。我是 Linux 新手,有谁愿意帮忙吗?

#!/usr/bin/env python

######################################################
# authWatch.py​​ v. 0.1 (快速、肮脏且大声) - 由 TinMan 编写
# 将卡置于监控模式并设置通道。
# 如果你想要跳频,请运行 airodump-ng
# 另一个终端。将添加频道跳跃
# 在下一个版本中。
######################################################  
#
# 用法:python authWatch.py
#   

导入系统
来自 scapy 导入 *

接口 = sys.argv[1]

def sniffReq(p):
     如果 p.haslayer(Dot11Deauth):
# 查找取消认证包并打印 AP BSSID、客户端 BSSID 和取消认证的原因。
           print p.sprintf("从 AP [%Dot11.addr2%] 客户端 [%Dot11.addr1%] 发现 Deauth,原因 [%Dot11Deauth.reason%]")
# 查找关联请求包并打印站 BSSID、客户端 BSSID、AP 信息。
     如果 p.haslayer(Dot11AssoReq):
           print p.sprintf("来自站点 [%Dot11.addr1%]、客户端 [%Dot11.addr2%]、AP [%Dot11Elt.info%] 的关联请求")
# 查找身份验证数据包并打印客户端和 AP BSSID
           如果 p.haslayer(Dot11Auth):
       print p.sprintf("从 [%Dot11.addr1%] 到 AP [%Dot11.addr2%] 的身份验证请求")
       打印 p.sprintf("-----------------------------------------------------------------------------------------------------"
sniff(iface=接口,prn=sniffReq)

答案1

您的脚本的问题是缩进问题,这对于 Python 初学者来说很常见:

python script.py 
  File "script.py", line 28
    print p.sprintf("Authentication Request from [%Dot11.addr1%] to AP [%Dot11.addr2%]")

                                                                                   ^
IndentationError: unindent does not match any outer indentation level

]")和之间的空格^用制表符填充,这会让解释器感到困惑。下面是更正后的缩进:

#!/usr/bin/env python

######################################################
# authWatch.py​​ v. 0.1 (快速、肮脏且大声) - 由 TinMan 编写
# 将卡置于监控模式并设置通道。
# 如果你想要跳频,请运行 airodump-ng
# 另一个终端。将添加频道跳跃
# 在下一个版本中。
######################################################  
#
# 用法:python authWatch.py
#   

导入系统
来自 scapy 导入 *

接口 = sys.argv[1]

def sniffReq(p):
     如果 p.haslayer(Dot11Deauth):
# 查找取消认证包并打印 AP BSSID、客户端 BSSID 和取消认证的原因。
          print p.sprintf("从 AP [%Dot11.addr2%] 客户端 [%Dot11.addr1%] 发现 Deauth,原因 [%Dot11Deauth.reason%]")
# 查找关联请求包并打印站 BSSID、客户端 BSSID、AP 信息。
     如果 p.haslayer(Dot11AssoReq):
          print p.sprintf("来自站点 [%Dot11.addr1%]、客户端 [%Dot11.addr2%]、AP [%Dot11Elt.info%] 的关联请求")
# 查找身份验证数据包并打印客户端和 AP BSSID
     如果 p.haslayer(Dot11Auth):
            print p.sprintf("从 [%Dot11.addr1%] 到 AP [%Dot11.addr2%] 的身份验证请求")
            打印 p.sprintf("-----------------------------------------------------------------------------------------------------"
sniff(iface=接口,prn=sniffReq)

答案2

脚本中说明了如何执行它:

用法:python authWatch.py

您要做的是打开一个终端(++ Ctrl),导航到保存脚本的位置,然后输入。AltTpython authWatch.py

相关内容