szegényember biztonsági házirendje

feladat

lumper (és esetleg további kis dba társai) guiból vagy cliből unprivileged userként indíthassák el és állíthassák le - az egyébként mysql-master-unpriv-ként futó - mysql-master nevű szolgáltatást

ez ugye security templatekkel 3 kattintás, de mi most szeretünk pancsolni

kiinduló állapot

W:\>whoami
baton\lumper

W:\>net user lumper | grep Local
Local Group Memberships      *Remote Desktop Users *Users

W:\>sc qc mysql-master | grep START_NAME
        SERVICE_START_NAME : .\mysql-master-unpriv

W:\>net user mysql-master-unpriv | grep Local
Local Group Memberships      *mysql-master-rx *mysql-master-w

lumper baja

W:\>sc start mysql-master
[SC] StartService: OpenService FAILED 5:

Access is denied.

pancs

W:\>sc sdshow mysql-master

D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)
  (A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)
  (A;;CCLCSWLOCRRC;;;IU)
  (A;;CCLCSWLOCRRC;;;SU)
  (A;;CR;;;AU)
  (A;;CCLCSWRPWPDTLOCRRC;;;PU)

W:\>runas /user:administrator cmd.exe
Enter the password for administrator:
Attempting to start cmd.exe as user "baton\administrator" ...

C:\WINDOWS\system32>whoami
baton\administrator

C:\WINDOWS\system32>net localgroup mysql-master-adm /add && 
			net localgroup mysql-master-adm lumper /add
The command completed successfully.

The command completed successfully.

C:\WINDOWS\system32>wmic group where name="mysql-master-adm" get sid
SID
S-1-5-21-...-1024

C:\WINDOWS\system32>sc sdset mysql-master D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)
                                            (A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)
                                            (A;;CCLCSWLOCRRC;;;IU)
                                            (A;;CCLCSWLOCRRC;;;SU)
                                            (A;;CR;;;AU)
                                            (A;;CCLCSWRPWPDTLOCRRC;;;PU)
                                            (A;;RPWP;;;S-1-5-21-...-1024)
[SC] SetServiceObjectSecurity SUCCESS

C:\WINDOWS\system32>exit

namost ugye miért RP+WP (ez az SDDL olvasmány böngészése után is kérdéses maradhat)

nekünk start és stop jog kell, a Service Security and Access Rights azt mondja, ez a SERVICE_START (0x0010) és a SERVICE_STOP (0x0020)

az ACE Strings-ben ugyan nem találunk ilyent, csak 'Directory service object access rights' listánk van, de az Access Rights and Access Masks és a Directory Services Access Rights érintésével előbb-utóbb eljutunk az ADS_RIGHTS_ENUM-ig, ahol 0x10 = *_READ_PROP (RP), és 0x20 = *_WRITE_PROP (WP)

megérkeztünk uticélunk végére, sikerült a tervünk, vége egy kalandnak

(ha lumpert csak most tettük a mysql-master-adm csoportba, akkor lumper _következő_ login sessionjében):

W:\>whoami
baton\lumper

W:\>sc start mysql-master | grep STATE
        STATE              : 4  RUNNING

W:\>sc stop mysql-master | grep STATE
        STATE              : 3  STOP_PENDING

W:\>sc query mysql-master | grep STATE
        STATE              : 1  STOPPED

Hozzászólások

security templateből összekattintgatva, egyedül az alapértelmezett 'Indítás, leállítás és felfüggesztés'-t engedélyezve az ace "RPWPDTRC"-t tartalmaz, ami a fenti módszerrel lookupolva ha jól tévedek a
SERVICE_START és
SERVICE_STOP mellett
SERVICE_PAUSE_CONTINUE (0x40) és
READ_CONTROL (0x20000; The right to read the information in the object's security descriptor, not including the information in the SACL)
jelentéssel bír ebben a kontextusban