
Nmap을 래핑하는 RESTful API로, 자동화된 네트워크 스캔, 포트 탐지, 서비스 식별, 취약점 분석을 수행하며 선택적으로 AI 기반 보고서 생성을 지원합니다.
python3.10, Debian, python-Nmap 및 Flask 프레임워크를 사용하여 온라인에서 빠른 속도로 스캔을 수행할 수 있고 배포가 쉬운 Nmap API를 만듭니다.
이것은 대학 PCL 프로젝트를 위한 구현으로, 아직 개발 중이며 지속적으로 업데이트되고 있습니다.
GET /api/p1/{auth_key}/{target}
GET /api/p2/{auth_key}/{target}
GET /api/p3/{auth_key}/{target}
GET /api/p4/{auth_key}/{target}
GET /api/p5/{auth_key}/{target}
| 매개변수 | 유형 | 설명 |
|---|---|---|
auth_key | string | 필수. API 인증 키 |
target | string | 필수. 대상 호스트명 및 IP |
GET /api/p1/
GET /api/p2/
GET /api/p3/
GET /api/p4/
GET /api/p5/
GET /api/p6/
GET /api/p7/
GET /api/p8/
GET /api/p9/
GET /api/p10/
GET /api/p11/
GET /api/p12/
GET /api/p13/
GET /register/<int:user_id>/<string:password>
| 매개변수 | 유형 | 설명 |
|---|---|---|
ID | Int | 사용자 ID |
Passwd | String | 사용자 비밀번호 |
청킹 모듈을 사용한 GPT 기능 추가.
방법론은 Langchain GPT embeddings가 작동하는 방식에 기반합니다. 기본적으로 작동 방식은 다음과 같습니다.
Data -> Chunks_generator ─┐ ┌─> AI_Loop -> Data_Extraction -> Return_Data
├─> Chunk1 ─┤
├─> Chunk2 ─┤
├─> Chunk3 ─┤
└─> Chunk N ─┘
AI 코드:
def AI(analize: str) -> dict[str, any]:
prompt = f"""
Do a NMAP scan analysis on the provided NMAP scan information
The NMAP output must return in a JSON format accorging to the provided
output format. The data must be accurate in regards towards a pentest report.
The data must follow the following rules:
1) The NMAP scans must be done from a pentester point of view
2) The final output must be minimal according to the format given.
3) The final output must be kept to a minimal.
4) If a value not found in the scan just mention an empty string.
5) Analyze everything even the smallest of data.
6) Completely analyze the data provided and give a confirm answer using the output format.
The output format:
{{
"critical score": [""],
"os information": [""],
"open ports": [""],
"open services": [""],
"vulnerable service": [""],
"found cve": [""]
}}
NMAP Data to be analyzed: {analize}
"""
messages = [{"content": prompt, "role": "assistant"}]
response = openai.ChatCompletion.create(
model=model_engine,
messages=messages,
max_tokens=2500,
n=1,
stop=None,
)
response = response['choices'][0]['message']['content']
ai_output = {
"markdown": response
}
return ai_output
기본 키: e43d4
최신 업데이트는 아직 진행 중입니다
| 매개변수 | 반환 데이터 | 설명 | Nmap 명령어 |
|---|
p1 | json | 효과적인 스캔 | -Pn -sV -T4 -O -F |
p2 | json | 간단한 스캔 | -Pn -T4 -A -v |
p3 | json | 저전력 스캔 | -Pn -sS -sU -T4 -A -v |
p4 | json | 부분 집중 스캔 | -Pn -p- -T4 -A -v |
p5 | json | 완전 집중 스캔 | -Pn -sS -sU -T4 -A -PE -PP -PY -g 53 --script=vuln |
p6 | json | 포괄적인 서비스 버전 탐지 | -Pn -sV -p- -A |
p7 | json | OS 탐지를 포함한 적극적 스캔 | -Pn -sS -sV -O -T4 -A |
p8 | json | 일반 취약점 스크립트 스캔 | -Pn -sC |
p9 | json | 집중 스캔, 모든 TCP 포트 | -Pn -p 1-65535 -T4 -A -v |
p10 | json | UDP 스캔 | -Pn -sU -T4 |
p11 | json | 상위 포트에 대한 서비스 및 버전 탐지 | -Pn -sV --top-ports 100 |
p12 | json | 취약점에 대한 NSE 스크립트를 사용한 적극적 스캔 | -Pn -sS -sV -T4 --script=default,discovery,vuln |
p13 | json | 일반 포트에 대한 빠른 스캔 | -Pn -F |