mardi 3 décembre 2013

St Nicolas va m'apporter ... un malware

On a reçu un super Malware cette année (faut dire qu'on est super sage) , d'après les preuves rassemblées jusqu'ici il semblerait qu'il s'agisse d'Asprox.
Histoire de mesurer l'ampleur des dégâts, j'ai écrit un script nmap pour détecter les machines infectées. L’algorithme de détection est simple comme le Malware démarre un serveur sur port 80 en TCP qui fait semblant d'être un serveur http ... On envoie donc une requête mal formée et du coup il renvoie du binaire pensant qu'il a affaire à son C&C... c'est pas sans faille (il pourrait y avoir des service légitimes écoutant sur le port 80 et n'utilisant pas le protocole HTTP) mais ça suffit pour l'instant.

description = [[
Performs a bogus GET request for the root folder ("/")
Normal http server will reply with an http status 200 or error 
Asporx will reply with around 100 byte of binary.
]]

author = "Jérémie Banier"

license = "Same as Nmap--See http://nmap.org/book/man-legal.html"

categories = {"discovery", "safe"}

require "shortport"
require "http"

portrule = shortport.http

action = function(host, port)
        local result, socket, try, catch
        socket = nmap.new_socket()

        catch = function()
                socket:close()
        end

        try = nmap.new_try(catch)
        try(socket:connect(host, port))
        try(socket:send("HTTP 1.1 GET/\n\n"))
        result = try(socket:receive_bytes(100))

        -- Check if first 4 bytes received are HTTP.
        if not string.match(result, "^HTTP") then
                return "Asprox/Kuluoz infected:" .. stdnse.tohex(result)
        end
end

Résultat: nmap reste mon outil favori de diagnostique réseau :-)

Hadoop / Spark2 snippet that took way too long to figure out

This is a collection of links and snippet that took me way too long to figure out; I've copied them here with a bit of documentation in...