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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
shellen — :cherry_blossom: 쉘코드를 쉽게 제작할 수 있는 대화형 쉘코딩 환경 | Kitploit
도구/GitHubGitHub/konatabrk/shellen
ExploitationReverse EngineeringShellcodeCTFBinary AnalysisLearning & EducationShellcode GenerationPayload Development
GitHubkonatabrk/shellen

shellen

🌸 쉘코드를 쉽게 제작할 수 있는 대화형 쉘코딩 환경

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Shellen

개요

Shellen은 대화형 셸코딩 환경입니다. 셸코드를 작성할 때 유용한 도구를 원한다면 shellen이 도움이 될 수 있습니다. Shellen은 어셈블리 또는 디스어셈블리 도구로도 사용할 수 있습니다.

keystone 및 capstone 엔진이 shellen의 모든 작업에 사용됩니다.

Shellen은 python3에서만 작동합니다. python2 지원은 향후 추가될 수 있습니다.

설치

먼저 shellen의 의존성을 설치해야 합니다:

root@kitploit:~
$ sudo apt-get install cmake python3-dev python3-setuptools

pip3를 사용하여 shellen의 안정 버전을 설치할 수 있습니다:

root@kitploit:~
$ sudo pip3 install shellen

또는 필요한 모든 패키지가 이미 설치되어 있다면 (요구 사항 참조):

root@kitploit:~
$ python3 setup.py install

keystone-engine 설치에 문제가 있는 경우 keystone-engine을 컴파일해야 합니다 (keystone 저장소의 COMPILE.md 파일 참조)

Shellen 실행 방법

shellen과 필수 패키지를 설치한 후, 터미널에 다음을 입력하면 shellen을 실행할 수 있습니다:

root@kitploit:~
$ shellen

shellen의 사용법에 대한 정보를 얻으려면 shellen의 help 명령을 실행할 수 있습니다.

Shellen의 기능

Shellen은 명령어를 어셈블하고 디스어셈블하므로 각각 asm 및 dsm이라는 두 가지 사용 모드가 있습니다. syscall 테이블 검색과 일반적인 셸코드 검색을 포함한 다른 기능도 있습니다.

프롬프트

Shellen에는 현재 모드, OS(syscall용 운영 체제), 현재 모드에서 선택한 아키텍처를 표시하는 유용한 프롬프트가 있습니다. Shellen의 프롬프트는 다음과 같습니다:

root@kitploit:~
L:asm:x86_32 >

터미널에 입력하듯 입력 내용을 편집할 수 있습니다. 또한 shellen은 명령 기록을 저장합니다 (위쪽 화살표를 누르면 이전 명령을 확인할 수 있습니다).

L은 프롬프트에서 Linux의 약칭입니다. 아래에는 다른 모든 OS 이름이 나열되어 있습니다:

  • L은 Linux
  • W는 Windows
  • M은 MacOS

OS를 변경하려면 다음과 같이 setos [linux/windows/macos]를 입력하세요:

root@kitploit:~
L:asm:x86_32 > setos windows

[+] OS changed to windows.

현재 모드를 변경하려면 프롬프트에 asm 또는 dsm을 입력하세요.

root@kitploit:~
L:dsm:arm32 > asm

[+] Changed to asm (assembly) mode

L:asm:x86_32 > dsm

[+] Changed to dsm (disassembly) mode

L:dsm:arm32 > 

기본 명령어

명령어설명
clear터미널 화면을 지웁니다. Windows의 cls 또는 *nix 시스템의 clear와 같습니다.
help도움말 메시지를 표시합니다.
quit,q,exit

어셈블링

명령어를 어셈블하려면 다음과 같이 세미콜론으로 구분하여 입력하세요:

root@kitploit:~
L:asm:x86_32 > mov edx, eax; xor eax, eax; inc edx; int 80;
   [+] Bytes count: 7
       Raw bytes:  "\x89\xc2\x31\xc0\x42\xcd\x50"
       Hex string: "89c231c042cd50"

어셈블된 바이트에 널 바이트가 포함된 경우 shellen이 이를 알려줍니다.

디스어셈블링

디스어셈블링은 어셈블링과 유사합니다. 대신 프롬프트에 바이트를 입력하고 결과를 확인하세요!

root@kitploit:~
L:dsm:x86_32 > 89c231c042cd50
        0x00080000:     mov     edx, eax
        0x00080002:     xor     eax, eax
        0x00080004:     inc     edx
        0x00080005:     int     0x50

셸코드 실행

또한 하위 프로세스에서 셸코드를 실행할 수 있습니다. 이 작업은 시스템에 해를 끼칠 수 있으니 주의하세요! 하위 프로세스에서 마지막 셸코드로 점프합니다. 무엇이 잘못될 수 있을까요? 코드가 로드되는 기본 주소를 제어할 수 없으며, 명령어가 CPU에서 해석될 수 있다고 가정합니다. 사용 방법은 shellen 내부에서 help를 참조하세요.

잠재적으로 위험한 셸코드를 더 안전하게 실행하기 위해 하위 프로세스를 가상 환경에서 실행할 계획입니다.

아키텍처

asm 및 dsm 모드는 다양한 아키텍처에서 작동합니다. shellen의 현재 모드에서 사용 가능한 아키텍처 목록을 보려면 다음을 입력하세요:

root@kitploit:~
L:dsm:x86_32 > archs
┌────────┬────────┬─────────┬─────────┬────────┐
│        │        │         │         │        │
│ arm32  │ mips32 │ sparc32 │ systemz │ x86_16 │
│ arm64  │ mips64 │ sparc64 │         │ x86_32 │
│ arm_tb │        │         │         │ x86_64 │
└────────┴────────┴─────────┴─────────┴────────┘

현재 아키텍처를 변경하려면 다음을 입력하세요:

root@kitploit:~
L:dsm:x86_32 > setarch arm32

[+] Architecture of dsm changed to arm32

시스템 콜

셸코드를 만들 때 syscall이 필요합니다. shellen으로 syscall을 조회하려면 sys 다음에 원하는 syscall 이름을 입력하세요. Shellen은 찾고 있던 syscall이 포함될 수 있는 syscall 목록을 생성합니다.

root@kitploit:~
L:asm:x86_32 > sys open

┌────────┬───────┬──────────────────────┬──────────────────────┬──────────────┬──────────────┐
│ name   │ eax   │ ebx                  │ ecx                  │ edx          │ esi          │
├────────┼───────┼──────────────────────┼──────────────────────┼──────────────┼──────────────┤
│ open   │ 0x05  │ const char *filename │ int flags            │ umode_t mode │ -            │
│ openat │ 0x127 │ int dfd              │ const char *filename │ int flags    │ umode_t mode │
└────────┴───────┴──────────────────────┴──────────────────────┴──────────────┴──────────────┘

sys는 제공된 syscall에 대해 가능한 변형 목록을 출력합니다. shellen이 검색하는 syscall 테이블은 선택한 아키텍처와 운영 체제(OS)에 따라 달라집니다. 이 경우 아키텍처는 x86_32이고 OS는 Linux입니다.

일반적인 셸코드

Shellen은 키워드에 따라 일반적인 셸코드 목록을 표시할 수 있습니다. Shellen의 키워드 조회는 shell-storm.org의 API를 사용하며 (작성자에게 감사드립니다!) 다음과 같이 사용할 수 있습니다:

root@kitploit:~
L:asm:x86_32 > shell <keyword> <count>

참고로 count 매개변수는 필수가 아닙니다. shell <keyword> <count> 출력의 이미지는 스크린샷 섹션에 있습니다.

지원되는 운영 체제

현재 shellen은 Linux에서만 지원됩니다. Windows 또는 MacOS용 기능을 추가하려면 이슈를 작성해 주시면 지원을 추가하겠습니다.

문제 보고 또는 새 기능 요청 방법

문제/버그나 기타 사항을 발견하면 해당 문제에 대해 이슈를 작성해 주세요. 또한 shellen에 추가하면 좋을 기능이 있다고 생각되면 동일하게 이슈를 작성해 주시면 요청한 기능을 추가하도록 노력하겠습니다.

요구 사항

  • keystone
  • capstone
  • colorama
  • termcolor
  • terminaltables

TODO

  • 어셈블링
  • 디스어셈블링
  • Syscall 목록
  • 일반적인 셸코드 데이터베이스
  • ROP 빌더 추가
  • 여러 줄의 어셈블리 코드 편집 추가
  • asm 및 dsm 모드에 대한 별도의 기록
  • 셸코드 실행을 위한 가상 환경

스크린샷

약간의 사진 모음입니다. (다양한 기능이 추가되면서 오래된 사진입니다)





도구 다운로드
현재 세션을 종료하고 빠져나갑니다.