PyRAT 코드: 파이썬 기반 RAT의 내부
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
이 기사는 PyInstaller를 사용하여 ELF 바이너리로 패키지된 Python 기반 원격 접근 트로이 목마인 PyRAT를 다룹니다. 이 프로그램은 Linux와 Windows 모두에서 실행되며, 암호화되지 않은 HTTP를 통해 C2 서버와 통신하고, 명령 실행, 파일 유출, 스크린샷 캡처, 자체 삭제 루틴을 지원합니다. 지속성은 Linux에서는 XDG autostart를 통해, Windows에서는 실행 레지스트리 키를 통해 구현됩니다. 보고서는 이 도구가 얼마나 가볍고 사이버 범죄자들에게 얼마나 쉽게 전용될 수 있는지를 강조합니다.
조사
연구자들은 pyinstxtractor로 내장된 Python 바이트코드를 추출하고 모듈을 디컴파일하여 호스트 지문 생성, UID 생성, 스레드 관리, C2 조정을 수행하는 기본 Agent 클래스를 식별했습니다. 정적 분석을 통해 주요 가져오기, 파일 이름, 레지스트리 상호작용, 비콘에 사용되는 HTTP POST 엔드포인트를 표면화했습니다. 행동 테스트는 지속성 생성, 명령 실행, 파일 열거, 업로드/다운로드 작업, ZIP 아카이브 생성, 스크린샷 캡처 및 선택적 유물 정리를 포함한 전체 워크플로를 보여주었습니다.
완화
사용자 프로필에서 생성된 의심스러운 자동 시작 .desktop 파일 및 익숙하지 않은 실행 파일 이름을 사용하는 HKCURun 레지스트리 키의 추가 사항을 모니터링하십시오. 네트워크 레이어에서는 /api/{uid}/hello 엔드포인트를 대상으로 하는 미지의 호스트로의 HTTP POST 트래픽을 주시하십시오. 엔드포인트에서는 내장된 Python 콘텐츠와 비정상적인 프로세스 동작, 예를 들어 잦은 하위 프로세스 실행을 포함하는 알려지지 않은 ELF 바이너리를 플래그로 설정하십시오.
응답
탐지된 경우, 시스템을 격리하고 ELF 샘플 및 관련 .desktop 파일을 수집하고 관련된 레지스트리 상태를 보존하십시오. 포렌식의 일부로 UID, C2 주소 및 실행 중 전송된 파일을 추출하십시오. 식별된 C2 인프라를 차단하고 지속성을 제거하며 완전한 정리를 완료하십시오. 노출되었을 수도 있는 계정의 자격 증명을 교체하십시오.
공격 흐름
탐지
잠재적인 악성코드 자체 제거 또는 Stderr 숨김 작업 (cmdline 통해)
보기
아카이브가 Linux Tmp 폴더에서 생성됨 (file_event 통해)
보기
잠재적인 지속성 지점 [ASEPs – Software/NTUSER Hive] (cmdline 통해)
보기
잠재적인 레지스트리 키 제거 시도 (process_creation 통해)
보기
잠재적인 Linux XDG 자동 시작 파일 수정 시도 (cmdline 통해)
보기
바이너리/스크립트/폴더에 위험한 권한이 설정됨 (cmdline 통해)
보기
탐지용 IOCs (HashMd5): PyRAT Code: Python Based RAT 및 그 내부 요소들
보기
현재 사용자의 실행 키를 통한 Windows 지속성 [Windows 레지스트리 이벤트]
보기
Linux에서 PyRAT 지속성 탐지 [Linux 프로세스 생성]
보기
시뮬레이션 실행
전제 조건: 텔레메트리 및 기준 사전 비행 점검이 통과해야 합니다.
이유: 이 섹션에서는 탐지 규칙을 트리거하기 위해 고안된 적대적 기법(TTP)의 정확한 실행을 자세히 설명합니다. 명령어와 내러티브는 반드시 식별된 TTP를 직접 반영하고 탐지 논리에서 예상하는 정확한 텔레메트리를 생성할 것을 목표로 해야 합니다.
-
공격 서술 및 명령어:
공격자는 일반 사용자에 대한 SSH 자격 증명을 탈취했습니다. 로그인 후, 그들은 land에서 살아남기 스크립트를 실행합니다.
- 악성 ELF 페이로드를 작성합니다 (
agent-svc.pyc)는 사용자의 홈 디렉토리에 Python 바이트코드 파일로 위장하여 저장되며 실제로는 ELF 바이너리입니다. - 마스킹된 Debian 패키지 도구를 복사합니다 칭하여
dpkgn로 이동/usr/local/bin에 배치하고, 실행 권한을 부여합니다. 이 도구는 ELF 페이로드를 단순히 실행하는 얇은 래퍼에 불과합니다. - 자동 시작 데스크탑 항목을 설치합니다 (
dpkgn.desktop)은~/.config/autostart에 설치하여 페이로드가 모든 그래픽 세션 시작 시 실행되도록 합니다. - 적절한 권한을 설정합니다 즉각적인 의심을 피하기 위해.
결합된 파일 이벤트(
agent-svc.pycanddpkgn) 규칙의 첫 번째 조건을 충족시키며,.desktop파일은 두 번째 조건을 충족시킵니다. - 악성 ELF 페이로드를 작성합니다 (
-
회귀 테스트 스크립트:
#!/usr/bin/env bash set -euo pipefail # 1. 악성 ELF를 .pyc로 위장하여 배포 MALWARE_PATH="$HOME/agent-svc.pyc" echo "가짜 ELF 페이로드(더미 바이너리) 생성 중 ..." dd if=/dev/zero bs=1 count=1024 of="$MALWARE_PATH" status=none chmod +x "$MALWARE_PATH" # 2. dpkgn이라는 가짜 Debian 도구 배포 FAKE_TOOL="/usr/local/bin/dpkgn" echo "#!/usr/bin/env bash" | sudo tee "$FAKE_TOOL" > /dev/null echo "exec "$MALWARE_PATH" "$@"" | sudo tee -a "$FAKE_TOOL" > /dev/null sudo chmod +x "$FAKE_TOOL" # 3. 자동 시작 데스크탑 항목 생성 AUTOSTART_DIR="$HOME/.config/autostart" mkdir -p "$AUTOSTART_DIR" DESKTOP_FILE="$AUTOSTART_DIR/dpkgn.desktop" cat > "$DESKTOP_FILE" <<EOF [Desktop Entry] Type=Application Exec=$FAKE_TOOL Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name=Package Manager Comment=System Update Service EOF echo "PyRAT 지속성 아티팩트 배포됨." -
정리 명령:
#!/usr/bin/env bash set -euo pipefail # 악성 ELF 제거 rm -f "$HOME/agent-svc.pyc" # 가짜 툴 제거 sudo rm -f /usr/local/bin/dpkgn # 자동 시작 항목 제거 rm -f "$HOME/.config/autostart/dpkgn.desktop" echo "정리 완료."