سناریو اول استفاده از بش در کالی لینوکس

منتشر شده در دسته : تست نفوذ با کالی

در اینجا می خواهیم دو سناریو کاربردی بش را به صورت عملی به شما نشان دهیم . در این بخش سناریو اول بش و در بخش بعدی سناریو دوم را خواهیم گفت

سناریو اول بش

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

استفاده عملی بش : مثال اول

با یک نگاه سریع به این فایل دانلود شده موجودیت های html مثل زیر را می بینیم .

استفاده عملی بش : مثال اول

با استفاده از دستور grep شروع به اسخراج خط هایی از فایل کرده که حاوی رشته “href=” هستند . یعنی لینک ها را استخراج می کنیم .خروجی حاصله هنوز HTML هست . ولی اگر دقت کنید اکثر خطوط ساختار مشابهی دارند و می توانیم از کاراکتر “/” به عنوان یک جداکننده استفاده کنیم . برای اینکه به صورت اختصاصی همه اسامی دامین را از فایل استخراج کنیم می توانیم از دستور cut استفاده کنیم :

grep “href=” index.html | cut -d “/” -f 3

استفاده عملی بش : مثال اول

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

استفاده عملی بش : مثال اول

اکنون نتیجه خروجی بسیار تمیز هست ولی هنوز برخی خط ها مشکل زا هستند . با استفاده از دستور cut و جداکننده اول نتیجه را بهبود می بخشیم .

grep “href=” index.html | cut -d “/” -f 3 | grep “\.” | cut -d ‘”‘ -f 1

استفاده عملی بش : مثال اول

اکنون لیست تمیزی از اسامی دامین داریم ولی هنوز نتایج تکراری در این اسامی وجود دارند . با استفاده از دستور sort و سوییچ u- لیست را مرتب کرده و نتایج تکراری را حذف می کنیم :

grep “href=” index.html | cut -d “/” -f 3 | grep “\.” | cut -d ‘”‘ -f 1 | sort -u

استفاده عملی بش : مثال اول

یک راهکار تمیزتر برای انجام این کار این است که خروجی را درون را درون یک فایل ذخیره کنیم .

grep “href=” index.html | cut -d “/” -f 3 | grep “\.” | cut -d ‘”‘ -f 1 | sort -u > list.txt

استفاده عملی بش : مثال اول

 

اکنون لیست تمیزی از اسامی دامنه را داریم که از صفحه اصلی سایت cisco.com بدست آمده است . گام بعدی این است که از دستور host استفاده کنیم تا هر نام دامنه درون فایل متنی که ساختیم را به آدرس آیپی تبدیل کنیم . به این منظور می توانیم از یک حلقه for به صورت زیر استفاده کنیم :

for url in $(cat list.txt); do host $url;done

استفاده عملی بش : مثال اول

 

خروجی دستور host همه نوع خروجی بی ربط و باربط هست . ما می خواهیم فقط آدرس های آیپی مرتبط را استفاده کنیم . در نتیجه خروجی را درون grep پایپ کرده و به دنبال متن “has address” می گردیم سپس خروجی را cut کرده و با دستور sort مرتب می کنیم :

for url in $(cat list.txt); do host $url; done | grep “has address” | cut -d ” ” -f 4 | sort -u

استفاده عملی بش : مثال اول

لیست دروس

خوشحال می شویم دیدگاههای خود را در میان بگذارید * فرصت پاسخگویی به سوالات در بلاگ وجود ندارد

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *