0x01 nmap简介
Nmap(网络映射器)是一款用于网络发现和安全审计的网络安全工具,它是自由软件。--维基百科
nmap的执行原理如下:
nmap的目录结构如下:
扫描的端口状态如下:
•Open(开放的): 应用程序正在这个端口上监听连接。•losed(关闭的): 端口对探测做出了响应,但是现在没有应用程序在监听这个端口。•Filtered(过滤的): 端口没有对探测做出响应。同时告诉我们探针可能被一些过滤器(防火墙)终止了。•Unfiltered(未被过滤的):端口对探测做出了响应,但是Nmap无法确定它们是关闭还是开放。•Open/Filtered: 端口被过滤或者是开放的,Nmap无法做出判断。•Closed/Filtered: 端口被过滤或者是关闭的,Nmap无法做出判断。
TCP标志位:
•SYN(synchronous建立联机)•ACK(acknowledgement 确认)•PSH(push传送)•FIN(finish结束)•RST(reset重置)•URG(urgent紧急)
在nmap中提供了大量的脚本文件供我们使用,脚本为lua编写的nse文件,常见的脚本用法如下:
-sC: 使通用scripts生效--script: 指定自己的脚本文件--script-trace: 查看脚本执行过程-A: 同时进行版本探测和脚本扫描为了不进行主机发现也不进行端口扫描,直接使用自定义的脚本探测。可以使用下面的选项:-Pn -sn --script--script-args和--script-args-file,指定脚本要读入的参数nmap --script snmp-sysdescr --script-args snmpcommunity=admin example.comnmap --script default,safe 加载default和safe类脚本。
关于nmap脚本的分类可以查看官方文档:https://nmap.org/book/nse-usage.html#nse-categories
根据脚本的运行阶段不同分为四类:Prerule scripts、Host scripts、Service scripts、Postrule scripts。
0x02 lua语言
Lua 教程 | 菜鸟教程[1]
0x03 nse脚本编写
nse基本格式
我们这里使用Halcyon这个IDE先来随便打开一个nse看一下: