NetAtk.git

NetAtk

~
git clone https://github.com/debuman/NetAtk.git
commit 5e854817084ade414e4ad92fb419e55400d08bc3
parent b6c266933cc80d0cee7a46cedf3fa32c169a03f5
Author: devastator <110329244+devastator-x@users.noreply.github.com>
Date: Sun, 27 Oct 2024 05:08:30 +0900

Create README.md

Diffstat:
AFPS/README.md | 90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 90 insertion(+), 0 deletion(-)

diff --git a/FPS/README.md b/FPS/README.md
@@ -0,0 +1,90 @@
+
+# FPS(Fast Port Scanner)
+
+FPS는 Python과 `Scapy` 라이브러리를 사용하여 특정 IP 주소의 여러 포트를 빠르게 스캔할 수 있도록 설계된 도구입니다. 이 도구는 **일괄 패킷 전송(batch sending)** 방식으로 스캔 속도를 높이며, 열려 있는 포트의 상태와 서비스 이름을 쉽게 확인할 수 있습니다.
+
+## 기능
+
+- 여러 포트를 한 번에 스캔하여 빠르게 응답을 수집
+- 지정된 포트가 열려 있는지, 닫혀 있는지, 또는 필터링 되었는지 확인
+- Nmap 서비스 매핑(`nmap-services`) 파일을 참조하여 서비스 이름 표시
+- 일괄 패킷 전송을 통해 네트워크 스캔 속도 향상
+
+## 설치 방법
+
+### 1. Python 설치
+Python 3.6 이상이 설치되어 있어야 합니다. [Python 공식 웹사이트](https://www.python.org/downloads/)에서 Python을 설치합니다.
+
+### 2. Scapy 설치
+Scapy는 네트워크 패킷을 생성하고 처리하는 데 필요한 라이브러리입니다. 다음 명령어로 설치할 수 있습니다:
+```bash
+pip install scapy
+```
+
+### 3. 프로젝트 클론 및 파일 준비
+프로젝트를 클론하고, `nmap-services` 파일을 프로젝트 폴더에 다운로드하여 배치합니다. `nmap-services` 파일은 Nmap의 공식 GitHub 저장소나 인터넷에서 다운로드할 수 있습니다.
+
+```bash
+git clone https://github.com/devastator-x/NetAtk.git
+cd ./NetAtk/FPS
+```
+
+## 사용 방법
+
+### 기본 사용법
+
+다음 명령어로 특정 IP 주소에 대해 기본 포트 스캔(1-1000번 포트)을 수행할 수 있습니다.
+```bash
+python FPS.py <IP_ADDRESS>
+```
+
+### 포트 범위 지정
+특정 포트 범위를 지정하려면 `-p` 옵션을 사용하세요. 예를 들어, `1-5000` 구간의 포트를 스캔하려면:
+```bash
+python FPS.py <IP_ADDRESS> -p 1-5000
+```
+
+### 특정 포트 지정
+포트 범위 대신 개별 포트를 콤마로 구분하여 지정할 수 있습니다. 예를 들어, `80`, `443`, `8080` 포트를 스캔하려면:
+```bash
+python FPS.py <IP_ADDRESS> -p 80,443,8080
+```
+
+### 예시
+```bash
+python FPS.py 192.168.1.1 -p 1-1024
+```
+
+## 코드 구조 및 설명
+
+1. **`load_nmap_services`**: `nmap-services` 파일을 읽어와 포트 번호와 서비스 이름을 매핑하여, 스캔 결과에 서비스 이름을 표시할 수 있도록 합니다.
+
+2. **`parse_ports`**: 포트 번호 입력을 해석하여, 범위(`1-5000`) 또는 개별 포트(`80,443`)를 처리합니다.
+
+3. **`batch_scan`**: 일괄 패킷 전송 방식을 통해 모든 포트에 대해 SYN 패킷을 생성하고 한 번에 전송합니다. 응답이 있으면 포트를 열린 상태로 표시하고, 응답이 없는 경우 필터링된 것으로 처리합니다.
+
+4. **`main` 함수**: 명령줄 인자를 처리하고 스캔을 실행하며, 결과를 사용자가 읽기 쉽도록 테이블 형식으로 출력합니다.
+
+## 출력 예시
+아래는 `127.0.0.1`을 대상으로 기본 포트 스캔(1-1000번 포트)을 수행한 결과 예시입니다.
+
+```
+Starting scan on 127.0.0.1 at 2024-10-26 13:32:43
+
+Scan report for 127.0.0.1
+Host is up. Scanned in 2.01 seconds.
+992 closed ports and 2 filtered ports not shown.
+
+PORT       STATE    SERVICE          TTL
+---------------------------------------------
+22/tcp     open     ssh              128
+80/tcp     open     http             128
+443/tcp    open     https            128
+```
+
+## 주의 사항
+- **권한**: 포트 스캐닝에는 네트워크에 대한 권한이 필요합니다. 잘못된 사용은 법적 문제가 발생할 수 있으므로, 허가된 네트워크에서만 사용하세요.
+- **네트워크 부하**: 일괄 전송 방식은 네트워크에 부하를 줄 수 있으므로, 필요한 범위에서만 스캔을 수행하는 것이 좋습니다.
+
+## 라이선스
+이 프로젝트는 MIT 라이선스 하에 배포됩니다.