الخميس، 28 أكتوبر 2010

الأداة Tracert لعرض مسار بياناتك على الأنترنت

مقدمة:
تستخدم الأداة tracert من قبل مهندسي الشبكات في تفقد الأعدادت الخاصة بأجهزة الموجهات "Router" , و معرفة الخلل و زمن أستجابة الموجهات "router" , حيث تقوم بالحصول على عنوان الرواتر "router" ثم أرسال ثلاث حزم بأستخدام برتوكول "icmp" بالتتابع وقياس زمن الأستجابة , قد تبدو هذه الأداة عديمة النفع للمستخدم العادي و لكنني أعتقد أنها تفيد في تبين بنية الأنترنت و كيف أن طلبك يمر بعدد كبير من الموجهات المتواجدة في بلاد مختلفة مما يعني أن أي من هذه الشركات يستطيع الأطلاع على ما تتصفحه ألا أذا كنت تستخدم نوع ما من التشفير , أي بأختصار هذا يظهر أن الأنترنت بيئة غير امنة لتبادل المعلومات .

الأستخدام :
هذه الأداة تتوافر في نظامي ويندوز و لينكس بشكل أفتراضي , و لكن بعض أصدارات لينكس مثل "ubuntu" التي لا يتوافر فيها البرنامج بشكل أفتراضي لذا يجب أن تستخدم هذا الأمر لتثبيت الأداة :

الاثنين، 25 أكتوبر 2010

أستخراج الروابط من ملف "html" في لينكس بأستخدام الأمر "grep"

تستطيع بكل بساطة أستخراج جميع الروابط من أي ملف نصي (txt,html,info) بأستخدام regular expression في الأمر grep , فقط قم بكتابة الأمر كالتالي :
 grep -o 'http://[^"]*' page1.html

سيقوم هذا بطباعة الروابط في الملف "page1.html" , و تستطيع أن تحفظ قائمة الروابط بأستخدام التعليمة "<<" لحفظ المخرجات في ملف من أختيارك كالمثال التالي :

 grep -o 'http://[^"]*' page1.html >> list.txt

هذا الأمر سيكون مفيدا عن تعامل برنامج مع محركات البحث حيث تستطيع أن تظهر نتائج البحث في مترجم الأوامر في لينكس من دون الحاجة للتعامل مع لغة "html" .


معرفة نظام تشغيل الموقع و أصدارة السيرفر بواسطة الأمر wget

تستطيع بواسطة الأمر "wget" معرفة نظام التشغيل و نوع السيرفر الذي يعمل عليه الموقع , Wget يأتي مثبتا بشكل أفتراضي في جميع أصدارات لينكس , و هنالك أيضا أصدارة لنظام ويندوز .

التثبيت:

نظام لينكس:

من مترجم الأوامر "terminal' :
apt-get install wget

سيقوم النظام بتثبيت الأمر , و تستطيع أستخدامه من مترجم الأوامر "terminal".

نظام ويندوز :

  1. قم بتنزيل الملف التنفيذي من هذا الرابط .
  2. قم بحفظ الملف التنفيذي في المجلد "c:\\windows\system32".
  3. تستطيع الأن أستخدام الأمر "wget" من مترجم الأوامر في ويندوز .  
 
الأمر :

من مترجم الأوامر في نظام تشغيلك قم بكتابة الأمر كالتالي :

wget --server-response --spider http://www.example.com
  سيطبع البرنامج نص كالتالي في حال نجاح الأمر :
Spider mode enabled. Check if remote file exists.
--2010-10-25 10:08:41--  http://www.example.com/
Resolving www.example.com... 174.37.68.195
Connecting to www.example.com|174.37.68.195|:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 302 Found
  Date: Mon, 25 Oct 2010 06:08:36 GMT
  Server: Apache/2.2.8 (Linux)
  X-Powered-By: PHP/5.2.10
  Location: http://www.example.com/forum.php
  Content-Type: text/html; charset=UTF-8
  Connection: Keep-Alive


أبحث عن التعليمة ":Server" , لقد قمت بتعليمها في هذا المثال(Apache/2.2.8 (Linux) أي أن نظام التشغيل هو لينكس و برنامج السيرفر هو "Apache" الأصدارة 2.2.8.

.

استخدام برنامج VLC للبث على الانترنت


استخدام برنامج VLC للبث على الانترنت:


برنامج VLC من أقوى البرامج للتعامل مع الفيديو و الصوت , و تستطيع أستخدمه لبث ملفات الفيديو و الصوت على الانترنت أو شبكتك المحلية (LAN) .

التثبيت :


على نظام ويندوز :


تستطيع تنزيل البرنامج على حاسبك من هذا الرابط .

على نظام لينكس :

لتثبيت البرنامج على نظام اللينكس أستخدم الأمر التالي :
apt-get install vlc

الأعدادت :


·         قم بتشغيل البرنامج VLC
·         من القائمة Media أختر الأمر Streaming

الأربعاء، 20 أكتوبر 2010

الحصول على الصور من ملفات PDF في لينكس


الحصول على الصور من ملفات PDF في لينكس


البرنامج pdfimages صمم لاستخراج الصور من ملفات PDF , وحفظها بصيغة "JPEG" أو صيغة "PPM" التي تستخدم في ملفات PDF.

التثبيت:


لتثبيت الحزمة البرمجية لنظام "ubuntu" أستخدم الأمر التالي :

apt-get install poppler-utils

هذه الحزمة البرمجية تحتوي أكثر من أداة لتعامل مع ملفات PDF , لكننا سنتعامل مع الأمر "pdfimages" فقط في هذا الدرس .

الأمثلة :


هذا الأمر سيقوم يأستخراج جميع الصور الموجودة في ملف PDF المعين من قبل المستخدم و القيام بحفظها بالصيغة المستخدم داخل الملف , و تكون في الغالب PPM , و سوف تحفظ هذه الصور في المجلد المحدد من قبلنا في هذه الحالة "/home/abgoor/Pictuers" , يجب أن تعرف أن البرنامج سيعرض رسالة خطأ في حالة عدم وجود المجلد و أيضا سيتجاهل الأمر في حالة عدم تحديد المجلد المراد حفظ الصور فيه :

pdfimages abgoor.pdf /home/abgoor/Pictuers

عند فتح المجلد المحتوي على الصور ستجد أن البرنامج قام بتسمية الصور بأسم "image-00{0,1,2,3}.ppm" .

لحفظ الصور بصيغة "JPEG" فقط ضع التعليمة "-j":

pdfimages –j abgoor.pdf /home/abgoor/Pictuers

في حالة أنك أردت تحديد الصفحة التي يبتدأ عندها عملية الحصول على الصور أستخدم التعليمة "-f" متبوعة بقيمة الصفحة :

pdfimages –j –f 23 abgoor.pdf /home/abgoor/Pictuers

و أذا أردت أن توقف البرنامج عند صفحة معينة تستخدم التعليمة "-l" متبوعة برقم الصفحة :

pdfimages –j –l 45 abgoor.pdf /home/abgoor/Pictuers

اذا كان الصورة التي تحتاجها في صفحة محددة أستخدم التعليمتين  "-f" و "-l" كمثال التالي :

pdfimages –j –f 45 –l 45 abgoor.pdf /home/abgoor/Pictuers

أذا كان الملف محمي تستطيع استخدام التعليمتين التاليتان:

-opw password
كلمة سر مالك الملف
-opu password
كلمة السر المستخدمة لقراءة الملف










استخراج ملفات الصوت والصور من ملفات الفلاش (SWF) في نظام لينكس


استخراج ملفات الصوت والصور من ملفات الفلاش (SWF) في نظام لينكس


تحتوي ملفات الفلاش على العديد من الملفات الصوتية و الصور , و لابد أنك أردت استخراج ملف صوتي أو صورة من هذه الملفات , في هذا الشرح البسيط سأبين كيفية الحصول على الملفات المراد أستخرجها.

 التنصيب:


·         في محث الأوامر "Terminal" قم بكتابة الأمر التالي:
apt-get install swftools

سيقوم هذا الأمر بتثبيت مجموعة من الأوامر للتعامل مع ملفات الفلاش (SWF) , في هذا الدرس سنتعامل فقط مع البرنامج "swfextract" .

الاستخدام :


لعرض محتويات ملف الفلاش أاستخدام البرنامج كالتالي في محث الأوامر :
swfextract 1.swf

*لقد استخدمت ملف الفلاش "1.swf" كمثال تستطيع استخدام أي ملف فلاش لديك .


سيعرض الأمر المكونات كالتالي :
Objects in file 1.swf:
 [-i] 61 Shapes: ID(s) 5, 12, 14, 16, 23, 25-36, 38, 41, 47-58, 61, 63-68, 71-74, 77-79, 82-84, 89, 91-99, 102, 103, 106
 [-i] 20 MovieClips: ID(s) 6, 8, 10, 11, 13, 15, 17-19, 39, 45, 59, 69, 75, 80, 85, 87, 100, 104, 107
 [-j] 3 JPEGs: ID(s) 4, 60, 88
 [-p] 1 PNG: ID(s) 22
 [-F] 3 Fonts: ID(s) 1-3
 [-f] 1 Frame: ID(s) 0
 [-m] 1 MP3 Soundstream



يقوم البرنامج بعرض المكونات حسب النوع مع المعرف الخاص بالمكون "ID" , سنستخدم هذا الرقم في عملية الحصول على الملفات , لاحظ أن البرنامج يعرض لك الأمر المستخدم لكل نوع من الملفات كملفات PNG "[-p]".
الآن إلى مثال  بسيط للحصول على ملفات "PNG" :

swfextract –p 22 1.swf –o image1.png

و الأن لشرح الأمر :
-p: الأمر يدل على أننا اخترنا نوع الملف المراد أستخرجها ملحقا برقم المعرف للعنصر 22 .
1.swf: أسم الملف المراد الحصول على الملفات منه         .
-o: أسم الملف الذي ستحفظ في البيانات .

الاثنين، 18 أكتوبر 2010

شرح الأداة Netcat في لينكس و ويندوز

شرح الأداة NETCAT


مقدمة:
تعد الأداة "netcat" من الأدوات المتعدد أستخدمها , تستطيع تحويلها ألى سيرفر أو كاشف للمنافذ المتاحة , سأتطرق في هذا الموضوع ألى طريقة تثبيت الأداة و أستعمالتها .


التثبيت :


Windows:


1-قم بتنزيل البرنامج من هذا الرابط .
2- قم بفك ضغط الملف في المجلد "c:\Windows\System32".
3-الآن تستطيع استخدام الأمر "nc" من منفذ الأوامر   "cmd"(لكي تتعرف على منفذ الأوامر أتبع الرابط).

Ubuntu:


·         في الغالب تأتي أنظمة لينكس مع البرنامج "netcat" , و لكن في حالة عدم وجوده أستخدم الأمر التالي :
apt-get install netcat
تستطيع التعامل مع الأمر بواسطة المحطة الفرعية "Terminal" أو محث الأوامر بطباعة الأمر "nc".

الأوامر الخاصة بــ"netcat":


الأمر
الشرح
-c
استخدام "/bin/bash" لتنفيذ الأوامر عند اتمام الأتصال (هذا الاختيار موجود في لينكس فقط)
-e
تحديد أسم البرنامج الذي سينفذ عند نجاح الأتصال
-h
أظهار التعليمات لبرنامج Netcat
-i
تحديد الوقت بين كل عملية اتصال يقوم بها البرنامج "هذا الاختيار مفيد في حالة البحث عن المنافذ المتاحة "port scanner" "
-l
يصبح البرنامج في حالة انتظار الاتصال "server mode"
-n
يعتمد البرنامج على "IP" بدل أسم الموقع "domain"
-o
الملف المستخدم في حفظ البيانات المستقبلة.
-p
رقم المنفذ المستخدم
-r
استخدام قيم عشوائية لقيمة المنفذ
-q
عدد الثواني الانتظار قبل إغلاق الاتصال النشط , بعد استلام أشارة نهاية الملف "EOF".
-s
تحديد عنوان المصدر
-t
استخدام "TELNET negotiation" الخاصة برتوكول التلنت
-u
استخدام برتوكول UDP
-v
أظهار المزيد من المعلومات عن الاتصال , أذا اردت عرض جميع المعلومات قم بكتابة "-vv"
-z
يستخدم هذا الأمر في حالة البحث عن المنافذ المتاحة "Port scanning"



الأمثلة:


·         برنامج محادثة بسيط :
قم بكتابة الأمر :
nc –l –p 244
ثم قم بكتابة الأمر التالي في حاسب أخر على نفس الشبكة أو قم باستخدام نافذة أخرى لمحث الأوامر (لقد قمت بتنفيذ الأمر على نفس الحاسب لذا استعملت عنوان الحاسب الداخلي (localhost) أو الأي بي "127.0.0.1" , لذ أذا قمت بتنفيذ الأمر على حاسبين على نفس الشبكة أستبدل العنوان الذي وضعته بالأي بي الخاص بالحاسب) :
nc localhost 244
ستلاحظ أن الكتابة التي تطبع في أي الشاشتين .
·         
 عرض نوع السيرفر الذي يستضيف الموقع :
قم بكتابة الأمر التالي :
nc example.com 80

يقوم الأمر بالاتصال بالموقع "example.com" , عند نجاح الاتصال قم بكتابة الأمر :

GET / HTTP/1.1
<ENTER>
<ENTER>


قم بضغط <ENTER> مرتين بعد السطر الأول , أبحث في السطور الأولى من رد السيرفر عن ما يشابه التالي :

HTTP/1.1 200 OK
Date: Fri, 28 Nov 2008 14:11:49 GMT
Server: Apache/2.2.3 (Debian) mod_ssl/2.2.3 OpenSSL/0.9.8c
Last-Modified: Wed, 26 Nov 2008 19:34:17 GMT
ETag: "228c707-21b1-b6b7e040"
Accept-Ranges: bytes
Content-Length: 8625
Content-Type: text/html


سترى في السطر الأول التعليمة "HTTP/1.1 200 OK" التي تدل على نجاح الاتصال , ثم أنظر الى التعليمة "Server:" سترى أننا نتعامل من سيرفر من نوع apache  و الإصدارة "2.2.3" يعمل على نظام Debian.

·         أنشاء سيرفر HTTP بسيط :

cat page.html > nc –l –p 80

قم باستبدال الأمر "cat" بالأمر "sort" في نظام ويندوز , يقوم الأمر netcat بإرسال محتويات الملف "page.html" ألى المتصفح , لكي ترى عمل السيرفر قم بفتح المتصفح على الحاسوب الذي نفذه عليه الأمر , و أكتب في العنوان "localhost" .

·         برنامج بحث عن منافذ TCP المتاحة :

nc –z –v example.com 2-2344
"2-2344" يدل على مجال المنافذ التي تنفذ عليها عملية البحث , في حالة تفقد حالة منفذ واحد تستطيع كتابته كالتالي "80" , وفي حالة أكثر من قيمة للمنفذ تستطيع أن تمرره كالتالي "70 234 12 234" تفصل بينهما محرف المسافة.

·         برنامج يبحث عن منافذ UDP المتاحة:

nc –z –v –u example.com 123 23 12

الفرق الوحيد بين الأمرين هو وجود التعليمة "-u" , التي تستخدم لبرتوكول "UDP" .









الخميس، 14 أكتوبر 2010

شرح الأداة Netstat في نظام ويندوز


NETSTAT

في نظام ويندوز

المقدمة:
تستخدم الأداة "NETSTAT" في عرض معلومات عن الاتصالات بالشبكة و البروتوكولات المستخدمة مع المنافذ المستخدمة و التي تنتظر الاتصال و العناوين المتصلة لحاسبك وتتواجد على نظامي ويندوز و لينكس وسأبدأ بشرح استخدام الأداة على نظام ويندوز ثم نظام لينكس (أن شاء الله) .

الاستخدام :
يقدم برنامج "NETSTAT" معلومات الاتصال على شكل نصي لذا يجب استخدام مترجم الأوامر "cmd" لكي تستطيع التعامل معه,(أذا أردت التعرف على مترجم الأوامر أضغط الرابط" .
قم بطباعة الأمر "NETSTAT" في مترجم الأوامر , سيكون المخرجات كالتالي:


Active Connections
  Proto  Local Address          Foreign Address        State
TCP    DELL-LAPTOP:211   www.google.com:80 ESTABLISED


هذا الأمر سيظهر الاتصالات الجارية فقط , نبدأ بشرح المعطيات :
proto: نوع البرتوكول المستخدم في الاتصال (TCP, UDP)
Local Address: عنوان الجهاز المستخدم (جهازك) و المنفذ المستخدم , لاحظ أنه يفصل بين أسم الحاسب و المنفذ باستخدام ":" .
Foreign Address: عنوان الحاسب الذي يتم الاتصال به مع رقم المنفذ , يفصل بينها بـ ":".
State: حالة الاتصال و في هذه الحالة "ESTABLISED" , و لكي تفهم الحالات الأخرى سأتطرق بشكل مبسط لبرتوكول "TCP" و "UDP".


البرتوكول "TCP" :
يعتمد برتوكول "TCP" على Flags)-أعلام( في الحزمة للتحكم بعملية الاتصال كما في عملية الاتصال العادية  والتي تسمى عملية "3-Way Hand Shack" لبدأ الاتصال أنظر النموذج :
 

1-يقوم حاسبك بإرسال طرد "TCP" يكون فيه العلم (Flag) "ACK" موجود ليطلب الاتصال لنفترض أنه المنفذ 80 تكون حالة الاتصال في الحاسب العميل "SYN_SENT" .
2-في حالة كون المنفذ متاح على الحاسب "Server", أي أن المنفذ في وضعية  انتظار الاتصال "LISTENING" في هذه الحالة يرسل الخادم "SERVER" طرد "TCP"  يحمل العلمين (Flag) "SYN/ACK" إلى المنفذ الذي صدر منه الطلب على حاسبك لنفترض أن 2443 و تكون حالة الاتصال في الخادم(ٍSERVER) "SYN_RCVD".

3- تصبح حالة الاتصال في العميل "Client" "ESTABLISHED" متصل ,لتأكيد الطلب يرسل حاسبك طرد "TCP" يحمل العلم (Flag) "ACK".

4-عند استلام الحزمة من العميل , تتحول حالة الاتصال إلى  "ESTABLISHED" متصل.


في حالة إنهاء الاتصال تكون كالتالي:

1-يرسل أحد أطراف الاتصال حزم "TCP" مع العلم "Flag" (FIN) الذي يرمز لطلب إنهاء الاتصال تصبح حالة الاتصال (FIN_WAIT_1).

2- عند استلام الحزم التي تحتوي على طلب إنهاء الاتصال يتحول حالة الاتصال في الخادم إلى "CLOSE_WAIT".
3-يرسل الخادم حزمة تحتوي على العلم "Flag" (ACK) إلى العميل , تتحول حالة الاتصال في العميل إلى "FIN_WAIT_2" .

4-يرسل الخادم حزمة تحتوي على العلم "Flag" (FIN) , وتتحول حالة الاتصال إلى "LAST_ACK" في الخادم.

5-عند استقبال "LAST_ACK" , يقوم العميل بتحويل حالة الاتصال لديه إلى "TIME_WAIT" ,أي أنه ينتظر لإنهاء الاتصال , ويقوم أيضا بإرسال حزمه تحتوي على العلم "Flag" (ِACK)
 
6- عند استلام الخادم (SERVER) لحزمة من العميل , يقوم بإغلاق الاتصال. 



البرتوكول UDP:
يعتمد البرتوكول "UDP" على طريقة اتصال أقل تعقيدا كما في المثال التالي:

في البرتوكول "UDP" يحتوي على حالتين لمنفذ برتوكول "UDP" و هي :
1-      LISTENING ( حالة انتظار الاتصال)
2-      ESTABLISED (في حالة الاتصال النشط)

 

المعلمات :
الأمر
الشرح
-a
عرض جميع الاتصالات , و المنافذ المستخدمة و التي في حالة انتظار لاتصال " LISTENING".
-e
عرض إحصائيات مثل عدد البايتات المرسلة و المستقبلة و الأخطاء.
-n
تقوم بعرض العناوين الرقمية "IP ADDRESS" بدل الأسماء .
-o
يقوم بعرض معرف العملية (رقم يستخدم في ويندوز لتعريف العمليات) PID .
-p
تحديد البرتوكول المراد عرض الإحصائيات له (TCP,UDP,TCPv6)
-b
عرض الملفات التنفيذية التي قامت بإنشاء الاتصال .
(رقم الثواني)
تستطيع أن تضع عدد يرمز للثواني التي يقوم فيها برنامج "Netstat" بتحديث الإحصائيات , و لإيقاف البرنامج أضغط "CTRL+C" , يوضع هذا الرقم في نهاية الأمر.

الأمثلة:
netstat -ano
 سيكون مخرجات البرنامج كالتالي:


ستلاحظ وجود السطر "PID" الذي يدل على معرف البرنامج .

netstat –anb
أنظر التالي كمثال للمخرجات :
  Proto     Local Address          Foreign Address        State           PID 
TCP        0.0.0.0:445                     0.0.0.0:0          LISTENING   4
  [System]
سيعرض الأمر معلومات الاتصال و معرف البرنامج ثم سيعرض في سطر جديد أسم الملف  .

netstat –na 3
سيقوم بعرض جميع الاتصالات الجارية , و بدل أسم الموقع سيعرض "IP" و ستحدث المعلومات كل 3 ثواني إلى أن تضغط "CTRL+C".

استخدام "PID" في ويندوز:
لكي تعرف المزيد من المعلومات عن العمليات التي تستخدم تحاول الاتصال بالشبكة , ستستخدم برنامج "أدارة المهام في ويندوز" , لتشغيل البرنامج أضغط أزرار لوحة المفاتيح "CTRL+ALT+DEL".





1-قم باختيار "العمليات"





2-ثم بأخيار "عرض" ثم "تحديد الأعمدة"




3-قم بتحديد الاختيار "معرف العملية PID".







4-الآن تستطيع البحث بواسطة القيمة "PID" و إنهاء العملية في حالة شكك أن هذه العملية تابعة لبرنامج تجسس.




اقرأ هذا المقال لأنظمة ويندوز الأحدث عن بديل برنامج netstat