Nmap-scripts-wordpress-version

Aus Xinux Wiki
Version vom 27. Februar 2023, 15:36 Uhr von Mario.zimmermann (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „<syntaxhighlight lang=lua> --Usage-- --nmap -Pn --script wordpress-version.nse xinux.de --nmap -Pn --script wordpress-version.nse -p 443 xinux.de local http =…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
--Usage--
--nmap -Pn --script wordpress-version.nse xinux.de
--nmap -Pn --script wordpress-version.nse -p 443 xinux.de

local http = require "http"
local stdNse = require "stdnse"

local description = [[This Script Search for the Wordpress Version of the Target Website]]
local author = "Xinux"
local license = "Same as Nmap --See http://nmap.org/book/man-legal.html"
local categories = {"unsafe", "discovery"}

function portrule(host, port)
    --Die 'action' Funktion wird aufgerufen, wenn die Ports den status 'open' & das protocol 'tcp' und entweder die Portnummer '80' oder '443' haben--
    return port.state == 'open' and port.protocol == 'tcp' and 443 == port.number or 80 == port.number
end

function action(host, port)
    --Mit dem Lua Modul http können wir die HTML Elemente der Seite, ähnlich wie mit Curl herunterladen--
    local resp = http.get(host, port, "/")
    --In dem Heruntergeladenen HTML Code suchen wur nun das Elemente das die Wordpress version enthält--
    local wordpress_version_with_html_tag = string.match(resp.body, '<meta name="generator" content="WordPress [0-9].[0-9].[0-9]" />')
    --Wenn in dem HTML Code ein Element mit Versionsangabe gefunden wird, nutzen wir die gleiche Funktion 'match' um die Versionsnummer herauszufiltern--
    --Wenn keine Versionsangabe gefunden wir, gibt das Script aus, dass keine Version gefunden wurde
    if (wordpress_version_with_html_tag ~= nil) then
        wordpress_version = string.match(wordpress_version_with_html_tag, '[0-9].[0-9].[0-9]')
    else
        wordpress_version = "No Wordpress Version found"
    end

    return stdNse.format_output(true, string.format("Wordpress version ==> %s", wordpress_version))
end