Skip to main content

Command Palette

Search for a command to run...

PamDOORa: Backdoor Linux Biến SSH Thành Bẫy Im Lặng

Published
16 min read
PamDOORa: Backdoor Linux Biến SSH Thành Bẫy Im Lặng

Mục lục

  1. Tóm tắt
  2. Background: Linux PAM hoạt động như thế nào
  3. Kỹ thuật tấn công PAM phổ biến
  4. Phân tích kỹ thuật PamDOORa
  5. Attack Flow
  6. Bối cảnh Dark Web và đánh giá threat actor
  7. MITRE ATT&CK Mapping
  8. Detection
  9. Nhận định chuyên gia
  10. Khuyến nghị
  11. Tài liệu tham khảo

Tóm tắt

Tháng 5/2026, một backdoor post-exploitation dành cho Linux có tên PamDOORa xuất hiện trên forum tội phạm mạng nói tiếng Nga, rao bán với giá ban đầu $1,600 — sau giảm xuống còn $900. Công cụ này nhúng vào bên trong Linux Pluggable Authentication Module (PAM) stack, cấp cho attacker quyền truy cập SSH liên tục thông qua một "magic password" kết hợp với cổng TCP cụ thể, đồng thời âm thầm thu thập thông tin xác thực của mọi người dùng hợp lệ đăng nhập vào hệ thống. Song song với đó, nó xóa dấu vết của mình khỏi các file log xác thực — lastlog, btmp, utmp, wtmp — có nghĩa là đội ngũ điều tra sự cố (IR team) khi SSH vào điều tra server bị xâm phạm cũng có thể bị thu thập credentials mà không để lại bất kỳ vết tích nào.

PamDOORa yêu cầu quyền root để triển khai, nhưng là một bước tiến đáng kể so với các công cụ PAM abuse open-source hiện có. Sự kết hợp giữa credential harvesting, anti-forensics, anti-debugging và builder pipeline đặt nó gần hơn với một implant cấp độ operator hơn là một script proof-of-concept.

Hành động ưu tiên: Kiểm tra toàn bộ PAM configuration file và các module .so đang được load trên mọi Linux server expose ra internet, đồng thời bật file integrity monitoring cho /etc/pam.d//lib/security/.


Background: Linux PAM hoạt động như thế nào

Linux PAM (Pluggable Authentication Modules) là engine xác thực trung tâm trên hầu hết các bản phân phối Linux. Thay vì hardcode logic xác thực vào từng ứng dụng, PAM cung cấp một framework dạng module, policy-driven, được định nghĩa trong /etc/pam.d/, trong đó mỗi file quy định cách một service cụ thể xử lý xác thực, quản lý session và chính sách mật khẩu.

/etc/pam.d/
├── sshd          # Policy xác thực SSH
├── sudo          # Policy xác thực sudo
├── login         # Policy đăng nhập console
└── common-auth   # Policy auth dùng chung (được include bởi các file khác)

Khi người dùng kết nối qua SSH, luồng xử lý như sau:

Người dùng → sshd → PAM stack (/etc/pam.d/sshd) → pam_*.so modules → Chấp nhận/Từ chối

Mỗi dòng trong PAM config file chỉ định:

  • Module type (auth, account, password, session)
  • Control flag (required, sufficient, optional, requisite)
  • Module path (pam_unix.so, pam_exec.so, v.v.) ALT: Cấu trúc PAM library hiển thị các file pam_*.so được load vào authentication stack

Control flag sufficient đặc biệt nguy hiểm: nếu một module có flag này trả về success, PAM cấp quyền truy cập ngay lập tức mà không chạy các module tiếp theo. Attacker lợi dụng điều này để chèn backdoor xác thực trước khi kiểm tra mật khẩu thực sự diễn ra.

Vì nhiều PAM config file sử dụng @include common-auth, một sửa đổi duy nhất trong /etc/pam.d/common-auth lan truyền đồng thời sang SSH, sudo và đăng nhập console.


Kỹ thuật tấn công PAM phổ biến

Các kỹ thuật PAM abuse đã được ghi chép đầy đủ, nhưng ít khi bị phát hiện vì phần lớn tổ chức không chủ động monitor PAM configuration. Các pattern phổ biến:

1. Chèn module với flag sufficient vào đầu auth chain

# Dòng chèn độc hại trong /etc/pam.d/sshd
auth sufficient /lib/security/pam_backdoor.so
auth required pam_unix.so

Module backdoor chạy trước. Nếu nhận được magic password, nó trả về PAM_SUCCESS với flag sufficient — bước kiểm tra mật khẩu thực bị bỏ qua hoàn toàn.

2. Lạm dụng pam_exec.so để thu thập credentials

auth optional pam_exec.so /usr/local/bin/capture.sh

pam_exec.so là module hợp lệ có chức năng thực thi script tùy ý trong quá trình xác thực. Script do attacker kiểm soát có thể ghi PAM_AUTHTOK (mật khẩu plaintext được pass qua PAM stack) vào một file.

3. Thả custom pam_*.so module Một shared library tùy chỉnh được đặt trong /lib/security/ hoặc /usr/lib/x86_64-linux-gnu/security/ sẽ lẫn vào các module hợp lệ về mặt thị giác. Nó chỉ kích hoạt trong các sự kiện xác thực — ẩn mình hơn nhiều so với cron job hoặc systemd service xuất hiện trong process listing.

ALT: Danh sách các file pam_*.so trong /usr/lib/x86_64-linux-gnu/security/ với một module độc hại lẫn vào


Phân tích kỹ thuật PamDOORa

PamDOORa kết hợp cả ba kỹ thuật trên thành một implant gắn kết, thống nhất. Dựa trên phân tích quảng cáo dark web và screenshot được chia sẻ bởi Flare Research, đây là những gì được biết:

Khả năng cốt lõi

Khả năng Mô tả
Persistent SSH access Magic password + cổng TCP cụ thể kích hoạt bypass xác thực PAM
Credential harvesting Thu thập mật khẩu plaintext của mọi user xác thực tại tầng PAM — trước bất kỳ application logging nào
Anti-forensics Thao túng lastlog, btmp, utmp, wtmp để xóa bản ghi đăng nhập của attacker
Anti-debugging Bao gồm các biện pháp bảo vệ để cản trở phân tích động
Network-aware triggers Hành vi xác thực thay đổi dựa trên nguồn kết nối hoặc cổng
Builder pipeline Hệ thống build module hóa cho thấy tác giả hướng đến triển khai cấp độ operator

Kiến trúc

PamDOORa chèn hai thành phần vào hệ thống Linux bị xâm phạm:

  1. PAM configuration đã sửa đổi trong /etc/pam.d/sshd (hoặc common-auth) tham chiếu đến module độc hại
  2. Custom .so library được đặt bên trong thư mục PAM module hợp lệ Việc thu thập credentials diễn ra bên trong PAM stack, nghĩa là mật khẩu bị chặn trước khi sshd ghi log bất cứ điều gì — bypassing auth.log, syslog và mọi SIEM forwarding tầng ứng dụng.

Rủi ro đặc biệt với IR Team

Đây là chi tiết cần được incident responder đặc biệt quan tâm. Khi IR team phát hiện server bị xâm phạm và SSH vào để điều tra:

  1. Module backdoor chặn SSH credentials của họ tại tầng PAM
  2. Lần đăng nhập thành công của họ bị xóa khỏi wtmp, btmplastlog
  3. Từ góc nhìn của attacker: credentials của IR team đã bị thu thập, quyền truy cập của họ là vô hình, và họ vô tình trở thành một vector persistence mới Attacker sau đó có thể dùng credentials thu được từ IR team để di chuyển ngang sang các hệ thống khác mà IR team có quyền truy cập — jump server, SIEM, ticketing system, hoặc chính workstation của họ.

ALT: Screenshot từ quảng cáo dark web hiển thị tính năng và giá PamDOORa được đăng bởi threat actor


Attack Flow

PamDOORa là công cụ post-exploitation. Attacker chịu trách nhiệm tự thực hiện initial access và leo thang quyền lên root.

[Phase 1] Initial Compromise
    └─ Attacker đạt được quyền root qua bất kỳ vector nào
       (khai thác CVE, credential reuse, supply chain, v.v.)
 
[Phase 2] Cài đặt PAM Backdoor
    ├─ Thả pam_*.so độc hại vào /lib/security/
    ├─ Sửa /etc/pam.d/sshd hoặc common-auth
    └─ Cấu hình magic password + trigger port
 
[Phase 3] Thiết lập Persistence
    ├─ SSH access qua magic password (với bất kỳ username)
    └─ Mật khẩu của người dùng hợp lệ được ghi vào file attacker kiểm soát
 
[Phase 4] Credential Harvesting (Thụ động, liên tục)
    └─ Mọi lần SSH đăng nhập tiếp theo bị capture tại tầng PAM
       trước application-layer logging
 
[Phase 5] Anti-Forensics (Chủ động, mỗi lần đăng nhập)
    └─ Session của attacker bị xóa khỏi lastlog/wtmp/btmp/utmp
 
[Phase 6] IR Compromise (Kịch bản rủi ro cao)
    └─ Credentials của IR team bị capture trong quá trình điều tra
       → Lateral movement sang các hệ thống khác của IR team

Bối cảnh Dark Web và đánh giá threat actor

Flare Research đã xác định listing PamDOORa trên một forum tội phạm mạng nói tiếng Nga. Các quan sát chính:

  • Giá chào ban đầu: $1,600 cho toàn bộ source code
  • Giá đã điều chỉnh: $900 (giảm ~44%), cho thấy lượng người mua hạn chế hoặc nỗ lực đẩy nhanh giao dịch
  • Hồ sơ người bán: Năm persona khác nhau trên nhiều forum sử dụng cùng alias; người bán PamDOORa thể hiện độ tin cậy kỹ thuật cao hơn đáng kể so với các alias khác, với code snippet và mô tả kỹ thuật phù hợp với các phương pháp PAM abuse đã biết
  • Hình thức bán: Source code (không phải binary đã compile), cho phép người mua tùy chỉnh và rebuild Caveat quan trọng: Phân tích của Flare — và bài viết này — dựa trên quảng cáo dark web và screenshot được chia sẻ, không phải review source code đầy đủ. Độ tin cậy và mức độ tinh vi thực tế của công cụ có thể khác với khả năng được tuyên bố.

Việc giảm giá đáng chú ý: có thể cho thấy công cụ có vấn đề về độ tin cậy mà những người mua tinh vi đã phát hiện, hoặc người bán đang cố mở rộng nhóm người mua bằng cách hạ thấp rào cản. Dù sao thì mức giá $900 có nghĩa là công cụ nằm trong tầm với của các threat actor cấp độ trung bình, không cần nguồn tài chính đáng kể.


MITRE ATT&CK Mapping

Technique ID Mô tả
Pluggable Authentication Modules T1556.003 Sửa đổi PAM để bypass xác thực và duy trì persistence
OS Credential Dumping T1003 Thu thập credentials trong PAM stack (mật khẩu plaintext)
Indicator Removal on Host T1070 Thao túng lastlog, btmp, utmp, wtmp
Valid Accounts T1078 Sử dụng credentials đã thu thập để tiếp tục truy cập
Hijack Execution Flow: Dynamic Linker T1574.006 Chèn custom .so module vào PAM library path
Impair Defenses T1562 Anti-debugging để cản trở phân tích

Detection

1. File Integrity Monitoring (Ưu tiên: Critical)

Biện pháp kiểm soát hiệu quả nhất. Monitor mọi thay đổi trên PAM configuration file và thư mục PAM module:

# Các đường dẫn critical cần monitor
/etc/pam.d/
/etc/pam.d/sshd
/etc/pam.d/common-auth
/lib/security/
/usr/lib/x86_64-linux-gnu/security/
/usr/lib/security/

auditd rule:

-w /etc/pam.d/ -p wa -k pam_config_change
-w /lib/security/ -p wa -k pam_module_change
-w /usr/lib/x86_64-linux-gnu/security/ -p wa -k pam_module_change

2. Sigma Rule — File .so mới trong thư mục PAM module

title: New PAM Module File Created
id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
status: experimental
description: Phát hiện tạo mới file .so trong thư mục PAM module, có thể chỉ ra việc cài đặt PAM backdoor
references:
  - https://flare.io/learn/resources/blog/pamdoora-new-linux-pam-based-backdoor-sale-dark-web
author: FPT IS SOC Team
date: 2026/05/19
logsource:
  product: linux
  service: auditd
detection:
  selection:
    type: 'PATH'
    name|endswith: '.so'
    name|contains:
      - '/lib/security/'
      - '/usr/lib/x86_64-linux-gnu/security/'
      - '/usr/lib/security/'
    syscall:
      - 'openat'
      - 'creat'
  filter_package_manager:
    exe:
      - '/usr/bin/dpkg'
      - '/usr/bin/rpm'
      - '/usr/bin/apt'
  condition: selection and not filter_package_manager
falsepositives:
  - Cập nhật package PAM hợp lệ qua package manager
  - Triển khai custom PAM module qua configuration management (Ansible, Puppet)
level: high
tags:
  - attack.persistence
  - attack.t1556.003

3. KQL — Microsoft Sentinel / Defender for Linux

Phát hiện sửa đổi PAM configuration:

// Phát hiện ghi file PAM config (qua Microsoft Defender for Linux / tích hợp auditd)
SecurityEvent
| where EventID == 4663
| where ObjectName has_any ("/etc/pam.d/sshd", "/etc/pam.d/common-auth", "/etc/pam.d/")
| where AccessMask in ("0x2", "0x6")  // Write access
| where SubjectUserName !in ("root")   // Điều chỉnh theo baseline
| project TimeGenerated, Computer, SubjectUserName, ObjectName, ProcessName
| sort by TimeGenerated desc

Hoặc qua Syslog (auditd forwarding đến Sentinel):

Syslog
| where SyslogMessage contains "pam_config_change"
    or SyslogMessage contains "pam_module_change"
| extend FilePath = extract(@'name="([^"]+)"', 1, SyslogMessage)
| extend Process = extract(@'exe="([^"]+)"', 1, SyslogMessage)
| where Process !in ("/usr/bin/dpkg", "/usr/bin/apt", "/usr/bin/rpm")
| project TimeGenerated, Computer, FilePath, Process, SyslogMessage
| sort by TimeGenerated desc

4. Lệnh kiểm tra thủ công

Chạy trên tất cả Linux server expose ra internet:

# 1. Liệt kê các file .so trong thư mục PAM và đối chiếu với package manager
dpkg -l | grep libpam  # hoặc: rpm -qa | grep pam
find /lib/security /usr/lib/x86_64-linux-gnu/security /usr/lib/security \
  -name "*.so" -newer /var/lib/dpkg/info -ls 2>/dev/null
 
# 2. Kiểm tra các dòng bất thường trong PAM config
grep -rE "(sufficient|pam_exec)" /etc/pam.d/ | grep -v "^#"
 
# 3. Xác minh checksum .so đối chiếu với package manager
dpkg -V libpam-modules 2>/dev/null | grep -v "^$"  # Debian/Ubuntu
rpm -Va pam 2>/dev/null | grep -v "^$"              # RHEL/CentOS
 
# 4. So sánh lastlog/wtmp với sshd log
last -F -n 20  # Từ wtmp
journalctl -u sshd --since "24 hours ago" | grep "Accepted"
# Sự chênh lệch giữa hai nguồn này cho thấy log tampering

5. Cross-validation SSH Log

PamDOORa xóa session của attacker khỏi wtmp/lastlog. Nếu journalctl -u sshd hiển thị các kết nối được chấp nhận không xuất hiện trong output của last, đó là dấu hiệu mạnh của log tampering.

# Đăng nhập được chấp nhận theo journalctl
journalctl -u sshd --since "7 days ago" \
  | grep "Accepted" | awk '{print $11}' | sort | uniq -c
 
# So sánh với wtmp
last -F | awk '{print $3}' | sort | uniq -c
 
# Chênh lệch đáng kể → điều tra ngay lập tức

Nhận định chuyên gia

PAM-based backdoor không phải danh mục mới — các công cụ PoC open-source đã tồn tại nhiều năm. Điều phân biệt PamDOORa là cách đóng gói: credential harvesting, anti-forensics, anti-debugging và builder pipeline trong một implant module hóa duy nhất. Sự kết hợp đó dịch chuyển nó từ "công cụ thử nghiệm" sang "công cụ mà operator coi là có thể triển khai được."

Khía cạnh credential harvesting đặc biệt đáng lo ngại. Phần lớn các cơ chế persistence hoạt động độc lập — chúng duy trì quyền truy cập nhưng không chủ động mở rộng dấu chân của attacker trong giai đoạn persistence. PamDOORa thụ động tích lũy credentials từ mọi user xác thực qua hệ thống bị xâm phạm. Trong môi trường mà nhiều admin dùng chung quyền SSH vào cùng một server, một host bị compromise trở thành điểm thu thập credentials cho toàn bộ đội admin.

Kịch bản IR team trở thành nạn nhân không phải giả thuyết. Incident responder SSH vào điều tra server "nghi ngờ bị xâm phạm" — trước khi PAM backdoor được xác định — sẽ trao cho attacker credentials hợp lệ đến các tài khoản của responder đó ở nơi khác. Jump server, SIEM, ticketing system và chính workstation của responder đều bị phơi bày. Điều này đặc biệt liên quan trong môi trường mà cùng SSH key hoặc mật khẩu được tái sử dụng trên nhiều hệ thống.

Về mặt phát hiện, điểm yếu của PAM backdoor là chúng cần ghi file để cài đặt — một file .so mới và config đã sửa. File integrity monitoring trên /etc/pam.d/ và các thư mục PAM module, đối chiếu với trạng thái package manager, là cơ chế phát hiện đáng tin cậy nếu thực sự được triển khai. Thách thức là phần lớn tổ chức monitor endpoint Windows quyết liệt và coi Linux server là thứ yếu — đặc biệt với standalone SSH server trong môi trường cloud nơi quan niệm là "cloud provider lo phần bảo mật."

Mức giá $900 đáng lưu ý. Ở mức giá đó, công cụ nằm trong tầm với của ransomware affiliate và threat actor cấp độ trung bình nhắm vào mục tiêu Đông Nam Á, không chỉ các nhóm nation-state. Các tổ chức vận hành hạ tầng Linux tại Việt Nam và khu vực — tổ chức tài chính, ISP, cloud provider, sản xuất — nên coi đây là mối đe dọa thực tế, không phải lý thuyết.


Khuyến nghị

Kiểm tra ngay cấu hình PAM và inventory module trên tất cả Linux server. Dùng lệnh dpkg -V libpam-modules / rpm -Va pam để xác định các file .so đã bị sửa đổi ngoài package manager. Bất kỳ file không giải thích được nào phải được xử lý như một finding mức độ high-severity.

Bật file integrity monitoring cho các đường dẫn PAM. Nếu đang chạy auditd, thêm các rule đã liệt kê. Nếu đang forward đến SIEM (Sentinel, Splunk, Elastic), đảm bảo auditd event từ /etc/pam.d//lib/security/ được capture và tạo alert. Đây là thay đổi cấu hình một lần giúp lấp vĩnh viễn khoảng trống visibility.

Tắt SSH password authentication — yêu cầu xác thực bằng key. Cơ chế magic-password của PamDOORa dựa vào password-based SSH. Áp dụng PubkeyAuthentication yesPasswordAuthentication no trong sshd_config nâng đáng kể chi phí khai thác.

Triển khai MFA cho SSH quyền cao. Công cụ như pam_google_authenticator hoặc tích hợp hardware token (YubiKey qua pam_u2f) thêm một yếu tố thứ hai mà mật khẩu bị đánh cắp đơn thuần không thể thỏa mãn.

Cross-validate SSH log trong mọi tình huống điều tra sự cố. Trước khi kết nối đến host nghi ngờ bị xâm phạm, so sánh output journalctl -u sshd với last -F. Sự chênh lệch là dấu hiệu cảnh báo đỏ. Nếu đang thực hiện IR trên host nghi ngờ PAM tampering, dùng truy cập out-of-band (console, IPMI/iDRAC, cloud serial console) thay vì SSH.

Monitor dark web để phát hiện bán công cụ PAM mới. Việc PamDOORa giảm giá cho thấy nó có thể được bán cho nhiều người mua. Các nền tảng threat exposure management theo dõi forum underground có thể cảnh báo sớm khi công cụ như thế này tiếp cận đến nhóm threat actor rộng hơn.


Tài liệu tham khảo

  1. Flare Research — PamDOORa: Analyzing a New Linux PAM-Based Backdoor for Sale on the Dark Web (07/05/2026): https://flare.io/learn/resources/blog/pamdoora-new-linux-pam-based-backdoor-sale-dark-web
  2. The Hacker News — New Linux PamDOORa Backdoor Uses PAM Modules to Steal SSH Credentials (05/2026): https://thehackernews.com/2026/05/new-linux-pamdoora-backdoor-uses-pam.html
  3. MITRE ATT&CK — T1556.003: Modify Authentication Process: Pluggable Authentication Modules: https://attack.mitre.org/techniques/T1556/003/
  4. MITRE ATT&CK — T1070: Indicator Removal: https://attack.mitre.org/techniques/T1070/
  5. Linux-PAM System Administrators' Guide: https://www.linux-pam.org/Linux-PAM-html/Linux-PAM_SAG.html

More from this blog

F

FPT IS Security

786 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.