Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
packetStrider — SSH를 위한 네트워크 패킷 포렌식 도구 | Kitploit
도구/GitHubGitHub/benjeems/packetstrider
Packet Sniffing & AnalysisNetwork ForensicsForensicsPenetration TestingMachine LearningIntrusion DetectionRed TeamingAnomaly Detection
GitHubbenjeems/packetstrider

packetStrider

SSH를 위한 네트워크 패킷 포렌식 도구

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Packet Strider (v0.21)

alt text

요약

SSH용 packetStrider는 SSH 트래픽의 특성에 대한 귀중한 통찰력을 제공하고, 이전에는 어둠 속에 숨겨져 있던 정보의 황금 알갱이가 있는 SSH 네트워크 트래픽의 구석에 빛을 비추는 패킷 포렌식 도구입니다.

packet strider가 해결하려는 문제(일명 Why?)

SSH는 분명히 암호화되어 있지만, 네트워크 트래픽 내에는 TTP, 의도, 성공 및 목표에 대한 행동 규모에 기여할 수 있는 귀중한 상황 정보가 여전히 존재합니다. 귀중한 컨텍스트를 호스트에서 사용할 수 없거나 삭제된 상황이 있을 수 있으므로 변경 불가능하고 수정할 수 없는 수동 네트워크 캡처는 추가 포렌식 컨텍스트를 제공합니다. "패킷은 거짓말을 하지 않습니다."

포렌식 컨텍스트와 별도로, packet strider 예측은 능동적인 방식으로도 사용될 수 있습니다. 예를 들어, 역방향 인증이 제공되기 전에도 터널링된 역방향 SSH 세션 시작 기능이 내부에서 예측되는 경우 포워드 연결을 차단/RST하는 데 사용할 수 있습니다.

packet strider의 주요 기술(일명 How?)

  • 팬더스 데이터프레임 형태로 풍부한 특징 집합을 구축합니다. SSH 프로토콜 메시지 내용, 정규화된 통계, 방향, 크기, 지연 시간 및 슬라이딩 윈도우 특징 등 패킷 메타데이터로부터 40개 이상의 특징이 설계됩니다.
  • 슬라이딩 윈도우(컨볼루션 신경망에서 영감을 받음)를 사용하여 이 특징 집합을 여러 번 stride하여 다음을 예측합니다:
    • 포워드 세션에서 -R 옵션 사용 - 이것은 세션 후반에 역방향 연결을 가능하게 하는 것입니다. 이 인공물은 세션 시작 직후, 포워드 세션이 인증된 직후에 발견됩니다. 이것은 역방향 세션이 가능하다는 첫 번째 경고 신호입니다.
    • 역방향 SSH 세션 시작, 이는 포워드 세션의 어느 시점(초기 또는 후기)에 발생할 수 있습니다. 이는 역방향 세션이 성공적으로 인증되기 전에 발견됩니다. 이것은 두 번째 경고 신호로, 방금 역방향 세션이 요청되고 인증을 위해 설정되었음을 나타냅니다.
    • 역방향 세션 인증의 성공 및/또는 실패. 이것은 세 번째이자 마지막 경고 신호이며, 이 시점 이후에는 누군가가 호스트 내부의 역방향 세션에 있음을 알 수 있습니다.
    • -A 옵션(SSH 에이전트 포워딩) 사용, 이는 클라이언트가 로컬 SSH 개인 키를 서버와 공유할 수 있게 합니다. 이 기능은 일반적으로 위험한 것으로 간주됩니다. 참고 자료: https://matrix.org/blog/2019/05/08/post-mortem-and-remediations-for-apr-11-security-incident https://skylightcyber.com/2019/09/26/all-your-cloud-are-belong-to-us-cve-2019-12491/ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12491
    • 모든 예측 및 메타데이터 보고서는 스트림별로 제공됩니다.
    • 시간 델타를 기반으로 사람 또는 스크립트 실행 여부.
    • 서버가 클라이언트에게 이미 알려져 있는가? 아니면 둘 사이의 연결이 처음인가? 이는 known_hosts와 관련된 패킷 델타를 통해 확인됩니다.
    • 클라이언트 인증서 또는 비밀번호 인증이 사용되었는지, 그리고 비밀번호 길이가 8자 이하인지 여부.
    • 키스트로크, 삭제 키 누름, 엔터 키 누름 (잘라내기/붙여넣기 및 위/아래는 YMMV/실험적).
    • 포워드 및 리버스 세션 모두에서 데이터 유출/유입 이동 예측.
    • 대화형 세션뿐만 아니라 파일 기반 SSH 파일 전송 앱(예: scp, putty, cyberduck 등)에서도 작동합니다.

시작하기

Python3가 사용되었으며, 다음 모듈이 필요합니다(python2에서는 YMMV).

pip3 install pandas matplotlib pyshark

사용법:

python3 packetStrider-ssh.py -h

출력:

usage: packetStrider-ssh.py [-h] [-f FILE] [-n NSTREAM] [-m] [-k] [-p]
                             [-z ZOOM] [-d DIRECTION] [-o OUTPUT_DIR]
                             [-w WINDOW] [-s STRIDE]

packetStrider-ssh is a packet forensics tool for SSH. It creates a rich
feature set from packet metadata such SSH Protocol message content, direction,
size, latency and sequencing. It performs pattern matching on these features,
using statistical analysis, and sliding windows to predict session initiation,
keystrokes, human/script behavior, password length, use of client
certificates, context into the historic nature of client/server contact and
exfil/infil data movement characteristics in both Forward and Reverse sessions

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  pcap file to analyze
  -n NSTREAM, --nstream NSTREAM
                        Perform analysis only on stream n
  -m, --metaonly        Display stream metadata only
  -k, --keystrokes      Perform keystroke prediction
  -p, --predict_plot    Plot data movement and keystrokes
  -z ZOOM, --zoom ZOOM  Narrow down/zoom the analysis and plotting to only
                        packets "x-y"
  -d DIRECTION, --direction DIRECTION
                        Perform analysis on SSH direction : "forward",
                        "reverse" OR "both"
  -o OUTPUT_DIR, --output_dir OUTPUT_DIR
                        Directory to output plots
  -w WINDOW, --window WINDOW
                        Sliding window size, # of packets to side of window
                        center packet, default is 2
  -s STRIDE, --stride STRIDE
                        Stride between sliding windows, default is 1

예제

pcap "forward_reverse.pcap"은 역방향 SSH 셸의 일반적인 TTP에서 가져온 것으로, 모든 레드 팀이 선호하는 방법입니다. 구체적으로 packet strider의 기능을 간단하게 강조하기 위해 다음 명령이 사용되었습니다:

  • 피해자로부터의 포워드 연결

    • 포워드 세션 명령은 ssh [email protected] -R 31337:localhost:22로, 로컬 포트 31337을 바인딩하여 피해자 PC로의 역방향 SSH 연결을 준비합니다. 이 연결은 수동, RCE, SSRF 또는 일부 지속성 형태를 포함한 여러 방식으로 실행될 수 있습니다. 이 데모의 목적상 수동 표준 포워드 세션입니다.
    • 이것은 클라이언트가 서버를 처음 본 것이 아닙니다. 관련 패킷의 델타가 매우 작았기 때문에 이를 알 수 있습니다. 서버의 키 지문이 이미 클라이언트의 known_hosts에 있었으므로 사용자에게 추가하라는 메시지가 표시되지 않았습니다. 추가하라는 메시지가 있었다면 패킷 지연 시간이 증가했을 것입니다.
    • 사람에 의한 두 번의 연속 실패한 비밀번호 로그인 후, 8자 이상 비밀번호로 성공적인 로그인.
    • 포워드 세션에서 ls가 다음 순서로 입력됩니다: 'l' 'w' 'w' '백스페이스' '백스페이스' 's' 그런 다음 엔터. 전송된 유선 데이터의 총 크기(ls의 출력)는 인바운드이므로 침투로 분류됩니다.
  • 이제 공격자 머신(서버)에서 피해자에게 역방향 셸이 시작됩니다:

    • ssh victim@localhost -p 31337. 이 시점에서, 인증 프로세스가 시작되기도 전에, packet strider는 패킷 72에서 역방향 세션 SSH 시작을 식별했습니다.
    • 이제 공격자는 피해자 호스트에 역방향 셸을 가지고 있습니다. 여기에서 히스토리 설정을 끄고, 원하는 측면 이동 또는 약탈 행각을 실행할 수 있습니다. 이 데모의 간단한 예제는 초기 사용자 정찰입니다.
    • last가 키스트로크 형태로 실행됩니다: 'l' 'a' 's' 'r' 'delete' 't' 'enter'
    • who가 키스트로크 형태로 실행됩니다: 'w' 'h' 'o' 'enter'
    • exit가 키스트로크 형태로 실행됩니다: 'e' 'x' 'i' 't'
  • 마지막으로 포워드 세션을 종료하여 포워드 SSH 기능 탐지가 여전히 작동함을 보여줍니다.

    • exit

이 활동의 네트워크 트래픽은 tcpdump.pcap에 저장되었으며, 이제 Packet Strider를 실행할 차례입니다.

python3 packetStrider-ssh.py -f tcpdump.pcap -k -p -o out

alt text

이 그래프는 주요 예측의 타임라인을 보여줍니다(이미지에 주석 처리됨) alt text

이 그래프는 일부 윈도우 통계를 보여주며, 심층 분석 및 특징 실험에 유용합니다. alt text

이 그래프는 단순한 히스토그램을 보여줍니다. alt text

영감

이 프로젝트는 개인적인 개념 증명으로, Python의 일부 데이터 과학 라이브러리를 연습하기 위한 방법으로 수행되었습니다. Coursera에서의 머신러닝 및 데이터 과학 학습, 특히 pandas 라이브러리와 컨볼루션 신경망(CNN)이 슬라이딩 윈도우를 사용하여 이미지 픽셀 집합을 'stride'하여 특정 특징을 감지하는 방식에서 큰 영감을 받았습니다.

팁

Packet Strider는 전체 용량 모드에서 방대한 양의 'striding'을 수행합니다. 이는 pcap이 크거나 더 정확히는 pcap에 많은 패킷이 있는 경우 상당한 리소스 사용을 초래할 수 있습니다. 다음은 속도 향상 팁입니다. 이는 초기 실행 시 역방향 SSH 활동이 예측되었는지 확인하는 등에 특히 유용하며, 이후 원하는 경우 기능을 추가할 수 있습니다.

  • 무거운 작업을 수행하는 모듈(예: pyshark/tshark, pandas, matplotlib)의 최신 패치로 실행 중인지 확인하십시오.
  • -p --predict_plot 옵션은 가장 집중적인 작업입니다. 터미널로 출력만 실행하고, 이 그래프가 필요한지 확인하는 것을 고려하십시오.
  • -m --metaonly 옵션을 사용하십시오. 이는 프로토콜 이름 및 HASSH 데이터와 같은 상위 수준 메타데이터만 검색합니다. OpenSSH를 사용하는 대화형 세션인지, 아니면 Cyberduck과 같은 파일 전송 클라이언트인지 빠르게 판단하는 데 유용할 수 있습니다.
  • pcap을 SSH 트래픽으로 사전 필터링하십시오.
  • 빠른 -m --metaonly 옵션으로 이전에 실행하여 알게 된 원하는 스트림으로 pcap을 사전 필터링하십시오. "-n NSTREAM" 옵션을 사용하여 특정 스트림만 검사하거나 wireshark 등으로 사전 필터링할 수 있습니다.
  • 매우 큰 패킷 집합의 하위 집합에서 흥미로운 것을 식별하는 경우가 있을 수 있습니다. 여기서 줌 기능을 사용하여 관심 있는 영역의 패킷만 검사하고 플로팅할 수 있습니다. 이를 위해 -z ZOOM, --zoom ZOOM을 사용하십시오. 예: -z 100-500
  • 대부분의 경우 키스트로크 활동을 이해하는 데 관심이 있을 것입니다. 따라서 -k 옵션을 사용하지 않으면 처리 속도는 절약되지만, 이 귀중한 통찰력을 얻을 수 없다는 의미이기도 합니다.

할 일

  • 더 많은 프로토콜!
  • 멀티 스레딩을 검토하여 처리 속도에 도움이 될 수 있는 부분을 확인합니다.
  • 스크립트 효율성, 특히 플로팅 시간을 개선합니다.
  • 붙여넣기 표시기 개선
  • '위/아래' 키 표시기 개선
  • ImageMagick 또는 유사 도구로 그래프에 주석 추가
  • 보고 기능 개선, 디스크에 출력.
  • 역방향 키 표시기는 패킷 캡슐화로 인해 잠재적으로 두 개의 키스트로크를 보고할 수 있으므로 보수적입니다. 이 문제는 포워드 키스트로크에는 존재하지 않습니다. 패킷 순서가 순서에 맞지 않게 도착할 경우를 대비하여 처리되었기 때문입니다. 여기서 옵션을 검토합니다.
  • 속도를 위해 golang으로 포팅
  • 실시간 모드
  • 포워드 연결을 통한 추가 터널링 로컬 포트의 효과를 검토합니다.

면책 조항

자신의 책임 하에 사용하십시오. 라이선스 조건을 참조하십시오.

도구 다운로드