
Shodan 검색 결과에 대한 익스플로잇/PoC 실행 자동화 - 동시 디스패치, 필터링, 구조화된 출력 및 내보내기.
Shodan 검색 결과에 대한 익스플로잇 및 PoC 실행을 자동화합니다. Shodan을 쿼리하고, 대상을 필터링하며, 모든 일치 항목에 대해 스크립트를 동시에 실행하고 구조화된 출력 및 내보내기를 수행합니다.
IP와 포트를 받는 PoC 스크립트가 있습니다. Shodan 쿼리와 일치하는 모든 호스트에 대해 실행하려고 합니다. ShodScript가 그 간극을 메웁니다: 검색, 필터링, 전달, 결과 수집.
pip install git+https://github.com/momenbasel/shodscript.git
또는 클론하여 로컬에 설치:
git clone https://github.com/momenbasel/shodscript.git
cd shodscript
pip install -e .
Shodan API 키 설정:
export SHODAN_API_KEY="your-api-key-here"
또는 모든 명령어에 --api-key / -k 옵션으로 전달합니다.
# 테이블 출력
shodscript search "apache 2.4.49"
# 포트 및 국가 필터링
shodscript search "nginx" --port 443 --country US --limit 50
# JSON 출력
shodscript search "apache" --json
# "apache 2.4.49"와 일치하는 각 호스트에 대해 check_http.py 실행
shodscript run "apache 2.4.49" ./exploit.py
# 동시 작업자 20개, 대상당 타임아웃 60초
shodscript run "apache 2.4.49" ./exploit.py -w 20 -t 60
# 독일의 포트 80으로 필터링, 결과 저장
shodscript run "apache" ./exploit.py --port 80 --country DE -o results.json
# CSV 내보내기
shodscript run "nginx" ./check.py -o results.csv --format csv
# 성공한 히트만 표시
shodscript run "apache" ./exploit.py --quiet
--pass-via를 통한 세 가지 모드:
# 환경 변수로 전달
shodscript run "nginx" ./script.py --pass-via env
# stdin으로 전달
shodscript run "nginx" ./script.py --pass-via stdin
# 스크립트에 추가 인수 전달
shodscript run "nginx" ./script.py -e "--verbose" -e "--ssl"
# 한 줄에 하나의 IP - 다른 도구로 파이프
shodscript ips "apache 2.4.49" | xargs -I{} curl -s http://{}
# 포트 포함
shodscript ips "apache 2.4.49" --with-port
# nuclei, httpx 등으로 파이프
shodscript ips "apache 2.4.49" -n 500 | httpx -silent
shodscript host 1.2.3.4
shodscript host 1.2.3.4 --json
shodscript info
스크립트는 IP와 포트를 받기만 하면 됩니다. 최소 예제:
#!/usr/bin/env python3
import sys
ip = sys.argv[1]
port = int(sys.argv[2])
# 여기에 익스플로잇/검사 로직 작성
print(f"[+] {ip}:{port} - 취약함")
# 종료 코드 0 = 성공 (녹색 표시), 0이 아닌 값 = 실패 (빨간색 표시)
더 많은 패턴(env 기반 및 배너 그래빙 스크립트 포함)은 examples/ 디렉토리를 참조하십시오.
결과는 JSON, JSONL 또는 CSV로 저장할 수 있습니다:
shodscript run "query" ./script.py -o results.json # JSON (기본값)
shodscript run "query" ./script.py -o results.jsonl --format jsonl # 한 줄에 하나의 JSON 객체
shodscript run "query" ./script.py -o results.csv --format csv # CSV
각 레코드는 다음을 포함합니다: ip, port, host, org, country, returncode, success, stdout, stderr, elapsed, error.
MIT
공인된 보안 테스트 및 연구 목적으로만 사용하십시오.
| 모드 |
|---|
| 스크립트가 대상을 수신하는 방식 |
|---|
arg (기본값) | python3 script.py <ip> <port> |
env | TARGET_IP, TARGET_PORT, TARGET_HOST 환경 변수 |
stdin | ip:port\n이 stdin으로 전달됨 |