다른 사용자의 파일을 보려면 어떻게 해야 하나요? 우분투 16.04 [닫음]

다른 사용자의 파일을 보려면 어떻게 해야 하나요? 우분투 16.04 [닫음]

루트인 경우 동일한 로컬 컴퓨터에서 다른 사용자의 파일을 볼 수 있습니까? 그렇다면 어떻게 해야 할까요?

답변1

$ sudo su 이제 실제로 루트가 될 수 있습니다. 그리고 /(root)로 이동하여 /home 폴더를 살펴보면 해당 머신의 모든 사용자를 찾을 수 있습니다.

답변2

기본적으로 루트에서 다른 사용자 계정으로 전환하는 것은 안전하지 않습니다.

루트로서 원하는 디렉토리를 직접 탐색하는 것은 사용자를 사용하거나 전환하는 것 su보다 훨씬 안전합니다.sudo자동으로TIOCSTI ioctl을 통해 루트의 tty에 명령을 푸시하고 루트로 명령을 실행하십시오.

예를 들어, TIOCSTI ioctl을 이용하는 바이너리가 있고 hacksu침입자가 손상된 사용자 계정 [user]의 .bashrc를 수정하여 셸이 시작될 때 바이너리를 실행한다고 가정합니다.

$ tail -n3 /home/[user]/.bashrc
echo hi
/opt/hacksu -- $'echo "hello world" >> /tmp/file1\nfg'
echo bye
$ _

그런 다음 su손상된 사용자에 대해 루트가 사용되면 손상된 사용자는 루트로 임의의 명령을 실행할 수 있습니다.

root@host:~# su - [user]

.bashrc 검색이 자동으로 수행되므로 다음 8줄은 사용자 상호 작용 없이 터미널에 자체적으로 인쇄됩니다.

echo "hello world" >> /tmp/file
1
fg
[1]+  Stopped                 su - [user]
root@host:~# echo "hello world" >> /tmp/file1
root@host:~# fg
su - [user]
bye

이제 루트는 문제가 발생했음을 깨닫고 [사용자] 쉘을 닫아 [사용자]의 .bashrc가 수행한 작업을 확인합니다.

[user]@host:~$ logout
root@host:~# ll /tmp/file1
-rw-r--r-- 1 root root 12 Apr 15 00:47 /tmp/file1  # owned by root (!)
root@host:~# cat -v /tmp/file1
hello world
root@host:~# # oops ..

위의 시나리오에서 [user]는 임의의 파일에 루트로 작성했습니다. 실제로 실행된 명령은 루트가 할 수 있는 모든 작업을 수행할 수 있습니다. 예 hacksu를 들어 /etc/shadow.

POC의 소스 바이너리 에 대한 소스 코드는 hacksu다음에서 찾을 수 있습니다.https://www.halfdog.net/Security/2012/TtyPushbackPrivilegeEscalation/. 손상된 사용자 계정의 위협을 해결하지 않은 한 루트로 다른 사용자로 전환하지 마십시오.

답변3

다음과 같이 할 수도 있습니다.

# su user

이 사용자를 루트로 로그인하고 해당 파일을 봅니다.

관련 정보