شنبه ۰۸ اردیبهشت ۰۳

نحوه نصب و استفاده ازRadamsa براي فوز كردن برنامه ها (تكنيك تست خودكار نرم افزار) و خدمات شبكه روي Ubuntu 18.04

۱۰ بازديد

مقدمه
تهديدهاي امنيتي بطور مداوم پيچيده تر مي شوند ، بنابراين توسعه دهندگان و ادمين هاي سيستم ها بايد در دفاع و آزمايش امنيت برنامه هاي خود رويكردي پيشگيرانه اتخاذ كنند.
روشي متداول براي آزمايش امنيت برنامه هاي مشتري يا خدمات شبكه، fuzzing است كه شامل ارسال مكرر داده هاي نامعتبر يا نادرست به برنامه و تجزيه و تحليل پاسخ آن است. اين كار براي كمك به اينكه برنامه در برابر ورودي غير منتظره كه ممكن است شامل داده هاي نادرست يا حملات واقعي باشد، چقدر مقاومت و استحكام دارد مفيد است.
Radamsa يك ابزار fuzzing منبع باز است كه مي تواند موارد آزمايش را بر اساس داده هاي ورودي مشخص شده توسط كاربر ايجاد كند. Radamsa كاملاً قابل سنديت است و تاكنون در يافتن آسيب پذيري در برنامه هاي واقعي مانند Gzip موفق بوده است.
در اين آموزش ، Radamsa را با استفاده از موارد تست خود ، براي فوز تست خط فرمان و برنامه هاي مبتني بر شبكه، نصب و استفاده خواهيد كرد.
هشدار: Radamsa ابزاري براي آزمايش نفوذ است كه به شما امكان مي دهد آسيب پذيري ها يا نقاط ضعف سيستم ها يا برنامه هاي خاص را شناسايي كنيد. شما نبايد از آسيب پذيري هاي يافت شده با Radamsa براي هر نوع رفتار بي احتياط ، آسيب يا سوء استفاده مخرب استفاده كنيد. از لحاظ اخلاقي آسيب پذيري ها بايد به نگهدارنده برنامه آسيب ديده گزارش شود و بدون اجازه صريح در معرض ديد عموم قرار نگيرد.
پيش نيازها
قبل از شروع اين راهنما به موارد زير نياز خواهيد داشت:
يك سرور مجازي Ubuntu 18.04 كه با دنبال كردن راهنماي راه اندازي سرور مجازي اوليه با Ubuntu 18.04نصب شده باشد، و شامل يك كاربر sudo غير ريشه و فايروال فعال براي مسدود كردن پورت هاي غير ضروري باشد.
يك خط فرمان يا برنامه مبتني بر شبكه كه مي خواهيد آن را امتحان كنيد ، به عنوان مثال Gzip ، Tcpdump ، Bind ، Apache ، jq يا هر برنامه ديگري كه مورد نظر شماست. به عنوان نمونه براي اهداف اين آموزش ، از jq استفاده خواهيم كرد.
هشدار: Radamsa مي تواند باعث شود برنامه ها يا سيستم ها به صورت ناپايدار يا crash اجرا شوند ، بنابراين فقط Radamsa را در محيطي كه براي اين كار آماده هستيد مانند سرور اختصاصي اجرا كنيد. لطفاً قبل از انجام fuzz testing در برابر آن ، از داشتن اجازه كتبي صريح از صاحب سيستم اطمينان حاصل كنيد.

پس از آماده شدن ، به عنوان كاربر غير ريشه وارد سرور مجازي خود شويد.
مرحله 1 – نصب Radamsa
در مرحله اول ، Radamsa را دانلود و كامپايل مي كنيد تا در سيستم خود شروع به استفاده از آن كنيد. كد منبع Radamsa در منبع رسمي GitLab موجود است.
با به روز كردن فهرست بسته محلي شروع كنيد تا تغييرات جديد بالادست را منعكس كنيد:
$ sudo apt update
سپس بسته هاي gcc ، git ، make و wget لازم جهت تهيه كد منبع را در يك باينري قابل اجرا نصب كنيد:
$ sudo apt install gcc git make wget

apt پس از تأييد نصب ، بسته هاي مشخص شده و كليه وابستگي هاي مورد نياز آنها را دانلود و نصب خواهد كرد.
در مرحله بعد ، يك نسخه از كد منبع را براي Radamsa با كلون كردن آن از منبع ميزبان در GitLab ، دانلود مي كنيد:
$ git clone https://gitlab.com/akihe/radamsa.git

به اين ترتيب يك دايركتوري به نام radamsa شامل كد منبع براي برنامه ايجاد خواهيد كرد. براي شروع كامپايل كد به فهرست راهنما برويد:
$ cd radamsa
در مرحله بعد ، مي توانيد مراحل كامپايل را با استفاده از make انجام دهيد:
$ make

سرانجام ، مي توانيد باينري Radamsa كامپايل شده را با PATH $ خود نصب كنيد:
$ sudo make install

پس از اتمام اين كار ، مي توانيد نسخه نصب شده را بررسي كنيد تا مطمئن شويد كه همه چيز كار مي كند:
$ radamsa –version

خروجي شما شبيه به زير خواهد بود:
Output
Radamsa 0.6

اگر خطاي radamsa: command not found را مشاهده كرديد، دوبار بررسي كنيد كه تمام وابستگي هاي لازم نصب شده اند و در هنگام كامپايل خطايي وجود ندارد.
اكنون كه Radamsa را نصب كرديد ، مي توانيد برخي از موارد نمونه آزمايشي را ايجاد كنيد تا ببينيد كه Radamsa چگونه كار مي كند و براي چه چيزي مي تواند مورد استفاده قرار گيرد.
مرحله 2 – ارائه موارد Fuzzing Test
اكنون كه Radamsa نصب شده است ، مي توانيد از آن براي توليد برخي موارد Fuzzing Test استفاده كنيد.
نمونه آزمايشي بخشي از داده هاست كه به عنوان ورودي براي برنامه اي كه تست مي كنيد استفاده مي شود. به عنوان مثال ، اگر در حال آزمايش يك برنامه بايگاني مانند Gzip هستيد ، مورد آزمايشي ممكن است يك آرشيو فايلي باشد كه مي خواهيد آن را فشرده سازي كنيد.
توجه: Radamsa داده هاي ورودي را با طيف گسترده اي از روش هاي غير منتظره از جمله تكرار شديد ، bit flips ، تزريق كاراكتر كنترل و موارد ديگر دستكاري مي كند. اين كار ممكن است باعث شود كه بخش پايانه شما متوقف يا ناپايدار شود ، بنابراين قبل از ادامه اين كار آگاه باشيد.
در مرحله اول ، يك متن ساده را به Radamsa منتقل كنيد تا ببينيد چه اتفاقي مي افتد:
$ echo “Hello, world!” | radamsa

اين كار داده هاي ورودي را دستكاري (يا فوز) مي كند و يك نمونه آزمايشي را توليد مي كند ، به عنوان مثال:
Output
Hello,, world!

در اين حالت ، Radamsa يك كاما اضافي بين Hello و world اضافه كرد. ممكن است تغيير مهمي به نظر نرسد، اما در برخي از برنامه ها ممكن است باعث تفسير نادرست داده ها شود.
بياييد دوباره با اجراي همان دستور امتحان كنيم. خروجي متفاوتي را مشاهده خواهيد كرد:
Output
Hello, ”””’wor’d!

اين بار ، چندين تك نقل قول (‘) به رشته وارد شد ، از جمله علامتي كه روي l در world قرار گرفت. اين مورد تست خاص به احتمال زياد منجر به ايجاد مشكلاتي در برنامه خواهد شد ، زيرا اغلب از نقل قول هاي تك / دوتايي براي جدا كردن بخش هاي مختلف داده در يك ليست استفاده مي شود.
بياييد يك بار ديگر امتحان كنيم:
Output
Hello, $+$PATHu0000`xcalc`world!

در اين مورد Radamsa يك رشته ورود پوسته اي را درج كرده است ، كه براي تست آسيب پذيري هاي ورود فرمان در برنامه اي كه شما آزمايش مي كنيد ، مفيد خواهد بود.
شما از Radamsa براي fuzz رشته ورودي و توليد يك سري موارد آزمايشي استفاده كرده ايد. در مرحله بعد ، از Radamsa براي fuzz كردن يك برنامه خط فرمان استفاده خواهيد كرد.
مرحله 3 – Fuzzing برنامه خط فرمان
در اين مرحله ، از Radamsa استفاده مي كنيد تا يك برنامه خط فرمان را fuzz كرده و در مورد هرگونه كرشي كه رخ مي دهد گزارش دهيد.
تكنيك دقيق fuzzing هر برنامه بسيار متفاوت است و روشهاي مختلف براي برنامه هاي مختلف موثرتر خواهد بود. اما در اين آموزش از مثال jq استفاده خواهيم كرد كه يك برنامه خط فرمان براي پردازش داده هاي JSON است.
ممكن است براي هر برنامه مشابهي تا زماني كه از اصول كلي گرفتن برخي شكل هاي داده هاي ساختاري يا بدون ساختار تبعيت ميكند، استفاده كنيد، كاري با آن انجام دهيد و سپس نتيجه اي دريافت كنيد. به عنوان مثال اين مثال همچنين با Gzip ، Grep ، bc ، tr و غيره كار مي كند.
اگر jq را قبلاً نصب نكرديد ، مي توانيد آن را با استفاده از apt نصب كنيد:
$ sudo apt install jq
اكنون jq نصب خواهد شد.
براي شروع fuzzing ، يك فايل نمونه JSON ايجاد كنيد كه از آن به عنوان ورودي Radamsa استفاده خواهيد كرد:
$ nano test.json

سپس داده هاي JSON نمونه زير را به فايل اضافه كنيد:
test.json
{
“test”: “test”,
“array”: [
“item1: foo”,
“item2: bar”
]
}

اگر مي خواهيد صحت دستور JSON را بررسي كنيد مي توانيد اين فايل را با استفاده از jq تجزيه كنيد:
$ jq . test.json

اگر JSON معتبر باشد ، jq فايل را در خروجي صادر مي كند. در غير اينصورت خطايي نمايش داده مي شود كه مي توانيد در صورت لزوم براي اصلاح دستور استفاده كنيد.
در مرحله بعد ، فايل JSON تست را با استفاده از Radamsa فوز كنيد و سپس آن را به jq منتقل كنيد. اين باعث خواهد شد كه jq مورد آزمايش فوز شده / دستكاري شده را به جاي داده هاي معتبر اصلي JSON بخواند:
$ radamsa test.json | jq

اگر Radamsa داده هاي JSON را به شكلي fuzz كند كه هنوز از نظر نحوي معتبر باشد ، jq داده ها را به خروجي مي فرستد ، اما با هر تغييري كه Radamsa در آن ايجاد كرده است.
از طرف ديگر ، اگر Radamsa باعث بي اعتبار بودن داده هاي JSON شود ، jq خطاي مربوطه را نشان مي دهد. مثلا:
Output
parse error: Expected separator between values at line 5, column 16

نتيجه جايگزين اين خواهد بود كه jq قادر به پردازش درست داده هاي فوز شده نيست و باعث كرش يا سوء رفتار آن مي شود. اين همان چيزي است كه در fuzzing واقعاً به دنبال آن هستيد ، زيرا ممكن است نشانگر آسيب پذيري امنيتي مانند سرريز بافر يا تزريق فرمان باشد.
براي آزمايش كارآمدتر در برابر آسيب پذيري هايي از اين دست ، مي توان از اسكريپت Bash براي خودكارسازي فرايند fuzzing استفاده كرد ، از جمله توليد موارد تست ، انتقال آنها به برنامه هدف و گرفتن هر خروجي مربوطه.
فايلي با نام jq-fuzz.sh ايجاد كنيد:
$ nano jq-fuzz.sh

محتواي دقيق اسكريپت بسته به نوع برنامه مورد نظر شما و داده هاي ورودي متفاوت خواهد بود ، اما در مورد jq و ساير برنامه هاي مشابه ، متن زير كافي است.
اسكريپت را در فايل jq-fuzz.sh كپي كنيد:
jq-fuzz.sh
#!/bin/bash
while true; do
radamsa test.json > input.txt
jq . input.txt > /dev/null 2>&1
if [ $? -gt 127 ]; then
cp input.txt crash-`date +s%.%N`.txt
echo “Crash found!”
fi
don

اين اسكريپت حاوي يك while است تا محتويات به صورت مكرر حلقه شود. هر بار كه اسكريپت حلقه شود ، Radamsa يك فايل آزمايشي را بر اساس test.json توليد مي كند و آن را در input.txt ذخيره مي كند.
فايل آزمايشي input.txt از طريق jq اجرا مي شود ، آن هم با استفاده از همه خروجي هاي استاندارد و خطا كه به / dev / null هدايت مي شوند تا از پر شدن صفحه ترمينال جلوگيري شود.
در آخر ، مقدار خروجي jq بررسي مي شود. اگر مقدار خروجي از 127 بيشتر باشد ، نشانگر پايان مخرب (كرش) است ، سپس داده هاي ورودي براي بررسي در تاريخ بعدي در فايلي به نام crash ذخيره مي شوند – به دنبال آن تاريخ فعلي در ثانيه ها و نانو ثانيه هاي يونيكس مي آيد.
اسكريپت را به عنوان قابل اجرا علامت گذاري كنيد و آن را براي اجرا تنظيم كنيد تا به طور خودكار تست فوزي jq را شروع كند:
$ chmod +x jq-fuzz.sh

$ ./jq-fuzz.sh
مي توانيد CTRL + C را در هر زمان صادر كنيد تا اسكريپت خاتمه يابد. سپس مي توانيد با استفاده از ls ​​براي نمايش فهرست دايركتوري حاوي فايلهاي كرش شده اي كه ايجاد شده اند، بررسي كنيد كه آيا كرشي يافت شده است يا خير.
ممكن است بخواهيد داده هاي ورودي JSON خود را بهبود بخشيد زيرا احتمالاً استفاده از يك فايل ورودي پيچيده تر باعث بهبود كيفيت نتايج fuzzing مي شود. از استفاده از يك فايل بزرگ يا فايلي كه حاوي تعداد زيادي از داده هاي تكراري است ، خودداري كنيد – يك فايل ورودي ايده آل اندازه كوچكي دارد ، اما همچنان ممكن است تا سر حد امكان عناصر پيچيده بسياري داشته باشد. به عنوان مثال ، يك فايل ورودي خوب شامل نمونه هايي از داده هاي ذخيره شده در تمام قالب ها ، از جمله رشته ها ، اعداد صحيح ، بولي ها ، ليست ها و موضوعات ، و همچنين در صورت امكان داده هاي تو در تو مي باشد.
شما از Radamsa براي fuzz كردن يك برنامه خط فرماني استفاده كرده ايد. در مرحله بعد ، از Radamsa براي fuzz كردن درخواست ها براي خدمات شبكه استفاده خواهيد كرد.
مرحله 4 – فوز كردن درخواست ها براي خدمات شبكه
Radamsa همچنين مي تواند براي fuzzing سرويس هاي شبكه ، يا به عنوان مشتري يا سرور مجازي شبكه ، مورد استفاده قرار گيرد. در اين مرحله ، از Radamsa براي fuzzing سرويس شبكه استفاده خواهيد كرد كه Radamsa به عنوان مشتري عمل مي كند.
هدف از fuzzing خدمات شبكه ، آزمايش چگونگي انعطاف پذيري يك سرويس شبكه خاص براي مشترياني است كه داده هاي ناقص و / يا مخرب را ارسال مي كنند. بسياري از خدمات شبكه مانند سرور مجازي هاي وب يا سرور مجازي هاي DNS معمولاً در معرض اينترنت قرار دارند ، به اين معني كه آنها يك هدف مشترك براي مهاجمان هستند. يك سرويس شبكه اي كه به اندازه كافي در برابر دريافت داده هاي نادرست مقاوم نيست ممكن است كرش كند يا حتي بدتر از آن اين كه در وضعيت باز از كار بيفتد و به مهاجمان اجازه دهد داده هاي حساس مانند كليدهاي رمزگذاري يا داده هاي كاربر را بخوانند.
روش خاص براي fuzzing خدمات شبكه بسته به خدمات شبكه در آن بسيار متفاوت است، با اين حال در اين مثال ما از Radamsa استفاده خواهيم كرد تا يك سرور مجازي اصلي وب كه محتواي HTMLاستاتيك را ارائه مي دهد ، fuzz كند.
در مرحله اول ، شما بايد سرور مجازي وب را تنظيم كنيد تا از آن براي آزمايش استفاده كنيد. شما مي توانيد اين كار را با استفاده از سرور مجازي توسعه داخلي كه همراه با بسته php-cli است انجام دهيد. همچنين براي آزمايش سرور مجازي وب خود به curl نياز داريد.
اگر php-cli و / يا curl نصب نكرديد ، مي توانيد آنها را با استفاده از apt نصب كنيد:
$ sudo apt install php-cli curl
بعد ، دايركتوري ايجاد كنيد تا فايل هاي سرور مجازي وب خود را در آن ذخيره كنيد و به داخل آن برويد:

$ mkdir ~/www

$ cd ~/www
سپس ، يك فايل HTML ايجاد كنيد كه حاوي متن نمونه است
$ nano index.html

موارد زير را به فايل اضافه كنيد:
index.html

Hello, world!

اكنون مي توانيد سرور مجازي وب PHP خود را اجرا كنيد. لازم است بتوانيد ضمن استفاده از بخش ترمينال ديگر ، ورود به سيستم سرور مجازي وب را مشاهده كنيد ، بنابراين يك بخش ترمينال و SSH ديگر را براي اين كار باز كنيد:
$ cd ~/www

$ php -S localhost:8080

اين دستور خروجي شبيه به زير را در پي خواهد داشت:
Output
PHP 7.2.24-0ubuntu0.18.04.1 Development Server started at Wed Jan 1 16:06:41 2020
Listening on http://localhost:8080
Document root is /home/user/www
Press Ctrl-C to quit.

اكنون مي توانيد به بخش ترمينال اصلي خود برگرديد و آزمايش كنيد كه وب سرور مجازي با استفاده از curl كار مي كند يا نه:
$ curl localhost:8080

با اين كار نمونه فايل index.html كه قبلاً ايجاد كرده ايد به خروجي فرستاده مي شود:
Output

Hello, world!

سرور مجازي وب شما فقط بايد به صورت محلي قابل دسترسي باشد ، بنابراين نبايد هيچ درگاهي در فايروال خود براي آن باز كنيد.
اكنون كه سرور مجازي وب تستي خود را تنظيم كرده ايد ، مي توانيد با استفاده از Radamsa ، آن را fuzz كنيد.
ابتدا بايد يك نمونه HTTP نمونه ايجاد كنيد تا از آن به عنوان داده ورودي براي Radamsa استفاده شود. يك فايل جديد براي ذخيره در آن ايجاد كنيد:
$ nano http-request.txt

سپس ، درخواست HTTP نمونه زير را در فايل كپي كنيد:
http-request.txt
GET / HTTP/1.1
Host: localhost:8080
User-Agent: test
Accept: */*

در مرحله بعد ، مي توانيد از Radamsa براي ارسال اين درخواست HTTP به سرور مجازي وب محلي خود استفاده كنيد. براي انجام اين كار ، بايد از Radamsa به عنوان سرويس دهنده TCP استفاده كنيد ، كه مي تواند با مشخص كردن آدرس IP و پورت براي اتصال به آن انجام شود:
$ radamsa -o 127.0.0.1:8080 http-request.txt

توجه: توجه داشته باشيد كه استفاده از Radamsa به عنوان مشتري TCP به طور بالقوه باعث مي شود كه داده هاي نادرست / مخرب از طريق شبكه منتقل شوند. اين مسئله ممكن است مشكل ساز شود ، بنابراين بايد فقط به شبكه هايي كه مجاز به آزمايش آنها هستيد دسترسي داشته باشيد يا ترجيحا فقط از آدرس localhost (127.0.0.1) استفاده كنيد.
در نهايت ، اگر گزارش هاي خروجي را براي سرور مجازي وب محلي خود مشاهده كنيد ، خواهيد ديد كه اين درخواست ها را دريافت كرده است ، اما به احتمال زياد آنها را به عنوان نامعتبر / نادرست پردازش نكرده است.
گزارش هاي خروجي در پنجره ترمينال دوم شما قابل مشاهده خواهند بود:
Output
[Wed Jan 1 16:26:49 2020] 127.0.0.1:49334 Invalid request (Unexpected EOF)
[Wed Jan 1 16:28:04 2020] 127.0.0.1:49336 Invalid request (Malformed HTTP request)
[Wed Jan 1 16:28:05 2020] 127.0.0.1:49338 Invalid request (Malformed HTTP request)
[Wed Jan 1 16:28:07 2020] 127.0.0.1:49340 Invalid request (Unexpected EOF)
[Wed Jan 1 16:28:08 2020] 127.0.0.1:49342 Invalid request (Malformed HTTP request)

براي دستيابي به نتايج بهينه و اطمينان از ثبت كرش ها ، بهتر است يك اسكريپت اتوماسيون مشابه آنچه در مرحله 3 استفاده شده است بنويسيد. همچنين بايد از يك فايل ورودي پيچيده تر استفاده كنيد ، كه ممكن است حاوي اضافاتي مانند هدرهاي HTTP بيشتر باشد.
با استفاده از Radamsa كه به عنوان يك سرويس دهنده TCP عمل مي كند ، يك سرويس شبكه را fuzz كرده ايد. در مرحله بعد ، يك سرويس دهنده شبكه را با Radamsa به عنوان سرور مجازي fuzz مي كنيد.
مرحله 5 – Fuzzing برنامه هاي مشتري شبكه
در اين مرحله ، از Radamsa براي آزمايش fuzz كردن يك برنامه مشتري شبكه استفاده خواهيد كرد. اين كار با رهگيري پاسخ هاي يك سرويس شبكه و fuzz كردن آنها قبل از دريافت توسط مشتري حاصل مي شود.
هدف از اين نوع fuzzing ، آزمايش ميزان مقاومت برنامه هاي مشتري شبكه در برابر دريافت داده هاي نادرست يا مخرب از خدمات شبكه است. به عنوان مثال ، آزمايش يك مرورگر وب (مشتري) كهHTML ناقص از يك سرور مجازي وب (سرويس شبكه) دريافت ميكند يا آزمايش يك مشتري DNS كه پاسخ DNS نادرست از يك سرور مجازي DNS دريافت منمايد.
همانند مورد fuzzing برنامه هاي خط فرمان يا خدمات شبكه، تكنيك دقيق براي fuzzing هر برنامه سرويس دهنده شبكه بطور قابل توجهي متفاوت است ، اما در اين مثال از Whois استفاده خواهيد كرد كه يك برنامه ارسال يا دريافت ساده مبتني بر TCP است.
از برنامه whois براي ارسال درخواست به سرور مجازي هاي WHOIS و دريافت سوابق WHOIS به عنوان پاسخ استفاده مي شود. WHOIS روي درگاه TCP 43 با متن واضح كار مي كند ، و آن را به عنوان كانديداي خوبي براي آزمايش fuzz مبتني بر شبكه تبديل مي كند.
اگر قبلاً whois  را كه نداشته ايد ، مي توانيد آن را با استفاده از apt نصب كنيد:
$ sudo apt install whois
در مرحله اول ، به نمونه پاسخ whoisنياز خواهيد داشت كه از آن به عنوان داده ورودي استفاده كنيد. شما مي توانيد اين كار را با ايجاد درخواست whois و ذخيره كردن خروجي در يك فايل انجام دهيد. شما مي توانيد از هر دامنه مورد نظر خود در اينجا استفاده كنيد زيرا برنامه whois را بصورت محلي و با استفاده از داده هاي نمونه محلي آزمايش مي كنيد:
$ whois example.com > whois.txt
در مرحله بعد ، بايد Radamsa را به عنوان سرور مجازي  تنظيم كنيد كه نسخه هاي fuzz شده اين پاسخ whois را ارائه مي دهد. هنگامي كه Radamsa در حالت سرور مجازي كار مي كند ، مي توانيد استفاده از ترمينال خود را ادامه دهيد ، بنابراين توصيه مي شود براي اين كار بخش ترمينال و اتصال SSH ديگري را به سرور مجازي خود باز كنيد:
اكنون Radamsa در حالت سرور مجازي TCP در حال اجرا است و هر زمان كه اتصال به سرور مجازي برقرار شود ، بدون توجه به دريافت اطلاعات درخواست ، يك نسخه فازي از whois.txt را ارائه مي دهد.
اكنون مي توانيد به آزمايش برنامه مشتري whois برويد. براي هر دامنه مورد نظر خود بايد يك درخواست whois عادي را تهيه كنيد (لازم نيست همان اطلاعاتي باشد كه براي نمونه داده ها است) ، اما با whois به سرور مجازي محلي Radamsa خود اشاره كرديد:
$ whois -h localhost:4343 example.com
پاسخ، داده هاي نمونه شما خواهد بود اما توسط Radamsa فوز شده است. تا زماني كه Radamsa در حال اجرا است مي توانيد به درخواست هاي خود به سرور مجازي محلي ادامه دهيد و هر بار پاسخ فوز شده متفاوت را ارائه مي دهد.
مانند fuzzing خدمات شبكه ، براي بهبود كارآيي اين آزمايش كلاينت شبكه و اطمينان از يافت هر گونه كرش ، بهتر است يك اسكريپت اتوماسيون مشابه آنچه در مرحله 3 استفاده مي شود بنويسيد.
در اين مرحله آخر ، از Radamsa براي انجام آزمايش fuzzing يك برنامه مشتري شبكه استفاده كرديد.
نتيجه
در اين مقاله Radamsa را تنظيم كرده ايد و از آن براي فوز كردن يك برنامه خط فرمان ، يك سرويس شبكه و يك مشتري شبكه استفاده كرديد. اكنون دانش بنيادي لازم براي آزمايش fuzzing برنامه هاي خود را داريد ، اميدوارم كه نتيجه آن استحكام و مقاومت آنها در مقابل حمله باشد.
اگر مي خواهيد در مورد Radamsa بيشتر بدانيد ، توصيه ميشود فايل Radamsa README را با جزئيات مرور كنيد ، زيرا حاوي اطلاعات فني بيشتر و نمونه هايي از چگونگي استفاده از اين ابزار است:
فايل README Radamsa
همچنين ممكن است بخواهيد برخي از ابزارهاي ديگر fuzzing مانند American Fuzzy Lop (AFL) را كه يك ابزار فوز پيشرفته است و براي آزمايش برنامه هاي باينري با سرعت و دقت بسيار بالا طراحي شده است ، بررسي كنيد:
American Fuzzy Lop

 

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

نحوه تاييد صحت رمز عبور با Apache در اوبونتو 18.04

نحوه نصب و استفاده از TimescaleDB در CentOS 7

نحوه تاييد صحت رمز عبور با Apache در اوبونتو 18.04 (شروع سريع)

نحوه راه اندازي Eclipse Theia Cloud IDE Platform در Debian 10

نحوه نصب و استفاده ازRadamsa براي فوز كردن برنامه ها (تكنيك تست خودكار نرم افزار) و خدمات شبكه روي Ubuntu 18.04

نحوه نصب Docker Compose در Debian 10

چگونه مي توان با كتابخانه (library) درخواست ها در پايتون شروع به كار كرد

نحوه اجراي صفحه گذاري در MySQL با PHP روي اوبونتو 18.04

نحوه تنظيم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

بسته بندي برنامه Laravel 6 براي توسعه با Docker Compose در اوبونتو 18.04

نحوه بهينه سازي درخواست هاي MySQL با ذخيره سازي ProxySQL در اوبونتو 16.04

نحوه استفاده از Ansible براي نصب و راه اندازي وردپرس با LAMP در اوبونتو 18.04

چگونه مي توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04 تنظيم كرد (شروع سريع)

چگونه مي توان از رول هاي ansible براي انتزاع محيط زيرساختي خود استفاده كرد

نحوه پيكربندي يك خوشه Galera با MySQL در سرورهاي اوبونتو 18.04

نحوه تهيه نسخه پشتيبان و بازيابي يك خوشه Kubernetes در vpsgol با استفاده از Velero

نحوه نصب و استفاده از PostgreSQL در CentOS 7

چگونه مي توان پلتفرم Eclipse Theia Cloud IDE را روي اوبونتو 18.4 تنظيم كرد

نحوه استقرار و مديريت DNS با استفاده از DNSControl در Debian 10

چگونه مي توان پلتفرم Cloud IDE كد سرور را روي CentOS 7 تنظيم كرد

كلمات كليدي خريد سرور

خريد vps – خريد سرور مجازي – خريد سرور – سرور هلند – فروش vps – سرور مجازي آمريكا – خريدvps – سرور مجازي هلند – فروش سرور مجازي – سرور آمريكا – vps – سرور مجازي انگليس – سرور مجازي آلمان – سرور مجازي كانادا – خريد vps آمريكا – خريد وي پي اس – سرور – خريد سرور مجازي هلند – vps خريد – سرور مجازي فرانسه – سرور مجازي هلند – خريد vps آمريكا – خريد سرور مجازي هلند – خريد وي پي اس – خريد vps هلند – خريد vps فرانسه

تا كنون نظري ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در مونوبلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.