【问题标题】:SSID Scanner - PythonSSID 扫描仪 - Python
【发布时间】:2015-06-10 10:19:12
【问题描述】:

我是 Python 的新手,正在尝试学习如何编写一个 SSID 扫描器来执行以下操作:

  1. 询问用户扫描的时间长度
  2. 使用 wlan 通过 Airmon-NG 启用监控模式
  3. 检查 Mon0 是否已启用,然后进行下一步
  4. 检查 Mon0 后,使用 Mon0 启动 Airmon-NG 并扫描 5 分钟
  5. 让程序看到一旦达到 5 分钟标记,打印出“SSID Scan Complete”
  6. 关闭程序

我想最终在 5 分钟后获取扫描输出并将其转储到文本文件中以供以后查看,但我还没有到那里,所以请原谅我继续学习时对 Python 的无知。到目前为止我所拥有的只是经过研究,但我觉得卡住了,我知道的一些部分是错误的,我无法弄清楚,例如:

  1. 实际上在启动 airodump-NG 之前验证 Mon0 是否开启
  2. 在完成前等待输入的时间长度

这是我目前所拥有的:

#!/usr/bin/env python

import os
import subprocess
from datetime import datetime

#Clear the screen
subprocess.call("clear")

#Ask for the length of time in Minutes to scan for SSIDs
scan_ssid = raw_input("How many minutes would you like to scan for: ")
scan_length = scan_ssid

#Print banner
print "Scanning for SSIDs for " + scan_ssid " minutes."

#Start and verify airmon-ng in monitor mode
print "Placing wlan iface in Monitor Mode"

os.system("airmon-ng start wlan2")

monitor = mon0

if monitor == True:
    print "Monitor Mode: Enabled"


#Start airodump-ng with monitor enabled
print "Starting SSID scan with Monitor Mode"

os.system("airodump-ng mon0")


#Scan for the user requested timefame
scan_length = time.time()
while True:
        scan_length = 0
        if scan_length == 5 or time.time() > scan_length:
            break
        scan_length = scan_length - 1
        print "SSID Scan Complete!"

sys.exit(0)

【问题讨论】:

  • 我对 python 也比较陌生,所以我可能不是最有帮助的,但这是我能提供的。如果 scan_length 还剩 5 分钟,你不是 breaking 吗?不过可以肯定的是,我建议再看一下while 循环。一开始我花了一点时间来理解类似循环的细微差别。至于验证 Mon0 是否打开,我建议使用 if/else 交叉引用 airmon-ng 的输出。然后在特定短语上使用grep 或比较前后的原始结果。好主意顺便说一句!我一直想做类似的事情。你有 GitHub 吗?
  • 嗯,我明白你对休息部分的意思了。我也试图掌握 while 循环。至于对airmon-ng的检查,我正在考虑一种读取输出的方法,但问题是我不确定如何解析输出并找到“mon0”,因为我认为脚本会在后台做所有事情,所以我不会真正看到任何东西。
  • 我在想也许这会起作用:subprocess.check_output("mon0", shell=True),但不太确定
  • 是的,我迷失了这个建议。我知道如果您在命令的原始输出中附加一个基本文本文件(绕过所有背景内容)然后使用 grep 检查它的 mon0 它将起作用。然而,这种方法总是感觉有点“硬编码”,我确信有更好的方法我从来没有过多地研究过它。仍在尝试学习和练习一些简单的东西。您可以通过实践和调试来学习,所以请坚持下去。非常有兴趣了解您如何使用此脚本。

标签: python ssid


【解决方案1】:

您可以在 shell 命令中运行“ifconfig”。如果列出了 MON0,您可以跳过将 WLAN2 置于无线模式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 2012-07-17
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多