1.存活主机扫描
常用sP ,如果对面禁ping就不行.亲测用ping扫描主机存活中最快的
.Pn,就是其他协议进行扫描,可以避免被防火墙发现。默认情况下会使用协议1,2,4
.PS。PA。PR 、PU
n不反向解析 R反向解析 --system-dns 使用系统域名解析器
.sL是列表扫描,扫描的是主机所在网段,可以加掩码明确
T0-T5速度,默认T2,建议要放IDS就用T1
接下来说不是用ping进行扫描的
sS:对于学校禁ping测试,扫描不出,Pn可以
-sN畸形包扫描,-sM另一种好用的
-sI可以找代理机器进行扫描,需要指定端口。例如-sI www.shiep.edu.cn:80 www.baidu.com
-b 可以连接到FTP服务器进行扫描(少)
2.目标服务版本及端口扫描
接下来是针对目的地址的端口服务以及版本扫描
-sV 再用-A就可以看到对应的系统版本(配合Pn可以减少时间)
(很慢)
使用--allports可以扫描除了9100TCP的的端口
-- version-intensity 设置扫描强度即使用哪种探测报文,普通扫秒 用1 。越高精确度越高时间越长
--version-light很不错效果在使用sV时。(80多秒减少到40多秒)
对应的有--version-all重量级扫描。使用情况不是很良好
如果要进行精确版本扫描秒建议用--version-trace。很好用
-sR 用RPC扫描(多配合其他扫描选项,比如sS,虽然sS本来就很耗时间。但可以补上RPC的服务端口)
-O 操作系统检测。OK的(但你知道吗配合- A更好用。和sV一样哦)
配合-O: --osscan-limit 指定目标进行操作系统检测
--ossan-guss推测系统并识别
3.优化扫描任务
设置扫描组大小,--min-hostgroup。和sP一起用并没有多大改观
设置探测报文的并行度,--min-parallelism调整对同一目标发送报文并行度,保证不会被扫down掉。准确也会高但是会慢。
设置报文超时, --min-rtt-timeout 探测报文超时 一般不小于100ms ,不大于1000ms
设置主机超时时间 --host-timeout 100ms -1000ms
设置报文发送间隔 --scan-delay 1s
4.避免防火墙
1.(重要)-f 多数网站会禁止TCP扫描所以可以用-f去拆分。以学校为例
但结果不是美好的
2.--mtu(最大传输单元)设置TCP中的偏移量大小
nmap --mtu (不行)
3.欺骗
-D 具体:namp -D RND:11 192.168.4.186 用从11个假IP随机选一个。时间会变慢
-sI 源地址欺骗
--source-port 源端口欺骗 53
--data-length指定发包长度 30
--randowmize-hosts 目标注意随机排队
--spoof-mac mac欺骗 参数0代表随机生成一个
5.信息收集
1.目标信息收集脚本
namp --script ip-geolocation-* 目标
这里可以获得ip 的物理经纬度,但是需要预置数据库,或者goole-api
这里我使用的是goole-api,在脚本里找到上述脚本,讲下面的api添加进去就行了
2.whois-* 用于查看域名信息,注册人。邮箱等
可以看到信息来自阿里云,和用在线whois大致相同。邮箱是阿里的所以屏蔽掉了。
3.http-email-harvest 我的nmap并没有这个脚本。官网上也只搜索到关于google-email的脚本。
4.hostmap-iP2hosts 查看该ip上的网站。亲测不好用,官网也有类似脚本可测
5.dns-brute DNS主机名收集 不错的工具。能配合traceroute、email完成域信息的收集
6.一些关于smb的漏洞扫描脚本。端口需要指定。http-stored-xss 你懂得
7.snmp-win32-services通过snmp列举服务和账户信息
实验时没有找到snmp开启的目标。但是如果回复为unknown的服务不妨试试
8.http信息头收集。 http-headers
6.数据库探测
1.MySQL列举数据库
所有的后续脚本都会依赖于次=此mysql-brute,所以这个脚本没有找到默认账户,就不行