Detecting Vulnerable IIS-FTP Hosts Using Nmap *..::Key-m0rt::..*

Iniciado por ..::key-m0rt::.., Marzo 24, 2010, 12:36:15 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Marzo 24, 2010, 12:36:15 PM Ultima modificación: Mayo 16, 2010, 10:02:16 AM por ..::key-m0rt::..
Hola , aqui les dejo un script que ojala les guste y tengan el gesto de decir " gracias "

este script realiza lo siguiente :

* Comprueba si se  permiten sesiones anónimas.
* Comprueba si el servidor FTP detectado ejecuta Microsoft ftpd.
* Comprueba si el comando MKDIR está permitido (esto parece ser requerido por el exploit)


Si todas estas condiciones se cumplen, el script finaliza con un mensaje de advertencia. tener  en cuenta que mi script sólo informará de  servidores que podrían ser vulnerables. Por otro lado, se ejecuta un servidor con un usuario anónimo capaz de crear directorios es una violación de seguridad importante que debe ser fijado con independencia de la vulnerabilidad recién descubierta , quedo calro ? para que luego no digais que no explico     xDDDD

bueno y p ara utilizar la secuencia de comandos de Nmap, copiarlo en su repositoty script local (algo así como / usr / local / share / nmap / scripts /) y reconstruir su índice de secuencias de comandos:

codigo :
Código: php
# nmap --script-updatedb


luego, el script se ejecuta en todos los servidores FTP detectados (utilizando la opción "-Sc" el argumento) o se puede especificar sólo una secuencia de comandos a ejecutar (para la velocidad y tal )  :

codigo: 
Código: php
# nmap -p 21 -sV --script=IIS-FTP 10.0.0.7

Starting Nmap 4.76 ( http://nmap.org ) at 2009-09-01 01:15 CEST
Interesting ports on test-win (10.0.0.7):
PORT   STATE SERVICE VERSION
21/tcp open  ftp     Microsoft ftpd
|_ IIS FTP: IIS Server allow anonymous and mkdir (potentially vulnerable)
Service Info: OS: Windows


y el script es el siguente:

Código: php
--- Checks if a Microsoft FTP server allows anonymous logins + MKDIR
--- If yes, could be vulnerable to the following exploit:
--- http://seclists.org/fulldisclosure/2009/Aug/0443.html
-- @output
-- |_ FTP: IIS Server allow anonymous and mkdir (potentially vulnerable)
--
-- @args ftpuser Alternate user to initiate the FTP session
--       ftppass Alternate password to initiate the FTP session
--       If no arguments are passed, anonymous FTP session is probed

id="IIS FTP"
description="Checks to see if a Microsoft ISS FTP server allows anonymous logins and MKDIR (based on anonftp.nse by team I.S.W  <[email protected]>)"
author = "sharon,keymort  <UNIVERSIDAD COMPUTENSE DE MADRID>"
license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
categories = {"default", "auth", "intrusive"}

require "shortport"
local stdnse = require "stdnse"
---
-- portrule = shortport.port_or_service(21, "ftp")
portrule = function(host,port)
if (port.number == 21 and
    (port.state == "open" or port.state == "open|filtered"))
then
return true
else
return false
end
end

---
-- Connects to the ftp server and checks if the server allows
-- anonymous logins or any credentials passed as arguments
action = function(host, port)
local socket = nmap.new_socket()
local result
local status = true
local isAnon = false

local err_catch = function()
socket:close()
end

local try = nmap.new_try(err_catch())

socket:set_timeout(5000)
try(socket:connect(host.ip, port.number, port.protocol))

if (type(nmap.registry.args.ftpuser) == "string" and nmap.registry.args.ftpuser ~= "" and
    type(nmap.registry.args.ftppass) == "string" and nmap.registry.args.ftppass ~= "")
then
local struser = "USER " .. nmap.registry.args.ftpuser .. "\r\n"
local strpass = "PASS " .. nmap.registry.args.ftppass .. "\r\n"
try(socket:send(struser))
try(socket:send(strpass))
else
try(socket:send("USER anonymous\r\n"))
try(socket:send("PASS IEUser@\r\n"))
end

        while status do
status, result = socket:receive_lines(1);
if string.match(result, "^230") then
try(socket:send("RSTATUS\r\n"))
while status do
status, result = socket:receive_lines(1);
if string.match(result, "^211-Microsoft FTP Service") then
try(socket:send("MKD w00t\r\n"))
while status do
status, result = socket:receive_lines(1);
if string.match(result, "^257") then
isVuln=true
try(socket:send("RMDIR w00t\r\n"))
break;
end
end
end
end
end
end

socket:close()

if(isVuln) then
return "IIS Server allow anonymous and mkdir (potentially vulnerable)"
end
end





suena muy interesante ese script gracias
<h1>PerverthsO</h1>

este tutorial ya lo havia visto en otra parte con...
el mundo es una variable facil inicias facil terminas

=_=

los tutos que escribo pongo que son mios y  en este no veo que yo alla dicho nada...
mas aportes y menos vigilar a la peña si quieres leer tutos mios solo echa un vistazo al foro .
el motivo por el que no pongo la fuente  ni el autor en ese tuto es por que a pasado de mano en mano desde hace mas de 3 años autor desconocido .

contento  ;)  saludos

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
tener  en cuenta que mi script

mmm, vale que no sea tuyo pero por esa frase y sin tener fuente se puede deducir que es tuyo.

Buen script, gracias.

tener en cuenta que mi escript , lo dice el que escribio el escript , o esque quieres que balla modificando el tuto original ?
orden en la sala , foro hacker  , no foro de menos..  ;)

menos pajas mentales y mas aportes  ;)

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
tener en cuenta que mi escript , lo dice el que escribio el escript , o esque quieres que balla modificando el tuto original ?
orden en la sala , foro hacker  , no foro de menos..  ;)

menos pajas mentales y mas aportes  ;)

Es por eso amigo que es mejor poner fuente, no te lo digo como queja sino como comentario constructivo, se que no eres de los que se quedan con el trabajo de otros ;)