- 信息收集:dmitry
- 信息收集:ike-scan
- 信息收集:Maltego 情报分析
- 信息收集:Netdiscover
- 信息收集:Nmap网络扫描
- 信息收集:recon-ng
- 信息收集-主机存活:arping
- 信息收集-主机存活:fping
- 信息收集-主机存活:hping3
- 信息收集-主机存活/网络扫描:masscan
- 信息收集-主机存活:thcping6 IPv6攻击
- 信息收集-主机存活/网络扫描:unicornscan 端口扫描
- 信息收集-路由分析:netdiscover
- 信息收集-路由分析:netmask
- 信息收集-情报分析:spiderfoot 黑盒渗透测试收集信息
- 信息收集-情报分析:spiderfoot-cli
- 信息收集-情报分析:theharvester
- 信息收集-DNS分析:dnsenum DNS枚举工具
- 信息收集-DNS分析:dnsrecon
- 信息收集-DNS分析:fierce
- 信息收集-IDS/IPS识别:lbd
- 信息收集-IDS/IPS识别:wafw00f WAF识别
- 信息收集-SMB分析:enum4linux
- 信息收集-SMB分析:nbtscan
- 信息收集-SMB分析:smbmap
- 信息收集-SMTP分析:swaks 邮件发送
- 信息收集-SNMP分析:onesixtyone
- 信息收集-SNMP分析:snmp-check 服务器枚举
- 信息收集-SSL分析:ssldump
- 信息收集-SSL分析:sslh
- 信息收集-SSL分析:sslscan
- 信息收集-SSL分析:sslyze
信息收集:dmitry
https://mor-pah.net/
https://github.com/jaygreig86/dmitry
综合查询命令,如:dmitry -winse -o example.out www.bilibili.com
综合扫描网站端口,如:dmitry -p www.bilibili.com -f -b
列出帮助信息:dmitry –help
查看更完整的文档:man Dmitry
选项详解:-o filename
whois查询,后跟IPv4地址,如:dmitry -i 255.255.255.255
whois查询,后跟字符串形式的主机名,如:dmitry -w www.bilibili.com
获取相关主机信息,如:dmitry -n www.bilibili.com
执行子域名查询,如:dmitry -s www.bilibili.com
针对目标主机执行Email地址查询,如:dmitry -e www.bilibili.com
在目标主机上执行TCP端口扫描,如:dmitry -p www.bilibili.com
让TCP扫描器输出过滤的端口信息,如:dmitry -f www.bilibili.com
让TCP扫描器输出端口banner,如:dmitry -b www.bilibili.com
设置端口扫描的TTL,默认是2秒,如:dmitry -t www.bilibili.com
搜索引擎为谷歌,所以就没办法得到更多,需要开启VPN。
信息收集:ike-scan
https://github.com/royhills/ike-scan
显示此使用信息,如:ike-scan -h或—help
从文件中读取目标主机,如:ike-scan —file或-f=hostlist.txt或目标主机
指定的网络中的所有主机,如:ike-scan 172.16.0.0/16或172.16.0.0-172.16.255.255
从标准输入中读取主机,并执行IKE检测和退避指纹识别,退避等待时间指定为20秒,如:cat hostlist.txt | ike-scan —file或-f=- —showbackoff=20
-M 将扫描结果逐行显示 —showbackoff 对远程IP进行设备指纹识别,同时显示详细指纹表内容
加密强度测试,操作系统或设备版本探测,如:ike-scan —sport=0 —showbackoff -M 172.16.0.0
实现需要客户端使用UDP源端口500,如:ike-scan —sport或-s 80 www.bilibili.com
信息收集:Maltego 情报分析
账号注册地址:https://www.maltego.com/ce-registration/
https://www.cnblogs.com/zh2000/p/11199492.html
点击这里新建工程项目
然后找到infrastructure——Domain,命名就是需要扫描的域名或者主机名
这里我扫描过了,就没办法在左边菜单选择,所以下面演示的话是右键,右键找到Machines
点击进来之后就是一个挖掘深度等级,教程演示为L1等级,其他的自行操作。
最后扫描完就会形成树形图展示,大家可以点击里面的圆圈查看详细内容,这里就不展示了。
信息收集:Netdiscover
https://github.com/alexxy/netdiscover
-i指定所要侦听的网卡网络设备,
-r指定ip段,
-l file扫描指定文件范围列表,
-p被动模式,默默的侦听指定的网卡以发现别的二层主机,
-m file自定义pcap filter表达式默认值为arp,
-s time ARP包发送间隔,单位毫秒,这个可以用来规避检测系统的告警,
-c count发包数量,
-n node用于扫描的最后一个源IP八位字节(从2到253),
-d自动扫描和快速模式的主配置文件,
-f enable快速扫描模式,
-p passive mode: 使用被动扫描的方式,不发送任何数据
扫描本地指定主机,如:netdiscover -r 192.168.146.0/24
主动发现,如:netdiscover -i eth0 -r 192.168.43.0/24
列出帮助信息,如:netdiscover –h
需要root权限
信息收集:Nmap网络扫描
https://blog.csdn.net/emaste_r/article/details/17840465
https://github.com/nmap/nmap
https://nmap.org/
https://svn.nmap.org/
请参见手册页(https://nmap.org/book/man.html)有关更多选项和示例
列出帮助信息,如:nmap –h/—help
目标规格:
可以传递主机名、IP地址、网络等。
Ex:scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL :从主机/网络列表输入
-iR :选择随机目标
—exclude 排除
—excludefile
主机发现:
-sL 扫描-简单地列出要扫描的目标
-sn:Ping扫描-禁用端口扫描
-Pn:将所有主机视为联机—跳过主机发现
-PS/PA/PU/PY[portlist]:对给定端口的TCP SYN/ACK、UDP或SCTP发现
-PE/PP/PM:ICMP echo、timestamp和netmask请求发现探测
-PO[协议列表]:IP协议Ping
-n/-R:从不执行DNS解析/始终解析[默认值:有时]
—dns-servers
—system-dns:使用操作系统的dns解析程序
—traceroute:跟踪到每个主机的跃点路径
扫描技术:
-sS/sT/sA/sW/sM:TCP SYN/Connect()/ACK/Window/Maimon scans
-sU:UDP扫描
-sN/sF/sX:TCP Null、FIN和Xmas扫描
—scanflags:自定义TCP扫描标志
-sI
-sY/sZ:SCTP INIT/COOKIE-ECHO扫描
-sO:IP协议扫描
-b
端口规格和扫描顺序:
-p:只扫描指定的端口,例如:-p22;-p1-65535;-pu:53111137,T:21-25,801398080,S:9
—exclude-ports:从扫描中排除指定的端口
-F:快速模式-扫描的端口数少于默认扫描
-r:连续扫描端口-不要随机化
—top-ports:扫描最常见的端口
—port-ratio :扫描比更常见的端口
服务/版本检测:
-sV:探测打开的端口以确定服务/版本信息
—version-intensity 版本强度:从0(灯光)设置为9(尝试所有探头)
—version-light:限制最可能的探头(强度2)
—version-all:尝试每个探头(强度9)
—version-trace 版本跟踪:显示详细的版本扫描活动(用于调试)
脚本扫描:
-sC:相当于—script=default
—script=:是以逗号分隔的目录、脚本文件或脚本类别
—script-args 脚本参数=
—script-args-file=filename:在文件中提供NSE脚本args
—script-trace 脚本跟踪:显示发送和接收的所有数据
—script-updatedb 脚本更新:更新脚本数据库。
—script help=:显示有关脚本的帮助,是以逗号分隔的脚本文件或脚本类别。
操作系统检测:
-O:启用操作系统检测
—osscan-limit:将OS检测限制在有希望的目标上
—osscan-guess:更积极地猜测操作系统
时间和性能:
花费的选项以秒为单位,或附加’ms’(毫秒),“s”(秒)、“m”(分钟)或“h”(小时)的值(例如30m)。
-T<0-5>:设置定时模板(越高速度越快)
—min-hostgroup/max-hostgroup 最小主机组/最大主机组:并行主机扫描组大小
—min-parallelism/max-parallelism 最小平行度/最大平行度:探针平行化
—min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout 最小rtt超时/最大rtt超时/初始rtt超时<时间>:指定探测往返时间。
—max-retries 最大重试次数:限制端口扫描探测重新传输的次数。
—-host-timeout 主机超时:在这段时间后放弃目标
—scan-delay/—max-scan-delay 扫描延迟/—最大扫描延迟<时间>:调整探头之间的延迟
—min-rate 最小速率:发送数据包的速度不低于每秒
—max-rate 最大速率:发送数据包的速度不超过每秒
防火墙/IDS规避和欺骗:
-f、 —mtu:片段数据包(可选w/给定mtu)
-D
-S
-e:使用指定的接口
-g/—源端口:使用给定的端口号
—proxies 代理
—data:向发送的数据包附加自定义负载
—data-string:将自定义ASCII字符串附加到已发送的数据包
—data-length 数据长度:向发送的数据包附加随机数据
—ip-options:使用指定的ip选项发送数据包
—ttl:设置IP生存时间字段
—spoof-mac 欺骗mac
—badsum:使用伪TCP/UDP/SCTP校验和发送数据包
输出:
-oN/-oX/-oS/-oG上:输出扫描为normal、XML、s |-oA:同时以三种主要格式输出
-v:增加详细级别(使用-vv或更多以获得更大效果)
-d:提高调试级别(使用-dd或更多以获得更好的效果)
—reason 原因:显示端口处于特定状态的原因
—open 打开:仅显示打开(或可能打开)的端口
—packet-trace 数据包跟踪:显示所有发送和接收的数据包
—iflist:打印主机接口和路由(用于调试)
—append 追加输出:追加到指定的输出文件,而不是重击指定的输出文件
—resume 恢复:恢复中止的扫描
—stylesheet 样式表
—webxml:引用样式表Nmap.Org网站更具可移植性的XML
—no-stylesheet 无样式表:防止XSL样式表与XML输出相关联
杂项:
-6:启用IPv6扫描
-A:启用操作系统检测、版本检测、脚本扫描和跟踪路由
—datadir:指定自定义Nmap数据文件位置
—send-eth/—send-ip:使用原始以太网帧或ip包发送
—privileged:假设用户是完全特权的
—unprivileged:假设用户缺少原始套接字权限
-V:打印版本号
案例:
仅列出指定网络上的每台主机,不发送任何报文到目标主机,如:nmap -sP 192.168.1.0/24
探测目标主机开放的端口(如-PS22,23,25,80),如:nmap -sL 192.168.1.0/24
使用UDP ping探测主机,如:nmap -PS 192.168.1.234
使用频率最高的扫描选项SYN扫描,又称为半开放扫描,如:nmap -PU 192.168.1.0/24
当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描,如:nmap -sS 192.168.1.0/24
UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口: nmap -sT 192.168.1.0/24
确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等),如: nmap -sU 192.168.1.0/24
探测目标主机的操作系统:nmap -sO 192.168.1.19 nmap -O 192.168.1.19 nmap -A 192.168.1.19
扫描所有的保留TCP端口,选项-v启用细节模式,如:nmap -v.
进行秘密SYN扫描“C类”网段,如:nmap -sS -O 主机IP/24
进行主机列举和TCP扫描,对象为B类:nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
对B类IP地址发起圣诞树扫描,如:nmap -sX -p22,53,110,143,4564 128.210.*.1-127
随机选择100000台主机扫描是否运行Web服务器(80端口),如:nmap -v -iR 100000 -P0 -p 80
扫描指定IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存,如:nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
进行DNS区域传输,以发现中的主机,然后将IP地址提供给:Nmaphost -l | cut -d -f 4 | nmap -v -iL -
单个端口和用连字符表示的端口范 围(如 1-1023),如:-p (只扫描指定的端口)
只扫描指定的IP范围,进行取样分析,如:nmap -v —randomizehosts-p 80 ._.2.3-5
nmap -T4 -sC -sV 192.168.1.8 -p 1-65535
nmap -v -A scanme.nmap.org
nmap -v -sn 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -Pn -p 80
需要ROOT权限
信息收集:recon-ng
www.practisec.com
www.blackhillsinfosec.com
https://github.com/lanmaster53/recon-ng
列出帮助信息,如:recon-ng –h或help
-w 为创建用户分区
-r 为执行一个以及写好的执行文件
查看模块用法,如:show info
查看所有有效的模块,如:show modules
刚打开会提示No modules enabled/installed 意思是没有安装模块,使用该命令安装所以marketplace install all
由于版本问题使用marketplace refresh该命令报错无法了解,所以在这无法演示操作。系统版本前面介绍也提及,查阅相关也只有到是版本问题,只能退回到5.0版本,也可能是kali源出问题导致,有解决方法的小伙伴欢迎来评论。
信息收集-主机存活:arping
https://blog.csdn.net/qq_40399982/article/details/111768015
https://github.com/ThomasHabets/arping
http://www.habets.pp.se/synscan/programs.php
帮助查看,如:arping —help/-h
ARPing 2.21, by Thomas Habets thomas@habets.se
usage: arping [ -0aAbdDeFpPqrRuUv ] [ -w ] [ -W ] [ -S
[ -T
[ -V ] [ -Q ]
Options:
-0 使用此选项以源IP地址0.0.0.0 ping,用这个当您尚未配置接口时,请注意可能无法应答MAC ping。这是-S的别名0.0.0.0.
-a Audiable ping。
-A 仅计数与请求的地址匹配的地址(这会破坏你做的大部分事情,只有当你同时发出许多声音时才有用,见arping扫描-网络.sh举个例子)
-b 类似于-0,但源广播源地址(255.255.255.255)。请注意,这可能会导致arping无法应答,因为它不是nor-对主人来说是不正常的行为。
-B 如果要地址255.255.255.255,请使用而不是主机。
-c 计数,只发送计数请求。
-C 计数,只等这么多回复,不管-c和-w。
-D 发现重复的答复。如果有来自的答案,则用1退出,两个不同的MAC地址。
-D 显示为感叹号,丢失的数据包显示为圆点。
-e 像-a,但没有回复时发出哔哔声。
-F 不要试图在接口名称上耍花招。(即使未给出开关,-i替代smartness)
-g 组setgid(),而不是nobody组。
-i 接口,使用指定的接口。
-m 型,用于传入数据包的时间戳类型。使用-vv时ping以列出可用的。
-q 不显示消息,错误消息除外。
-Q 要设置的Q pri 802.1p优先级。应与802.1Q(-V)一起使用,默认为0。
-r 原始输出:每个回复只显示MAC/IP地址。
-R 原始输出:与-R类似,但显示“另一个”,可以合并带-r。
-s MAC设置源MAC地址。你可能需要用-p来处理这个。
-S IP类似于-b和-0,但具有设置的源地址。请注意,这可能如果目标没有路由到,则获取arping未应答IP地址,如果您不拥有您正在使用的IP,您可能需要在接口上打开混杂模式(使用-p)。用这个交换机您可以找出主机没有tak时的IP地址-你可以自己设置一个IP地址。
-t MAC设置ping IP地址时要使用的目标MAC地址。当ping不响应的mac时,IP使用
-T 作为目标地址一种广播,但也可能是定向广播。例子:使用MAC-B和IP-B的知识来检查MAC-A的地址。$arping-S
-p 在接口上启用混杂模式,如果不启用,请使用此选项“拥有”您正在使用的MAC地址。
-P 发送ARP回复而不是请求。对-U有用。
-u Show index=received/sent,而不仅仅是index=received Ping Mac。
-U 发送未经请求的ARP。
-v 详细输出,使用两次可获得更多信息。
-V 要添加的V num 802.1Q标记,默认为无VLAN标记。
-w sec指定ping退出前的超时时间,无论有多少次,已发送或接收数据包。
-W 两次ping之间的等待时间为W秒。
局域网ARP欺诈断网,虚假MAC加网关IP,目标IP,如:arping -s 11:11:11:11:11:11 -s 192.168.0.1 192.168.0.2
案例这里提示是MAC报错,具体MAC怎么使用请查找相关内容,就不做过多解释。
信息收集-主机存活:fping
https://fping.org/
https://github.com/schweikert/fping
帮助查看,如:fping —help/-h
枚举IP,单个IP,如:fping IP1 IP2 IP3
IP文件列表,本地目录文件,如:fping -f filename
IP范围从IP1开始到IP2结束,如:fping -g IP1 IP2
循环ping ip,如:fping -l IP
https://blog.csdn.net/weixin_49071539/article/details/109800584?utm_term=kali中fping&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2sobaiduweb~default-0-109800584&spm=3001.4430
https://blog.csdn.net/qq_34355232/article/details/83305538?utm_term=kali中fping&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2sobaiduweb~default-2-83305538&spm=3001.4430
信息收集-主机存活:hping3
https://github.com/NullHypothesis/hping3
帮助查看,如:hping3 —help/-h
-c 1000 = 发送的数据包的数量。`
-d 120 = 发送到目标机器的每个数据包的大小。单位是字节 -S = 只发送 SYN 数据包。
-w 64 = TCP 窗口大小。
-p 80 = 目的地端口(80 是 WEB 端口)。你在这里可以使用仸何端口。
–flood = 尽可能快地发送数据包,丌需要考虑显示入站回复。洪水攻击模式。
常用洪水攻击命令,如:hping3 -c 1000 -d 120 -S -w 64 -p 80 —flood —rand-source www.bilibili.com
1.tcp syn flood 攻击
hping3 192.168.200.1 -p 631 -P —flood
2.udp flood 攻击
hping3 192.168.200.1 -p 631 -S —flood -2
3.icmp flood 攻击
hping3 192.168.200.1 -p 631 -S —flood -1
4.winnuke 攻击
hping3 -U 192.168.200.1 -p 139
5.smurf 攻击
hping3 -1 -a 192.168.0.1 192.168.0.255
一个简单的Smurf攻击原理就是:通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包来淹没受害主机的方式进行。 最终导致该网络的所有主机都对此ICMP应答请求作出答复,导致网络阻塞。它比ping of death洪水的流量高出1或2个数量级。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方崩溃。
第二种为复杂点的攻击,即伪装成被攻击的地址发送信息到被攻击地址的广播地址,如:hping3 -1 -a 192.168.0.1 192.168.0.255
Fraggle攻击即由smurf的ICMP协议的攻击改为由UDP协议的攻击,因此只需要修改一
个参数即可,将“-1”改为“-2”(我们UTM实现的是典型端口7模式,即: hping3 -2 192.168.0.255 -D 7)
6. land攻击
sudo hping3 -S -a 192.168.200.1 -p 3389(监听中的端口号) 192.168.200.1
Land 攻击即是伪装成被攻击地址发送请求信息给被攻击地址本身
以下情况是没有获取root权限
获取权限之后才是正常使用,希望大家别被权限给搞混了。
信息收集-主机存活/网络扫描:masscan
https://github.com/robertdavidgraham/masscan
帮助查看,如:masscan —help/-h
简单命令,如:masscan 192.168.0.1 -p 80
范围扫描,—rate 100 =每秒100个包,如:masscan 192.168.0.1-192.168.0.200 -p 22 —rate 1000000
多端口扫描,如:masscan 192.168.0.1 -p 80,139,443
保存输出,-oX #保存为XML格式,-oB #保存为二进制格式,如:masscan 192.168.0.1/24 -p 22 -oX 12
中断继续功能,如:masscan -c paused.conf
usage:
masscan -p80,8000-8100 10.0.0.0/8 —rate=10000
scan some web ports on 10.x.x.x at 10kpps
masscan —nmap
list those options that are compatible with nmap
masscan -p80 10.0.0.0/8 —banners -oB
save results of scan in binary format to
masscan —open —banners —readscan -oX
read binary scan results in and save them as xml in
- -iL filename:从文件读取输入。
- ┅filename:在命令行中排除网络。
- ┅:从文件中排除网络。
- -S:欺骗源IP。
- -v interface:详细输出。
- -vv interface:非常冗长的输出。
- -e interface:使用指定的接口。
- -e interface:使用指定的接口。
以下案例也是需要获取root权限
获取权限之后才算是正常扫描
信息收集-主机存活:thcping6 IPv6攻击
https://www.thc.org/
https://www.thc.org/thc-ipv6/已更换为下面
https://github.com/vanhauser-thc/thc-ipv6
帮助查看,如:atk6-thcping6 -h
Syntax: atk6-thcping6 [-EafqxO] [-e ethertype] [-H t:l:v] [-D t:l:v] [-F dst] [-e ethertype] [-L length] [-N nextheader] [-V version] [-t ttl] [-c class] [-l label] [-d size] [-S port|-U port|-T type -C code] interface src6 dst6 [srcmac [dstmac [data]]]
Options:
-x flood mode (doesn’t check for replies)
-w ms wait time between packets in ms (default: 1000, if -n not 1)
-a add a hop-by-hop header with router alert option.
-q add a hop-by-hop header with quickstart option.
-E send as ethertype IPv4
-e ethertype send as specified ethertype (hexadecimal!)
-H t:l:v add a hop-by-hop header with special content
-D t:l:v add a destination header with special content
-D “xxx” add a large destination header which fragments the packet
-f add a one-shot fragementation header
-F ipv6address use source routing to this final destination
-t ttl specify TTL (default: 255)
-c class specify a class (0-4095)
-l label specify a label (0-1048575)
-L length set fake payload length (0-65535)
-N nextheader set fake next header (0-255)
-V version set IP version (0-15)
-d data_size define the size of the ping data buffer
-O send TCP Fast Open cookie request option (needs -S)
-T number ICMPv6 type to send (default: 128 = ping)
-C number ICMPv6 code to send (default: 0)
-S port use a TCP SYN packet on the defined port instead of ping
-U port use a UDP packet on the defined port instead of ping
-n count how often to send the packet (default: 1)
-x 泛洪模式(不检查回复)
-w ms 数据包之间的等待时间,单位为ms(默认值:1000,如果-n不是1)
-a 添加带有路由器警报选项的逐跳标头。
-q 添加带有快速启动选项的逐跳标头。
-E 以以太网类型IPv4发送
-e ethertype按指定的ethertype发送(十六进制!)
-H t:l:v添加带有特殊内容的逐跳标头
-D t:l:v添加具有特殊内容的目的地标头
-D 添加一个大的目的地报头,该报头对数据包进行分段
-f 添加一个单次分段标题
-F ipv6地址使用源路由到此最终目的地
-t 指定ttl(默认值:255)
-c 类指定一个类(0-4095)
-l 标签指定标签(0-1048575)
-L 长度设置假有效负载长度(0-65535)
-N nextheader 设置假下一标题(0-255)
-V 版本设置IP版本(0-15)
-d 数据大小定义ping数据缓冲区的大小
-O发送TCP快速打开cookie请求选项(需要-S)
-T 要发送的ICMPv6类型(默认值:128=ping)
-C 要发送的C编号ICMPv6代码(默认值:0)
-S port 在定义的端口上使用TCP SYN数据包,而不是ping
-U port 在定义的端口上使用UDP数据包,而不是ping
-n 计数发送数据包的频率(默认值:1)
目前暂时没找相关教程或案例,日后会更新。
信息收集-主机存活/网络扫描:unicornscan 端口扫描
https://github.com/dneufeld/unicornscan
http://www.unicornscan.org/
https://sourceforge.net/projects/osace/lists/osace-users
帮助查看,如:unicornscan —help/-h
https://baijiahao.baidu.com/s?id=1600334448118119664&wfr=spider&for=pc
-b 设置断的[T]运输层, [N]Etwork层, 或到两个层[TN] -B 设置源端口
-c 过程重复-d 设置延时型 (数值;,有效的选项是1:tsc 2:gtod 3:sleep’)
-D 没有默认有效负载-e 启用当前列为参数的模块(输出和报告)
-E 处理非公开的反应-G有效载荷组(数字)为TCP / UDP类型负载的选择
-H在报告期解析主机名-i接口名字 -I快速方式;,立刻显示我们已经发现的东西
-j 忽视All, 复位TCP头验证序列号-L 等待回响的时间
-m 扫描模式,扫描是默认的TCP(SYN),U为UDP ,T为 TCP ,sf 为tcp 对于-mT你也可以指定TCP标志
-M 目录模块被发现在(默认是在/usr/lib/unicornscan/modules)
-o 要显示的答复的格式, 查看格式规范的man page -p 全局端口扫描,如果没有在目标选项中指定
-P 对于接收额外的PCAP筛选器字符串 -q 从0到255的隐蔽性价值 -Q 不要用输出到屏幕
-r 每第二个数据包 -R 重复数据包扫描N次 -s 随机数据包的源地址
-t 设置TTL对发送的数据包为62或6或r64-128 -T 设置TOS对发送的数据包
-u debug掩码 -w 把收到的数据包PCAP文件
-W 操作系统指纹 0=cisco(def) 1=openbsd 2=WindowsXP 3=p0fsendsyn 4=FreeBSD 5=nmap 6=linux 7:strangetcp
地址范围扫描,如:unicornscan -i eth1 -Ir 160 -E 192.168.1.0/24:1-4000 gateway:a
扫描UDP,如:unicornscan -mU www.bilibili.com
扫描端口,如:unicornscan -dtsc www.bilibili.com, unicornscan -bT -dtsc www.bilibili.com
这里需要获取root权限
权限获取后正常使用
信息收集-路由分析:netdiscover
https://github.com/alexxy/netdiscover
帮助查看,如:netdiscover —help/-h
-r 范围:扫描给定范围而不是自动扫描。192.168.6.0/24,/16,/8
-l 文件:扫描包含在给定文件中的范围列表
-p 被动模式:不发送任何东西,只嗅探
-m filter:扫描已知mac和主机名的列表
-F filter:自定义pcap filter表达式(默认值:“arp”)
-s time:每个ARP请求之间的睡眠时间(毫秒)
-c count:发送每个ARP请求的次数(对于丢包的网络)
-n node:用于扫描的最后一个源IP八位字节(从2到253)
-d 忽略自动扫描和快速模式的主配置文件
-f 启用快速模式扫描,节省大量时间,建议自动
-P print的结果格式适合由另一个程序解析,并在活动扫描后停止
-L 与-P相似,但在活动扫描完成后继续收听
-N 不打印页眉。仅在启用-P或-L时有效。
-S 在每个请求之间启用睡眠时间抑制(硬核模式)
用发:netdiscover [-i device] [-r range | -l file | -p] [-m file] [-F filter] [-s time] [-c count] [-n node] [-dfPLNS]
扫描本地网络设备,如:netdiscover -i eth0/wlan0
扫描网络主机,如:netdiscover -r 192.168.1.0/24 -i eth0
提示需要权限
给权限后正常
信息收集-路由分析:netmask
https://github.com/tlby/netmask
http://trap.mtview.ca.us/
帮助查看,如:netmask —help/-h
https://blog.csdn.net/It_Roo/article/details/105846181
https://blog.csdn.net/baidu_19348579/article/details/109449861
-v、 —版本打印版本号
-d、 —调试打印状态/进度信息
-s、 —标准输出地址/网络掩码对
-c、 —cidr输出cidr格式地址列表
-i、 —cisco输出cisco样式的地址列表
-r、 —范围输出ip地址范围
-x、 —十六进制输出地址/网络掩码对(十六进制)
-o、 —八进制输出地址/八进制网络掩码对
-b、 —二进制输出地址/网络掩码对
-n、 —节点禁用DNS地址查找
-f、 —文件将参数视为输入文件
查看版本ip地址对应信息,如:netmask -v IP开始:IP结束
cidr转换,如:netmask -c IP
查看地址和掩码,如:netmask -s IP
cisco反向掩码转换,如:netmask -i IP
查看ip地址范围,如:netmask -r IP
十六进制转换,如:netmask -x IP
八进制转换,如:netmask -o IP
二进制转换,如:netmask -b IP
dns查找,如:netmask -n IP
将参数视为输入文件,如:netmask -f IP
信息收集-情报分析:spiderfoot 黑盒渗透测试收集信息
https://www.spiderfoot.net/
https://github.com/smicallef/spiderfoot
帮助查看,如:spiderfoot —help/-h
官方使用文档
http://www.spiderfoot.net/documentation/#what-is-spiderfoot
-d 启用调试输出。
-IP:端口IP和监听端口。
-m mod1,mod2,模块调用。 -M 列出可用模块。
-s 扫描的目标。
-t type1,type2,要收集的事件类型(已选择模块自动)。
-T 列出可用的事件类型。
-o tab|csv|json 输出格式,选项卡是默认值。如果使用json,-q是 强制执行。
-H不打印字段标题,只打印数据。
-n 从数据中删除换行符。
-r 在tab/csv输出中包含源数据字段。
-S 要显示的最大数据长度。默认情况下,所有数据
-D 用于CSV输出的分隔符。默认值为,。
-f 筛选出其他未请求的事件类型用-t。
-F type1,type2,仅显示一组以逗号分隔的事件类型。
-x 严格模式。将只启用可以直接消耗你的目标,如果指定了-t只有这些事件才会被模块使用。这个覆盖-t和-m选项。
-q 禁用日志记录,这也会隐藏错误!
没有Python先安装
wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz
tar zxvf Python-3.9.2.tgz
cd Python3.9.2
安装好之后进入相关目录 cd /usr/share/spiderfoot 运行python3 sf.py测试
测试正常后启动Web UI模式 python3 sf.py -l 127.0.0.1:5001
然后打开127.0.0.1:5001访问,访问正常显示没有扫描,
开始正常cd /usr/share/spiderfoot
简单的DNS解析,如:python3 ./sf.py -m sfp_dnsresolve -s bilibili.com -q
使用python3 sfcli.py -s https://127.0.0.1:5001
输入help查看帮助
debug | 启用/禁用调试输出
clear | 清除屏幕
history |启用/禁用/列出命令历史记录
spool | 启用/禁用假脱机输出
shell | 执行shell命令
exit |退出SpiderFoot CLI(不会影响正在运行的扫描)
ping | 测试与SpiderFoot服务器的连接
modules | 列出可用模块
types |列出可用的数据类型
set | 设置变量和配置设置
scans | 列出所有已运行或正在运行的扫描
start | 开始新扫描
stop | 停止扫描
delete | 删除扫描.
scaninfo |扫描信息
data | 显示扫描结果的数据
summary | 扫描结果摘要
find |在扫描结果中搜索数据
query |对SpiderFoot SQLite数据库运行SQL
logs | 查看/监视扫描日志
信息收集-情报分析:spiderfoot-cli
如上同理
信息收集-情报分析:theharvester
https://github.com/laramies/theHarvester
http://www.edge-security.com/
安装:apt-get install theHarvester
帮助查看,如:theHarvester —help/-h
-d 要搜索的公司名称或域名。
-l 限位,-极限限制搜索结果的数量,默认值=500。
-S 从结果编号X开始,默认值为0。
-g 使用进行谷歌搜索。
-p 使用代理进行请求,在中输入代理代理人yaml.
-s 使用SHADAN查询发现的主机。—screenshot 截图获取解析域的截图指定输出
-v 通过DNS解析验证主机名并搜索虚拟主机。
-e 用于查找的DNS服务器。
-r 检查接管情况。
-n 启用dns服务器查找,默认为False。
-c、 —dns brute在域上执行dns蛮力。
-f FILENAME 将结果保存到HTML和/或XML文件。
-b 搜索源 baidu, bing, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo,exalead, github-code, google, hackertarget, hunter,intelx, linkedin, linkedin_links, netcraft,omnisint, otx, pentesttools, projectdiscovery,qwant, rapiddns, securityTrails, spyse, sublist3r,threatcrowd, threatminer, trello, twitter, urlscan,virustotal, yahoo
案例,如theHarvester -l 50 -d bilibili.com -b baidu -n
theHarvester -l 50 -d bilibili.com -b baidu -v
theHarvester -l 50 -d bilibili.com -b baidu -s
theHarvester -l 50 -d bilibili.com -b baidu -e IP
theHarvester -l 50 -d bilibili.com -b baidu -g
信息收集-DNS分析:dnsenum DNS枚举工具
https://github.com/fwaeytens/dnsenum
帮助查看,如:dnsenum —help/-h
—enum等效于—threads 5 -s 15 -w的快捷方式选项。
—noreverse 跳过反向查找操作
—dnsserver 使用此DNS服务器进行A,NS和MX查询
—nocolor 禁用ANSIColor输出。
—private 在文件域的末尾显示并保存私有IP_ips.txt文件.
—subfile 将所有有效子域写入此文件。
-t tcp和udp超时值(秒)(默认值:10秒)。
—threads 将执行不同查询的线程数。
-v Be verbose:显示所有进度和所有错误消息。
谷歌抓取选项:
-p、 —pages删除名称时要处理的google搜索页面数,默认值为5页,必须指定-s开关。
-s、 —scrape将从Google中刮取的最大子域数(默认值15)。
暴力选项:
-f、 —file从该文件读取子域以执行暴力。(优先于违约)dns.txt文件)
-u、 —更新用有效子域更新用-f开关指定的文件,
a 使用所有结果的(全部)更新,
g 只使用google抓取结果更新,
r 仅使用反向查找结果进行r更新。
z 仅使用区域传输结果进行更新。
-r、 —子域上的递归,强制所有发现的具有NS记录的子域。
WHOIS网络范围选项:
-d、 —delaywhois查询之间等待的最大秒数,该值是随机定义的,默认值:3s。
-w、 —whois在c类网络范围上执行whois查询。
警告:这可能会产生非常大的网络范围,执行反向查找需要大量时间。
反向查找选项:
-e、 —exclude
从反向查找结果中排除与regexp表达式匹配的PTR记录,这对无效主机名很有用。
输出选项:
-o—以XML格式输出output。可以在MagicTree中导入(www.gremwell.com)
案例,如:dnsenum bilibili.com -f /usr/share/dnsenum/dns.txt —dnsserver 114.114.114.114
不要进行反向查询(–noreverse)并将输出保存到bilibili.com域的文件(-o mydomain.xml)中
dnsenum —noreverse -o mydomain.xml bilibili.com
信息收集-DNS分析:dnsrecon
https://github.com/darkoperator/dnsrecon
帮助查看,如:dnsrecon —help/-h
-d, —domain目标域名
-r, —range 对给定格式的IP范围进行,格式为(开始IP-结束IP)或(范围/掩码).
-n, —name_server 指定一个域名服务器
-D, —dictionary 用来的子域名与主机名字典文件
-f 在保存结果时忽略枚举域查找结果
-t, —type 指定枚举类型:
std如果NS服务器的域传送失败,进行SOA、NS、A、AAAA、MX 和 SRV的枚举(必须使用-d参数指定域名才可使用此参数)
rvl 对给定的IP范围或CIDR进行反向查找(必须使用-r指定IP范围)
brt使用指定的字典域名与主机名
srv枚举SRV记录
axfr 对所有的NS服务器进行域传送测试
goo 对子域名和host进行Google搜索
snoop 对-D选项给出的文件进行DNS服务器缓存侦测
tld 删除给定域的TLD并测试在IANA中注册的所有的TLD
zonewalk使用NSEC记录进行DNSSEC域漫游
-a在标准枚举过程中进行空间域传送测试
-s在标准枚举过程中进行IP地址范围的反向查找
-g 在标准枚举的过程中进行Google枚举
-w 在标准枚举的过程中进行深度whois查询和IP反查
-z在标准枚举的过程中进行DNSSEC域漫游
—threads 指定线程数
—lifetime 指定查询等待的时间
—db 将结果存储为sqlite3数据库的文件
—xml 将结果存储为XML格式的文件
—iw即使发现了通配符也依然
-c, —csv CSV格式的文件
-j, —json json文件
-v 显示**的过程
案例,扫描域(-d bilibili.com),使用字典暴力破解主机名(-D /home/sample/桌面/dnsmap.txt),进行标准扫描(-t std),然后将输出保存到文件中(–xml dnsrecon.xml),如:dnsrecon -d bilibili.com -D /home/sample/桌面/dnsmap.txt -t std —xml dnsrecon.xml
案例2,对给定的IP范围进行域名反查,如:dnsrecon -r 110.130.120.1-110.130.120.5 -t rvl —lifetime 30 -v
信息收集-DNS分析:fierce
https://github.com/mschwager/fierce
帮助查看,如:fierce —help/-h
—domain 要测试的域名
—connect 尝试HTTP连接到非RFC1918主机
—广泛扫描发现的整个c类记录
—traverse 遍历扫描发现记录附近的IP,这不会进入相邻的c类
—search 搜索[搜索…]展开查找时筛选这些域
—range RANGE 范围扫描内部IP范围,使用cidr表示法
—delay DELAY 查找之间等待的延迟时间
—subdomains 子域子域[子域…] 使用这些子域
—subdomain-file 子域文件子域\文件使用此文件中指定的子域(每行一个)
—dns-servers DNS_SERVERS[ DNS_SERVERS]使用这些dns服务器进行反向查找
—dns-file DNS_FILE 使用此文件中指定的dns服务器进行反向查找(每行一个)
—tcp 使用tcp而不是UDP
案例,-dnsserver 缓存dns服务器 —domain 目标域名 -wordlist 字典文件,如:fierce -dnsserver 114.114.114.114 —domain bilibili.com -wordlist /usr/share/fierce/hosts.txt
案例2,如:fierce —domain bilibili.com
扫到很多,剩下就不做展示了。
信息收集-IDS/IPS识别:lbd
http://ge.mine.nu/
https://github.com/craig/ge.mine.nu
帮助查看,如:lbd —help/-h
-a 等于-v-t ANY
-A 类似于-A,但省略了RRSIG、NSEC和NSEC3
-c 为非IN数据指定查询类
-C 比较权威名称服务器上的SOA记录
-d 相当于-v
-l 使用AXFR列出域中的所有主机
-m 设置内存调试标志(trace | record | usage)
-N 更改根查找完成前允许的点数
-p 指定服务器上要查询的端口
-r 禁用递归处理
-R 指定UDP数据包的重试次数
-s SERVFAIL响应应该停止查询
-t 指定查询类型
-T 启用TCP/IP模式
-U 启用UDP模式
-v 启用详细输出
-V 打印版本号并退出
-w 指定永远等待答复
-W 指定等待回复的时间
-4 仅使用IPv4查询传输
-6 仅使用IPv6查询传输
案例,查看目标域是否正在使用负载均衡器,如:lbd bilibili.com 443 https -v -6
信息收集-IDS/IPS识别:wafw00f WAF识别
https://github.com/EnableSecurity/wafw00f
帮助查看,如:wafw00f —help/-h
-v、 启用详细,多个-v选项增加冗长
-a、 所有与签名匹配的WAF,不要停止测试第一个
-r、 不遵循3xx响应给出的重定向
-t 一个特定WAF的测试
-o 输出将输出写入csv、json或文本文件,具体取决于文件扩展名。对于stdout,指定-as文件名。
-i,—INPUT file=INPUT从文件中读取目标。输入格式可以是csv,json或文本。对于csv和json,“url”列名或元素是必需的。
-l 列出WAFW00F能够检测到的所有WAF
-p PROXY 代理使用HTTP代理执行请求,示例:http://hostname:8080, socks5://hostname:1080,http://user:pass@hostname:8080
-H 收割台,通过文本文件传递自定义标题以覆盖默认标题集。
-V 输出当前版本号
案例,识别服务端,如:wafw00f www.bilibili.com 需要root权限
案例2,检测目标网站是否存在防火墙,如:wafw00f -a www.bilibili.com
信息收集-SMB分析:enum4linux
https://labs.portcullis.co.uk/tools/enum4linux/
https://github.com/CiscoCXSecurity/enum4linux
https://gitlab.com/kalilinux/packages/enum4linux/
帮助查看,如:enum4linux —help/-h
-U 获取用户列表
-M 获取机器列表
-S 获取共享列表
-P 获取密码策略信息
-G 获取组和成员列表
-d 详细说明,适用于-U和-S
-u user 指定要使用的用户名(默认值“”)
-p pass 指定要使用的密码(默认值“”)
以下选项来自枚举.exe未实现:-L、-N、-D、-f
其他选项:
-a 所有简单枚举(-U-S-G-P-r-o-n-i)如果不提供任何其他选项,则启用此操作。
-r 通过RID循环枚举用户
-R 要枚举的R范围RID范围(默认值:500-5501000-1050,表示-R)
-K n 继续搜索rid,直到n个连续rid与用户名。小妖精摆脱范围结束于999999。有用的反对跟单信用证。
-l 通过LDAP 389/TCP(仅适用于DCs)获取一些(有限的)信息
-s 文件对共享名的暴力猜测
-k 存在于远程系统上的k个用户(默认值:administrator、guest、krbtgt、domain admins、root、bin、none),用于获取具有“lookupsid known\u username”的sid,使用逗号尝试多个用户:“-k admin,user1,user2”
-o 获取操作系统信息
-i 得到打印机信息
-w wrkg 手动指定工作组(通常自动找到)
-n 执行nmblookup(类似于nbtstat)
-v 冗长。显示正在运行的完整命令(net、rpcclient等)
案例,尝试从目标获取用户列表和操作系统信息,如:enum4linux -U -o 163.177.151.110
信息收集-SMB分析:nbtscan
https://github.com/scallywag/nbtscan
帮助查看,如:nbtscan —help/-h
-v 详细输出。打印接收到的所有名称,从每个主机
-d 转储数据包。打印整个包内容。
-e 以/etc/hosts格式输出。
-l 以lmhosts格式格式化输出,不能与-v、-s或-h选项一起使用。
-t 超时等待超时毫秒以响应,默认1000。
-b 带宽输出节流,减速输出,这样它就不再使用带宽bps了,在慢速链接上有用,因此OUGO查询
别被丢了。
-r 使用本地端口137进行扫描,Win95框,对此仅作出回应,在Unix上使用此选项需要是root。
-q 抑制横幅和错误消息,
-s 分隔符脚本友好输出,不打印列和记录标题,用分隔符分隔字段。
-h 打印服务的可读名称,只能与-v选项一起使用。
-m 重传重发的重发次数。默认0。
-f filename使用IP地址从文件名扫描,-f-使nbtscan从stdin获取IP地址,<扫描范围>要扫描的内容。可以是单个IP,如192.168.1.1或两种形式之一的地址范围:xxx.xxx.xxx.xxx/xx或xxx.xxx.xxx.xxx xxx。
案例,扫描整个C级网络,如:nbtscan -r 192.168.1.0/24
需要使用ROOT权限
案例2,扫描网络范围,如:nbtscan 192.168.1.25-137
案例3,扫描C级网络并且打印整理好结果,如:nbtscan -v -s : 192.168.1.0/24
信息收集-SMB分析:smbmap
https://github.com/ShawnDEvans/smbmap
帮助查看,如:smbmap —help/-h
-H 主机的主机IP
—host-file FILE 包含主机列表的主机文件
-u USERNAME 如果省略,则假定为空会话
-p 密码或NTLM哈希
-s SHARE 指定共享(默认C”
-d 域名(默认工作组)
-P SMB端口(默认445)
-v 返回远程主机的操作系统版本
—admin 只要报告如果用户是管理员
命令执行:
在指定主机上执行命令的选项
-x 执行命令,例如“ipconfig/all”
—mode CMDMODE 设置执行方法,wmi或psexec,默认值wmi
碎片驱动器搜索:用于搜索/枚举指定主机的共享的选项
-L 列出指定主机上的所有驱动器
-R[PATH] 递归列出目录和文件(无共享\PATH列出所有股份),例如“C$\Finance”
-r[PATH] 列出目录的内容,默认为列出所有股份的根,ex.-r’C$\文件和’设置\管理员\文档’
-A 一个模式定义一个自动下载匹配文件(需要-R或-R),不区分大小写,例如’(web |全局)(asax |配置)’
-g 使输出grep友好,与-r或-r一起使用(否则不输出任何内容)
—dir-only 目录只列出目录,ommit文件。
—no-write-check 无写检查跳过检查以查看驱动器是否授予写访问权限。
-q 安静详细输出。只显示你拥有的股份读取或写入,并在执行搜索(-a)。
—depth 深度将目录树遍历到特定深度。默认值为5。
—exclude 排除共享[共享…]从搜索和列表中排除共享,例如。—exclude ADMIN$ C$’
文件内容搜索:用于搜索文件内容的选项(必须以根用户身份运行)
-F 模式文件内容搜索,-F’[Pp]assword’(需要执行命令的管理员权限,以及PowerShell在受害者主机上)
—search-path 指定要搜索的驱动器/路径(与-F一起使用,默认C:\Users),例如“D:\HR”
—search-timeout 指定文件之前的超时(以秒为单位)搜索工作被杀了,默认值为300秒。
文件系统交互:与指定主机的文件系统交互的选项
—download 下载路径从远程系统下载文件,例如C$\temp\密码.txt’
—upload SRC DST 将文件上载到远程系统ex。’/tmp/payload.exe C$\temp\payload.exe’
—delete 删除文件路径删除远程文件,例如 ‘C$\temp\msf.exe’
—skip 跳过删除文件确认提示
案例,如:smbmap -u jsmith -p password1 -d workgroup -H 192.168.0.1
案例2,如:smbmap -u jsmith -p ‘aad3b435b51404eeaad3b435b51404ee:da76f2c4c96028b7a6111aef4a50a94d’ -H 172.16.0.20
案例3,如:smbmap -u ‘apadmin’ -p ‘asdf1234!’ -d ACME -h 10.1.3.30 -x ‘net group “Domain Admins” /domain’
信息收集-SMTP分析:swaks 邮件发送
http://www.jetmore.org/john/code/swaks/
https://github.com/roman-rybalko/swaks
https://github.com/jetmore/swaks
帮助查看,如:swaks —help/-h
-t —to //收件人邮箱;
-f —from //发件人邮箱;
—ehlo qq.com //伪造邮件的ehlo头,即发件人邮箱的域名,提供身法认证;
—body “https://goobe.io“ //引号内为邮件正文;
-h —helo/header “Subject:hello” //邮件头信息,Subject为邮件标题;
—data email.txt //将正常邮件内容保存成TXT文件,再作为正常邮件发出;
–timeout 设置超时,单位是秒,默认30s
–protocol 设定协议(未测试)
-d –data 设定邮件内容,\n
—verison 显示版本信息
输出内容的含义:
“===”:swaks输出的信息行
““:swaks中产生的错误
” ->”:发送到目标的预期行(无错误)
“<- “:服务器的预期回复(无错误)
“<”:服务器返回的错误信息
案例,测试邮箱连通,如:swaks —to xxx@qq.com
案例2,发送邮件,如:swaks -t 收件箱 -f 发件箱 —body 邮件内容 —header “Subject:hello” —server smtp.qq.com -p 25 -au 发件箱 -ap SMTP的密码
< 503 Error: need EHLO and AUTH first ! 腾讯邮箱出现503错误需要开启权限但是案例测试的邮箱均为开启SMTP依旧提示,可能需要两端开启SMTP服务。
网易126测试
< 553 Local user only,126 smtp8,NORpCgD36rBfuFVgZu3oFw—.12268S2 1616230496 这里提示是仅限本地用户,也就是说只能找@126.com发送。
以下是更换了126邮箱
< 550 User not found: qwe@126.com 提示没有该用户账号
以下是根据提示要求做出相关内容修改
<* 550 ??? 这里直接给报乱码提示,但是目标邮箱用户并没有收到该邮件。
经过查找发现是原来忘记开启SMTP服务,这个需要2个账号都开启,单方面开启也会出现,开启之后出现以下报错。
< 553 authentication is required,126 smtp10,NuRpCgDnSWj_vVVgHtvMlw—.25124S2 1616231935 这里提示是需要身份验证,也是需要-au 发件箱 -ap SMTP的密码,这一句的加入。
添加身份验证后发送邮件成功,我们可以看到邮件的TO内容以及这邮件发送的内容
而最后提示是250 Mail OK queued as smtp9,NeRpCgBXa028v1VgqHVRTg—.8770S2 1616232381
这里意思是邮件正常,也就是发送成功了。
案例3,发送附件,如:swaks —to 收件箱 —from 发件箱 —body 邮件内容 —header “Subject:hello” —attach example.doc —server smtp.qq.com -p 25 -au 发件箱 -ap SMTP密码
案例4,伪造邮件,如:swaks —data ./email.txt —to 收件箱 —from 发件箱 —server smtp.qq.com -p 25 -au 发件箱 -ap SMTP密码
信息收集-SNMP分析:onesixtyone
https://github.com/trailofbits/onesixtyone
帮助查看,如:onesixtyone —help/-h
-c 要尝试的社区名称文件
-i 目标主机的文件
-o 输出日志
-p 指定备用目标SNMP端口
-d 调试模式,使用两次以获取更多信息
-s 短模式,仅打印IP地址
-w n 在发送数据包之间等待n毫秒(1/1000秒)(默认值10)
-q 安静模式,不打印日志到标准输出,与-l一起使用,主机是IPv4地址或IPv4地址和网络掩码,默认社区名称为:public private
案例,常规使用,如:onesixtyone -d IP主机/24 public
案例2,扫描文件加打印结果,如:onesixtyone -c dict.txt -i hosts -o my.log -w 100
案例3,安静模式下获取指定端口的详细内容并且输出日志,如:onesixtyone -d -q IP主机名 public -p 80 -q -o my.log -w 100
信息收集-SNMP分析:snmp-check 服务器枚举
http://www.nothink.org/codes/snmpcheck/index.php
https://gitlab.com/kalilinux/packages/snmpcheck
帮助查看,如:snmp-check —help/-h
-p —port:SNMP端口。默认端口是161;
-c —community:SNMP社区。默认值为public;
-v —version:SNMP版本(1,2c)。默认为1;
-w —write:检测写访问(通过枚举分开操作);
-d —disable_tcp:禁用TCP连接枚举!
-t —timeout:超时(以秒为单位)。默认值是5;
-r —retries:请求重试。默认为1;
-i —info:显示脚本版本;
案例,使用公共SNMP社区字符串扫描目标主机,如:snmp-check 163.177.151.110 -c public -t 5 -w -d -p 80
信息收集-SSL分析:ssldump
http://adulau.github.io/ssldump/
https://github.com/adulau/ssldump
帮助查看,如:ssldump —help/-h
-r dumpfile
-i 接口
-l sslkeylogfile
-w outpcapfile
-k 密钥文件
-p 密码
-vtaTnsAxVNde
目前暂时没找相关教程或案例,日后会更新。
信息收集-SSL分析:sslh
https://www.rutschle.net/tech/sslh/README.html
https://github.com/yrutschle/sslh
https://pkg.kali.org/pkg/sslh
帮助查看,如:sslh —help/-h
-v 冗长
-V 版本
-f 前景
-n 数字输出
-u 指定要在哪个用户下运行
-C 指定要在哪个chroot路径下运行
—transparent 表现为透明代理
-F 使用配置文件(警告:在-F和文件名之间没有空格!)
—on-timeout 超时时连接到指定的地址(默认:ssh地址)
-t 连接到—on-timeout地址之前要等待的秒数。
-p 要监听的地址和端口,可以多次用于绑定到多个地址。
—[ssh,ssl,…]:从相应协议连接连接的位置。
-P PID文件。
-i 作为inetd服务运行。
目前暂时没找相关教程或案例,日后会更新。
信息收集-SSL分析:sslscan
https://github.com/DinoTools/sslscan
git clone https://github.com/rbsec/sslscan
进入目录cd sslscan,编译安装make static
提示文件缺少
sudo apt-get install ruby
sudo apt-get install zlib1g
sudo apt-get install zlib1g.dev
帮助查看,如:sslscan —help/-h
sslscan [options] [host:port | host]
—targets= 包含要检查的主机列表的文件,主机可以提供端口(主机:端口)
—sni name= sni的主机名
—ipv4,-4 仅使用ipv4
—ipv6,-6 仅使用ipv6
—show-certificate 显示证书显示完整的证书信息
—show-client-cas 显示客户端CA显示TLS客户端身份验证的受信任CA
—no-check-certificate 无检查证书不警告弱证书算法或密钥
—ocsp 请求来自服务器的ocsp响应
—pk= 包含私钥的文件或PKCS#12文件,包含私钥/证书对
—pkpass= 私钥或PKCS#12文件的密码
—certs= 包含PEM/ASN1格式的客户端证书的文件
—ssl2 仅检查SSLv2是否启用
—ssl3 仅检查SSLv3是否启用
—tls10 仅检查TLSv1.0密码
—tls11 仅检查TLSv1.1密码
—tls12 仅检查TLSv1.2密码
—tls13 仅检查TLSv1.3密码
—tlsall 仅检查TLS密码(所有版本)
—show-ciphers 显示密码显示支持的客户端密码
—show-cipher-ids 显示密码ID显示密码ID
—show-times 显示时间以毫秒为单位显示握手时间
—no-cipher-details 无密码详细信息禁用EC曲线名称和EDH/RSA密钥长度输出
—no-ciphersuites 不检查支持的CipherSuite
—no-compression 无压缩不检查TLS压缩(犯罪)
—no-fallback无回退不检查TLS回退SCSV
—no-groups 没有组不枚举密钥交换组
—no heartbleed 不检查OpenSSL heartbleed(CVE-2014-0160)
—no-renegotiation 无重新协商不检查TLS重新协商
—show-sigs 显示sigs枚举签名算法
—starttls-ftp starttls ftp设置
—starttls-imap imap starttls设置
—irc-starttls irc starttls设置
—starttls-ldap ldap starttls设置
—starttls-mysql starttls mysql安装程序
—starttls-pop3 pop3的starttls设置
—starttls-psql starttls PostgreSQL安装程序
—starttls-smtp starttls smtp安装程序
—starttls-xmpp xmpp starttls设置
—xmpp-server 使用服务器到服务器的xmpp握手
—rdp 在开始扫描前发送rdp前导码
—bug 支持SSL实现bug解决方法
—no-colour 无彩色输出
—sleep= 连接请求之间的暂停,默认设置为禁用
—timeout= 设置套接字超时,默认值为3s
—verbose 详细显示详细输出
—xml= 将结果输出到xml文件,用于标准输出
案例,检查主机TLS密码带端口,如:sslscan —tlasll wwwbilibili.com:80
信息收集-SSL分析:sslyze
https://github.com/iSECPartners/sslyze
https://gitlab.com/kalilinux/packages/sslyze
帮助查看,如:sslyze —help/-h
—regular 常规HTTPS扫描;快捷方式为—sslv2—sslv3—tlsv1—tlsv1_1—tlsv1_2—tlsv1_3—reneg—resum—certinfo—hide_rejected_ciphers—compression—heartbleed—openssl_ccs—fallback—robot—elliptic_curves
信任存储选项:
—update_trust_stores 更新SSLyze使用的默认信任存储,这个最新商店将从https://github.com/nabla-c0d3/trust_stores_observatory。此选项无效意味着要单独使用,并将沉默任何提供给SSLyze的其他命令行选项。
客户端证书选项:
—cert=cert客户端证书链文件名,证书必须采用PEM格式,并且必须从主体的客户端证书,后跟中级CA证书(如适用)
—key=KEY 客户端私钥文件名。
—keyform=KEYFORM 客户端私钥格式。DER或PEM(默认)。
—pass=KEYPASS 客户端私钥密码短语。
输入和输出选项:
—json_out=JSON_FILE 将扫描结果作为JSON文档写入文件JSON文件。如果JSON文件设置为“-”,则JSON输出将改为打印到标准输出。生成的JSON文件是ScanResult对象的序列化版本在SSLyze的pythonapi中描述:节点和属性将是相同的。看到了https://nabla-c0d3.github.io/sslyze/documentation/可用-扫描-命令.html更多细节。
—targets_in=TARGETS_IN从文件中读取要扫描的目标列表,你进来了。它应该包含一个主机:端口线路
—quiet 不向stdout输出任何内容;在使用—json_out
连接选项:
—slow_connection 慢速连接大大减少了并发连接的数量由SSLyze发起。这会使扫描变慢但是如果你的主机服务器速度慢,或者服务器无法处理许多并发连接。如果需要,请启用此选项有很多超时或错误。
—https_tunnel=HTTPS_TUNNEL通过隧道将所有流量传输到目标服务器HTTP连接代理。HTTP\ U隧道应该是代理的URL:’http://USER:PW@HOST:PORT/'。对于代理需要身份验证时,只能使用基本身份验证支持。
—starttls=STARTTLS 连接到时执行StartTLS握手目标服务器。StartTLS应该是其中之一: auto,smtp, xmpp, xmpp_server, pop3, imap, ftp, ldap, rdp, postgres。“auto”选项将导致SSLyze从为每个目标服务器提供的端口号。
—xmpp_to=XMPP_TO STARTTLS xmpp的可选设置。XMPP\u TO应该是要放在的“to”属性中的主机名XMPP流。默认值是服务器的主机名。
—sni=SNI使用服务器名称指示来指定要使用的主机名连接到。只会影响TLS 1.0+连接。
扫描命令:
—tlsv1 测试服务器是否支持TLS 1.0。
—tlsv1_1 测试服务器是否支持TLS 1.1。
—tlsv1_2 测试服务器是否支持TLS 1.2
—tlsv1_3 测试服务器是否支持TLS 1.3
—sslv3 测试服务器是否支持ssl3.0。
—sslv2 测试服务器是否支持ssl2.0。
—robot 测试服务器的robot漏洞。
—early_data 早期数据测试TLS1.3早期数据支持的服务器。
—certinfo 检索和分析服务器的证书以验证其有效性。
—certinfo_ca_file=CERTINFO_CA_FILE PEM中包含根证书的文件的路径将用于验证服务器的证书。
—resum_rate在以下情况下测量服务器的会话恢复率正在尝试使用会话ID进行100次恢复。
—http_headers 头测试服务器是否存在与安全相关的HTTP头。
—openssl_ccs 为opensslcs注入测试服务器漏洞(CVE-2014-0224)。
—elliptic_curves 椭圆曲线测试服务器支持的椭圆曲线。
—compression 压缩测试服务器的TLS压缩支持,它可以被用来实施犯罪袭击。
—heartbleed 为OpenSSL heartbleed测试服务器脆弱性。
—reneg 重新测试服务器的不安全TLS重新协商和客户发起的重新谈判。
—resum 使用恢复测试服务器以获得会话恢复支持会话ID和TLS票证。
—fallback 回退测试TLS_FALLBACK_SCSV 机制的服务器,防止降级攻击。
案例,检测是否支持TLS1.0/1.1/1.2/1.3,检测是否支持ssl2.0/3.0,检测robot漏洞,为opensslcs注入测试服务器漏洞,为OpenSSL heartbleed测试服务器脆弱性,回退测试机制防止降级攻击,如:sslyze —tlsv1 —tlsv1_1 —tlsv1_2 —tlsv1_3 —sslv3 —sslv2 —robot —openssl_ccs —compression —heartbleed —resum —fallback bilibili.com