H4x0r
./ عضو




السمعة:
- إنضم26 يونيو 2023
- المشاركات 80
- الحلول 1
- مستوى التفاعل 229
- النقاط 33
السلام عليكم ورحمة الله وبركاته
أهلًا بكم في part 4 في شرح Wireshark في هذا المقال رح نتكلم عن بعض الأمور العملية المهمة جدًا .
أهلًا بكم في part 4 في شرح Wireshark في هذا المقال رح نتكلم عن بعض الأمور العملية المهمة جدًا .
Nmap Scans
كلنا منعرف nmap صحيح بس هون في سؤال أنا كمحلل كيف بدي أعرف إنه في مخترق بحاول يعمل على جهازي scans أو في حدا في الشركة بعمل على جهاز آخر scans ؟
في هذا المقال رح نتكلم عن :
في هذا المقال رح نتكلم عن :
- TCP connect scans
- SYN scans
- UDP scans
1- TCP connect scans
رح نبلش في tcp و رح نفوت بتفاصيله قبل ما نشوف كيف بصير scans. تمام شو هو tcp؟
احنا بنعرف إنه tcp موثوق وبتأكد من الإرسال و بتأكد من الاتصال, طب كيف بصير التأكد ؟ وبنسمع بمصطلح هو handshake طيب خلونا نبلش نفهم حبة حبة
رح نبلش في tcp و رح نفوت بتفاصيله قبل ما نشوف كيف بصير scans. تمام شو هو tcp؟
احنا بنعرف إنه tcp موثوق وبتأكد من الإرسال و بتأكد من الاتصال, طب كيف بصير التأكد ؟ وبنسمع بمصطلح هو handshake طيب خلونا نبلش نفهم حبة حبة
ملاحظة : بعض المعلومات ممكن يكون عدد من الأشخاص عارفها بس برضو ممكن في ناس ما بتعرفها لذلك يجب ذكرها لربط الأفكار
خلينا نتفق و نتخيل سيناريو و نفهم ليش ال tcp موثوق.
خلونا نعطي مثال بسيط الآن أنت عندك معلومة أو فلوس بدك توصلها لشخص أول شيء رح تروح لعنوان الشخص أول ما بتشوفه شو بتعمل بتسلم عليه و بتعرف عن نفسك و هو برد السلام و شو بحكيلك تفضل و أنت بترد عليه. هاي المرحلة أنت طلب التواصل معو و هو وافق و أنت استجبت مع الاتصال الآن خلص انتوا صرتو متصلين مع بعض و تعرفتوا على بعض رح تبلش تعطيه المعلومة أو الفلوس يلي عندك. نفس النظام ينطبع على tcp قبل ما يصير أي ارسال للمعلومات لازم يصير في اتصال يلي هو handshake :
حلو فهمنا الفكرة. الآن كيف بصير handshake :
يلي بصير ال Sender ببعت SYN بحكي لل Recever أنا بدي اتصل معك الآن ال Recever بوافق ببعتله ACK و ببحكي لل Sender أنا كمان بدي اتصل معك ببعتله كمان SYN برد عليه ال Sender بحكيله اوكيه موافق يعني ببعتله ACK
بعد هيك ببلش ال Sender يبعت البيانات لل Recever طيب شو التكنيك يلي بصير عشان يتأكد من وصول المعلومة أو البيانات؟ ايوا هون بدنا نرجع لل Packit detils و نشوف تفصيلة موجودة في Tcp
في عنا شغلتين مهمات :
خلونا نعطي مثال بسيط الآن أنت عندك معلومة أو فلوس بدك توصلها لشخص أول شيء رح تروح لعنوان الشخص أول ما بتشوفه شو بتعمل بتسلم عليه و بتعرف عن نفسك و هو برد السلام و شو بحكيلك تفضل و أنت بترد عليه. هاي المرحلة أنت طلب التواصل معو و هو وافق و أنت استجبت مع الاتصال الآن خلص انتوا صرتو متصلين مع بعض و تعرفتوا على بعض رح تبلش تعطيه المعلومة أو الفلوس يلي عندك. نفس النظام ينطبع على tcp قبل ما يصير أي ارسال للمعلومات لازم يصير في اتصال يلي هو handshake :
حلو فهمنا الفكرة. الآن كيف بصير handshake :
يلي بصير ال Sender ببعت SYN بحكي لل Recever أنا بدي اتصل معك الآن ال Recever بوافق ببعتله ACK و ببحكي لل Sender أنا كمان بدي اتصل معك ببعتله كمان SYN برد عليه ال Sender بحكيله اوكيه موافق يعني ببعتله ACK
بعد هيك ببلش ال Sender يبعت البيانات لل Recever طيب شو التكنيك يلي بصير عشان يتأكد من وصول المعلومة أو البيانات؟ ايوا هون بدنا نرجع لل Packit detils و نشوف تفصيلة موجودة في Tcp

- Sequnce Number (Seq)
- Acknowledgment Number(Ack)
احنا بنعرف إنه البيانات لما بدي أرسلها بتتحول إلى segment عشان أتأكد إنه البيانات وصلوا لازم أتأكد من وصول كل segment … طيب كيف بصير التأكد ؟
الآن ال Seq يحمل قيمة أول byte لل segment كيف يعني ؟
مثال : بدي أبعت رسالة حجمها 1500 byte الآن بدي أقسمها إلى ( 6 ) segment يعني كل segment يحتوي على 250 byte حلوو ال seq -1 رح يحتوي على قيمة segment(1) =1 و ال seq -2 يحتوي على أول byte من segment(2) = 251 و seq -3 رح يحتوي على segment(3) = 501 على هذا التسلسل .
تمام طيب و (Ack ) تحتوي على عدد byte المتوقع استلامها و يرد بأنه استلم القدر الصحيح يعني لما بدي ابعت ال seq -1 =1 رح يكون Ack = 251 إذا استلمهم رح يرد إنه تم الاستلام الآن رح نشوف بصور توضيح .
ال seq=92 و بدي أبعت 8 byte تمام يعني ال Ack قديش لازم يستلم أو شو قيمته؟ بنقدر نيجي نحكي هي ( seq + value bytes) بس بدناش نحفظ بدنا نفهم و نتذكر إنه ال seq قيمة أول byte بل segment و التقسيمة إنه كل segment =8 و حكينا Ack يحتوي على آخر byte بل segment أو قديش متوقع يوصلوا يعني الآن كون ال seq عند 92 و أصلًا قيمة segment =8 يعني ال ack متوقع يوصلوا 100
طب ليش 100 مش 99 ؟ عشان يرد للمرسل و يحكي لل seq إنه رقم 100 هو أول byte في segment الجديدة يلي بدك تبعتها .
شوف هاي صورة و اربط الأفكار :
هسا صرنا فاهمين الموضوع خلونا نبلش نعمل تحليل :
خلونا نشوف جدول أوامر التصفية و نحكي فيهم :
TCP flags
أوكيه شو ال flag؟
بنفس ال packet Detils عند tcp في flag , هي شكلها :
وخليني أعطيكم قيم ال flag عشان يكون كل شيء وضح للتطبيق :
تمام هون لما في SYN و ACK … إلخ رح نتعرف على الأغلب أثناء الشرح عشان هون الفكرة بتحكي لما يصير SYN بنعطي لل SYN =1 زي الكهربا كلهم صفار لما بتحقق شيء بنعطيه 1 .
يعني مثال المرسل لما يطلب اتصال بده يبعت SYN في حزمة الطلب flag كلها بتكون 0 و SYN =1 ولما يجي رد من المستقبل شو رح يبعت ( SYN , ACK ) شو رح يصير flag؟ رح يصر كلهم 0 و SYN =1 and ACK =1 فقط.
أظن الفكرة وصلت وبرضو مع التطبيق رح توصل .
نرجع لموضوعنا :-
Nmap Scans
TCP Connect Scans
ال TCP Connect Scans يعتمد على عملية three-way handshake
لما بدنا نعمل بل nmap نستخدم :
كود:
nmap -sT
بالعادة بكون windows siz أكبر من 1024 bytes بسبب الاتصال. رح أحط صورة توضح العملية three-way handshake كمان مرة :
أوكيه في RST احنا ما حكينا عنها هسا ال nmap هي شو بتعمل Scans يعني هي بدها تعرف بس هو tcp فاتح بقدر اتصل معه إذا تم الاتصال خلص ببعتله بعدها RST يعني ما بدي أرسل بيانات اقطع الاتصال ليش ؟ أنا أخذت يلي بدي ياه عرفت إنك فاتح و اتصلت معك هذا كان هدفي فخلص اقطع الاتصال .
و في حالة كان مغلق شوف أنت بتبعت SYN بس هو شو برد RST إنه اقطع الاتصال
Open TCP port (Connect):
Closed TCP port (Connect):
ممكن كمان يستخدم في nmap :
كود:
nmap -sS
بالعادة بكون windows siz أقل من 1024 bytes لأنه الاتصال لسا انتهى وما بتوقع يستقبل بيانات, هيك العملية بتكون :
هيك الأمور صارت واضحة بنسبة لل tcp رح نحل أمثلة عليه :
1- What is the total number of the “TCP Connect” scans?
طالب مني عدد الاتصالات الناجحة .
تمام الاتصال بكون أنا بعتت sun و بكون window size اكبر 1024 *بكون استخدم sT- .
تمام الاتصال بكون أنا بعتت sun و بكون window size اكبر 1024 *بكون استخدم sT- .
tcp.flags.syn == 1 and tcp.flags.ack == 0 and tcp.window_size >1024
يعني الأمور بسيطة و واضحة إذا البداية الأمور جداً بسيطة .
خلونا ننتلقي لل: UDP Scans
خلونا ننتلقي لل: UDP Scans
UDP Scans
هون الموضوع مختلف وجدًا بسيط جدا يلي رح يصير كالتالي :
هو رح يستخدم في nmap :
كود:
nmap -sU
رح ابعت حزمت Udp إذا وصلت و المستقبل ما رد على بأي شيء الأمور تمام . أما إذا بعتت و رد علي بي ICMP هون فش اتصال أو مغلق
هسا الصورة رح توضحلك كل شيء :
الآن رح ابعت 2 طلبين طلب على port (69) و هو مغلق . و طلب ثاني ل port (68) و هو مفتوح :
شوف الأول كان مغلق رد علي المستقبل في ICMP بينما الثاني كان مفتوح ما رد أبدًا استقبلها و خلاص .
ملاحظة : تم تقسيم المقالات عشان ما تكون طويلة و تشعر بلملل أثناء القراءة .
يمكنك الإطلاع على الدروس السابقة من هذه السلسلة من خلال الروابط التالية:
Wireshark: The Basics - part (1)
Wireshark: The Basics - part (2)
Wireshark : Packet Filtering - part (3)
إن أحسنت فمن الله و إن اسأت فمن نفسي و الشيطان
Wireshark: The Basics - part (1)
Wireshark: The Basics - part (2)
Wireshark : Packet Filtering - part (3)
إن أحسنت فمن الله و إن اسأت فمن نفسي و الشيطان
التعديل الأخير بواسطة المشرف: