Monday, March 1, 2010

Antikor UGS Research (Part1)
















Türk menşeili ve kendi alanında bir ilk olan Antikor UGS'yi mercek altına aldım.
Program hakkında tubitakta bulunan dokumanı buradan okuyabilirsiniz
Programın yazılış amacı, PE dosyalarına infect olan virüslerden korunmak. (Örnek Win32/Parite)

Bunu yapabilmek için program ilk çalıştığında sistemdeki uygulamaları tarıyor ve uygun gördüğü PE dosyalarının içine özel bir kod yerleştiriyor

Bu kod çalıştığında dosyanın infekte olup olmadığına bakıyor ve infekte ise kendi kendini temizliyor.

Programda kullanılan mantık güzel ancak bence bu program sadece bir ar-ge projesi olabilir çünkü bu program koruma amaçlıda olsa, uygulamalarınızı ve sistem dosyalarının yapısını ve varsa üzerlerindeki dijital imzayı bozacak. Ardından sistem çökmeleri vs gelecek. Ve ayrıca artık Win32/Parite gibi sistem dosyalarına bulaşan PE infector virüsleri kalmadı denebilir.

PE infector yazacak kadar ileri virüs yazarları , sanal korsanlar için çalışır oldu ve sanal korsanlarda bu kişilere spyware/spam-bots gibi yazılımlar yazdırıyorlar ve yayılma biçimi olarak ta P2P,email,MS açıkları,sosyal ağlar gibi yöntemler kullanıyorlar.

Eskiden virüs yazarları arasında, PE dosyalarını infect etmek, hele hele polymorphic olarak infect etmek bir yarış halini almıştı ancak şu anda PE protokolu ile ilgili full dokümantasyon ve örnek kodlar okadar fazlalaştı ki artık bunu yapmak çok kolay oldu.

Geçtiğimiz senin trendleri rootkitler oldu roustock,TLS gibi dosya sistemi üzerindeki en alt seviyedeki DISK I/O driver infeksyonları ile nerdeyse görünmez oldular. (driver dosyalarida PE tipidir ve uzantıları .sys 'dir)

Bu virüsler bütün Antivirüs firmalarının korkulu rüyası oldu hatta Kaspersky, bu gibi infeksyonların önüne geçmek için donanım tabanlı antivirüs patenti bile aldı :)

Sonuç olarak bu program hernekadar, teknolojisi ile ses getirmiş olsada günümüzün tehditlerine karşı bir çözüm getiremez diye düşünüyorum ve burada bir marketing segment olduğunu sanmıyorum. (Tabi bu tamamen benim fikrim)

Aslında Türkiyede çok fazla yetenek var ancak herkes tekbaşına birşeyler yapmaya çalışıyor ve Yurtdışı ile yarışabilecek yada Türkiye'ye döviz getirebilecek bir ürün çıkmıyor. Bu kişiler hep beraber aynı çatıda iyi bir organisayon ile birşey yaparsa ses getirir diye düşünüyorum. Böyle bir organisazyonuda doctus.org'un yapabileceği kanaatındayım. ( Üyeleri okuyorsa, yönetime baskı yapın :) )

Antikor UGS çalışma mantığı:
Hedef dosyada antjn01 adlı bir seçtion oluşturuluyor ve buraya orjinal dosyaya ait alttaki kısımların bir kopyası konuluyor.

PIMAGE_DOS_HEADER
PIMAGE_NT_HEADERS
IAT
OEP

ve ardından ilgili section, bir dizi XOR,ROR ve ROL işlemi ile tek taraflı encrypt ediliyor.

Arkasından OEP aynı offsette kalacak şekilde değiştiriliyor, bu yeni OEP çalıştığında, antikor seçtion'nını decrypt ediyor ve kontrolü oraya bırakıyor , antjn01 içindeki Antikor kodu çalıştığında ise dosyanın infect olup olmadığına bakıyor ve infect olmuşsa, antjn01 seçtionnına daha önceden konulmuş olan orjinal değerler ile dosyayı onarıyor.

Takım şefimizin ve ARF teknolojinin benden istediği Antikor ile korunan bir dosyayi infecte etmek. Yani virüs yazarını simüle etmek.

Ring0'da dahil olmak üzere çeşitli deobfuscator/packer teknikleri için static unpacker yazan bir kişi olduğum için bu benim için çok kolay oldu. PE infector virüsü yazan kişiler içinde Antikor'u bu sürümünde bypass etmek çok zor olmaz.

Antikor ile patch edilmiş bir dosyayı ollydbg'a yüklediğimde alttaki şekilde bir OEP ile karşılaştim. Encrypt loop'u kırmızı içine aldım.
















Program bir uygulamaya uygulandığında herseferinde random bir xor key üretiyor. Bu nedenle antjn01 secion, her uygulamada farklı oluyor, bu yüzden ilk önce kullanılan xor key'i bulmak arkasından alttaki fonksyon ile section'i decrypt etmek gerekiyor.






Decrypt ettikten sonra orjinal OEP'i, antjn01 içinden alıp eski yerine yazıyoruz. Arkasından antjn01 seçtionu silip PE header'i fix ediyoruz ve kaydediyoruz. Artık dosya eski haline dondu.

Bu anlattığım yöntemler ile, Antikorla korunan dosyaları orjinal haline getirebilecek hatta infecte edebilecek bir uygulama yazdım buradan indirebilirsiniz.














Test etmek içinde burdanRobert Kuster yazdigi WinSpy programının antikor işlemine tutulmuş halini indirebilirsiniz.

Infecte dediğim, uygulamaya basit bir messagebox ekliyor amaç infect olabildiğini göstermek yoksa gerçek infeksyon rütünleri yok tabi!!!

NOT: Testlerimi, programın kendi sayfasındaki son indirilebilir sürüm üzerinde yaptım (1.0.0.2). Eski sürümlerinde yada daha sonra çıkacak sürümleri üzerinde çalışmayabilir.


Antikor uygulamasını bypass edene 500TL ödül veriliyor, bende bunu almıs oluyorum :)
Ve bu parayı, benim yazdığım infector ile, infect edilen dosyayı temizleyebilecek bir araç yapana veriyorum.






Elinizi çabuk tutun, nitekim ARF teknoloji sizden önce cleaner yaparsa para bana gelmeden orada kalır :)

Kural: Cleaner, static olmalı, yani dosyayı çalıştırmadan temizleme yapmalı, eğer dynamic olarak yaparsanız  ödülün yarısı 250TL. OllyScript vb ile yaparsanız, Intel Press'ten istediğiniz bir kitap hediye!

Not: Dosyanın içinde MessageBoxA çağrısını patch etmeyi çözüm olarak kabul etmem, program tam eski haline gelmese bile en azından IAT ve OEP düzeltilmelidir çünkü burdaki mesaj box sembolik, amaç infectionu temizlemek.

UPDATE (1:16 PM 4/6/2010): Unpacker yarışması için uğraşan varsa artık sadece dynamic yada OllyScript çözümü ile uğraşması gerekmekte çünkü static unpacker çözümü bulundu. (Bloğumuzun iyi bir takipçisi ve aynı zamanada yarışmalarımızda her zaman doğru çözümler üreten civil engineer, bu defada çözümü buldu ve en büyük ödülün sahibi oldu çünkü çözüm yolu static, tekrar tebrikler civil engineer! )

UPDATE (8:07 PM 4/6/2010): Dynamic ve OllyScript çözümleride geldi. Yarışmada 750TL + Kitap hediye vermiş bulunuyoruz. Yarışmaya katılan herkeze teşekkür ederiz. (Yarışmanın 2. ve 3. aşamalarını FunyBoy tamamladı, tebrikler! )

















26 comments:

  1. Tam bi bayrak yarışı olmuş:) Bakalım sizden kim alacak bayrağı.

    ReplyDelete
  2. zemana'nın bypass edildiği günleride biliyoruz sizde çok iyi bir firma sayılmazsınız :)

    Birde bişey ispatlamaya çalışır gibi blogda yazı yayınlamışsınız peki kullandığınız antikor sürümü kaçtır ?
    Yeni sürümle uzaktan yakından alakası varmıdır.. ?

    Saten antikor gibi programlar oldukça zemana gibi pasif programlar böyle karalama kampanyaları yapmaya devam edecektr :)

    Umarım yeni sürümü bi gün incelersiniz..

    Biliyorum bu yorumu okudukdan sonra blogda yayınlanmasına izin vermeyeceksiniz ama genede siz okuyun istedim :)

    ReplyDelete
  3. Ne biz ne ARF nede başka bir firmanın bypass edilemez diye bir söylemi yok. Ayrıca ARF teknoloji ile arkadaş Türk firmalarız, aramızda herhangi bir çatışmada yok, onlarda, bizde araştırmalarımızda birbirimizi şak şaklamak zorundada değiliz. Samimice incelerimizi ve yorumlarımızı yazariz. Aksi halde birbirimize sadece gaz vermek ile ilerliyemeyiz.

    Ayrica iskenderuna ARF teknolojinin devatlisiyiz, size oranin meshur koftesini ve kunefesini yerken hepbaraber cekilmis fotagraflarimizida gondeririz insallah.

    Testlerimi, programın kendi sayfasındaki son indirilebilir sürüm üzerinde yaptım (1.0.0.2) elinizde daha ileri bir sürüm varsa nerden buldunuz? bana da gönderebilirmisiniz onuda inceleyim?

    ReplyDelete
  4. Hem Zemana'yı hem de ARF Teknoloji'yi bu sayfaya davet ediyorum;

    http://aorkan.blogspot.com/2010/03/antikor-20097-oa-keylogger-test.html

    Umarım bir reklam yada karalama kampanyası olarak algılamazsınız. Amacımız bayrak yarışından öte; karşılıklı inceleme ve sevecen yorumlarla teknoloji gelişimine katkıda bulunmak.

    En derin saygılarımla,
    Orkan Arikan

    ReplyDelete
  5. 3 gece kar mağarasının içinde yatıp, baya bir yol yürüdükten sonra blog'u bir ziyaret edeyim dedim. Daha önceden duyduğum ARF teknolojinin ürünü Antikor ile ilgili yazıyı gördüm.

    Yazının sonuna gelince de "Bu yazı birilerini kızdırır" diye düşündüm:) Nitekim öyle olmuş...

    Anlamadığım bir şey var, birisi benim yazdığım bir zararlı veya faydalı kod hakkında boş yorum yaparsa BU KIZDIRICIDIR fakat bu yorumun altına İSPATI da koyarsa bu GELİŞTİRİCİDİR (diye düşünüyorum...) Tez var, antitezi de ispatlanmış, o zaman açık var demektir, üzerinde çalışılması gerekiyor demektir? Yanlış mı düşünüyorum?

    ReplyDelete
  6. Erkan bu arada, bayrağı elinden almayı çok isterdim ama biliyorsun:(

    Saygılar...

    ReplyDelete
  7. Bu da benden olsun :)
    http://rapidshare.com/files/359512239/WinSpy_antikor_infected_by_osC__CoDeR.rar.html
    MD5: 0A503CCE74D3B6FFE364C76FD083D07E

    ReplyDelete
  8. Bu da damadın abisinden geline :)

    Verdiğiniz antikorlu winspyın sizin tool ile infect ediltikten sonra oep ve iat fixlenmiş hali...

    http://rapidshare.com/files/359676684/WinSpy_antikor_infected_by_osC__CoDeR.rar.html
    MD5: F20A8CE18947A35137052A6AA9D00486

    ReplyDelete
  9. yanlış linki vermişim özür.

    http://rapidshare.com/files/359679147/WinSpy_antikor_infect_dump_fix_oep-iat.rar.html
    MD5: C00C8195862F837DCFCCEE064C78196C

    ReplyDelete
  10. civil engineer ! Blogunun arka planı gözü çok rahatsız ediyor. Değiştirsen iyi olur.

    ReplyDelete
  11. Binary konusanlari bulmak ne guzel!

    @ZY sen gorevini bi tamamla daha ne yarislar olacak :)

    @civil engineer
    Blogunun arkasi hala okunmasini guclestiriyor bencede sade bir arka plan yap ve bize iskence etme!! Sonuca yaklasmissin ancak benim istedigim bu isi yapabilecek bir arac yada script, yani bu arac ile baskalarida herhangi bir infect dosya secilip duzeltilebilecek. Benim Antikor unpacker'im gibi.

    ARF benim cevabimi kabul etmemis ve sitelerindeki SON surumun 1.5 yil oncesine ait oldugunu belirmis huh! Yeni surumu istedik hala bekliyoruz... Ve odulumu alamiyorum, ancak benim yarismam yinede devam ediyor , Static cozene 500TL, dynamic 250TL, OllyScript ile cozene kitap :)

    ReplyDelete
  12. genclik gunlerimiz geri de kaldi sanirim, aslinda profil cikarmak icin iyi bir bahane... bi takim yarismalari 500 le odullendir... 15-22 yas grubu gelir.
    5000 le odullendir 18-27 gelebilir..
    50000 le odullendir, 26-35 gelir...

    sonucta, ey blogcu!, hangi yas araligini bekliyorsun?

    ReplyDelete
  13. This comment has been removed by the author.

    ReplyDelete
  14. fazla söze gerek yok...
    buyrun anlatımını yaptım...

    http://www.tcct.us/upload/QuAdR/antikor.htm

    ReplyDelete
  15. http://www.tcct.us/upload/QuAdR/antikor.htm


    seyrettimde bu unpackerı erkanda civil engineerde yapmıştı. antikorun şartı unpacker değil virüs yazmak. bir aydır virüs yazmak için uğraşıyoruz boşu boşuna heyecanlandırdı bizi :) unpackerı dedemde yazar ;) virüs lazım virüsssss

    ReplyDelete
  16. Game Over!
    http://7f6343.110mb.com/anti-jen/unPacker-.JPG


    Erkan bey, sizin infector için oep ve import fix yapan bir tool yazdım, gönderecektim ama mail adresinize ulaşamıyorum, aşağıdaki cevap dönüyor.
    "postmaster@mail.hotmail.com
    Delivery Status Notification (Failure)"‏

    ReplyDelete
  17. hani kod enjeksiyonu, nerde zararlı? civil engineerin unpackeri bile buna 5 çeker.

    http://www.tcct.us/upload/QuAdR/antikor.htm

    hikaye bu unpacker çok amatör.

    ReplyDelete
  18. QuAdR
    Tebrikler sende bir dynamic unpacker yazmissin Antikor icin, keske derlenmis halini bizimle paylassaydin.
    WriteProcessMemory(@LOOP) cok akilli bi taktik olmus :)

    @Adsız dedi ki...
    >>Antikorun şartı unpacker değil
    >>virüs yazmak. bir aydır virüs
    >>yazmak için uğraşıyoruz ...
    >>virüs lazım virüsssss ...

    Biz nerdeyiz sen neredesin, bence yanlis blogu okuyorsun.

    UzMaN
    Sanada katilmiyorum, QuAdR, 4 satir kodla unpacker yazmis, hatta bizimle gidis yolunu video olarak paylasmis. Antikor kalktiktan sonra zaten normal bir exe halini aliyor , birde tutup virus nasil yazilir bunu gostermesine gerek yok, konumuzda bu degil zaten.

    Mail adresim erkan.arnaudov(at)zemana.com

    ReplyDelete
  19. Hala Anlamıyormusunuz Bir Exe Unpack edildikten sonra istediğin şekilde tekrar derlenebilir İsterseniz Kod bile Enjekte edebilirsiniz. QuAdR Nasıl Unpack edileceğini Size Anlatmış Ona göre önlemlerinizi almanız için Birisi konumuz virüs virüs demiş zaten exe unpack edilmiş virüsümü kalmış yazılacak ben unpackli exenin üzerine ıkı satır kod enjekte edeyim ufak bir uyarı Virüs diye tekrar derleyim alsana ilk açılışta virüs diye çıksın istersen Bütün taramalarını iptal edeyim devre dışı kalsın sadece exe çalışsın :) neyse
    civil arkadaşın unpacker yok ortada olly ile fix atmış oda crash olmuş
    Neyse anlayana ;) Anlamayana Davul zurna saz

    ReplyDelete
  20. videoyu izledim. bendeki antikorlu exeler debuggerde incelenemiyor :( siz nasıl yaptınız? ben parayla satın aldım. bulabildiğim bütün unpackerları denedim :( exeleri ollydebug açamadı.

    siz nasıl yaptınız? ödülü kazandınızmı yoksa herkese bedava dağıtılan antikorlamı deneme yapıyorsunuz?

    ReplyDelete
  21. @MuStAfA
    Yazilim tarihinde, simdiye kadar , demosu veya deneme surumu olmayan bir programi satin alan musteriye rastlanmadi. Izin verirseniz yazilimcilar derneginde, sizin isminizi altin harfler ile yazdiracagiz. Eger boyle bir program varsa ben bu programi satin alir ve burda tekrar unpacker'ini yayinlarim ama size ayip olur (!?)

    Debugger != OllyDbg

    ReplyDelete
  22. Dynamic unpaker yazılmasını anlatmıştım beğenmeyenler olmuş.Bu yüzden tekrardan static unpacker ve infect eden bir uygulama yazdım.
    infect olarak verdiğim uygulama antikoru temizler ve exe yi tekrardan cryptolar.
    uygulamaları linkten indirebilirsiniz.

    _http://www.tcct.us/upload/QuAdR/antikor.rar

    ReplyDelete
  23. Enfektörü yazalı 3 hafta oldu zaten... Merak edenlere şahsi olarak e-posta ile anlatabilirim. Detaylı bilgi :

    http://zararliyazilim.wordpress.com

    Çok da basit bir enfektör, basit FILL IN THE BLANKS mantığı...

    Saygılar

    ReplyDelete
  24. Bende 500 liramı isterim! buyrun static unpacker yani hedef dosyayı çalıştırmıyor, zaten çalıştırsa MessageBox görünürdü
    http://rapidshare.com/files/372695290/unpack.zip.html

    ReplyDelete
  25. Buda ilk OllyScript'im :)

    var msgOepFound
    mov msgOepFound,">> This is the OEP. Just dump the process and fix the IAT! <<"
    find eip, #6A00FFD0#
    bp $RESULT
    run
    sto
    fill eip, 3, 90
    find eip, #8B853CFFFFFF#
    find eip, #C3#
    bp $RESULT
    run
    sto
    cmt eip,msgOepFound
    msg msgOepFound
    ret

    ReplyDelete
  26. @FunyBoy

    OllyScript te yaptigin gibi dynamic unpacker cozumundede MessageBoxA cagrisini patch ediyorsun bu yuzden mesaji goremiyoruz :) :) yani unpacker'in hedef dosyayi calistiriyor!!! bu yuzden dynamic olarak kabul ediyorum, zaten static olsaydi cozum olarak kabul edemezdim cunku civil engineer senden once static cozumu ulastirdi. Bu durumda 250TL + kitap kazanmis oluyorsun. Tebrikler!

    ReplyDelete