Nmap网络安全审计技术揭秘
nmap的功能:
1、主机发现
2、端口扫描
3、服务及版本检测
4、操作系统检测
nmap网址:
nmap扫描基本操作:
nmap -sn 192.168.0.1
对连续范围内主机进行扫描:
nmap -sn 192.168.10.1-200
对整个子网进行扫描:
nmap -sn 192.168.10.0/24
对多个不连续的主机进行扫描:
nmap -sn 192.168.10.6 (空格)192.168.10.7
扫描排除指定的目标
nmap -sn 192.168.10.0/24 --exclude 192.168.10.6
对一个文本文件中的地址列表进行扫描
nmap -sn -iL list.txt
活跃主机发现技术(arp、tcp、udp)
一、基于ARP协议的活跃主机发现技术
nmap -sn -PR 192.168.10.1
二、基于ICMP协议的活跃主机发现技术
1、ICMP响应请求和应答
nmap -sn -PE 192.168.10.1
2、ICMP时间戳请求和应答
nmap -sn -PP 192.168.10.1
3、ICMP地址掩码请求和应答
nmap -sn -PM 192.168.10.1
三、基于TCP协议的活跃主机发现技术(指定常见端口)
1、TCP-syn扫描
nmap -sn -PS 192.168.1.1(默认端口为80)
nmap -sn -PS 100 192.168.1.1(指定端口为100)
2、TCP-ack扫描
nmap -sn -PA 192.168.1.1(默认端口为80)
nmap -sn -PA 2300 192.168.10.1 (指定端口为2300)
四、基于UDP协议的活跃主机发现技术(指定关闭的端口)
nmap -sn -PU 192.168.10.1
nmap -sn -PU 23234 192.168.10.1 (指定端口为23234)
五、基于SCTP协议的活跃主机发现技术
nmap -sn -PY 192.168.10.1
nmap -sn -PY 1234 192.168.10.1 (指定端口为1234)
六、使用IP协议进行主机地址发现
nmap -sP -PO 192.168.10.1
端口扫描技术
1、使用syn扫描
nmap -sS 192.168.10.1
2、使用connect扫描
nmap -sT 192.168.10.153
3、使用UDP扫描
nmap -sU 192.168.10.1
4、TCP FIN扫描
nmap -sF 192.168.10.1
5、NULL扫描
nmap -sN 192.168.10.1
6、Xmas Tree扫描
nmap -sX 192.168.10.5
7、idle扫描
nmap -Pn -p- -sI 192.168.10.5 www.baidu.com
指定端口扫描
1、常见的端口扫描
namp -F 192.168.10.1
2、指定某端口
nmap -p 80 192.168.10.5 (指定扫描80端口)
远程操作系统与服务检测技术
1、操作系统扫描
nmap -O 192.168.10.5
2、扫描一个子网的操作系统
nmap -O 192.168.10.0/24
3、同时进行操作系统和服务发现
namp -A 192.168.10.1
4、服务探测、版本探测
namp -sV 192.168.10.1
图形化界面zenmap
1、图形化配置命令(常用)
配置----新的配置或命令
2、扫描结果对比、管理
工具-----结果对比
保存扫描、格式有.xml和.nmap
nmap伪装技术
1、分段发送数据包
nmap -f 192.168.10.1
2、使用指定的MTU
nmap --mtu 80 192.168.10.1
3、使用诱饵主机扫描(隐藏IP)
nmap -D RND:10 192.168.10.1 (使用随机10个地址发送数据包)
4、源端口欺骗
nmap -g 8888 192.168.10.1(使用端口8888进行通信)
5、发送报文添加随机数据
nmap -data-length 25 192.168.10.1
6、设置TTL的值
nmap -ttl 123 192.168.10.1
7、使用mac地址欺骗
nmap -spoof-mac 0 192.168.10.1
防范措施:
1、使用morph、IP personality(linux系统)
nmap格式化输出
1、保存为文本
nmap -oN "c:\\test.txt" 192.168.10.1
2、保存为XML
nmap -oX "c:\\test.xml" 192.168.10.1
3、保存为grep
nmap -oG "c:\\test.grep" 192.168.10.1
nse-----nmap的脚本引擎
1、使用默认的脚本扫描
nmap -sV -sC -O 192.168.10.1(-sC)
2、枚举出目标web服务器支持的服务
nmap -p 80,443 -script http-methods 192.168.10.1(使用http-methods脚本探测目标80,443端口)
3、传递参数,修改客户端
nmap -p 80 -script http-methods -script-args http.useragent="Mozilla 42" 192.168.10.1
NSE常见脚本应用
1、信息收集类
nmap -p 80,443 -script http-methods 192.168.10.1
2、高级主机发现类
nmap -script broadcast-ping(默认为所在网段子网)
nmap -script=targets-sniffer(默认为所在网段子网)
3、密码审计类脚本
nmap -p 3306 --packet-trace --script mysql-brute 192.168.10.1(发现弱口令的mysql数据库)
nmap -p 25 script smtp-brute 192.168.10.1(检测smtp服务密码是否强壮)
4、漏洞扫描类脚本
nmap -p 80 --script http-slowloris --max-parallelism 300 192.168.10.1
(审计目标web服务器能否抵御slowloris Dos攻击)
nmap -sV --version-all --script ssl-poodle -p 443 192.168.10.1
(审计目标服务器是否存在poodle漏洞)
NSE脚本的基本格式
一个完整的NSE包括如下几部分
1、description 描述部分(注释)
2、categories 该NSE所在的分类
3、action 脚本执行的具体内容
4、rule 描述脚本执行的规则
Nmap脚本的编辑器
附件:halcyon_ide
在java环境下
java -jar Halcyon_IDE_vx.x.xjar
即可运行
建立第一个nse脚本
调用
nmap -p 80 -script 2021 192.168.10.1
nmap的脚本引擎是NSE
路径为:
executable: C:\Program Files (x86)\Nmap\nmap.exe
script: C:\Program Files (x86)\Nmap\scripts\
library: C:\Program Files (x86)\Nmap\nselib\
使用的规则是:
在后面输入 --script (选择脚本的名字、或者是脚本的存放路径)
常用的脚本:
1、信息收集类
--script http-methods
2、高级主机发现类
--script broadcast-ping
3、密码审计类
--script mysql-brute
--script smtp-brute
4、漏洞扫描类
--script http-slowloris
--script ssl-poodle -p 443(poodle漏洞)
NSE脚本的基本格式:
1、description字段(描述)
2、categories字段(分类)
3、action字段(脚本执行的内容、重点)
4、rule字段(触发脚本的条件、重点)
第九章:lua语言
lua table类型的数据:
一:table 表的创建
在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是 { },用来创建一个空表。
local tab_1 = { }
也可以在表里添加一些数据,直接初始化表。
郑州","深圳","武汉" }
二:table 表的索引
Lua 中的表(table)其实是一个"关联数组",数组的索引可以是数字或者是字符串。
local tab_3={}
字符串作为索引时
tab_3["key"]="value"
数字作为索引时
index=10
tab_3[index]=30
for k, v in pairs(tab_3) do
print(k.." : "..v)
end
三:table 表的长度
table 不会固定长度大小,有新数据添加时 table 长度会自动增长,没初始的 table 都是 nil。
第十章:NSE的API
1、host table(lua table类型的数据)
目标的主机信息
2、port table(lua table类型的数据)
目标的主机信息
第十一章:NSE的库文件
常见的库shortport、http、stdNSE、OpenSSL。
第十二章:密码审计脚本的开发
brute库文件、unpwdb库文件、Creds库文件
第十三章:漏洞审计与渗透脚本的编写
Nessus、OpenVas
RealVNC的渗透脚本(RealVNC认证绕过漏洞)
Heartbleed(SSL安全套接层)
vulns库文件
第十四章:NSE的并发执行
Done