54 lines
3.4 KiB
Markdown

# Linux Post-Exploitation
{{#include ../../banners/hacktricks-training.md}}
## Sniffing Logon Passwords with PAM
Tuwekeze moduli ya PAM ili kurekodi kila nenosiri ambalo mtumiaji anatumia kuingia. Ikiwa hujui ni nini PAM angalia:
{{#ref}}
pam-pluggable-authentication-modules.md
{{#endref}}
**Kwa maelezo zaidi angalia [post ya asili](https://embracethered.com/blog/posts/2022/post-exploit-pam-ssh-password-grabbing/)**. Hii ni muhtasari tu:
**Muhtasari wa Mbinu:**
Moduli za Uthibitishaji Zinazoweza Kuunganishwa (PAM) zinatoa kubadilika katika usimamizi wa uthibitishaji kwenye mifumo ya Unix. Zinaweza kuongeza usalama kwa kubadilisha michakato ya kuingia lakini pia zinaweza kuleta hatari ikiwa zitakosewa. Muhtasari huu unaelezea mbinu ya kukamata taarifa za kuingia kwa kutumia PAM, pamoja na mikakati ya kupunguza hatari.
**Kukamata Taarifa:**
- Skripti ya bash inayoitwa `toomanysecrets.sh` imeandaliwa ili kurekodi majaribio ya kuingia, ikikamata tarehe, jina la mtumiaji (`$PAM_USER`), nenosiri (kupitia stdin), na IP ya mwenyeji wa mbali (`$PAM_RHOST`) kwenye `/var/log/toomanysecrets.log`.
- Skripti hiyo imefanywa kuwa executable na kuunganishwa kwenye usanidi wa PAM (`common-auth`) kwa kutumia moduli ya `pam_exec.so` yenye chaguzi za kufanya kazi kimya na kufichua tokeni ya uthibitishaji kwa skripti.
- Njia hii inaonyesha jinsi mwenyeji wa Linux aliyeathirika anavyoweza kutumika kukamata taarifa kwa siri.
```bash
#!/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
```
### Backdooring PAM
**Kwa maelezo zaidi angalia [post ya asili](https://infosecwriteups.com/creating-a-backdoor-in-pam-in-5-line-of-code-e23e99579cd9)**. Hii ni muhtasari tu:
Moduli ya Uthibitishaji inayoweza Kuunganishwa (PAM) ni mfumo unaotumika chini ya Linux kwa uthibitishaji wa mtumiaji. Inafanya kazi kwa dhana tatu kuu: **jina la mtumiaji**, **nenosiri**, na **huduma**. Faili za usanidi kwa kila huduma ziko katika saraka ya `/etc/pam.d/`, ambapo maktaba za pamoja hushughulikia uthibitishaji.
**Lengo**: Badilisha PAM ili kuruhusu uthibitishaji kwa nenosiri maalum, kupita nenosiri halisi la mtumiaji. Hii inazingatia hasa maktaba ya pamoja `pam_unix.so` inayotumiwa na faili ya `common-auth`, ambayo inajumuishwa na huduma karibu zote kwa ajili ya uthibitishaji wa nenosiri.
### Hatua za Kubadilisha `pam_unix.so`:
1. **Pata Mwelekeo wa Uthibitishaji** katika faili ya `common-auth`:
- Mstari unaohusika na kuangalia nenosiri la mtumiaji unaita `pam_unix.so`.
2. **Badilisha Msimbo wa Chanzo**:
- Ongeza taarifa ya masharti katika faili ya chanzo `pam_unix_auth.c` inayoruhusu ufikiaji ikiwa nenosiri lililotolewa linatumika, vinginevyo, inaendelea na mchakato wa kawaida wa uthibitishaji.
3. **Recompile na Badilisha** maktaba iliyobadilishwa `pam_unix.so` katika saraka inayofaa.
4. **Kujaribu**:
- Ufikiaji unaruhusiwa katika huduma mbalimbali (kuingia, ssh, sudo, su, screensaver) kwa nenosiri lililotolewa, wakati michakato ya kawaida ya uthibitishaji inabaki bila kuathiriwa.
> [!NOTE]
> Unaweza kujiandaa mchakato huu kwa [https://github.com/zephrax/linux-pam-backdoor](https://github.com/zephrax/linux-pam-backdoor)
{{#include ../../banners/hacktricks-training.md}}