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

10 مثال کاربردی از Hping3 برای تست کردن Rule های فایروال

قبلا در خصوص ابزارهای Hping در ITPRO بصورت مفصل صحبت کرده ایم و شما فرآیند Scanning را نیز به خوبی می شناسید ، در این قسمت می خواهیم به شما چند مثال بسیار کاربردی از استفاده Hping در تست های نفوذ واقعی را مطرح کنیم که در قالب دستور به شما نمایش داده می شود به مثالهای زیر توجه کنید.

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

تست کردن ICMP


در مثال زیر Hping3 بصورت یک ping معمولی کار می کند ، یک ICMP-Echo ارسال می کند و یک ICMP-Reply دریافت می کند :

root@itpro-kali:~# hping3 -1 www.tosinso.com
HPING www.tosinso.com (eth0 130.185.73.99): icmp mode set, 28 headers + 0 data bytes
len=46 ip=130.185.73.99 ttl=114 id=21046 icmp_seq=0 rtt=26.5 ms
len=46 ip=130.185.73.99 ttl=114 id=21047 icmp_seq=1 rtt=16.9 ms
len=46 ip=130.185.73.99 ttl=114 id=21048 icmp_seq=2 rtt=14.3 ms
len=46 ip=130.185.73.99 ttl=114 id=21050 icmp_seq=3 rtt=19.0 ms
len=46 ip=130.185.73.99 ttl=114 id=21051 icmp_seq=4 rtt=56.2 ms
...

Traceroute گرفتن با ICMP


مثال زیر بسیار شبیه ابزار tracert عمل می کند که در سیستم عامل ویندوز وجود دارد یا ابزار Traceroute ای که در سیستم عامل لینوکس وجود دارد ، با استفاده از دستور زیر هربار ارسال شدن ICMP یک بار TTL مقدارش افزایش می یابد :

root@itpro-kali:~# hping3 --traceroute -V -1 www.tosinso.com
using eth0, addr: 172.16.1.102, MTU: 1500
HPING www.tosinso.com (eth0 130.185.73.99): icmp mode set, 28 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=172.16.1.1 name=UNKNOWN   
hop=1 hoprtt=5.8 ms
hop=2 TTL 0 during transit from ip=10.10.10.10 name=UNKNOWN   
hop=2 hoprtt=2.4 ms
hop=3 TTL 0 during transit from ip=172.16.194.89 name=UNKNOWN   
hop=3 hoprtt=31.7 ms
hop=4 TTL 0 during transit from ip=172.16.1.194 name=UNKNOWN   
hop=4 hoprtt=15.2 ms
hop=5 TTL 0 during transit from ip=109.201.21.142 name=UNKNOWN   
hop=5 hoprtt=22.6 ms
hop=6 TTL 0 during transit from ip=80.253.138.185 name=int0.client.access.torange.com
hop=6 hoprtt=24.3 ms
hop=7 TTL 0 during transit from ip=10.201.22.118 name=UNKNOWN   
hop=7 hoprtt=17.6 ms
hop=8 TTL 0 during transit from ip=10.201.42.6 name=UNKNOWN   
hop=8 hoprtt=12.8 ms
hop=9 TTL 0 during transit from ip=94.232.169.189 name=UNKNOWN   
hop=9 hoprtt=18.0 ms
...

بررسی پورتها


با استفاده از دستور زیر شما می توانید یک پورت را تجزیه و تحلیل کنید ، اینکار توسط ارسال کردن یک Syn Packet انجام می شود که در مثال زیر بر روی پورت 80 انجام شده است ، شما همچنین می توانید تعیین کنید که از چه Local Port ای اسکن کردن شروع شود به مثال زیر توجه کنید :

root@itpro-kali:~# hping3 -V -S -p 80 -s 5050 www.tosinso.com
using eth0, addr: 172.16.1.102, MTU: 1500
HPING www.tosinso.com (eth0 130.185.73.99): S set, 40 headers + 0 data bytes
len=46 ip=130.185.73.99 ttl=114 DF id=21369 tos=0 iplen=44
sport=80 flags=SA seq=0 win=8192 rtt=27.2 ms
seq=2001765711 ack=1187716468 sum=1c8a urp=0

len=46 ip=130.185.73.99 ttl=114 DF id=21370 tos=0 iplen=44
sport=80 flags=SA seq=1 win=8192 rtt=14.9 ms
seq=126525102 ack=1409320563 sum=4e6a urp=0

len=46 ip=130.185.73.99 ttl=114 DF id=21371 tos=0 iplen=44
sport=80 flags=SA seq=2 win=8192 rtt=28.1 ms
seq=846465082 ack=240833973 sum=3bcc urp=0

len=46 ip=130.185.73.99 ttl=114 DF id=21372 tos=0 iplen=44
sport=80 flags=SA seq=3 win=8192 rtt=17.2 ms
seq=110222191 ack=1871722615 sum=f060 urp=0

len=46 ip=130.185.73.99 ttl=114 DF id=21373 tos=0 iplen=44
sport=80 flags=SA seq=4 win=8192 rtt=17.5 ms
seq=157757325 ack=508669323 sum=26e6 urp=0

len=46 ip=130.185.73.99 ttl=114 DF id=21375 tos=0 iplen=44
sport=80 flags=SA seq=5 win=8192 rtt=19.8 ms
seq=3009401754 ack=1104107335 sum=e5ca urp=0
...

Traceroute گرفتن بر روی یک پورت خاص


یکی از ویژگی های خوب دستور hping3 این است که قابلیت گرفتن Traceroute بر روی پورتهای مختلف را در صورت بسته بودن پورت ICMP را می دهد ، شما می توانید با استفاده از این روش تشخیص بدهید که مثلا یک پورت Block شده است یا اینکه Open است ، امتحان کردن آن هم بسیار ساده است ، کافیست در ادامه دستور بالا فقط یک Traceroute به شکل زیر اضافه کنید و نتیجه را مشاهده کنید :

root@itpro-kali:~# hping3 --traceroute -V -S -p 80 -s 5050 www.tosinso.com
using eth0, addr: 172.16.1.102, MTU: 1500
HPING www.tosinso.com (eth0 130.185.73.99): S set, 40 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=172.16.1.1 name=UNKNOWN   
hop=1 hoprtt=1.5 ms
hop=2 TTL 0 during transit from ip=10.10.10.10 name=UNKNOWN   
hop=2 hoprtt=2.2 ms
hop=3 TTL 0 during transit from ip=172.16.194.89 name=UNKNOWN   
hop=3 hoprtt=50.0 ms
hop=4 TTL 0 during transit from ip=172.16.1.194 name=UNKNOWN   
hop=4 hoprtt=27.3 ms
hop=5 TTL 0 during transit from ip=109.201.21.142 name=UNKNOWN   
hop=5 hoprtt=26.6 ms
hop=6 TTL 0 during transit from ip=80.253.138.185 name=int0.client.access.torange.com
hop=6 hoprtt=50.6 ms
hop=7 TTL 0 during transit from ip=10.201.22.118 name=UNKNOWN   
hop=7 hoprtt=23.0 ms
hop=8 TTL 0 during transit from ip=10.201.42.6 name=UNKNOWN   
hop=8 hoprtt=18.1 ms
hop=9 TTL 0 during transit from ip=94.232.169.189 name=UNKNOWN   
hop=9 hoprtt=13.4 ms
...

تست کردن انواع تکنیک های ICMP


در مثال زیر ما درخواست Address Mask یا همان subnetmask مقصد را با استفاده از hping داده ایم :

root@itpro-kali:~# hping3 -c -1 -V -1 -C 17 www.tosinso.com
...

استفاده از hping برای FIN Scan


شما می توانید برای اسکن کردن از FIN Scan هم استفاده کنید ، در یک ارتباط TCP ساختار FIN Flag برای بستن ارتباط استفاده می شود. اگر شما یک Reply دریافت نکردید به معنی این است که پورت مورد نظر باز است. معمولا فایروال برای اینکه اعلام کند پورت مورد نظر بسته است از ترکیب RST+ACK استفاده می کند ، به مثال زیر دقت کنید که یک FIN Scan را با استفاده از Hping به شما نشان می دهد :

root@itpro-kali:~# hping3 -c -1 -V -p 80 -s 5050 -F www.tosinso.com

استفاده از hping برای ACK Scan


اگر سیستم مقصد شما پورت ICMP را بسته باشد و شما بخواهید بدانید که آیا این سیستم روشن است یا خیر می توانید از ACK scan استفاده کنید ، اگر پورت مورد نظر باز باشد برای شما یک RST Packet بازگشت داده می شود ، به مثلا زیر دقت کنید که برای شما یک ACK Scan را نمایش می دهد :

root@itpro-kali:~# hping3 -c -1 -V -p 80 -s 5050 -A www.tosinso.com

استفاده از hping برای Xmas Scan


این نوع از اسکن یک مجموعه Sequence Number ( اعداد یا سری های پشت سر هم ) از شماره صفر را شروع می کند و در بسته های اطلاعاتی خودش URG+PSH+FIN را قرار می دهد. اگر پورت TCP مقصد بسته باشد ، دستگاه مورد نظر برای شما یک RCP RST برای ریست کردن ارتباط ارسال می کند. اگر پورت مورد نظر TCP باز باشد ، سیستم هدف بسته TCP Xmas را discard کرده و هیچ پاسخی به شما نمی دهد ، مثال زیر یک Xmas Scan را نشان می دهد :

root@itpro-kali:~# hping3 -c -1 -V -p 80 -s 5050 -M 0 -UPF  www.tosinso.com

استفاده از hping برای Null Scan


در این نوع از اسکن Sequence Number عدد صفر است و هیچ Flag ای هم در Packet قرار نمی گیرد. اگر پورت TCP سیستم هدف بسته باشد ، سیستم هدف برای شما یک TCP RST می فرستد. اگر پورت TCP سیستم هدف باز باشد ، سیستم هدف Packet را discard کرده و هیچ Reply ای ارسال نمی کند ، مثال زیر یک Null SCAN را به شما نمایش می دهد :

root@itpro-kali:~# hping3 -c -1 -V -p 80 -s 5050 -Y www.tosinso.com

استفاده از hping برای Smurf attack


در واقع یک نوع حمله از نوع denial of service است که سیستم هدف را با طوفانی از packet های جعلی اشباع می کند و یک broadcast از ping برای مقصد ایجاد می کند ، در قسمت Victim IP باید آدرس IP مقصد و در قسمت Boradcast Address باید آدرس Broadcast سرور مقصد را وارد کنید ، مثال زیر کاملا گویاست :

root@itpro-kali:~#hping3 -1 --flood -a VICTIM_IP BROADCAST_ADDRESS

امیدوارم مورد توجه شما قرار گرفته باشد ، این ابزار بسیار برای تست های نفوذ سنجی و Footprinting کاربردی است . ITPRO باشید

نویسنده : محمد نصیری

منبع : ITPRO

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

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

نظرات