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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pybof — Beacon Object Files용 인메모리 Python 로더로, COFF 페이로드를 실행하며 패킹/raw 인자 지원을 통해 레드팀 및 post-exploitation 워크플로우에 활용됩니다. | Kitploit
도구/GitHubGitHub/rkbennett/pybof
Post-ExploitationPenetration TestingRed Teaming
GitHubrkbennett/pybof

pybof

Beacon Object Files용 인메모리 Python 로더로, COFF 페이로드를 실행하며 패킹/raw 인자 지원을 통해 레드팀 및 post-exploitation 워크플로우에 활용됩니다.

저장소 보기
80108개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

PyBOF

Python을 통한 Beacon Object 파일 실행

BOF의 인메모리 로딩 및 실행

PyBOF는 Python3가 bytes를 통해 Beacon Object Files를 로드하고 Python 인터프리터에서 대상 BOF 함수를 실행할 수 있게 해줍니다.

기본 사용법

인자가 필요 없는 간단한 BOF 실행

root@kitploit:~
data = open(r'c:\path\to\example.o', 'rb').read()
bof.run(data)

원시 문자열 인자를 BOF에 전달

root@kitploit:~
data = open(r'c:\path\to\example.o', 'rb').read()
bof.run(data, args=["foo"], raw=True)
# Raw는 function kwarg와 함께 사용할 수 없습니다.

패킹/포맷된 인자를 BOF에 전달

root@kitploit:~
data = open(r'c:\path\to\example.o', 'rb').read()
bof.run(data, args=[r"c:\users"], format="Z")

실행 실용 예제

root@kitploit:~
import bof
from urllib.request import urlopen
data = urlopen("https://github.com/trustedsec/CS-Situational-Awareness-BOF/raw/master/SA/dir/dir.x64.o").read()
bof.run(data, args=[r"c:\users"], format="Z")

Args/Kwargs

PyBOF와 함께 사용할 수 있는 몇 가지 인자가 있으며, 아래에 자세히 설명되어 있습니다.

data

필수 첫 번째 위치 인자로, BOF의 원시 내용을 포함하는 byte 객체여야 합니다.

args

선택적 키워드 인자로, 대상 BOF 함수에 전달할 인자 목록입니다.

function

선택적 키워드 인자로, 제공된 BOF에서 실행할 대상 함수의 문자열 형식 이름이며, 기본값은 go입니다.

format (참고 - 최근에 업데이트되었습니다)

선택적 키워드 인자는 문자열로, BOF 인자 패커에 버퍼로 패킹되는 인자 유형을 알려줍니다. 이는 struct.pack의 format 인자와 유사합니다. 유효한 format 옵션은 다음과 같습니다:
i 정수(int)
s short
z 문자열(string)
b 바이너리(binary)
Z 와이드/유니코드 문자열(wide)

args 목록의 각 인자에 대해 최소 하나의 format 유형이 제공되어야 합니다. 이 키워드 인자는 raw와 함께 사용할 수 없습니다.

raw

선택적 키워드 인자로, 부울 값을 가지며 BOF 함수를 위해 포맷된 인자를 패킹하는 대신 인자를 공백으로 구분된 문자열로 전달합니다. 이 키워드 인자는 format과 함께 사용할 수 없습니다.

빌드

이 저장소를 클론합니다.

root@kitploit:~
git clone https://github.com/rkbennett/pybof.git

_bof c 확장을 빌드합니다.

root@kitploit:~
cd pybof\src
python .\setup.py build

결과 pyd 파일을 bof 디렉터리로 복사합니다.

root@kitploit:~
copy build\lib.win-xxx-cpython-3xx\_bof.cp3xx-win_xxxx.pyd ..\bof\

bof 디렉터리의 상위 디렉터리로 이동하여 임포트하고 사용합니다.

root@kitploit:~
cd ..\
python
>>> import bof
>>> from urllib.request import urlopen
>>> data = urlopen("https://github.com/trustedsec/CS-Situational-Awareness-BOF/raw/master/SA/dir/dir.x64.o").read()
>>> bof.run(data, args=[r"c:\users"], format="Z")

주의사항(Gotchas)

BOF 함수가 값을 반환하지 않으면, 아무것도 반환되지 않았다는 경고를 사용자에게 알리기 위해 발생시킵니다. 이는 실행의 의도된 결과가 아닐 가능성이 높다고 가정하지만, 하드 에러를 던지고 싶지는 않았습니다. BOF 함수를 실행하고 no output 경고를 수신한 경우, 인자 형식이 정의되어야 하거나 잘못 정의되었을 수 있음을 명심하십시오(특히 wide 대신 string을 사용하는 경우) 이로 인해 이 문제가 발생할 수 있습니다.

특별 감사

  • natesubra - 제 무작위 질문에 답변해 주셔서 감사합니다.
  • trustedsec - 제 PyBof 모듈에 래핑한 COFFLoader를 제공해 주셔서 감사합니다(라이선스는 src/source에 포함).
도구 다운로드