| SLOWHTTPTEST(1) | General Commands Manual | SLOWHTTPTEST(1) |
نام (NAME)
slowhttptest —
شبیهساز
حملات منع
سرویس (DoS)
خلاصه دستور (SYNOPSIS)
slowhttptest
[-H|B|R|X] [-g]
[-a range start]
[-b range limit]
[-c number of connections]
[-d all traffic directed through HTTP proxy at host:port]
[-e probe traffic directed through HTTP proxy at host:port]
[-f value of Content-type header]
[-i interval in seconds]
[-k request multiply factor]
[-l test duration in seconds]
[-m value of Accept header]
[-n slow read interval in seconds]
[-o output file path and/or name]
[-p timeout for probe connection in seconds]
[-r connection per second]
[-s value of Content-Length header]
[-t HTTP verb]
[-u absolute URL]
[-v output verbosity level]
[-w advertised window size range start]
[-x max length of follow up data]
[-y advertised window size range end]
[-z slow read from receive buffer in bytes]
توضیحات (DESCRIPTION)
دستور
slowhttptest
رایجترین
حملات منع
سرویس (DoS)
لایه
کاربرد با
پهنای باند
کم را
پیادهسازی
میکند و
فایلهای CSV
و HTML شامل
آمار آزمون
را تولید
مینماید.
حملاتی که در حال حاضر پشتیبانی میشوند عبارتند از:
- Slowloris
- Slow HTTP POST
- Apache Range Header
- Slow Read
گزینهها به شرح زیر هستند:
-g- دستور
slowhttptestرا وادار میکند هنگام پایان آزمون، فایلهای CSV و HTML را به همراه برچسب زمانی در نام فایل تولید کند. -H- اجرای
slowhttptestدر حالت Slowloris، با ارسال درخواستهای HTTP ناتمام. -B- اجرای
slowhttptestدر حالت Slow POST، با ارسال بدنه پیام ناتمام در درخواستهای HTTP. -R- اجرای
slowhttptestدر حالت Range Header، با ارسال دادههای مخرب در سرایند درخواست Range. -X- اجرای
slowhttptestدر حالت Slow Read، با خواندن آهسته پاسخهای HTTP. -astart- مقدار آغازین مشخصکننده بازه (range-specifier) را برای حمله Range Header تنظیم میکند.
-bbytes- مقدار حد مشخصکننده بازه (range-specifier) را برای حمله Range Header تنظیم میکند.
-cnumber of connections- تعداد اتصالات هدف برای برقراری در طول آزمون را مشخص میکند.
-dHTTP proxy host:port- سرور پراکسی HTTP را برای برقراری تمام اتصالات مشخص میکند.
-eHTTP proxy host:port- سرور پراکسی HTTP را برای اتصالات کاوشگر مشخص میکند.
-fcontent-type- مقدار سرایند Content-Type را مشخص میکند.
-iseconds- فاصله زمانی بر حسب ثانیه را میان دادههای تکمیلی برای آزمونهای Slowloris و Slow POST مشخص میکند.
-kpipeline factor- تعداد دفعاتی که منبع در هر سوکت در آزمون Slow Read درخواست میشود را مشخص میکند.
-lseconds- مدت زمان آزمون را بر حسب ثانیه مشخص میکند.
-maccept- مقدار سرایند Accept را مشخص میکند.
-nseconds- فاصله زمانی میان عملیاتهای خواندن را برای آزمون Slow Read بر حسب ثانیه مشخص میکند.
-ofile name- نام فایل
سفارشی را
مشخص
میکند، که
همراه با
-gکاربرد دارد. -pseconds- مدت زمان انتظار برای دریافت پاسخ HTTP در اتصال کاوشگر را پیش از آنکه سرور به عنوان از کار افتاده (DoSed) در نظر گرفته شود، بر حسب ثانیه مشخص میکند.
-rconnections per second- نرخ برقراری اتصالات را مشخص میکند.
-sbytes- مقدار سرایند Content-Length را برای آزمون Slow POST بر حسب بایت مشخص میکند.
-tHTTP verb- متد (فعل) مورد استفاده در درخواست HTTP را مشخص میکند.
-uURL- آدرس اینترنتی (URL) را مشخص میکند.
-vlevel- سطح پرگویی لاگها (verbosity) را مشخص میکند.
-wbytes- نقطه شروع بازهای را مشخص میکند که اندازه پنجره اعلانی TCP در آزمون Slow Read از آن انتخاب میشود.
-xbytes- حداکثر طول دادههای تکمیلی را برای آزمونهای Slowloris و Slow POST مشخص میکند.
-ybytes- نقطه پایانی بازهای را مشخص میکند که اندازه پنجره اعلانی TCP در آزمون Slow Read از آن انتخاب میشود.
-zbytes- تعداد بایتها برای خواندن از بافر دریافت در هر عملیات ()read را مشخص میکند.
مثالها (EXAMPLES)
شروع آزمون Slowloris روی host.example.com با ۱۰۰۰ اتصال، ذخیره آمار در my_header_stats، فاصله ۱۰ ثانیهای میان سرایندهای تکمیلی و نرخ اتصال ۲۰۰ اتصال در ثانیه:
$ slowhttptest -c 1000 -H -g -o
my_header_stats -i 10 -r 200 -t GET -u https://host.example.com/index.html -x
24 -p 3شروع آزمون Slow POST روی host.example.com با ۳۰۰۰ اتصال، ذخیره آمار در my_body_stats، فاصله ۱۱۰ ثانیهای میان سرایندهای تکمیلی، نرخ اتصال ۲۰۰ اتصال در ثانیه، مقدار سرایند Content-Length برابر ۸۱۹۲، حداکثر طول دادههای تکمیلی مقدار تصادفی با سقف ۱۰ بایت و ۳ ثانیه انتظار در اتصال کاوشگر برای دریافت پاسخ HTTP پیش از علامتگذاری سرور به عنوان DoSed:
$ slowhttptest -c 3000 -B -g -o
my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u
http://host.example.com/loginform.html -x 10 -p 3شروع آزمون Range Header روی host.example.com با ۱۰۰۰ اتصال، استفاده از متد HEAD، تولید سرایند HTTP به صورت Range:0-, x-1, x-2, x-3, ... x-y که در آن x برابر ۱۰ و y برابر ۳۰۰۰ است، نرخ اتصال ۵۰۰، فاصله ۱۰ ثانیهای میان سرایندهای تکمیلی و نرخ اتصال ۲۰۰ اتصال در ثانیه:
$ slowhttptest -R -u
http://host.example.com/ -t HEAD -c 1000 -a 10 -b 3000 -r 500شروع
آزمون Slow Read روی
host.example.com با ۸۰۰۰
اتصال،
بدون تولید
آمار، نرخ
اتصال ۲۰۰
اتصال در
ثانیه،
اندازه
پنجره
اعلانی TCP
مقداری
تصادفی بین
۵۱۲ و ۱۰۲۴،
slowhttptest هر ۵
ثانیه
یکبار ۳۲
بایت از هر
اتصال
میخواند،
۳ درخواست
روی هر
اتصال
پایپلاین
میشود، و
اتصال
کاوشگر ۳
ثانیه
منتظر پاسخ
HTTP میماند
پیش از آنکه
سرور را به
عنوان DoSed
علامتگذاری
کند:
$ slowhttptest -c 8000 -X -r 200 -w
512 -y 1024 -n 5 -z 32 -k 3 -u https://host.example.com/resources/index.html
-p 3شروع
آزمون Slow Read روی
host.example.com از طریق
سرور
پراکسی HTTP در
10.10.0.1:8080 با ۸۰۰۰
اتصال،
بدون تولید
آمار و با
مقادیر
پیشفرض
برای سایر
تنظیمات
آزمون. به
احتمال
زیاد slowhttptest
به جای سرور
هدف، خود
سرور
پراکسی HTTP را
میآزماید،
اما این
موضوع
کاملاً به
نحوه
پیادهسازی
سرور
پراکسی HTTP
بستگی
دارد:
$ slowhttptest -d 10.10.0.1:8080 -c
8000 -X -u https://host.example.com/resources/index.htmlشروع
آزمون Slow Read روی
host.example.com و هدایت
ترافیک
کاوشگر از
طریق سرور
پراکسی HTTP در
10.10.0.1:8080 با ۸۰۰۰
اتصال،
بدون تولید
آمار و با
مقادیر
پیشفرض
برای سایر
تنظیمات
آزمون.
تعیین
کانال
اتصال مجزا
برای
اتصالات
کاوشگر کمک
میکند تا
اطمینان
حاصل شود که
slowhttptest آمار
معتبری از
در دسترس
بودن سرور
تحت آزمون
نشان
میدهد:
$ slowhttptest -e 10.10.0.1:8080 -c
8000 -X -u https://host.example.com/resources/index.htmlنویسنده (AUTHOR)
Sergey Shekyan ⟨shekyan@gmail.com⟩.
صفحه پروژه: ⟨https://github.com/shekyan/slowhttptest⟩.
| November 25, 2013 | Linux 6.12.111+deb13-amd64 |