Flashlight:用于渗透测试的自动化信息收集工具
想要知道更多关于Flashlight的信息,可以使用“-h”或者“--help”选项来获取帮助信息。
各个参数的用法如下:
安装
为了轻松安装phantomjs,你可以从https://bitbucket.org/ariya/phantomjs/downloads下载解压后进行安装。
Flashlight可以执行三种基本扫描类型和一种分析类型。下面将详细介绍。
1) Passive Scan
被动扫描中,不会发送数据包。这种类型的扫描主要时监听网络并且分析数据包。
例如要使用Flashlight进行一次被动扫描,设置一个项目名称,如passive-pro-01。在下面的命令中,由eth0捕获的数据包会保存在“/root/Desktop/flashlight/output/passive-project-01/pcap”目录中,pcap文件和所有的日志文件会保存在“/root/Desktop/log”目录中。
./flashlight.py -s passive -p passive-pro-01 -i eth0 -o /root/Desktop/flashlight_test -l /root/Desktop/log –v

扫描完成后会产生一个新的目录,名为“flashlight_test",并且"/root/Desktop/" 目录中会创建一个名为“log”的日志文件。

“flashlight_test”的目录结构就像下面所示。Pcap文件保存在“/root/Desktop/flashlight_test/output/passive-pro-01/pcap”目录中。这个pcap文件可以用于分析。使用ls /root/Desktop/flashlight_test -R列出目录结构。
日志文件的内容类似于命令行输出。
标准的被动扫描可以捕获广播数据包和直接发送给扫描机器的数据包。除此之外,可以使用 “-mim/-m”参数进行Arp欺骗和中间人攻击。
通过分析捕获到的pcap文件中的HTTP流量,我们可以看到
对基础身份认证消息进行解码,我们将得到用于访问web服务器的凭据。
被动扫描的所有参数类似于这样:
2) Active Scan
在主动扫描中,NMAP脚本通过读取配置文件进行扫描。在Flashlight的config目录中有一个样例配置文件flashlight.yaml。
根据"flashlight.yaml" 配置文件,执行扫描时会对TCP的“21, 22, 23, 25, 80, 443, 445, 3128, 8080”端口,UDP的"53, 161"端口进行扫描,并且会使用"http-enum" 脚本。
注意:在主动扫描中“screen_ports”选项是无用的。此选项只适用于screenshot扫描。
“-a”选项通过发送ICMP数据包探测存活主机。除此之外,还可以使用“-t”参数增加线程数来提高扫描速度。
./flashlight .py -p active-project -s active -d 192.168.74.0 /24 –t 30 -a - v |
通过运行此命令,输出文件有三种不同格式 (普通, XML 和Grepable)结合四种不同扫描类型(操作系统扫描,ping扫描,端口扫描和脚本扫描)
Flashlight内部可能使用了类似这样的命令进行扫描:
操作系统扫描:/usr/bin/nmap -n -Pn -O -T5 -iL /tmp/"IPListFile" -oA /root/Desktop/flashlight/output/active-project/nmap/OsScan-"Date"
Ping扫描:/usr/bin/nmap -n -sn -T5 -iL /tmp/"IPListFile" -oA /root/Desktop/flashlight/output/active-project/nmap/PingScan-"Date"
端口扫描:/usr/bin/nmap -n -Pn -T5 --open -iL /tmp/"IPListFile" -sS -p T:21,22,23,25,80,443,445,3128,8080,U:53,161 -sU -oA /root/Desktop/flashlight/output/active-project/nmap/PortScan-"Date"
脚本扫描:/usr/bin/nmap -n -Pn -T5 -iL /tmp/"IPListFile" -sS -p T:21,22,23,25,80,443,445,3128,8080,U:53,161 -sU --script=default,http-enum -oA /root/Desktop/flashlight/output/active-project/nmap/ScriptScan-"Date"

如果想运行一个高效优化的主动扫描,可以使用“-n”参数,类似于这样:
/flashlight.py -p active-project -s active -d 192.168.74.0/24 -n -a –v |
“-n”参数增加了额外的nmap选项,如下所示:
… -min-hostgroup 64 -min-parallelism 64 -host-timeout=300m -max-rtt-timeout=600ms -initial-rtt-timeout=300ms -min-rtt-timeout=300ms -max-retries=2 -min-rate=150 … |
3) Screen Scan
截屏扫描使用在配置文件(flashlight.yaml)中得到的指令对网站应用进行扫描截屏。文件中“screen_ports: - 80, 443, 8080, 8443 ”,简单的扫描命令类似于这样:
1 ./flashlight.py -p project -s screen -d 192.168.74.0/24 -r /usr/local/rasterize.js -t 10 -v
例如,通过运行这条命令检测到三个网站应用程序。这些网站的截图会保存在“screen”子目录中。这些屏幕截图可以用于离线分析。
4) Filtering
Filtering选项主要用于分析pcap文件。举例如下:
/flashlight.py -p filter-project -s filter -f /root/Desktop/flashlight/output/passive-project-02/pcap/20150815072543.pcap -v |
通过运行这条命令,我们可以看到一些文件被创建在了“filter”子目录中。
这个选项通过以下特点对pcap文件进行分析:
Windows主机
排名前10的DNS请求