سورس و کد پورت اسکن
پورت اسکن یکی از تکنیکهای اساسی در امنیت شبکه است که به منظور شناسایی پورتهای باز و خدمات در حال اجرا بر روی یک سیستم یا سرور به کار میرود. این تکنیک میتواند به تحلیلگران امنیتی کمک کند تا نقاط ضعف و آسیبپذیریهای موجود را شناسایی کنند.
چیستی پورت اسکن
پورتها به عنوان دروازههای ارتباطی عمل میکنند. هر پورت میتواند به یک سرویس خاص اختصاص یابد؛ به عنوان مثال، پورت 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)
```
نکات امنیتی
لازم به ذکر است که پورت اسکن ممکن است به عنوان یک حمله تلقی شود. بنابراین، تنها در محیطهای مجاز و با کسب اجازه از مالک سیستم باید این کار انجام شود.
پورت اسکن میتواند ابزاری بسیار مفید باشد، اما باید با احتیاط و مسئولیت استفاده شود.