دسته Archives: Python

معرفی pycharm یک IDE مطلوب برای پایتون- دانلود برای لینوکس و mac osx + کرک

مقدمه

JetBrains یک شرکت چند ملتی واقع در جمهوری چک میباشد که تمرکز این شرکت روی تولید نرم افزار هایی جهت محیط مجتمع توسعه یا همون IDE می باشد این شرکت محصولات خوبی دارد ولی غریب با اتفاق تمامی محصولاتش closed سورس و تجاری می باشد لذا شما بایستی حتما لایسنس تهیه کنید یا از نسخه های غیر قانونی استفاده کنید.

pycharm.png__470x290_q95_crop

معرفی اجمالی pycharm

pycharm به نظر من بهترین IDE پایتون هست و مهم ترین ویژگی این IDE ویژگی cross platform یا مستقل از سکو بودنش هستش یعنی روی سکو های ویندوز ، لینوکس و مک قابل اجرا است، و علت اصلی این که اکثر محصولات این شرکت این ویژگی را دارند استفاده از بان برنامه نویسی جاوا میباشد و روی همین حساب یه خرده کندی رو به همراه داره اما به صورت کلی خیلی به نسبت سایر برنامه های جاوا بهینه هستش و واقعا توسعه دهنده از پول که میدهد احساس رضایت می کند و از خصیه های این IDE اینهست که از هر دو ورژن پایتون 3.x و 2.x همزمان پشتیبانی می کند.اطلاعات بیشتر

اجرای پایتون روی ژمپ(xampp)

با سلام

خیلیها دوست دارند در کنار زبان شیرین php دستی هم بر بخش وب python داشته باشن . برای این کار اول python و xampp رو روی سیستم نصب میکنیم بعد فایل httpd.conf رو باز و ویرایش میکنیم.در ابتدا خط

رو جستجو کرده و عبارت py. رو به انتهای اون اضافه میکنیم به صورت زیر

خب حالا نوبت به شناساندن پوشه پایتون هست داخل پوشه htdocs یک پوشه به هر اسمی که مایل هستید مثلا python ایجاد کنید

در ادامه درون فایل httpd.conf مقدار <Directory /> را جستجو کرده و در یک قسمت خالی مقدار زیر را وارد کرده و فایل را ذخیره میکنیم

خب حالا نوبت به نوشتن کدهای پایتون میشود

درون آدرس htdocs/python یک فایل با نامی دلخواه مثلا index.py ایجاد کنید و کدهای زیر را درون آن قرار دهید

مقدار عبارت /Python34/python.exe در خط اول آدرس مفسر پایتون میباشد که بر حسب نسخه پایتون نام پوشه متفاوت است مثلا اگر پایتون نسخه 2.7 روی سیستم شما نصب باشد آدرس به صورت /Python27/python.exe تغییر میکند

 

موفق و پیروز باشید

آموزش نحوه نوشتن یک ربات bot برای Telegram

به نام دانای بر حق

مقدمه

با این که من خودم مخالف ۱۰۰٪ این تکنولوژی هایی هستم که هر روز زندگی بشر رو بیشتر به پوچی نزدیک می کنه ولی خب بد نیستش که از نظر فنی بیایم و به این موضوع نگاهی بندازیم همونجوری که میدونین تلگرام یه شبکه ای هستش شبیه وایبر منتهی با حذف یه سری محدودیت ها که وایبر داره محبوب تر شده و با داشتن ربات ها متمایز شده از سایر شبکات دیگر، ما در این آموزش در مورد نحوه راهندازی یک ربات صحبت می کنیم ما تک تک api ها رو معرفی نمیکنیم یک ربات  رو تعریف می کنیم  از ۰ تا ۱۰۰ اما تا حد زیادیش رو میگم بقیه با شما شاید هم یک آموزش تکمیلی در این مورد ارسال کردیم.

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

پیش فرض ها

اول از همه شما باید به سیستم عامل خودتون تسلط داشته دارید ( من تو آموزش از لینوکس توزیع ubuntu استفاده می کنم و به شما هم همین os رو پیشنهاد می کنم.) .

دوم با زبان پایتون حداقل دست پا شکسته آشنایی داشته باشید.

سوم تسلط به یک زبان وب و نوشتن یک ربات برای پرسش و پاسخ ( ضروری نیست)

دانلود و نصب

ابتدا پایتون روی سیستمتون نصب کنین اگر لینوکسی هستید نصب شده است نگران نباشید البته نسخه 2.x نه 3

سپس python pip رو نصب کنید در اوبنتو با دستور زیر:

سپس کتابخانه telegram bot رو با Pip نصب کنید به شکل زیر:

سپس git را نصب کنید در Ubuntu به شکل زیر:

در نهایت میریم به پوشه مشخص مثل desktop بعد یه همزاد یا همون clone از ربات اطلاعات بیشتر

نقش کاراکترهای مخرب در پردازش اکسپلویت و نحوه یافت آنها

اگر کمی با اکسپلویت نویسی و نحوه اکسپلویت کردن برنامه آشنایی داشته باشید بدون شک با مفهوم Bad Char آشنا هستید. Bad Char در اکسپلویت کاراکترهایی را می گویند که از وارد شدن کامل اکسپلویت به درون حافظه جلوگیری می کنند. بعنوان مثال در ورودی برنامه های C/C++ اگر دربین رشته ورودی 0x00 وجود داشته باشد به عنوان انتهای ورودی محسوب می شود و بعد از کاراکتر 0x00 نادیده گرفته می شود، بنابراین Bad Char ها یکی از ضروریات است که بایستی متناسب با هدف، آنها را بدانیم.

سوال : چگونه متناسب با هدف Bad Char ها را بدست آوریم؟؟

جواب : بایستی تمامی کاراکتر های که ممکن است بعنوان Bad Char محسوب گردند را لیست نموده  تا بتوانیم توسط سعی و خطا تک،تک آنهارا بدست آوریم. این لیست در واقع از 0x00 تا 0xFF می باشد.

لیست ایجاد شده را بایستی در اکسپلویت مان بعد از Return Address قرار می دهیم بدین دلیل که Bad Char از بازنویسی Return Address جلوگیری نکند تا بتوانیم درون حافظه چک کنیم که لیست مان تا چه مکانی کپی شده اند و Bad Char چه بوده که باعث جلوگیری از کپی کامل اکسپلویت درون حافظه شده است.

در این مقاله برروی vulnserver که توسط Stephen Bradshaw نوشته شده و یک برنامه آسیب پذیر جهت تست و مثال آموزشی مورد استفاده قرار می گیرد، تست خود را انجام می دهیم.

بعد از اضافه نمودن لیست Bad Char به کدهایمان و ارسال آن به پورت vulnserver اولین راهکار این خواهد بود که بصورت دستی حافظه را چک کنیم تا کاراکتر را بدست آوریم ولی اینکار کمی زمانبر و کسل کننده است. راهکار بعدی استفاده از mona خواهد بود که بهتر از حالت قبل است، پس روند کارمان با استفاده از ابزار mona خواهد بود.

 

اطلاعات بیشتر

امنیت و نحوه کار در شبکه TOR و مسیریابی پیازی [بخش دوم]

درمقاله قبلی به عنوان امنیت و نحوه کار در شبکه TOR و مسیریابی پیازی [بخش اول]  با مفاهیم کلی و نحوه کار شبکه های Tor و دلیل نامگذاری مسیریابی پیازی را فهمیدید.

این شبکه TCP-level است و درواقع UDP کارنخواهد کرد و traceroute و … بی فایده خواهند بود. حال سوال پیش می آید اگر UDP کار نمی کند پس DNS چطور عمل می کند؟ بطور کل Exit Node عمل DNS lookup را انجام می دهد. این شبکه را می توان بصورت Mesh از Onion Router ها دانست و هر روتر با استفاده از SSL/TLS با دیگر روترها در ارتباط است. هر OR دو کلید عمومی دارد : identity key   و onion key.

indexدر لیست دایرکتوری ثبت می شود و Onion key برای اتصال end-user به OR ها مورد استفاده قرار می گیرد. دلیل ایجاد دو کلید عمومی محافظت نمودن Identity key در ارتباط های بلند مدت است .

Entry guard چیست؟ بدین معنی که هر کلاینت TOR بصورت تصادفی چند نود را برای نقاط ورودی ارتباط خود انتخاب می کنند و تنها از این نود ها برای Hop اول استفاده می کنند. اگر C تعدا رله باشد که نفوذگر بر آن کنترل دارد و بطور کل فرض می کنیم که N رله داریم، بنابراین احتمال رخ دادن اینکه رله نقاط ورودی یک از رله های نفوذگر باشد  (N-C)/N خواهد بود.اطلاعات بیشتر

امنیت و نحوه کار در شبکه TOR و مسیریابی پیازی [بخش اول]

در دنیای نفوذ وامنیت گمنامی بحث بسیار مهمی می باشد که تکنیک ها و روش های مختلفی ارائه شده اند. یکی از روش گمنامی شبکه های Tor می باشد که امروزه بحثی جالب است. باتوجه به شبکه Tor و امکاناتی که می توان در استفاده از این شبکه داشت بدافزارها ترغیب شده اند تا برای گمنامی خود بدافزارهایشان را برپایه این شبکه ایجاد نمایند. در این مقاله به شبکه های Tor می پردازیم و بررسی بر نحوه کارکرد آن خواهیم داشت.

Tor که مخفف The Onion Router یک نرم افزار و یک شبکه باز است که کاربر را از آنالیزور های ترافیک محافظت می کند. پروژه Tor که در سال 2006 پدید آمد و در واقع نسل دوم از پروژه مسیریابی پیازی از آزمایشگاه تحقیقات نیروی دریایی ایالات متحده محسوب می گردد. هدف اصلی در ابتدا محافظت از ارتباطات دولتی بوده است که امروزه برای اهداف مختلفی توسط افراد مختلفی مورد استفاده قرار می گیرد. همانطور که گفته شد Tor از مسیریابی پیازی استفاده می کند و مبتنی بر لایه های چندگانه امنیتی است، دقیقا همانند پوست پیاز که لایه به لایه است و این لایه های امنیتی یک به یک از پیام های رد وبدل شده در شبکه Tor حذف می گردند.

index

 اما Tor نسبت به بلوکه شدن آسیب پذیر است. بیشتر نودهای Tor در یک دایرکتوری عمومی لیست می‌شوند، بنابراین برای گردانندگان شبکه‌ها ساده است که به لیست دسترسی یافته و آدرسهای IP نودها را به فیلتر خود اضافه کنند. یک راه برای خلاصی از این نوع بلوکه کردن استفاده از یکی از چندین پل Tor است که نودهای Tor هستند، که برای اجتناب از بلوکه کردن، بصورت عمومی لیست نمی‌شوند.

گاها بعضی از برنامه‌هایی که از Tor استفاده می‌کنند امکان دارد گمنام ماندن شما را خدشه دار کنند، همچنین اگر از رمزنگاری اضافه برای حفاظت از ارتباطهای خود استفاده نمی‌کنید، داده‌های شما هنگام رسیدن به آخرین گره Tor در زنجیره (گره خروج) داده‌های شما بصورت بالقوه برای صاحب آخرین گره Tor و ISP بین آن گره و سایت وب مقصد شما آشکار خواهد شد.

اطلاعات بیشتر

بدست آوردن Gateway در Python با scapy

شاید هنگام ‍‍‍‍پیاده سازی یک حمله نیاز داشته باشید که default gateway رو بدست بیارید وجهت اتوماتیک سازی کارها نیاز به ورودی کاربر پیدا نکنید. مثلا برای حمله ARP بطور خودکار gateway آی پی خود را در شبکه بدست بیاورید و حمله را علیه آن انجام دهید و یا حالت های دیگر.

 

در فایل config.py کلاسی به نام conf وجود دارد.این کلاس شامل تنظیمات scapy است. براحتی میتونیم با دستور زیر این تنظیمات رو مشاهده کنیم:

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

خوب میبینیم که  routing table درون سیستممان را بطور کامل برایمان نشان داد که default gateway نیز شامل آنهاست و چیزی که میخواهیم بدست آوریم. parse نمودن بدین صورت زیاد جالب نخواهد بود بنابراین بازهم از conf.route به فیلد دیگری مراجع میکنیم تا اطلاعات را بصورت بهتری متناسب با کاری که میخواهیم انجام دهیم به نمایش درآید.بدین صورت:

براحتی میتوان اطلاعات شبکه هایمان را داشته باشیم و براساس هرفیلدی که لازم است داده ها را فیلتر نماییم. خوب جهت راحتی کار  ما تابعی مینویسیم که پارامتر ورودی IP موردنظرمان و خروجی نیز gateway همان IP ورودی خواهد بود:

 

 

حمله برروی LSDB ها در پروتکل مسیریابی OSPF همراه سناریو عملی

سلام دوستان.

دلیل اصلی نوشتن این مطلب برمیگرده به پستی که در یکی از سایت های ایرانی خوندم، سایت وتیمی که خود را جزو بهترین و برترین شرکت های امنیت شبکه و رایانه ای کشور می داند. درواقع مطلبی که خوندم  دوست عزیز امنیتی مون اسم تاپیک رو ”  آسیب پذیری موجود بر روی پروتکل OSPF ”  گذاشته بود و اگر بطور صریح حرف بزنیم ترجمه و شرح CVE-2012-0249 بودش!

این باگ مربوط به برنامه Quagga که بیس آن Zebra است. باگ در Daemon OSPF که وظیفه اجرای پروتکل OSPF را برعهده دارد رخ می دهد. در بسته های دریافتی LS Update طول چک نمی شود. طول در LSA Hader قرار میگیرد (فیلد length)  و این باگ باعث ایجاد حملات DOS می شود. حال نمیدونم وظیفه پروتکل آیا واقعا چک کردن طول داده هاست؟ یا این یک خطای برنامه نویسی است؟ که این بشر نوشته کشف آسیب پذیری در پروتکل OSPF ونکته ظریف اینجاست که اگر باگ مرتبط با پروتکل باشد بدون شک بایستی در تمامی دیوایس هایی که این پروتکل را پیاده سازی نموده اند وجود داشته باشد. پروتکل های که نوشته می شوند براساس تفکر و منطق هستند پس باگ هم بایستی logical باشد نه مرتبط با Secure Coding.

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

 

ابتدا مروری بر قواعد OSPF خواهیم داشت تا حمله بهتر درک شود:

  • قواعد براساس وضعیت پیوندهایا همان Link-State است، بنابراین همه روترهایی که در یک ناحیه OSPF قر ار دارند بایستی توپولوژی آن Area رو یادبگیرند.
  • بطورکلی OSPF سه مرحله دارد:
  1. اطلاعات روترهای مجاور، neighbor ها که شرایط برقراری ارتباط و تبادل داده ها را دارد، در جدولی به نام neighbor table ذخیره می شود.
  2. نگهداری و تبادل اطلاعات توپولوزیکی شبکه، بین روترهای همسایه است. این اطلاعات در جدولی به نام LSDB ذخیره می گردد.
  3. انتخاب بهترین مسیر ازروی جدول LSDB که این کارتوسط الگوریتم Dijkstra انجام می شود.

برای ساخت Topology Database از ارسال و دریافت بسته هایی به نام LSA استفاده می شود لذا بنابرموقعیت توپولوژیکی 11نوع LSA داریم که Header تمامی آنها یکسان است. ساختار این هدر را در پایین می توانید مشاهده کنید :

 

اطلاعات بیشتر