Nmap网络安全审计技术揭秘


学习笔记-Nmap网络安全审计技术揭秘_端口扫描



nmap的功能:


1、主机发现

2、端口扫描

3、服务及版本检测

4、操作系统检测


nmap网址:


https://nmap.org/


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、图形化配置命令(常用)


配置----新的配置或命令


学习笔记-Nmap网络安全审计技术揭秘_端口扫描_02




学习笔记-Nmap网络安全审计技术揭秘_端口扫描_03




2、扫描结果对比、管理


工具-----结果对比

学习笔记-Nmap网络安全审计技术揭秘_数据_04




学习笔记-Nmap网络安全审计技术揭秘_库文件_05




保存扫描、格式有.xml和.nmap


学习笔记-Nmap网络安全审计技术揭秘_库文件_06




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网络安全审计技术揭秘_端口扫描_07



Nmap脚本的编辑器


附件:halcyon_ide

网址:https://halcyon-ide.org/


在java环境下

java -jar Halcyon_IDE_vx.x.xjar

即可运行


建立第一个nse脚本


学习笔记-Nmap网络安全审计技术揭秘_数据_08



调用


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\


学习笔记-Nmap网络安全审计技术揭秘_端口扫描_09



学习笔记-Nmap网络安全审计技术揭秘_库文件_10




使用的规则是:


在后面输入 --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字段(触发脚本的条件、重点)


学习笔记-Nmap网络安全审计技术揭秘_端口扫描_11



第九章: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