• XSS.stack #1 – первый литературный журнал от юзеров форума

nmap xmp txt

Leonard123

RAID-массив
Пользователь
Регистрация
26.04.2021
Сообщения
75
Реакции
5
Подскажите как правильно извлекать определенные данные из вывода nmap, к примеру просканил список ip,нужны ip у которых rdp без nla, как сделать так что бы из списка извлечь только эти адреса?
 
Подскажите как правильно извлекать определенные данные из вывода nmap, к примеру просканил список ip,нужны ip у которых rdp без nla, как сделать так что бы из списка извлечь только эти адреса?
покури доки NSE и попроси нейронку написать под свои нужды. Ладно, уговорил, вместо тебя спрошу:
"нужен NSE для nmap который будет находить rdp без nla"

Вот пример скрипта NSE для Nmap, который ищет RDP-серверы без Network Level Authentication (NLA): rdp-non-nla.nse
Код:
local nmap = require "nmap"
local shortport = require "shortport"
local stdnse = require "stdnse"
local string = require "string"

description = [[
Определяет, включена ли Network Level Authentication (NLA) на RDP (порт 3389).
Скрипт отправляет запрос RDP Negotiation Request и проверяет, требует ли сервер CredSSP (NLA).
]]

---
-- @usage
-- nmap -p 3389 --script rdp-non-nla <target>
--
-- @output
-- 3389/tcp open  ms-wbt-server
-- |_rdp-non-nla: RDP без NLA обнаружен!
--
author = "Ваше имя"
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
categories = {"safe", "discovery"}

portrule = shortport.port_or_service(3389, "ms-wbt-server")

local function check_rdp_nla(host, port)
    local socket = nmap.new_socket()
    socket:set_timeout(3000)
    
    local status, err = socket:connect(host, port)
    if not status then
        stdnse.debug1("Не удалось подключиться к %s:%d - %s", host.targetname or host.ip, port.number, err)
        return nil
    end

    -- RDP Negotiation Request
    local rdp_request = "\x03\x00\x00\x13\x0e\xe0\x00\x00\x00\x00\x00\x00\x01\x00\x08\x00\x03\x00\x00\x00"
    
    status, err = socket:send(rdp_request)
    if not status then
        stdnse.debug1("Ошибка отправки пакета: %s", err)
        socket:close()
        return nil
    end

    local response, err = socket:receive()
    socket:close()

    if not response then
        stdnse.debug1("Ошибка получения ответа: %s", err)
        return nil
    end

    -- Проверяем, есть ли флаг NLA (требует CredSSP)
    if string.find(response, "\x03\x00\x00\x0b\x06\xd0\x00\x00\x12\x34\x00") then
        return "RDP требует NLA (NLA включен)"
    else
        return "RDP без NLA обнаружен!"
    end
end

action = function(host, port)
    local result = check_rdp_nla(host, port)
    if result then
        return result
    end
end

Как использовать

  1. Сохраните скрипт как rdp-non-nla.nse
  2. Запустите Nmap с этим скриптом
Код:
nmap -p 3389 --script ./rdp-non-nla.nse <target>

Если RDP без NLA найден, вы получите сообщение:
Код:
3389/tcp open  ms-wbt-server
|_rdp-non-nla: RDP без NLA обнаружен!
Этот скрипт проверяет, требует ли сервер CredSSP (NLA) при установке соединения. Если сервер не запрашивает этот метод аутентификации, значит, NLA отключен.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх