October 24, 2008

MS08-067

You should have already heard about this out of band patch ,released by Microsoft. There are many points,failurs,good and bad news about this case . Everyone has his own story about this case worth writing a complete post ,article or analysis report and it`s still on going . I`ll try to sum them all in this post.

At first , we had MS08-067 patch from Microsoft . A critical vulnerability in Server Service that allows remote code-execution on ALL microsoft platforms. great!

The truth is that Microsoft`s patch was not really the begining of this story . This is one of those vulnerabilities microsoft got in wild , being used in targetted attacks against fully patched Windows XP/2003 systems . Unlike what many people have mentioned , detected in-wild use is not really a true worm . Targetted attacks happened through a trojan , which has been armed with an extra module to exploit this vulnerability and spread . Here you can read some details about catched case. That`s how we`ve got the buletin.




Now some details about who`s vulnerable and who`s not . Here comes most of bad news . ALL versions of windows (2000 / XP sp1~3 / 2003 sp0~2 / Vista / 2008) are vulnerable to this. The only difference is about Vista and windows server 2008 . These two platforms are less affected and that`s because vulnerable RPC endpoint is only accessible to authenticated users. In 2000/xp/2003 it`s possible to access and exploit the vector anonymously without any authention required.
On Vista & 2008 /GS and ASLR comes handy and make the situation _harder_ to attacker, for exploiting this bug . Since this is stack-overflow thing and there are many geeks out there already using techniques to bypass these , while Microsoft use "Likely DoS condition" term you shouldn`t have any doubt about possibility of successful code-execution on these platforms.
The authentication limitation on Vista/2008 shouldn`t either fool you. This may prevent mass attacks orginated by worms but if you`ve got a windows domain where your systems are placed in , attackers have already got some passwords to do a clean 'authenticated' compromise.
Finally, we have detault windows firewall rules ahead . Windows XP SP2 have it enabled by default and systems are protected from the interface windows consider it 'public' . BUT windows have file and print sharing EXCLUDED by default for 'Lan' interfaced which means no protection.
This table will give you idea about your current state ,based on your platform and configurations . Here`s related post on Microsoft security response blog about the case .

And if you`re digging for exploits , yes there are already some exploits available thorough some commercial services. Kostya of Immunity seems to be fighting with non-executable pages at the moment :) . With all of those protections around stack , it looks a complex case to solve on latest versions of windows.

Now Let`s look at the case from another point of view:
[Why this vulnerability has not been spotted before ?]

This is the question I was asking myself since the time I understood technical details behind it. Most odd and interesting point was that this bug is on the same service that has already been covered back in 2006 with MS06-040 . As Alex Sotirov mentioned in his blog post here , the vulnerability is even in same code area as ms06-040 ! He has de-compiled vulnerable function and mentioned what caused the overflow to happen . As it`s demistrified , you can see a complex loop for parsing supplied variables , one of them being a path.

This wasn`t enough for me though. After all of past hype on MS-RPC fuzzing and LOTS OF discussions about it in lists, books, fuzzers, conts, etc... in last months of 2008 we still have such a case . My first attempt was asking some of those who`re believed to be masters in this field , but later I came across a post by Michael Hovard, the SDL guy of Microsoft. In his blog post he answered why this bug was under radar all of these times. Not their manual code audits , nor their automated static analysis tools neither their fuzzing methodologies found this !
He has clearly discussed the case and why they faced with this total failur . I recommend you read the 'code analysis and review' section in his post to get most of what you want. While his statements about complexity of code segment and why it`s hard to spot the bug in code-review (manual or automated) I was really disappointed about the fuzzing topic . I think Dave Aitel should have something to say about this :)

Before reading Michael Hovards post , I had three questions about this case . His post answered only one of them, related to SDL . But two remainings are :
*What`s the real story behind MS08-067 ? Is it about lack of effectivenes in current MS-RPC fuzzing techniques (As we`ve read multiple times that MS-RPS has been fuzzed to death!) or it`s the story of effective warez getting leaked one a while ?

Iran`s X.25 NUA Directory

Well , long time ago this directory was a big secret for me ,as I`m sure thi s is the first ever published list of NUA, covering Iran`s X.25 network . Nowadays most of networks switched to IP based neworks and x.25 based access systems are part of history now . But in 2008 ,there are still a lot of blinking LEDs on x.25 modems out there ;)
So here`s the complete* list of dedicated NUA`s in official x.25 network of telecom co .
This is not the up to date version and now it`s about 4 years old , but hey there`s still a lot of fun behind it :)


And why I`m publishing this list today? Only "For educational purpose" . Also because I felt this list (which has been privately and limitedly published somewhere else) is spreading too much out there , without proper copy-right!!! So please do not abuse the list . If you`re unfamiliar with x.25 technology , don`t waste your time much for learning it from scratch. There are lots of new technologies out there , replacing it . The last word is that I`m NOT RESPONSIBLE for what you`re going to do with these numbers. If you don`t know how to use this list , just consider it a pice of very valuable but now-outdated information .
This list was useful for me back in the days it was fresh , as it could save me a lot of time doing the war-dial concept on x.25 networks . With this list you can skip all of your scanning toys and directly shoot your bullet to target :p . Note that the file is password protected , and "0ceb8fa5773ac8f973ab648aba0d8ae0" is the password.

Dowload the directory from here.

*For obvious reasons, I`ve removed some NUAs from this list . Most of removed items belongs to goverment or military or important banking systems. If you need them , you should already have them anyway !


October 22, 2008

Interesting piece of research on attacks against wired keyboard

After TEMPEST , this is the most interesting 'public' demonstration of exploiting electromagnetic emanations of wired keyboards . Researchers have not released the paper and technical details yet, but as mentioned in DailyDave , we should expect it .
MoD in Iran seems to have it`s own implementation on this and other TEMPEST research attack vectors , but I`m not aware of technical details of their work .

Yet another post about Foot-printing (The MAP!)

To many people this article may just be as useful as knowing who use what ,or which social networking is more popular in specific area of the world , but to me , it looks totally different!

Previously I`ve mentioned a tip on using social networks to gather more interesting information about targets , to have a more effective profiling and foot printing . This map looks like guide for using best match against your target . So based on it , cloob.ir would be choise #1 . Although this is not a complete map and lacks many info , but it`s just a good sample about the idea .
Finding a more detailed map ,showing more details about each country could be great . For example it would be cool to see popularity percentage of other netwroks in Iran .
Source of these information (based on notes in map) is Alexa site. It won`t be that hard to build your own map for other topics . Visiting this url for example , will tell you where most of facebook users come from .
There`s just one remaining note . Since some of these social networking sites are filtered in Iran (What`s the fucking reason to do it anyway ?!) results are not accurate . This is mostly because of using VPNs , proxy or bouncer systems .


October 19, 2008

بدون شرح

امروز بر حسب اتفاق سری به اکانت بلاگرم زدم و تعدادی از پست های نوشته شده اما منتشر نشده (به هر دلیل) را مجددآ مرور کردم . گفتم شاید بتوان چیز بدرد بخوری که بدون تغییر یا تکمیل آماده پست شدن باشد پیدا کرد .نوشته زیر نیز مربوط به تقریبآ یک سال پیش ---(10/2008) میباشد که آن زمان از پست کردن آن صرف نظر کرده و بحالت آرشیو در آوردم . اما با این اوضال گل و بلبل که اخیرآ پیش رو داشته ایم ، گفتم شاید خواندن این مورد نیز برای درک عمق فجایع ، خالی از لطف نباشد.
ویرایش شده در 10/2009---


از دوستان عاجزانه تقاضا می کنم قبل از مراجعه به لینک زیر پودر او . آر. اس به میزان کافی بصورت حل شده در آب در دسترسی داشته باشید . همچنین افراد دارای حساسیت های پوستی و ناراحتی قلبی و خانم های باردار از مراجعه به این لینک اکیدآ خودداری فرمایند.


در چنین شرایطی دقیقآ مشخص نیست که لوله آفتابه را باید به کدام سمت گرفت، مطبوعات و رسانه های فرهیخته یا .... ؟

October 2, 2008

Syngress always surprise me !

Some times while searing Amazon for new pubished books , I see strange or unexpected titles . For me , SYNGRESS has always been a pioneer in publishing strange titles ! This time , They`ve dedicated a complete book to the swiss army knide , NetCat ! I`m waiting to take a look at it ASAP. after that , I`ll update this post about contents and quality of conents. Oh and is really NetCat that complex that it requires five authors to work together for writing it`s dedicated book ?!


[Updated:]
Well , I finished review of this brilliant book !
If you`re new to netcat (Oh if so ,why are you reading this blog?!!) , skip chapter 1 & 2 and go read NetCat`s original manual , then come back for later chapters. the only real useful tip is how to make a backdoor with netcat at end of chapter 2 ! Chapter 3 & 4 are about banner grabbing , service detection and enumeration . I`m just not sure why I read nmap,p0f,amap,etc... very often in these chapters . The title of book says "NetCat..." . Ok nevermind , I guess these are typo and spelling errors!!!
Same typo and spelling errors in chapter 5! In these ~30 pages you`ve to learn what we call nmap tips and tricks . They are cool , but not worth reading 30 pages . all of them could be explained in less than 5 pages ,among their details and describtions. Chapter 6 is trying to show even more tricks , following chapter 5 . The only positive point about this chapter is that it introduce other variants of NetCat , armed with encryption or backdooring capabilities . It could be summed in less than 5 pages too , not 40 pages! Chapter 7 in my opinion is the only usefull pice of this book (for network operators) as it show you how to troubleshoot some of common problems with help of netcat .
After all , I found 70% of this book NOT to be about NetCat . Remaining 30% is not even pure NetCat related and includes lot`s of unnecessary blah blah notes .
That`s it!

بات نت ها و روش های شناسایی و بررسی - قسمت سوم

در پست قبلی ، کلیاتی از مکانیزم های کاری و گسترش بات نت ها و همچنین انواع سیستم های هانی پات آورده شد. آنچه مرور شد در واقع مکانیزم ها و روش های مختلف برای شناسایی فعالیت بات نت ها و پس از آن بدست آوردن یک نمونه از بات برای بررسی های بیشتر بود . در ادامه بیشتر به بحث آنالیز نمونه ها نزدیک خواهیم شد و به کاربرد سیستم های Sandbox در این زمینه اشاره خواهم کرد .

صرف اینکه یک بات نت توسط مکانیزم های کنترل ترافیک شبکه یا سیستم های هانی پات ما شناسایی شده ، بررسی متوفف نمی شود . بلکه در طی چند مرحله بعدی اولآ می بایست ارتباطات برقرار شده توسط سیستمی که به این نمونه آلوده شده کنترل و بررسی گردد ، مشخص گردد که نمونه بدست آمده چه تغییراتی در سیستم اعمال می کند و در نهایت بررسی دقیقی که مشخص می کند فایل باینری نمونه دقیقآ چه کارد و قابلیت هایی را داراست .

یکی از ساده ترین راه هایی که برای آنالیز نمونه به ذهن می رسد ، اجرای نمونه بدست آمده بر روی یک سیستم ، و نظارت کردن بر فعالیت های انجام شده توسط باینری است . این روش بررسی را می توان به دو صورت دستی و خودکار انجام داد . در روش دستی نمونه بر روی یک سیستم (معمولآ تحت Virtual Machine) کاملآ پاک (Fresh Install) اجرا شده و در طی مدت فعالیت سیستم ، توسط ابزارهای مختلف و متعددی آنچه بر روی سیستم در حال رخ دادن است ثبت و بررسی می گردد . این بررسی می تواند شامل نظارت بر فعالیت های دیسک (خواند و نوشتن) ، فعالیت های شبکه (ترافیک ارسالی/دریافتی) ، فعالیت های انجام شده در رجستری ، API های فراخوانی شده ، آدرس های حافظه فراخوانی شده ، و بسیاری موارد دیگر باشد . مجموعه ابزارهای SysInternals که حقوق آن اخیرآ توسط مایکروسافت خریداری شده از جمله ابزارهای مفید در این زمینه می باشند.

روش دستی علاوه بر نیاز به دقت و مهارت در استفاده از ابزارهای مختلف زمانبر نیز می باشد . همچنین ممکن است نمونه تحت بررسی فعالیت هایی را انجام دهد که از دید ابزارهای متفرقه و روش بررسی دستی پنهان بماند و یا کنترل آنها بدین صورت مشکل باشد. به همین دلیل گرایش به سمت استفاده از مکانیزم های خودکار بررسی بیشتر است . در روش بررسی خودکار ، نمونه در یک محیط شبیه سازی شده ، مجازی و یا حتی واقعی اجرا شده و توسط مکانیزم های خاصی در سطح پایین (سیستم عامل و منابع سیستم ) تحت نظارت قرار می گیرد . این محیط معمولآ توسط ابزارها و اسکریپت های خاصی کنترل می گردد تا هر آنچه بر روی آنها اتفاق می افتد به دقت و با جزئیات ثبت گردد . سیستم های Sandbox موجود دقیقآ همین امکانات را در اختیار قرار می دهند . مفهوم Sandboxing تنها در بحث جاری کاربرد ندارد بلکه اساس و ریشه آنرا در محیط هایی مانند Java ، .Net و یا Flash(Action Script) می توانید دنبال کنید . اساس Sandboxing بر اجرای کد و دستورات ناشناخته (نا امن) در یک محیط کاملآ ایزوله از سیستم میزبان است ، بطوری که حتی در صورت مخرب بودم دستورات اجرا شده آسیب و تهدیدی متوجه سیستم میز بان نباشد .

Sandbox هایی که در حال حاضر موجود بوده و برای بررسی Malware ها از آنها استفاده می شوند ، علی رغم تعدد در نام های تجاری و قابلیت ، همگی از تکنیک های مشابهی استفاده می کنند . سیستم های کنونی یا از روش مانیتور کردن فعالیت های پروسس اجرا شده (در سطح فراخوانی API ها ) در یک سیستم عامل واقعی استفاده می کنند ، و یا نمونه در یک محیط شبیه سازی شده (Emulated) اجرا شده و API هایی که نمونه قصد استفاده از آنها را دارد را شبیه سازی کرده و پاسخ های از پیش برنامه ریزی شده ایی به آنها می دهند . در ادامه چند نمونه از شناخته شده ترین سیستم های Sandbox آورده شده اند .

هر یک از این سیستم ها از روش خاص خود برای پیاده سازی ایده Sandboxing استفاده کرده اند . CWSandbox با تکیه بر روش Process Injection ، یک DLL خاص را به نمونه اجرا شده تزریق کرده و بکمک آن API Call ها را تحت نظر گرفته و یا دستکاری می کند (API Hooking). این سیستم مبتنی بر استفاده از ماشین های مجازی (مانند VMware) است اگرچه به راحتی با استفاده از مکانیزم کاری نرم افزار DeepFreez امکان استفاده از یک ماشین واقعی را نیز به ما می هد.

در Norman Sandbox ، نمونه در یک محیط کاملآ شبیه سازی شده اجرا می گردد و از سیستم (یا سیستم عامل) واقعی استفاده نشده است . این روش اگرچه سریع و جمع و جور است ، اما در مقابل بسیاری از Malware های پیشرفته امروزی که قابلیت تشخیص سیستم های مجازی و یا حتی Sandbox را دارند ، ضعیف عمل می کند .


TTAnalyzer با استفاده از QEMU ،یک سیستم عامل ویندوزی را اجرا کرده و با روش API Hooking فعالیت ها را شناسایی می کند .


ایده بکار برده شده در SandNet کمی متفاوت است . در این سیستم ، نمونه ابتدا در یک سیستم و سیستم عامل واقعی اجرا می شود و پس از 60 ثانیه مکانیزم Sandbox سیستم را مجبور به Reboot می کند و پس از آن سیستم توسط روش PXE ( بوت از طریق شبکه) بوت شده و در سیستم عامل لینوکس اجرا شده دیسک سیستم عامل ویندوزی Mount شده و تغییرات حاصله در آن با یک نمونه پاک و دست نخورده مقایسه شده و تغییرات در رجیستری و فایل سیستم مشخص می گردد . سپس Image پاک بر روی دیسک بازنویسی شده و سیستم برای بررسی نمونه بعدی آماده می شود .


مکانیزم کاری Truman نیز بی شباهت به TTAnalyzer نیست . در سیستم Truman مجموعه ای از سیستم ها و ابزارها یک شبکه اینترنت مجازی را نیز در اختیار نمونه قرار می دهند . همچنین علاوه بر تغییرات ثبت شده بر روی دیسک ، یک کپی از حافظه سیستم عامل اجرا شده تحت Sandbox نیز آنالیز می شود .


روش کاری JoeBox تقریبآ مشابه سیستم Norman Sandbox می باشد ، اما تجربه شخصی من نشان داد که این سیستم بسیار بهتر و کامل تر از Norman عمل می کند .


سیستم Anubis در واقع ادامه و نمونه تکمیل شده سیستم TTAnalyze می باشد و تقریبآ از همان مکانیزم کاری بهره می برد .

خروجی هایی که سیستم های Sandbox در اختیار قرار می دهند در برخی موارد چیزی جز اطلاعات خام نیست و به خودی خود استفاده مستقیمی نمی توان از آن داشت . یکی از مهم ترین اطلاعاتی که در خلال بررسی نمونه می بایست بدست آید ، مکانیزم کاری سیستم Command & Control یا فرماندهی نمونه بات می باشد . در بسیاری از موارد این مکانیزم یا مبتنی بر IRC بوده و یا بر اساس Web می باشد . در صورتی که نمونه ما فاقد تمهیدات امنیتی باشد و بصورت شفاف با سرور فرماندهی خود ارتباط برقرار کند ، با دنبال کردن پکت های ارسالی و حتی استفاده از نرم افزارهای کلاینت معمولی می توان دامنه اطلاعات در خصوص سیستم C&C مورد استفاده توسط نمونه را گسترش داد . اما همیشه کار به همین راحتی نیست !

بسیاری از نمونه ها ارتباطات خود را بصورت رمز شده و یا Encode شده برقرار می کندد . در چنین شرایطی ، مرحله آنالیز دقیق و کامل نمونه شروع می شود . در این مرحله فایل باینری بدست آمده به روش Reverse Engineering مورد بررسی قرار گرفته و تک تک قابلیت های آن اعم از مکانیزم های حمله ، آلوده سازی ، سرقت اطلاعات و ... مورد بررسی قرار می گیرد .

موضوع بررسی و آنالیز malware ها و حتی مشخصآ بات نت ها بحثی بسیار گسترده و دربرخی موارد پیچیده می باشد . در طول این سه پست ارسالی من تنها سعی در معرفی تیتر وار _برخی_ از مباحث کردم . در صورت فراهم شدن مجال دوباره و علاقه شما ، می توان چند قسمت دیگر به این سری اضافه کرد تا مطالب مورد نظر شما را پوشش دهد .