渗透测试人员在信息收集阶段花费了大量的时间。Flashlight(Fener)能够迅速对目标网络提供服务的网络端口进行扫描并收集信息。因此Flashlight可以作为渗透测试中可以使用的一个不错的选择。本文将对Flashlight做一个简单的介绍。
想要知道更多关于Flashlight的信息,可以使用“-h”或者“--help”选项来获取帮助信息。
各个参数的用法如下:
-h,--help:显示关于使用Flashlight的相关信息 -p <ProjectName> 或者--project < ProjectName>:设置项目名称。
这个选项可以用来保存不同工作区中的不同项目。 -s <ScanType> 或者 –scan_type < ScanType >:设置扫描类型。有四种扫描类型:Active Scan ,
Passive Scan, Screenshot Scan and Filtering。这些扫描类型会在后面详细解释。 -d < DestinationNetwork>, --destination < DestinationNetwork >:设置要扫描的目标网络或者IP。 -c <FileName>, --config <FileName>:指定配置文件。扫描会根据配置文件中的信息进行。 -u <NetworkInterface>, --interface < NetworkInterface>:指定在被动扫描(passive scan)时要使用的网络接口。 -f <PcapFile>, --pcap_file < PcapFile >:设置用于过滤的pcap文件。 -r <RasterizeFile>, --rasterize < RasterizeFile>:设置用于截屏扫描的JS文件。 -t <ThreadNumber>, --thread <Threadnember>:设置线程数。该参数仅适用于截屏扫描模式。 -o <OutputDiectory>, --output < OutputDiectory >:设置用于保存扫描结果的输出目录。
扫描结果会保存在三个字目录中:Nmap扫描结果的nmap子目录,Pcap文件使用的pcap子目录,
以及截屏扫描使用的screen子目录。扫描结果会保存在该参数指定的目录中。
如果没有指定该参数,扫描结果会保存在Flashlight运行所在的目录中。 -a, --alive:它在进行实际的漏洞扫描前先进行ping扫描去发现存活的IP。适用于主动扫描。 -g <DefaultGateway>, --gateway < DefaultGateway >:设置网关IP地址。 -l <LogFile>, --log < LogFile >:指定保存扫描结果的日志文件。
如果没有指定该参数,日志文件会保存在Flashlight运行所在的目录。 -k <PassiveTimeout>, --passive_timeout <PassiveTimeout>:设置超时时间。默认15秒。适用于被动扫描。 -m, --mim:用于执行MITM攻击。 -n, --nmap-optimize:用于优化nmap扫描 -v, --verbose:运行时显示详细输出信息 -V, --version:显示版本信息 |
安装
apt-get install nmap tshark tcpdump dsniff |
为了轻松安装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欺骗和中间人攻击。
./flashlight.py -s passive -p passive-project-02 -i eth0 -g 192.168.74.2 -m -k 50 -v |
通过分析捕获到的pcap文件中的HTTP流量,我们可以看到
对基础身份认证消息进行解码,我们将得到用于访问web服务器的凭据。
被动扫描的所有参数类似于这样:
./flashlight.py -s passive -p passive-pro-03 -i eth0 -g 192.168.74.2
-m -k 50 -o /root/Desktop/flashlight_passive_full -l /root/Desktop/log -v |
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 ”,简单的扫描命令类似于这样:
./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”子目录中。
|