ShadowHS: 무기화된 해크셸을 기반으로 구축된 파일리스 리눅스 사후 익스플로잇 프레임워크
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
ShadowHS는 무기화된 해크셸을 메모리 내에서 완전히 실행하는 파일리스 리눅스 사후 침투 프레임워크입니다. 작은 로더가 AES-256-CBC 페이로드를 해독하고, 익명의 파일 서술자를 통해 복원한 후 디스크에 접근하지 않고 실행합니다. 실행 중에는 상호작용 쉘과 자격 증명 도용, 횡적 이동, 크립토마이닝, 조용한 데이터 유출을 위한 모듈을 제공합니다. 설계는 스텔스, 운영자 제어, 다양한 리눅스 환경에서의 지속적인 유지에 우선순위를 둡니다.
조사
Cyble 분석가들이 스테이지드 로더를 분해하고, 암호화된 쉘 스크립트를 복구하고, Perl 기반의 해독 체인을 매핑했으며, /proc/*/fd/ 경로를 통해 실행을 확인했습니다. 그들은 폭넓은 EDR/AV 확인, 경쟁 방지 로직, SSH 무차별 공격, 커널 익스플로잇, GPU 마이닝을 위한 필요한 모듈들을 문서화했으며, 테스트에서 반복 가능한 결과를 산출했습니다. 보고서에는 하드코드된 C2 엔드포인트와 rsync-over-GSocket 유출 방법도 나열되어 있습니다.
완화
/proc/에서 ELF 실행을 감시하십시오./fd/, 이상한 OpenSSL/Perl 해독 체인 및 argv 스푸핑 아티팩트를 감지하십시오. 삭제되거나 memfd가 뒷받침되는 바이너리, 메모리 덤프 도구 및 비표준 rsync 전송에 대한 가시성을 확보하십시오. 알려진 마이닝 풀을 차단하고 GSocket 터널을 제한하여 남용을 억제하십시오. 대규모의 의심스러운 memfd_create 사용 시 알림을 추가하십시오.
대응
탐지되면 호스트를 격리하고 조사용 메모리를 캡처하며, 메모리 내 프레임워크 및 모든 마이닝 래퍼를 종료하고 참조된 C2 IP/도메인 차단하십시오. 노출된 자격 증명을 인벤토리하고, 키 및 비밀번호를 회전하며 시스템을 강화하십시오. 횡적 이동 시도와 스캐닝 활동을 추적하여 확산 범위를 파악하고 재감염을 방지하십시오.
공격 흐름
우리는 이 부분을 계속 업데이트하고 있습니다. 알림을 받으려면 가입하세요
알림 받기탐지
GDB 배치 모드를 통한 리눅스 메모리 덤프 (via cmdline)
보기
파이프라인을 통한 리눅스 OpenSSL AES-256-CBC 해독 가능성 (via cmdline)
보기
/proc/self/fd를 통한 리눅스 파일리스 실행 가능성 (via cmdline)
보기
IOCs (HashSha256) 탐지: ShadowHS: 무기화된 해크셸로 구축된 파일리스 리눅스 사후 침투 프레임워크 Part 1
보기
IOCs (HashSha256) 탐지: ShadowHS: 무기화된 해크셸로 구축된 파일리스 리눅스 사후 침투 프레임워크 Part 2
보기
IOCs (DestinationIP) 탐지: ShadowHS: 무기화된 해크셸로 구축된 파일리스 리눅스 사후 침투 프레임워크
보기
IOCs (SourceIP) 탐지: ShadowHS: 무기화된 해크셸로 구축된 파일리스 리눅스 사후 침투 프레임워크
보기
ShadowHS 파일리스 리눅스 사후 침투 프레임워크 탐지 [리눅스 프로세스 생성]
보기
AES-256-CBC -nosalt 오용 및 /proc/*/exe 열거 탐지 [리눅스 파일 이벤트]
보기
시뮬레이션 실행
전제 조건: Telemetry & Baseline Pre‑flight Check가 통과되어야 합니다.
이유: 이 섹션은 탐지 규칙을 유발하도록 설계된 적대적 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령어와 서술은 식별된 TTP를 직접 반영해야 하며, 탐지 논리에 의해 예상되는 정확한 원격 측정을 생성하는 것을 목표로 합니다. 추상적이거나 관련 없는 예는 오진으로 이어질 것입니다.
-
공격 서사 및 명령어:
이미 손상된 리눅스 호스트에 발판을 마련한 공격자는 (1) entropy 검사를 피하기 위해 소금 없이 OpenSSL을 사용하여 이전에 추출된 데이터 블롭을 해독하고, (2) 향후 사용하지 않기 위해 자격 증명을 포함할 수 있는 특권 프로세스나 보안 도구를 식별하기 위해 실행 중인 모든 실행 파일을/proc/*/exe를 통해 열거하고 싶습니다. 공격자는 Bash 세션에서 다음 명령을 실행합니다:-
OpenSSL 해독 (AES‑256‑CBC, no‑salt) – Sigma 규칙이 감시하는 정확한 문자열을 재현합니다:
openssl enc -d -aes-256-cbc -nosalt -in /tmp/stolen.enc -out /tmp/secret.txt -
Proc‑exe 열거 – 모든 숫자 PID 디렉토리를 반복하여 symlink의 대상을 출력합니다:
exe심볼링크:for pid in /proc/[0-9]*; do readlink "$pid/exe" done
이러한 행동은 규칙의
aesandproc_enum조건을 만족시키는 두 가지 프로세스 생성 이벤트를 생성합니다. -
-
회귀 테스트 스크립트:
#!/usr/bin/env bash set -euo pipefail # ==== 1. OpenSSL 해독 (AES-256-CBC, no‑salt) ==== # 테스트를 위한 더미 암호화 파일 생성 echo "SensitiveData123" > /tmp/plain.txt openssl enc -aes-256-cbc -nosalt -salt -out /tmp/stolen.enc -pass pass:TestPass < /tmp/plain.txt # 정확한 탐지 패턴 사용하여 해독 openssl enc -d -aes-256-cbc -nosalt -in /tmp/stolen.enc -out /tmp/secret.txt -pass pass:TestPass # ==== 2. /proc/*/exe 심볼링크 열거 ==== for pid in /proc/[0-9]*; do readlink "$pid/exe" done echo "시뮬레이션 완료. SIEM에서 경고를 확인하십시오." -
정리 명령어:
#!/usr/bin/env bash set -euo pipefail rm -f /tmp/plain.txt /tmp/stolen.enc /tmp/secret.txt echo "정리 완료."