Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
The Tattooist of Auschwitz (2024)

Se poate recupera numar de telefo...

Upgrade de la MacBook Pro M1 cu 8...

Ce tip de monitor am nevoie pt of...
 Resoftare camera supraveghere

Cu ce va aparati de cainii agresi...

Nu imi platiti coletul cu cardul ...

Exista vreun plan de terorizare p...
 Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone

Monede JO 2024

Suprasolicitare sistem electric
 CIV auto import

Mutare in MOZAMBIC - pareri, expe...

Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...
 

Jail/ limitare drepturi user

* * * * * 1 votes
  • Please log in to reply
No replies to this topic

#1
Takeyuuki

Takeyuuki

    Junior Member

  • Grup: Banned
  • Posts: 169
  • Înscris: 30.09.2014
Un user local poate fi jail-uit, sunt cateva metode prin care poti face asta astfel incat acel user nu are acces decat la un subset de aplicatii de pe masina respectiva.
1. O metoda consta in a recreea structura de directoare in /home/~user/ si setarea home-ului in /home/~user/home/~user/, la logarea pe masina respectiva se executa chroot /home/~user/ si pentru acel user /home/~user/ este egal cu /. Metoda este mai complicata deoarece trebuie copiate si binare plus bibliotecile necesare functionarii respectivelor binare. Avantajul este ca daca contul respectiv este compromis atacatorul nu are acces decat la setul de aplicatii la care are acces si userul. Metoda asta o alege cineva care stie foarte bine ce trebuie copiat in jail si ce nu si este consumatoare de timp si spatiu de stocare. Am incercat sa o aplic pentru a muta solutia apoi pe o masina la munca insa se pare ca "stimatii colegi" nu m-au considerat in stare sa o administrez asa ca au numit alta persoana sa se ocupe de acea masina iar eu am renuntat la solutia de la punctul asta ca nu mai avea rost sa o implementez.

2. Am gasit acum 2 - 3 ani un template scris in C++ pentru un shell custom, doritorii puteau sa il dezvolte dupa cerinte / suflet. Ideea de baza este ca se defineste un array care contine comenzile ce pot fi executate de acel "shell" si se verifica comenzile date de user cu valorile din array. In caz ca se face match pe o valoare atunci se executa comanda respectiva altfel daca nu se face match pe nici o valoare se returneaza mesaj de eroare. Sau se poate alege metoda inversa si in acel array se introduc comenzile la care userul nu are acces si in caz de match se returneaza o eroare.

3. Am si un script perl care face acelasi lucru ca programul de la punctul 2, intradevar nu este scris de mine ci de colegii de la departamentul de servicii insa m-am uitat pe codul script-ului si idea este aceiasi ca cea de mai sus.

Pentru ca la punctele 2 si 3 userul sa poata folosi si comenzi disponibile doar user-ului root, intreadevar trebuie facuta o modificare si in /etc/sudoers in care se foloseste fie Cmnd_Alias pentru a se defini un grup de comenzi sub un nume com un ca apoi grupul users sa primeasca drepturi de a rula acele comenzi cu drepturi extinse. In cazul metodelor 2 si 3 userul va da de exemplu comanda fping -f networks.txt si va obtine rezultatul scontat, comanda reala executata pe sistem fiind sudo fping -f networks.txt parametrul -f al lui fping putand fi folosit doar de catre userul root nu si de catre un user oarecare.

In cazul metodelor 2 si 3 modificarile necesare ce trebuie facute de root pe sistem sunt:
A) In /etc/passwd pentru user user1 se modifica linia:
user1:x:1000:1000:Test User:/home/user1:/bin/bash

In:
user1:x:1000:1000:Test User:/home/user1:/bin/customShell.pl

Sau:
user1:x:1000:1000:Test User:/home/user1:/home/user1/customShell.pl


B ) In /etc/sudoers se adauga:
%users ALL=NOEXEC: lista comenzi

Sau
user1 ALL=NOEXEC: lista comenzi

Sau folosind Cmnd_Alias:
Cmnd_Alias DEVICES = /bin/mount, /bin/umount
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/iptables
%users ALL=NOEXEC: NETWORKING
user1 ALL=NOEXEC: NETWORKING DEVICES



Array-ul de care am pomenit la punctele 2 si 3 va fi de forma:
cmdAlias = {"ping", "ifconfig", "route", "iptables", "mount", "umount", "exit", "logout", "quit", "help"};


user1 are acces doar la comenzile care apar in array-ul cmdAlias in rest nu mai are acces la nici o alta comanda.

Edited by Takeyuuki, 05 October 2014 - 15:07.


Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate