5,nmap,2.Lua语言,nmap NSE中的API,host table(表)

书名诸神之眼NMAP 学习笔记

20年6月9日8:17

Lua文件I/O操作

5,nmap,2.Lua语言,nmap NSE中的API,host table(表)_第1张图片

打开文件,读一行和关闭文件
代码
函数io.open("文件名","打开方式")打开文件
函数read()读取文件第一行
函数close()关闭文件还可以格式io.close(a)

#!/usr/bin/lua
--读的方式打开文件
a=io.open("a.txt","r")

--输出文件第一行
print(a:read())

--关闭打开的文件
a:close()

a.txt文件内容
5,nmap,2.Lua语言,nmap NSE中的API,host table(表)_第2张图片
执行结果
在这里插入图片描述

Lua协同程序

  1. 协同程序和线程类似拥有独立的堆栈、独立的局部变量、独立的指令指针,同时又与其他协同程序共享全局变量和其他大部分东西
  2. 线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作运行。在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只有在明确要求挂起的时候才会被挂起。协同程序有点类似同步的多线程,在等待同一个线程锁的几个线程有点类似协同。

Lua协同程序语法

  1. coroutine.create()
    这个方法用来创建一个coroutine,将要进行多线程的函数作为参数,返回值是一个coroutine。
  2. coroutine.resume()
    这个方法用来完成coroutine重启操作,与create配合使用。
  3. coroutine.yield()
    这个方法用来实现coroutine的挂起操作,将coroutine设置为挂起状态。
  4. coroutine.status()
    这个方法用来查看coroutine的状态。这里coroutine的状态一共有dead、suspend、running三种。
  5. coroutine.wrap()
    这个方法创建一个coroutine,用于返回一个函数,一旦调用这个函数,就进入协同程序,与create功能相同。
  6. coroutine.running()这个方法返回正在运行的coroutine。一个coroutine就是一个线程,当使用running时,返回的是当前正在运行的协同程序的线程号。

nmap NSE中的API

Nmap中的引擎会向脚本传递两个类型的参数hostport
host 的table(表)存放这目标主机信息
port 的table(表)存放这目标端口信息
他和port和host详细程度取决,扫描过程中选项选项的设定,例如,如果在扫描时没有指定要对主机的操作系统进行扫描的话,那么host.os的内容就是空的

1host table

  1. host.os字段
    里面存放这目标主机的类型
    这个字段中包括了一个我们常见的操作系统信息的数组,涉及操作系统的供应商、所属系列、具体型号、设备类型、CPE等。如果某个字段没有被定义的话,这个字段可以为nil


    代码
    我保存到了名为wode.nse

    local shortport = require "shortport"
    
    description = [[]]
    
    author = "kali"
    license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
    categories = {"default"}
    
    
    portrule = function( host, port )
    	return true
    end
    
    
    action = function(host, port)
    
    
    	 return host.os
    
    end
    

    上面的代码的意思是return true(真)执行return host.os返回host.os
    wode.nse移动到/usr/share/nmap/scripts/文件下面
    复制进去要更新一下nmap脚本的数据库
    命令

    nmap --script-updatedb
    

    结果
    用上面的脚本

    命令

    sudo nmap --script wode 192.168.43.244 -O -p 3389
    

    5,nmap,2.Lua语言,nmap NSE中的API,host table(表)_第3张图片

  2. host.ip字段
    里面包含了的IP地址

    代码
    我保存到了名为wode.nse

    local shortport = require "shortport"
    
    description = [[]]
    
    author = "root"
    
    license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
    
    categories = {"default"}
    
    
    
    
    
    portrule = function(host, port)
    	return true
    end
    
    action = function(host, port)
    
    	return host.ip
    
    end
    

    wode.nse移动到/usr/share/nmap/scripts/文件下面
    复制进去要更新一下nmap脚本的数据库
    命令

    nmap --script-updatedb
    

    结果
    用上面的脚本命令

    sudo nmap --script wode www.baidu.com -p 80
    

    5,nmap,2.Lua语言,nmap NSE中的API,host table(表)_第4张图片

  3. host.name字段
    里面包含了目标的反向DNS域名

    代码
    我保存到了名为wode.nse

    local shortport = require "shortport"
    
    description = [[]]
    
    author = "root"
    
    license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
    
    categories = {"default"}
    
    
    
    
    
    portrule = function(host, port)
    	return true
    end
    
    action = function(host, port)
    
    	return host.name
    
    end
    

    wode.nse移动到/usr/share/nmap/scripts/文件下面
    复制进去要更新一下nmap脚本的数据库
    命令

    nmap --script-updatedb
    

    结果
    不知道怎么回事好像不能检查到

  4. host.targetname字段
    里面包含了主机的在命令中的命令

  5. host.directly_connected字段‘

    字段是一个布尔值true和false,表示目标计算机是否与我们同在一个子网

    代码
    我保存到了名为wode.nse

    local shortport = require "shortport"
    
    description = [[]]
    
    author = "root"
    
    license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
    
    categories = {"default"}
    
    
    
    
    
    portrule = function(host, port)
    	return true
    end
    
    action = function(host, port)
    
    	return host.directly_connected
    
    end
    

    wode.nse移动到/usr/share/nmap/scripts/文件下面
    复制进去要更新一下nmap脚本的数据库
    命令

    nmap --script-updatedb
    

    结果1是true,这个我扫描的是我内网
    命令

    sudo nmap --script wode 192.168.43.221 -p 80
    

    5,nmap,2.Lua语言,nmap NSE中的API,host table(表)_第5张图片
    结果2是false我扫描的是百度,不是在我内网的
    命令

    sudo nmap --script wode www.baidu.com -p 80
    

    5,nmap,2.Lua语言,nmap NSE中的API,host table(表)_第6张图片

  6. host.mac_addr字段
    这个字段是目标的MAC地址,注意:要是扫描的不是同一个网段的话可能就没有效果,应为扫描外网是通用IP寻址的

    代码
    我保存到了名为wode.nse

    local shortport = require "shortport"
    
    description = [[]]
    
    author = "root"
    
    license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
    
    categories = {"default"}
    
    
    
    
    
    portrule = function(host, port)
    	return true
    end
    
    action = function(host, port)
    
    	return host.mac_addr
    
    end
    

    wode.nse移动到/usr/share/nmap/scripts/文件下面
    复制进去要更新一下nmap脚本的数据库
    命令

    nmap --script-updatedb
    

    结果
    命令

    sudo nmap --script wode 192.168.43.221 -p 80
    

    5,nmap,2.Lua语言,nmap NSE中的API,host table(表)_第7张图片

  7. host.mac_addr_src

    段中是使用的计算机的MAC地址

    代码
    我保存到了名为wode.nse

    local shortport = require "shortport"
    
    description = [[]]
    
    author = "root"
    
    license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
    
    categories = {"default"}
    
    
    
    
    
    portrule = function(host, port)
    	return true
    end
    
    action = function(host, port)
    
    	return host.mac_addr_src
    
    end
    

    wode.nse移动到/usr/share/nmap/scripts/文件下面
    复制进去要更新一下nmap脚本的数据库
    命令

    nmap --script-updatedb
    

    结果
    命令

    sudo nmap --script wode 192.168.43.1
    

    5,nmap,2.Lua语言,nmap NSE中的API,host table(表)_第8张图片

  8. host.interface_mtu
    字段中是网络中的MTU值

    代码
    我保存到了名为wode.nse

    local shortport = require "shortport"
    
    description = [[]]
    
    author = "root"
    
    license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
    
    categories = {"default"}
    
    
    
    
    
    portrule = function(host, port)
    	return true
    end
    
    action = function(host, port)
    
    	return host.interface_mtu
    
    end
    

    wode.nse移动到/usr/share/nmap/scripts/文件下面
    复制进去要更新一下nmap脚本的数据库
    命令

    nmap --script-updatedb
    

    结果
    命令

    sudo nmap --script wode 192.168.43.1
    

    5,nmap,2.Lua语言,nmap NSE中的API,host table(表)_第9张图片

  9. host.bin_ip字段
    字段中的内容是使用4字节字符串表示的IPv4目标地址以及使用16字节字符串来表示IPv6目标地址

    代码
    我保存到了名为wode.nse

    local shortport = require "shortport"
    
    description = [[]]
    
    author = "root"
    
    license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
    
    categories = {"default"}
    
    
    
    
    
    portrule = function(host, port)
    	return true
    end
    
    action = function(host, port)
    
    	return host.bin_ip
    
    end
    

    wode.nse移动到/usr/share/nmap/scripts/文件下面
    复制进去要更新一下nmap脚本的数据库
    命令

    nmap --script-updatedb
    

    结果
    命令

    sudo nmap --script wode 192.168.31.22 -p 3389
    

    5,nmap,2.Lua语言,nmap NSE中的API,host table(表)_第10张图片

  10. host.bin_ip_src

    里面字段中包含两个地址,一个是使用IPv4格式表示所使用的计算机地址,另一个是用IPv6格式表示所使用的计算机地址

    代码
    我保存到了名为wode.nse

    local shortport = require "shortport"
    
    description = [[]]
    
    author = "root"
    
    license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
    
    categories = {"default"}
    
    
    
    
    
    portrule = function(host, port)
    	return true
    end
    
    action = function(host, port)
    
    	return host.bin_ip_src
    end
    

    wode.nse移动到/usr/share/nmap/scripts/文件下面
    复制进去要更新一下nmap脚本的数据库
    命令

    nmap --script-updatedb
    

    结果
    5,nmap,2.Lua语言,nmap NSE中的API,host table(表)_第11张图片

  11. host.times
    里面字段中的内容是目标的时序数据

    代码
    我保存到了名为wode.nse

    local shortport = require "shortport"
    
    description = [[]]
    
    author = "root"
    
    license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
    
    categories = {"default"}
    
    
    
    
    
    portrule = function(host, port)
    	return true
    end
    
    action = function(host, port)
    
    	return host.times
    
    end
    

    wode.nse移动到/usr/share/nmap/scripts/文件下面
    复制进去要更新一下nmap脚本的数据库
    命令

    nmap --script-updatedb
    

    结果5,nmap,2.Lua语言,nmap NSE中的API,host table(表)_第12张图片

  12. host.traceroute
    字段中的数据只有指定–traceroute才会出现,
    --traceroute参数是跟踪路由用于检测您的计算机数据包从路由器到ISP的路由到互联网直至其特定目的地

    代码
    我保存到了名为wode.nse

    local shortport = require "shortport"
    
    description = [[]]
    
    author = "root"
    
    license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
    
    categories = {"default"}
    
    
    
    
    
    portrule = function(host, port)
    	return true
    end
    
    action = function(host, port)
    
    	return host.traceroute
    
    end
    

    wode.nse移动到/usr/share/nmap/scripts/文件下面
    复制进去要更新一下nmap脚本的数据库
    命令

    nmap --script-updatedb
    

    结果
    5,nmap,2.Lua语言,nmap NSE中的API,host table(表)_第13张图片

QQ2737977997

你可能感兴趣的:(nmap,nmap)