آموزش هک

درس شماره 6
- خلاصه درس: انواع Scanning را مشخص می‌کنيم. بحث Port Scanning را آغاز می‌کنيم و از نرم‌افزار ipEye برای Port Scanning استفاده می‌کنيم.

معمول‌ترين Scanning ها کدامند؟

دو نوع معمول Scanning وجود دارد:

۱- IP Scanning :
فرض کنيد که شما يک سری IP مربوط به يک ISP خاص را داريد و می‌خواهيد بدانيد که در اين لحظه کدام‌ها فعال (up) هستند تا فقط آنها را بررسی کنيد و نه‌ همه را. اين موضوع را بعدا توضيح می‌دم ( اين کار معمولا موقعی پيش می‌آيد که قرار است کلاينت هک کنيد و مهم نيست چه کسی باشد )

۲- Port Scanning :
در اين حالت ما IP يا IPهای مورد نظر را انتخاب کرده‌ايم و حالا می‌خواهيم بدانيم که کدام پورت‌ها روی آن کامپيوترها باز است. اين کار به کمک نرم‌افزارهای خاصی انجام می‌شود که مبحث امروز ماست.

چگونه يک ارتباط TCP برقرار می‌شود که بگوييم فلان پورت باز است يا نه؟
برای اينکه تعيين کنيم که يک پورت روی يک سرور باز است يا نه، معمولا بايد يک TCP connect scan انجام دهيم. اول اين را بگم که Port Scanning انواع مختلف دارد که فعلا ما نوع TCP connect را مدنظر داريم. اين نوع اسکن سه مرحله دارد که به آن TCPs 3-way handshakeمی‌گويند:
۱- اول کامپيوتر ما به سمت سرور يک SYN packet می‌فرستد که به معنی درخواست اتصال است.
۲- اگر سرور اين درخواست را قبول کند، در مرحله دوم سرور به سمت ما يک SYN/ACK packet می‌فرستد.
۳- در مرحله آخر کامپيوتر ما يک ACK packet به سمت سرور می‌فرستد.

نوع ديگری از پورت اسکن TCP SYN scan نام دارد. با توجه به اينکه معمولا اگر پورت اسکن به روش بالا (TCP connect scan) انجام دهيم، معمولا در سرور اين اتصال ذخيره خواهد شد و بعدا می‌تواند ما را رديابی کنند، به جای آن می‌توان از TCP SYN scan استفاده کرد. در اين نوع اسکن، مراحل ۱ و ۲ از بالا انجام می‌شود ولی مرحله ۳ نه! اگر در مرحله ۲ به ما يک SYN/ACK برسد، آن پورت باز است و اگر يک RST/ACK برسد، يعنی بسته است.

انواع ديگری از پورت اسکنينگ هم وجود دارد مثل UDP scan, TCP Window scan, TCP ACK scan, TCP Null, TCP Xmas Tree, TCP FIN Scan

چگونه می‌توان عمل Port scanning را انجام داد؟


در تمام مطالبی که تا اين مرحله گفته‌ام سعی کرده‌ام که فقط از ابزارهای موجود در ويندوز استفاده کنم و هيچ ابزار ديگری به‌کار نبرم، اما در مبحث پورت اسکنينگ چون هيچ ابزاری در ويندوز برای اين‌ کار نيست، به‌ناچار بايد يک سری برنامه را از اينترنت داون‌لود کنيد. (توجه داشته باشيد که فعلا حرفی از لينوکس نزده‌ام و سعی می‌کنم فعلا هيچ بحثی را در مورد آن مطرح نکنم)

برای Port Scanning می‌توان از ابزارهای مختلفی استفاده کرد که اکثرا برای لينوکس طراحی شده‌اند، اما مهم‌ترين پورت اسکنرها برای ويندوز عبارتند از:

۱- نرم‌افزار NMapWin v1.3.0 :
نسخه گرافيکی و مخصوص ويندوز برای nmap است (nmap در لينوکس استفاده می‌شود). nmap از کامل‌ترين ابزارهايی است که هکر‌ها استفاده می‌کنند که علاوه بر توانايی انواع پورت اسکنينگ‌ها، می‌تواند کارهای بسياری چون تشخيص سيستم‌عامل سرور و ... را انجام دهد. اين ابزار را بعدا توضيح خواهم داد ولی فعلا برای کار ما بيش‌ از حد کامله ;-)

۲- NetScanTools Pro 2000 :
اين هم از بهترين‌هاست ولی چون پولی است به‌ جای داون‌لود بايد در CD هايی که در بازار هست پيدايش کنيد.

۳- WinScan :
برای اسکن کردن TCP (ونه UDP) می‌توانيد از آن استفاده کنيد. من زياد ازش خوشم نيومد.

۴- ipEye v1.2 :
من در این درس از اين نرم‌افزار استفاده خواهم کرد، برای داون‌لود آن می‌توانيد به سايت http://www.ntsecurity.nu/ مراجعه کنيد يا مستقيما با کليک روی اين لينک آن را داون‌لود کنيد. لازم است بگويم که اين نرم‌افزار فقط در ويندوز ۲۰۰۰ و xp کار می‌کند و نيز در يک بار اجرا فقط يک ip را می‌تواند تست کند. ضمنا فقط TCP را تست می‌کند.

چگونه از ipEye برای پورت اسکنينگ استفاده کنيم؟




با تايپ ipEye در command prompt اين نتايج ظاهر می‌شود:​
ipEye 1.2 - (c) 2000-2001, Arne Vidstrom (arne.vidstrom@ntsecurity.nu)
- http://ntsecurity.nu/toolbox/ipeye/

Error: Too few parameters.

Usage:

ipEye -p [optional parameters]
ipEye -p
[optional parameters]

is one of the following:
-syn = SYN scan
-fin = FIN scan
-null = Null scan
-xmas = Xmas scan>br>
(note: FIN, Null and Xmas scans dont work against Windows systems.

[optional parameters] are selected from the following:
-sip = source IP for the scan
-sp = source port for the scan
-d = delay between scanned ports in milliseconds
(default set to 750 ms)​

فرض کنيد که می‌خواهيم سايت سازين را از نظر پورت‌ها از پورت ۱ تا ۲۰۰ تست کنيم. اول بايد ip آن را به دست بياوريم که می‌شود، 63.148.227.65 و حالا به کمک دستور زير آن را بررسی می‌کنيم:
ipeye 63.148.227.65 -syn -p 1 200​
دقت کنيد که 63.148.227.65 عدد ip سازين، syn- يعنی SYN SCAN و p 1 200- يعنی تست از پورت ۱ تا ۲۰۰ باشد. البته پارامترهای ديگری را هم می‌شود ست کرد که فعلا به درد ما نمی‌خورد. با اجرای اين دستور به نتايج زير می‌رسيم:
ipEye 1.2 - (c) 2000-2001, Arne Vidstrom (arne.vidstrom@ntsecurity.nu)
- http://ntsecurity.nu/toolbox/ipeye/

1-20 [drop]
21 [open]
22 [closed or reject]
23-24 [drop]
25 [open]
26-52 [drop]
53 [open]
54-79 [drop]
80 [open]
81-109 [drop]
110 [open]
111-142 [drop]
143 [open]
144-200 [drop]
201-65535 [not scanned]​
Closed يعنی کامپيوتر در آن طرف هست ولی به پورت گوش نمی‌دهد، Reject يعنی اينکه يک firewall هست که اجازه اتصال به آن پورت را نمی‌دهد، Drop يعنی اينکه يک firewall همه‌چيز را پس‌ می‌زند و يا اصلا کامپيوتری اونور نيست، Open هم که يعنی باز.
در مورد سازين می‌بينيد که از بين پورت‌های ۱ تا ۲۰۰ ، پورت‌های ۲۱، ۲۵، ۵۳، ۸۰، ۱۱۰، ۱۴۳ باز است و می‌توان به‌ آنها telnet کرد. دقت کنيد که تا تمام پورت‌هايی که مشخص شده، تست نشده است، هيچ نتيجه‌ای نشان داده نمی‌شود و يه‌کم صبر می‌خواد.
 
اين مقالات حداقل مال 4-5 سال پيشه که اون موقع توی tur2.com به صورت مرتب ميومد. اون سايت تعطيل شد و يه گروهی ور داشتن اين مقاله ها رو دسته بندی کردن ، گذاشتن برای دانلود. شما يه سرچ کوتاه بکنی به نتيجه ميرسی.
 
اين مقالات حداقل مال 4-5 سال پيشه که اون موقع توی tur2.com به صورت مرتب ميومد. اون سايت تعطيل شد و يه گروهی ور داشتن اين مقاله ها رو دسته بندی کردن ، گذاشتن برای دانلود. شما يه سرچ کوتاه بکنی به نتيجه ميرسی.
عجب!:eek:
باشه حتما سرچ میکنم
 
درس شماره 7

- خلاصه درس: در اين درس يک Port Scanner ساده به اسم acw_spscan به زبان C می‌نويسيم. درک مطالب اين درس نياز به آشنايی با زبان برنامه‌نويسی C دارد.

يادآوری:

قبلا گفتم که برای اينکه هکر خوبی بشيد، زبان C را بايد ياد بگيريد. امروز اولين برنامه اينترنتی خود را به زبان C شروع می‌کنيم.برنامه‌ای که امروز می‌نويسيم، يک پورت اسکنر ساده (Simple Port Scanner) است که acw_spscan.exe نام دارد. acw يعنی Artawill Commandline Windows و spscan يعنی Simple Port Scanner. من سورس اين برنامه را با Borland C++ 5.02 کامپايل کردم ولی فکر کنم روی هر نوع کامپايلر C ويندوز کار کند.
يک سری نکات در مورد هر برنامه‌ای که با C برای ويندوز خواهم نوشت هست که فقط امروز می‌گم و بعدا ديگه اشاره نخواهم کرد.
۱- هر برنامه‌ای که من می‌نويسم، شامل دو فايل است که بايد داون‌لود کنيد: فايل اصلی که پسوند C يا CPP دارد و يک فايل به يکی از نامهای acw_sock.h يا agw_sock.h يا acu_sock.h ويا axu_sock.h که با توجه به نوع سيستم‌عامل (ويندوز يا يونيکس) و نوع ظاهر برنامه (خط‌ فرمان يا گرافيکی) يکی از اين چهارتا خواهد بود. اگر برنامه برای ويندوز نوشته شده است، بايد قبل از کامپايل نهايی فايل WS2_32.LIB را هم به پروژه اضافه کنيد.
۲- هر بار که برنامه جديدی خواهم نوشت فايلی که پسوند h دارد، کامل و کامل‌تر می‌شود، پس هر وقت يک فايل جديد C يا CPP داون‌لود می‌کنيد، فايل h مربوطه را هم داون‌لود کنيد.
۳- کامپايلر مورد استفاده در برنامه‌های ويندوز Borland C++ 5.02 است. اگر از کامپايلر ديگری استفاده می‌کنيد، ممکن است لازم باشد که تغييراتی اعمال کنيد.
۴- سورس تمام توابع و برنامه‌ها مشمول کپی‌ رايت است ولی استفاده از توابع در برنامه‌هايتان در صورت عدم اعمال تغييرات در سورس بلامانع است. - اينههههههه !

درباره برنامه Artawill Command-prompt Windows - Simple Prot Scanner = acw_spscan

برنامه acw_spscan.exe عمل پورت اسکنينگ را به صورت tcp و udp انجام می‌دهد. همانطوری که از نامش پيداست، برای ويندوز و به‌صورت خط فرمان عمل می‌کند.



اگر در command prompt تايپ کنيد: acw_spscan ،خطوط زير چاپ می‌شود:
Artawill Command-line Windows SimplePortScanner (acw_spscan.exe) v1.0
Programmed by Araz Samadi, ArtaWill.com

Usage: acw_spscan []​
بنابراين مثلا اگر بخواهم سايت پی آر دو را (که ip آن 63.148.227.65 است) برای پورت‌های ۲۰ تا ۳۰ به صورت tcp اسکن کنم، بايد بنويسم:
acw_spscan 63.148.227.65 20 30 tcp​
و جواب می‌شنوم:
Artawill Command-line Windows SimplePortScanner (acw_spscan.exe) v1.0
Programmed by Araz Samadi, ArtaWill.com

>TCP
[63.148.227.65] TCP 21 : OPEN
[63.148.227.65] TCP 25 : OPEN

Simple Port Scanner End.​
که نشان می‌دهد، پورت‌های ۲۱ و ۲۵ باز است.


بررسی سورس برنامه:

من برای راحتی کار برنامه‌نويسی شبکه، يک سری تابع تعريف کرده و آنها را در فايل acw_sock.h قرار داده‌ام که در برنامه اصلی آن را include می‌کنم. حال به بررسی توابع مورد استفاده در برنامه امروز می‌پردازم ( اگر خواهان اطلاعات بيشتری هستيد، سورس اين توابع را از فايل acw_sock.h بخوانيد ):

۱- (int arta_win_LoadWinsock(char, char ==>
در برنامه‌نويسی ويندوز قبل از استفاده از سوکت(socket)، بايد WinSock را لود کرد که من اين کار را با اين تابع انجام می‌دهم. اگر بپرسيد سوکت چيست، می‌گويم سوکت ارتباطی است از نوع TCP/IP که از پورت خاصی از يک کامپيوتر به سوی يک پورت خاص از يک کامپيوتر ديگر برای رد و بدل کردن داده‌ها ايجاد می‌شود. کل برنامه‌نويسی شبکه به کمک C با استفاده از سوکت‌هاست.
if(arta_win_LoadWinsock(2,0)==-1)
arta_commandline_win_DieWithError("ERR: Cannot load WinSock!");​
دو خط بالا برای لودکردن WinSock ورژن 2.0 به‌کار می‌رود.

۲- (void arta_win_CleanWinsock(void ==>
در آخر برنامه بايد WinSockی را که با دستور بالا ايجاد کرده‌ايم، به‌کمک دستور اين قسمت ببنديم:​
arta_win_CleanWinsock();​


۳- (int arta_win_CreateTcpSocket(void ==>
اين تابع يک سوکت از نوع tcp ايجاد می‌کند.
if((sock=arta_win_CreateTcpSocket())==-1)
arta_commandline_win_DieWithError("ERR: Cannot Create Socket!");​
دو خط بالا برای ايجاد يک سوکت tcp به‌کار می‌رود.

۴- (int arta_win_CreateUdpSocket(void ==>
اين تابع يک سوکت از نوع udp ايجاد می‌کند.​
if((sock=arta_win_CreateUdpSocket())==-1)
arta_commandline_win_DieWithError("ERR: Cannot Create Socket!");​
دو خط بالا برای ايجاد يک سوکت udp به‌کار می‌رود.

۵- (void arta_win_CloseSocket(int ==>
اين تابع، سوکتی را که با يکی از دو دستور بالا ايجاد کرده‌ايم، می‌بندد.
arta_win_CloseSocket(sock);​


۶- void arta_win_CreateServerAddressStructure
(* struct sockaddr_in *, unsigned short, char ) ==>
اين تابع اطلاعات لازم برای برقراری اتصال را مانند IP, Port می‌گيرد و در يک structure مخصوص از نوع sockaddr_in قرار می‌دهد. اين structure در توابع بعدی به‌کار می‌رود.
arta_win_CreateServerAddressStructure(&addr,port,IP);​


۷- (* int arta_win_EstablishTcpSocketConnection(int, struct sockaddr_in ==>
اين تابع sock (که از تابع‌های ۳ يا ۴ به‌دست آمده) و addr را (که از تابع ۶ حاصل شده) می‌گيرد و يک ارتباط واقعی tcp تشکيل می‌دهد. اگر ارتباط به‌وجود آمد، پورت باز است وگرنه بسته است.
if(arta_win_EstablishTcpSocketConnection(sock, &addr)==-1){
....
}​


۸- (* int arta_win_EstablishUdpSocketConnection(int, struct sockaddr_in ==>
اين تابع sock (که از تابع‌های ۳ يا ۴ به‌دست آمده) و addr را (که از تابع ۶ حاصل شده) می‌گيرد و يک ارتباط واقعی udp تشکيل می‌دهد. اگر ارتباط به‌وجود آمد، پورت باز است وگرنه بسته است.
if(arta_win_EstablishUdpSocketConnection(sock, &addr)==-1){
....
}​



حالا يک توضيح کلی می‌دم:

اولين سطرهای برنامه را بررسی می‌کنم
/* An ArtaWill Production - copyright(c) ArtaWill.com */
/* Programmed by: M.E */
/* This Source code and its Functions can be used - but no .... */
/* Funcions source or code can be done ! */

#include /* for printf(), fprintf() */
#include /* for exit() */
#include /* for strings */
#include "acw_sock.h"

void main(int argc, char *argv[])
{
struct sockaddr_in addr;
char *IP;
int sock;
int port;
int startport, endport;
int tcp_udp_both=1;

arta_commandline_win_StartMessage("SimplePortScanner ......");

if ((argc != 4) && (argc != 5)) /* Test for correct ...... */
{
arta_commandline_win_DieWithError("Usage: acw_spscan []\n");
exit(1);
}

IP = argv[1];
startport = atoi(argv[2]);
endport = atoi(argv[3]);
if(argc==5){
if(stricmp(argv[4],"udp")==0){tcp_udp_both=2;}
else if (stricmp(argv[4],"both")==0){tcp_udp_both=3;}
}

if(arta_win_LoadWinsock(2,0)==-1)
arta_commandline_win_DieWithError("ERR: Cannot load WinSock!");​
اوايل برنامه يه‌سری توضيحات
بعدش يک سری هدر (header) را include کرده‌ام از جمله acw_sock.h را
بعدش main شروع می‌شود و يک سری تعريف متغير داريم که به نوع اين متغير ها دقت کنيد.
بعد از روی ورودی خط‌ فرمان، متغير‌ها ست می‌شوند.
دو سطر آخر هم يک WinSock لود می‌کند.

حالا ادامه:

if(tcp_udp_both!=2){ puts(">TCP");
for(port=startport;port<=endport;port++){
printf(" [%s] TCP %5d : Testing... ",IP,port);

if((sock=arta_win_CreateTcpSocket())==-1)
arta_commandline_win_DieWithError("ERR: Cannot Crea....");

arta_win_CreateServerAddressStructure(&addr,port,IP);

if(arta_win_EstablishTcpSocketConnection(sock, &addr)==-1){
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b........");
}
else{
printf("\b\b\b\b\b\b\b\b\b\b\b");
printf("OPEN \n");
}
arta_win_CloseSocket(sock);
}
}
اگر قرار باشد که tcp چک شود، اين خطوط اجرا می‌شوند. در اين سطرها يک اتصال tcp خاص بايد ايجاد شود و اگر اين عمل موفق بود، آن پورت باز است.

حالا ادامه برنامه:
if(tcp_udp_both!=1){
puts(">UDP ");
for(port=startport;port<=endport;port++){
printf(" [%s] UDP %5d : Testing... ",IP,port);

if((sock=arta_win_CreateUdpSocket())==-1)
arta_commandline_win_DieWithError("ERR: Cannot Cre....!");

arta_win_CreateServerAddressStructure(&addr,port,IP);

if(arta_win_EstablishUdpSocketConnection(sock, &addr)==-1){
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b.....");
}
else{
printf("\b\b\b\b\b\b\b\b\b\b\b");
printf("OPEN \n");
}
arta_win_CloseSocket(sock);
}
}​
همان کارها را ولی اين‌بار برای udp انجام می‌دهد.

و حالا آخر برنامه:
puts("\n");
arta_commandline_win_EndMessage("Simple Port Scanner");

arta_win_CloseSocket(sock);
arta_win_CleanWinsock();

exit(0);
}​
در اينجا پيغام انتهايی چاپ شده و سوکت بسته می‌شود.
 
درس شماره 8

خلاصه درس: بحث whois را ادامه می‌دهيم. با ping و tracert آشنا می‌شويم.
ادامه بحث whois

قبلا در مورد ip whois و dns whois صحبت کردم. بحث dns whois (کسب اطلاعات در مورد يک domain خاص) رو ادامه می‌دم.
در درس قبلی از سايت SamSpade استفاده کردم. اگر اين whois رو تست کرده باشيد، می‌دانيد که برای يک سری از domain (دامنه) ها، جواب نمی‌دهد. مثال آن سايت‌هايی است که دارای دامنه جغرافيايی مثلا ايران هستند، در مورد دامنه‌های جغرافيايی ايران بايد گفت که به ir. ختم می‌شوند ( مثلا: neda.net.ir ). مثال ديگری که در whois سايت SamSpade کار نمی‌کند، تعدادی از دامنه‌های org , .net , .com. هستند که در internic.net ثبت نشده‌اند، بلکه در domainpeople.com ثبت شده‌اند ( مثلا sanjesh.org ). چند سال پيش ثبت domain هايی که در گروه org, net, com بودند، مختص به internic.net بود ولی الان ديگر اينطور نيست.

کاری که شما بايد برای whois کردن بايد انجام دهيد، توجه به نوع آن domain است که از نوع com است يا ir است يا biz است و ... بعد از آن از يکی از سايت‌های زير استفاده کنيد :

۱- internic.net :
برای edu , org , net , com عالی است. برای museum , int , info , coop , biz , arpa, aero هم‌ می‌تواند استفاده شود.
صفحه وب مربوطه عبارت‌ است از http://www.internic.net/whois.html
يا می‌توانيد مستقيما در مرورگر بنويسيد:
http://www.internic.net/cgi/whois?type=domain&whois_nic=xxxxxxxx که به‌جای xxxxxxxx مثلا بايد بنويسيد: far30.com

۲- nic.ir :
برای ir استفاده می‌شود.
صفحه وب مربوطه عبارت‌ است از /http://whois.nic.ir

۳- www.tv :
برای cc , info , biz , tv عالی است.
صفحه وب مربوطه عبارت‌ است از /http://www.tv
يا می‌توانيد مستقيما در مرورگر بنويسيد:
http://www.tv/en-def-8e33e8cf5e3c/cgi-bin/whois.cgi?domain=yyyyyy&tld=zzzz که اگر بخواهم مثلا hack.tv را whois کنم به‌جای yyyyy بايد بنويسيد hack و به جای zzzz بايد بنويسيد tv

۴- domainpeople.com :
برای name , biz , info , org , net , com عالی است.
صفحه وب مربوطه عبارت‌ است از /http://whois.domainpeople.com


همانطور که ملاحظه می‌فرماييد، org , net , com در ۱ و ۴ مشترک است. علت آن است که بعضی‌ها در اولی و بعضی‌ها در چهارمی ثبت می‌شوند ولی برای whois کردن فرقی نمی‌کنه که شما از اولی استفاده کنيد يا چهارمی چون همديگر رو ساپورت می‌کنند.

ping چيست ؟

ping دستوری است که مشخص می‌کند که آيا يک کامپيوتر خاص که ما ip يا domain آن را می‌دانيم، روشن و فعال (Active) هست يا نه. و اينکه اگر فعال باشد مدت زمان رسيدن بسته‌های tcp/ip از آن کامپيوتر به کامپيوتر ما چقدر است.
کاربرد اين دستور به صورت زير است: ping ip-or-domainکه به جای ip-or-domain بايد شماره ip و يا domain آن(اگر داشته باشد) را می‌گذاريم.

مثلا ping prdev.com را در command prompt تايپ کردم و به نتايج زير رسيدم :
Pinging prdev.com [63.148.227.65] with 32 bytes of data:

Reply from 63.148.227.65: bytes=32 time=1402ms TTL=105
Reply from 63.148.227.65: bytes=32 time=941ms TTL=105
Reply from 63.148.227.65: bytes=32 time=981ms TTL=105
Reply from 63.148.227.65: bytes=32 time=851ms TTL=105

Ping statistics for 63.148.227.65:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 851ms, Maximum = 1402ms, Average = 1043ms​
اين نتايج نشان می‌دهد که prdev.com فعال است.

حالا به کامپيوتری با ip شماره 63.148.227.65 (که همان prdev.com است)، ping می‌کنم. نتايج همان است فقط با تغييراتی در سطر اول. (البته time که معنای مدت زمان رسيدن پکت را می‌دهد، با توجه به ترافيک شبکه، کم و زياد خواهد شد). برای ping کردن به اين ip ، دستور 63.148.227.65 ping را صادر می‌کنم :
Pinging 63.148.227.65 with 32 bytes of data:

Reply from 63.148.227.65: bytes=32 time=861ms TTL=105
Reply from 63.148.227.65: bytes=32 time=852ms TTL=105
Reply from 63.148.227.65: bytes=32 time=851ms TTL=105
Reply from 63.148.227.65: bytes=32 time=881ms TTL=105

Ping statistics for 63.148.227.65:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 851ms, Maximum = 881ms, Average = 861ms​
فرض کنيد که به يک ip که فعال نيست، ping کنيم:
Pinging 217.66.196.1 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 217.66.196.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms​
که نشان می‌دهد که آن ip در آن لحظه فعال نيست.

البته تمام مطالبی که در بالا ذکر شد، در حالتی است که مستقيما به اينترنت وصل شده‌ايد و يا اگر از طريق شبکه محلی به اينترنت وصل هستيد، شبکه شما به درستی پيکربندی شده باشد. اصولا ping يکی از بهترين دستورات برای پيدا کردن ايراد در شبکه است.

tracert چيست ؟

tracert ( در يونيکس می‌شود traceroute ) ابزاری است که نشان می‌دهد که يک packet اطلاعاتی از کامپيوتر شما چه مسيری را طی می‌کند و از چه کامپيوترهايی می‌گذرد تا به يک مقصد خاص برسد. مقصد را ما مشخص می‌کنيم و معمولا همان کامپيوتری است که داريم footprinting می‌کنيم.

کاربرد اين دستور به صورت زير است:
tracert ip-or-domain مثلا می‌خواهم ببينم که از چه کامپيوترهايی بايد رد شويم تا به prdev.com برسيم. برای اينکار می‌توان از يکی از دستورهای زير استفاده کرد:
tracert prdev.com
tracert 63.148.227.65​
به نتيجه زير رسيدم:​
Tracing route to prdev.com [63.148.227.65]
over a maximum of 30 hops:

1 160 ms 160 ms 160 ms 217.218.84.3
2 381 ms 691 ms 1772 ms 217.218.84.5
3 * * 2324 ms 217.218.77.1
4 201 ms 1101 ms 180 ms 217.218.0.252
5 341 ms 220 ms 180 ms 217.218.0.2
6 1993 ms 180 ms 181 ms 217.218.158.41
7 180 ms 160 ms 160 ms 195.146.63.101
8 2824 ms * * 195.146.32.134
9 1472 ms 1463 ms 871 ms 195.146.33.73
10 791 ms 841 ms 811 ms if-1....eglobe.net [207.45.218.161]
11 1692 ms * 2654 ms if-4-....eglobe.net [207.45.222.77]
12 1282 ms 891 ms 1052 ms if-1-....globe.net [207.45.220.245]
13 902 ms 931 ms 881 ms if-15.....globe.net [66.110.8.134]
14 931 ms 861 ms 871 ms if-8-....leglobe.net [64.86.83.174]
15 901 ms 841 ms 852 ms if-5-.....globe.net [207.45.223.62]
16 841 ms 862 ms 851 ms pos6-.....vel3.net [209.0.227.33]
17 841 ms 842 ms 941 ms so-4-1.....vel3.net [209.247.10.205]
18 882 ms 931 ms 851 ms so-0-1....vel3.net [209.247.11.197]
19 871 ms 891 ms 951 ms gige9....vel3.net [209.247.11.210]
20 1011 ms 851 ms 902 ms unknown.Level3.net [63.208.0.94]
21 852 ms * 882 ms 64.156.25.74
22 961 ms 942 ms 841 ms 63.148.227.65

Trace complete.​
اين نتايج نشان می‌دهد که بايد از ۲۲ کامپيوتر بگذرم تا به prdev.com برسم. اين اطلاعات همان‌طور که بعدا خواهيد ديد، حاوی اطلاعات زيادی برای پيدا کردن فايروال‌ها و ... است. (بعضی سطرها رو کوتاه کردم و به‌جاش .... گذاشتم)


tracert دارای تعدادی switch است که دوتاش رو توضيح می‌دم:

d- == >

با استفاده از اين سويچ در نتايج حاصله فقط ip ها نمايش داده می‌شود.
مثلا می‌نويسيم:

tracert prdev.com -d
h max-hops- ==>

حداکثر تعداد گام‌ها را تعيين می‌کند. حالت پيش‌فرض ۳۰ است.
مثلا می‌نويسيم: tracert prdev.com -h 50



از اين دستور بعدا بسيار استفاده خواهيم کرد.
 

کاربرانی که این گفتگو را مشاهده می‌کنند

تبلیغات متنی

Top
رمز عبور خود را فراموش کرده اید؟
اگر میخواهی عضوی از بازی سنتر باشی همین حالا ثبت نام کن
or