سورس و کد پورت اسکن
پورت اسکن یکی از تکنیکهای اساسی در امنیت شبکه است که به منظور شناسایی پورتهای باز و خدمات در حال اجرا بر روی یک سیستم یا سرور به کار میرود. این تکنیک میتواند به تحلیلگران امنیتی کمک کند تا نقاط ضعف و آسیبپذیریهای موجود را شناسایی کنند.
چیستی پورت اسکن
پورتها به عنوان دروازههای ارتباطی عمل میکنند. هر پورت میتواند به یک سرویس خاص اختصاص یابد؛ به عنوان مثال، پورت 80 معمولاً برای HTTP و پورت 443 برای HTTPS استفاده میشود. با استفاده از پورت اسکن، میتوان فهمید که کدام پورتها باز هستند و به چه خدماتی پاسخ میدهند.
روشهای مختلف پورت اسکن
چندین روش برای انجام پورت اسکن وجود دارد. به طور کلی، این روشها به دو دسته تقسیم میشوند:
- اسکن TCP: این نوع اسکن، با ارسال بستههای TCP به پورتهای هدف انجام میشود. اگر پورت باز باشد، پاسخ SYN-ACK دریافت میشود. در غیر این صورت، بستههای RST یا هیچ پاسخی دریافت نمیشود.
- اسکن UDP: این نوع اسکن پیچیدهتر است، زیرا پروتکل UDP پاسخهای مشخصی نمیدهد. اگر پورت بسته باشد، ممکن است هیچ پاسخی دریافت نشود یا یک پیام ICMP "Destination Unreachable" دریافت شود.
نمونه کد پورت اسکن
در اینجا یک نمونه کد پورت اسکن ساده به زبان Python آورده شده است:
```python
import socket
def port_scan(target, ports):
for port in ports:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((target, port))
if result == 0:
print(f'پورت {port} باز است.')
else:
print(f'پورت {port} بسته است.')
sock.close()
target_ip = '
- 168.1.1' # IP هدف
port_scan(target_ip, ports_to_scan)
```
نکات امنیتی
لازم به ذکر است که پورت اسکن ممکن است به عنوان یک حمله تلقی شود. بنابراین، تنها در محیطهای مجاز و با کسب اجازه از مالک سیستم باید این کار انجام شود.
پورت اسکن میتواند ابزاری بسیار مفید باشد، اما باید با احتیاط و مسئولیت استفاده شود.
پورت اسکن چیست و چگونه کار میکند؟
پورت اسکن، یکی از تکنیکهای اساسی در عرصه امنیت شبکه و تست نفوذ است. هدف اصلی آن، شناسایی پورتهای باز یا بسته بر روی دستگاههای هدف است. این کار، به کارشناسان امنیت کمک میکند تا بدانند که کدام سرویسها یا برنامهها در حال اجرا هستند و آیا آنها به درستی پیکربندی شدهاند یا نه.
سورس و کد پورت اسکن، معمولاً به زبانهای برنامهنویسی مختلف نوشته میشوند، ولی رایجترین آنها، زبان Python است. در ادامه، یک نمونه کد ساده و کامل پورت اسکن با Python برایتان توضیح میدهم.
ساختار کلی کد پورت اسکن
در ابتدا، باید با سوکتها کار کنیم. سوکتها، ابزارهای نرمافزاری هستند که ارتباط بین کامپیوترها را برقرار میکنند. در پورت اسکن، ما به سوکت نیاز داریم تا بتوانیم به پورتهای مقصد متصل شویم و وضعیت آنها را چک کنیم.
نمونه کد پورت اسکن ساده
```python
import socket
target_ip = '
- 168.1.1' # آدرس IP هدف
end_port = 1024 # پایان پورت
for port in range(start_port, end_port + 1):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(
- 5) # زمان انتظار برای پاسخ
if result == 0:
print(f"Port {port} is open.")
sock.close()
```
در این کد، چند نکته مهم وجود دارد:
- socket.socket() برای ساخت یک سوکت جدید استفاده میشود.
- settimeout() تعیین میکند که چقدر زمان منتظر پاسخ بمانیم.
- connect_ex() تلاش میکند به پورت موردنظر متصل شود؛ اگر پورت باز باشد، نتیجه ۰ است، وگرنه خطا برمیگرداند.
- در نهایت، اگر پورت باز باشد، پیام مربوطه نمایش داده میشود.
نکات مهم درباره سورس پورت اسکن
- این نوع اسکن، سادهترین حالت است و اگر هدف، پورتهای باز و بسته را به سرعت شناسایی کنیم، کافی است.
- برای اسکنهای پیشرفتهتر، میتوان از تکنیکهایی مانند اسکن نیمهباز (Half-Open Scan) یا اسکنهای مخفی (Stealth Scan) استفاده کرد که در آنها، اتصال کامل برقرار نمیشود.
- استفاده از ابزارهای قدرتمند مانند Nmap، که در زبانهای مختلف توسعه یافته، میتواند کار را آسانتر و سریعتر کند.
- در نظر داشته باشید، انجام پورت اسکن بدون اجازه، ممکن است در برخی کشورها و شبکهها، غیرقانونی باشد. پس همیشه قبل از اقدام، مجوز مربوطه را بگیرید.
نتیجهگیری
پورت اسکن، ابزاری حیاتی در حوزه امنیت شبکه است. کدهای ساده، این امکان را میدهند که درک پایهای از وضعیت پورتها و سرویسهای در حال اجرا در شبکههای مختلف داشته باشید. اما باید توجه داشت که، این ابزارها، وقتی به درستی و مسئولانه استفاده شوند، میتوانند در جلوگیری و کشف آسیبپذیریها نقش موثری ایفا کنند.
اگر سوال دیگری دارید یا نیاز به نمونههای پیشرفتهتر دارید، حتما بگویید!