Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pstf2 — 패시브 보안 도구 핑거프린팅 프레임워크 | Kitploit
도구/GitHubGitHub/g4lb1t/pstf2
Phishing ToolsIDS/IPS EvasionWeb SecurityLearning & EducationRed TeamingFingerprint Spoofing
GitHubg4lb1t/pstf2

pstf2

패시브 보안 도구 핑거프린팅 프레임워크

저장소 보기
74965년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

pstf^2

패시브 보안 도구 핑거프린팅 프레임워크

여러 보안 제품군을 간편하고 쉽게 우회할 수 있는 방법을 원한 적이 있나요? pstf^2 (pstf-스퀘어로 발음)는 패시브 브라우저 핑거프린팅이 가능한 HTTP 서버의 구현체입니다. 바로 당신이 찾고 있던 것일 수도 있습니다. 공격자가 인터넷을 통해 페이로드를 전달하려면 들어오는 링크를 스캔할 수 있는 여러 도구를 극복해야 합니다. 이메일 필터, 스캐닝 엔진, 심지어 URL을 통한 샌드박스 제출까지 — pstf2가 이를 수동적으로 감지하면 모두 우회할 수 있습니다. 일단 감지되면, 이 도구는 보안 서비스와 잠재적 피해자를 구별하여 악성 또는 무해한 응답을 전달할 수 있습니다.

이 도구는 BlackHat EU 2020에서 공개되었습니다: https://www.blackhat.com/eu-20/arsenal/schedule/#pstf2-link-scanners-evasion-made-easy-21763

연구에 대한 자세한 내용은 이 블로그 게시물에서 확인할 수 있습니다: https://blogs.akamai.com/sitr/2020/12/evading-link-scanning-security-services-with-passive-fingerprinting.html

작동 방식은?

진짜 질문은 — 링크 스캐너는 어떻게 작동하나요? 악성 링크를 검사하는 것은 웹 클라이언트가 HTTP GET 요청을 보내는 작업입니다. 각 벤더는 서로 다른 자체 구현을 사용하며, 대부분은 어느 정도 실제 사용자 상호작용을 모방하려고 합니다. pstf^2는 잘 알려진 봇 탐지 전술을 적용하여 들어오는 요청이 자동화된 보안 도구에서 온 것인지 판단하는 간단한 파이썬 기반 HTTP 서버입니다. 서버 운영자는 응답을 사용자 정의할 수 있습니다. 예를 들어, 스캐너가 감지되면 Google로 리디렉션하고, 그렇지 않으면 악성 콘텐츠를 전송합니다.

다음은 pstf^2의 일부로 구현된 주요 전술입니다:

애플리케이션 계층

구식 사용자 에이전트

보안 도구는 합법적인 클라이언트로 위장하여 실제 브라우저를 사칭하려 하지만, 일반적으로 그렇지 않은 경우가 많습니다. 제대로 유지 관리되지 않는 도구가 수십 년 된 브라우저 버전에 대한 가짜 사용자-에이전트 헤더를 사용하는 경우가 흔합니다. pstf^2를 사용하면 실제 비구식 버전으로 간주하는 최소 임계값을 설정할 수 있습니다.

일반적인 HTTP 이상 징후

이 도구가 감지할 수 있는 다양한 종류의 이상한 구현이 있습니다. BlackHat 발표에서 제시된 몇 가지 예는 다음과 같습니다:

  • 샌드박싱에 사용된 가상 호스트의 특성을 노출하는 via: 헤더를 남기는 경우.
  • 링크가 Google에서 도달했음을 암시하는 referer: 헤더 (예: referer: google.com/search?q=specific.site.com). 우리가 테스트한 시나리오에서는 이 제품이 이메일을 스캔하기 때문에 의미가 없었습니다. 누군가 (웹 인터페이스가 아닌) 이메일을 클릭하면 이 헤더가 없기 때문입니다.

링크, 네트워크 및 전송 계층

상관관계

여러 TCP 매개변수는 특정 OS 버전이나 특정 종류를 암시할 수 있습니다. 일부 클라이언트는 사용자-에이전트 헤더를 스푸핑하지만 선언된 것과 다른 OS 위에서 실행됩니다.

MTU 값

특정 클라우드 제공업체 네트워크에 호스팅된 클라이언트는 표준 1500바이트와 다른 MTU 값을 가집니다.

ASN

어떤 경우에는 요청이 특정 보안 벤더와 명시적으로 연결된 ASN에서 전송됩니다. 다른 경우에는 요청 출처가 클라우드 호스팅 제공업체이며, 특정 벤더를 지목하지는 않지만 일반적인 사용자일 가능성은 낮습니다.

DNS PTR 레코드

드물게 클라이언트의 IP 주소에 PTR 레코드가 있어 보안 벤더와 관련된 URL과 연결됩니다.

pstf^2 설정하기

Docker 사용

Docker가 이미 설치되어 있다고 가정하면 매우 간단합니다:

root@kitploit:~
docker-compose up 

수동 배포

Docker를 사용하지 않으려면 다음 단계를 따르세요.

Python 요구 사항 충족

다음 명령을 실행하세요:

root@kitploit:~
pip install requirements.txt

필요한 외부 Python 모듈이 설치됩니다.

p0f 다운로드

pstf^2를 배포하기 전에 p0f를 다운로드하여 설치하세요. 현재 다음에서 사용할 수 있습니다:

https://lcamtuf.coredump.cx/p0f3/

이제 lib/servers/server_config.yml을 올바른 경로를 가리키도록 설정하세요. 예:

root@kitploit:~
p0f_config:
  # change your username at the very least, remember to change in both paths
  p0f_bin_path: '/Users/$your_user_name/$more_folders/web_fp/p0f-3.09b/p0f'
  p0f_fp_path: '/Users/$your_user_name/$more_folders/web_fp/p0f-3.09b/p0f.fp'
  iface: 'lo0'
  p0f_named_socket: '/tmp/p0f_socket'

또한 iface가 Python HTTP 서버가 실행 중인 인터페이스와 동일한지 확인하세요. 위 예제에서는 루프백 인터페이스입니다.

pstf^2 실행

요구 사항이 충족되면 다음을 실행하세요:

root@kitploit:~
python driver.py

다음 플래그를 사용할 수 있습니다:

root@kitploit:~
  --p0f_bin_path P0F_BIN_PATH
  --p0f_fp_path P0F_FP_PATH
  --p0f_iface P0F_IFACE

모두 p0f 관련 매개변수(바이너리 자체, 핑거프린팅 파일, 기본값 eth0인 인터페이스)를 조정하는 데 사용됩니다.

다음과 유사한 출력이 표시되어야 합니다:

root@kitploit:~
2020-04-15 17:37:06,896 - pstf2_logger - INFO - Starting p0f...
2020-04-15 17:37:06,896 - pstf2_logger - INFO - Running command:
	/Users/gbitensk/work/web_fp/p0f-3.09b/p0f -i lo0 -s /tmp/p0f_socket -f /Users/gbitensk/work/web_fp/p0f-3.09b/p0f.fp
2020-04-15 17:37:06,898 - pstf2_logger - INFO - p0f started!
2020-04-15 17:37:06,898 - pstf2_logger - INFO - Starting HTTP server...
2020-04-15 17:37:06,898 - pstf2_logger - INFO - HTTP server started!
2020-04-15 17:37:06,899 - pstf2_logger - INFO - If you wish to terminate the server press CTRL+C

Ctrl+C를 눌러 서버를 종료하면 HTTP와 p0f 인스턴스가 모두 종료됩니다. 다음과 유사한 내용이 표시됩니다:

root@kitploit:~
2020-04-15 17:37:48,263 - pstf2_logger - INFO - HTTP server stopped!
2020-04-15 17:37:48,263 - pstf2_logger - INFO - Killing p0f...
2020-04-15 17:37:48,263 - pstf2_logger - INFO - p0f killed!
2020-04-15 17:37:48,263 - pstf2_logger - INFO - exiting...

DNS 레코드를 설정하여 URL이 서버를 가리키도록 하는 것은 pstf^2의 범위를 벗어나며 사용자 책임입니다.

페이로드 관리

pstf^2는 server_config.yml 내에 정의된 기본 페이로드를 가지고 있으며 쉽게 사용자 정의할 수 있습니다.

무해 응답

rickroll_mode 변수를 YES 또는 NO로 변경하여 전환할 수 있는 두 가지 모드가 있습니다. 활성화되면 보안 도구는 유명한 Rickrolling 동영상이 있는 YouTube 페이지로 리디렉션되고, 그렇지 않으면 동일한 YAML 파일에 정의된 문자열을 제공합니다.

악성 응답

기본적으로 "악성" 응답은 EICAR 표준 테스트 문자열로 설정되었습니다.

pstf^2가 공개된 이유는?

이 도구를 오픈 소스 프로젝트로 공개하기로 선택한 이유는 다음과 같습니다:

  • 악성 링크는 매일 대규모로 나쁜 사람들에 의해 사용됩니다.
  • 보안 도구가 충분하지 않으며, pstf^2가 보여준 방법 중 일부는 실제 환경에서 남용되고 있습니다.

도구 구축 과정에서 15개의 다른 제품에 대해 테스트했으며 모두 실패했습니다. 공격에 대한 세부 정보를 책임감 있게 공개했지만, 아직 갈 길이 멀고 도구를 공개함으로써 이미 "나쁜 사람들"에 의해 남용되고 있는 이러한 전술에 대한 인식을 높일 수 있기를 기대합니다.

특별 감사

@Den1al — 이 도구를 구축할 때 구체적인 조언을 제공하고, 일반적으로 Python을 올바르게 작성하는 방법을 알려주며, Docker 이미지 생성에 도움을 주셨습니다.

도구 다운로드