IT 보안 수업을 위해 학생들에게 권한 상승을 보여주고 싶습니다. 그렇게하기 위해, 나는 2009 년 8 월부터 exploit/linux/local
Metasploit Framework 의 목록을 살펴 보았습니다 exploit/linux/local/sock_sendpage
.
나는 32 비트 우분투 서버 9.04 (와 VM을 설정 http://old-releases.ubuntu.com/releases/9.04/ubuntu-9.04-server-amd64.iso 2009 년 4 월에서) uname -r
저를 제공합니다 2.6.28-11-generic
. 익스플로잇의 설명에 따르면
2001 년 5 월 이후의 모든 Linux 2.4 / 2.6 버전은 영향을받는 것으로 생각됩니다. 2.4.4 이하 2.4.37.4; 2.6.0 이하 2.6.30.4
그래서 내가 설정 한 Ubuntu 서버가 데모에 적합해야합니다. 그러나 나는 그것을 작동시키지 못했습니다.
서버에 (일반) 사용자를 추가했으며 SSH 액세스가 작동합니다. Metasploit Framework 내에서을 사용하여 SSH 세션을 만들 수 있습니다 auxiliary/scanner/ssh/ssh_login
. 그러나 익스플로잇을 실행하면
[*] Writing exploit executable to /tmp/mlcpzP6t (4069 bytes)
[*] Exploit completed, but no session was created.
DEBUG_EXPLOIT
true로 설정하더라도 더 이상 정보를 얻지 못합니다 . /tmp
Metasploit SSH 세션에서 writabe입니다.
$ sessions -c "touch /tmp/test.txt"
[*] Running 'touch /tmp/test.txt' on shell session 1 ([redacted])
$ sessions -c "ls -l /tmp"
[*] Running 'ls -l /tmp' on shell session 1 ([redacted])
total 0
-rw-r--r-- 1 [redacted] [redacted] 0 2016-03-28 09:44 test.txt
또한 WriteableDir
서버에서 사용자의 홈 디렉토리로 설정 을 시도했지만 변경하지 않았습니다. 내가 여기서 무엇을 놓치고 있습니까? 이 버전의 Ubuntu 서버 (고의적으로 업데이트되지 않았습니다!)는 취약하지 않습니까?
답변
9.04 릴리스 는 2010 년 10 월 23 일까지 지원 되었습니다. 발견 한 취약점은 2009 년 8 월 에 보고되었습니다 . 릴리스가 아직 최신 상태이고 지원되었으므로 ISO가 패치되었고 다운로드 한 버전이 최신 버전 인 것이 합리적입니다. 더 이상 취약하지 않습니다.
또한, 당신은 그것이 취약하지 않다는 것을 아주 잘 보여주었습니다. 결국, 익스플로잇을 시도했지만 실패한 것처럼 보입니다.
왜 새로운 익스플로잇을 시도하지 않습니까? 같은 뭔가 CVE-2013년에서 2094년까지 한다 또한 우분투에 영향을 예를 들어.
답변
이것은 귀하의 특정 질문에 대한 답변이 아니며, 학생들에게 더 많은 비공개 선택권을 제공합니다 …
‘nix에서 priv esc로 이어질 수있는 다음 두 가지 관리자 누락 구성을 고려할 수도 있습니다. ….
-
루트 / 루트 그룹 (
find / -uid 0 -perm -4000 -type f 2>/dev/null
및find / -uid 0 -perm -2000 -type f 2>/dev/null
)이 소유 한 suid 및 guid 바이너리 는 권한이 낮은 사용자가이를 변경할 수 있도록 세계 쓰기 가능 여부를 확인합니다. 그들이 존재하는 폴더는 낮은 개인 사용자가 쓸 수 있습니다-라이브러리 경로 삽입이 가능합니다. 그들이 사용하는 라이브러리에 대한 어떤 – 변경 될 수 것과 같습니다 어떤의 값을 확인DT_RPATH
하고DT_RUNPATH
다음 명령 중 하나를 사용하여 바이너리 내에서 ELF 헤더를 :objdump -x
…readelf -a
…scanelf
(PaX에서)elfdump
(일요일부터)readelf -a binary | grep PATH
-
sudoers
결함-
NOPASSWD
-사용자가 화면 잠금을 잊어 버린 경우 로컬 공격자가이 액세스 권한을 사용하여 운영 체제 내에서 권한을 에스컬레이션 할 수 있습니다. -
Sudoers에 누락 된 실행 파일-파일에 일부 실행
/etc/sudoers
파일이 없습니다. 실행 파일이 생성되면 sudo를 통해 root로 실행하여 권한 에스컬레이션이 가능합니다. -
고아 Sudoers 항목-
/etc/sudoers
파일에 파일에 구성된 해당 계정이없는 고아 항목이 여러 개있을 수 있습니다/etc/passwd
. 사용자가 분리 된 이름 중 하나를 사용하여 작성된 경우 권한을 전체 루트 액세스로 에스컬레이션 할 수있는 방법을 사용자에게 제공합니다. -
일부 프로그램은 sudo와 유사 하거나
vi
사용:e
하거나 액세스 Ctrl o 하는:w
데 사용 해서는 안됩니다/etc/shadow
. -
sudoers 파일에 사용 된 잘못된 명령 / 잘못된 명령-종종
httpd
sudoers에서 볼 수 있으므로 sudo 액세스 권한을 가진 낮은 개인 사용자로 시도하여 해당 명령 만 실행하십시오 (sudo -l
또는sudo -ll
사용자가 할 수있는 일을 보여sudo /usr/bin/httpd -t /etc/shadow
주십시오). 오류를 살펴보십시오. -
sudoers에 언급 된 명령 및 파일의 perms는 약합니다-root가 소유 한 suid 및 guid 비트 바이너리에 대한 이전 단락을 참조하십시오
-