1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-09 14:11:29 +00:00

Adds http-aspnet-debug to detect ASP.NET applications with debugging enabled.

This commit is contained in:
paulino
2016-06-18 14:51:03 +00:00
parent b012b84a8e
commit 540494a92d
3 changed files with 65 additions and 0 deletions

View File

@@ -1,5 +1,8 @@
# Nmap Changelog ($Id$); -*-text-*- # Nmap Changelog ($Id$); -*-text-*-
o [NSE] Added http-aspnet-debug to detect ASP.NET applications with
debugging enabled. Script submitted by Josh Amishav-Zlatin. [Paulino Calderon]
o Nmap can now make full use of Npcap, the Nmap Project's packet sniffing o Nmap can now make full use of Npcap, the Nmap Project's packet sniffing
library for Windows. Most notably, this enables SYN scan and OS detection library for Windows. Most notably, this enables SYN scan and OS detection
against localhost. [Yang Luo] against localhost. [Yang Luo]

View File

@@ -0,0 +1,60 @@
local http = require "http"
local shortport = require "shortport"
local stdnse = require "stdnse"
description = [[
Determines if a ASP.NET application has debugging enabled using a HTTP DEBUG request.
The HTTP DEBUG verb is used within ASP.NET applications to start/stop remote
debugging sessions. The script sends a 'stop-debug' command to determine the
application's current configuration state but access to RPC services is required
to interact with the debugging session. The request does not change the
application debugging configuration.
]]
---
-- @usage nmap --script http-debug <target>
-- @usage nmap --script http-debug --script-args http-aspnet-debug.path=/path <target>
--
-- @args http-debug.path Path to URI. Default: /
--
-- @output
-- 80/tcp open http syn-ack
-- | http-aspnet-debug:
-- |_ status: DEBUG is enabled
--
-- @xmloutput
-- <elem key="status">DEBUG is enabled</elem>
---
author = "Josh Amishav-Zlatin"
license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
categories = { "vuln", "discovery" }
portrule = shortport.http
local function generate_http_debug_req(host, port, path)
local status = false
local options = {header={}}
options["header"]["Command"] = "stop-debug"
options["redirect_ok"] = 2
-- send DEBUG request with stop-debug command
local req = http.generic_request(host, port, "DEBUG", path, options)
stdnse.debug1("Response body: %s", req.body )
if req.body:match("OK") then
status = true
end
return status
end
action = function(host, port)
local output = stdnse.output_table()
local path = stdnse.get_script_args(SCRIPT_NAME .. ".path") or "/"
local status = generate_http_debug_req(host, port, path)
if status then
output.status = "DEBUG is enabled"
return output
end
end

View File

@@ -140,6 +140,7 @@ Entry { filename = "http-adobe-coldfusion-apsa1301.nse", categories = { "exploit
Entry { filename = "http-affiliate-id.nse", categories = { "discovery", "safe", } } Entry { filename = "http-affiliate-id.nse", categories = { "discovery", "safe", } }
Entry { filename = "http-apache-negotiation.nse", categories = { "discovery", "safe", } } Entry { filename = "http-apache-negotiation.nse", categories = { "discovery", "safe", } }
Entry { filename = "http-apache-server-status.nse", categories = { "discovery", "safe", } } Entry { filename = "http-apache-server-status.nse", categories = { "discovery", "safe", } }
Entry { filename = "http-aspnet-debug.nse", categories = { "discovery", "vuln", } }
Entry { filename = "http-auth-finder.nse", categories = { "discovery", "safe", } } Entry { filename = "http-auth-finder.nse", categories = { "discovery", "safe", } }
Entry { filename = "http-auth.nse", categories = { "auth", "default", "safe", } } Entry { filename = "http-auth.nse", categories = { "auth", "default", "safe", } }
Entry { filename = "http-avaya-ipoffice-users.nse", categories = { "exploit", "vuln", } } Entry { filename = "http-avaya-ipoffice-users.nse", categories = { "exploit", "vuln", } }
@@ -186,6 +187,7 @@ Entry { filename = "http-icloud-findmyiphone.nse", categories = { "discovery", "
Entry { filename = "http-icloud-sendmsg.nse", categories = { "discovery", "external", "safe", } } Entry { filename = "http-icloud-sendmsg.nse", categories = { "discovery", "external", "safe", } }
Entry { filename = "http-iis-short-name-brute.nse", categories = { "brute", "intrusive", } } Entry { filename = "http-iis-short-name-brute.nse", categories = { "brute", "intrusive", } }
Entry { filename = "http-iis-webdav-vuln.nse", categories = { "intrusive", "vuln", } } Entry { filename = "http-iis-webdav-vuln.nse", categories = { "intrusive", "vuln", } }
Entry { filename = "http-internal-ip-disclosure.nse", categories = { "discovery", "safe", "vuln", } }
Entry { filename = "http-joomla-brute.nse", categories = { "brute", "intrusive", } } Entry { filename = "http-joomla-brute.nse", categories = { "brute", "intrusive", } }
Entry { filename = "http-litespeed-sourcecode-download.nse", categories = { "exploit", "intrusive", "vuln", } } Entry { filename = "http-litespeed-sourcecode-download.nse", categories = { "exploit", "intrusive", "vuln", } }
Entry { filename = "http-ls.nse", categories = { "default", "discovery", "safe", } } Entry { filename = "http-ls.nse", categories = { "default", "discovery", "safe", } }