前言:
- 最近在写一个需求,需要使用 nmap 获取指纹信息的同时,获取 http 信息的响应体(如果是 http 协议的情况下)
并行并非不可,但是nmap本身就有对http协议的探测
nmapnse_8">nmap的nse脚本
nmap 在 -sV 的命令下,本身就会对协议进行识别,namp 通过 nmap-service-probes文件中的指纹库,对协议进行判断
我们可以利用利用 nmap 对 书写nse脚本 实现减少计算,和减少不比较多同步操作
local http = require "http"
local shortport = require "shortport"
local stdnse = require "stdnse"description = [[
Fetches the HTTP response body.
]]author = "Your Name"
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
categories = {"discovery", "safe"}portrule = shortport.httpaction = function(host, port)local path = "/"local response = http.get(host, port, path)if response and response.body thenreturn stdnse.format_output(true, response.body)elsereturn "No response body received"end
动作函数:
action:定义了脚本的主要逻辑。
path:设置为根路径 /。
response:使用 http.get 函数发送 HTTP GET 请求并获取响应。
检查 response 和 response.body 是否存在,如果存在则返回响应体,否则返回 “No response body received”。
美中不足的是不能直接复用nmap的探测报文,而是需要手动获取一次