![Ubuntu 9.04의 취약점 시연](https://linux55.com/image/86406/Ubuntu%209.04%EC%9D%98%20%EC%B7%A8%EC%95%BD%EC%A0%90%20%EC%8B%9C%EC%97%B0.png)
IT 보안 과정의 경우 학생들에게 권한 상승을 보여주고 싶습니다. 이를 위해 나는 exploit/linux/local
Metasploit 프레임워크의 목록을 살펴보고 무엇보다도 다음을 발견했습니다.exploit/linux/local/sock_sendpage
2009년 8월부터 시작.
32비트 Ubuntu Server 9.04(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 프레임워크 내에서는 auxiliary/scanner/ssh/ssh_login
.
[*] Writing exploit executable to /tmp/mlcpzP6t (4069 bytes)
[*] Exploit completed, but no session was created.
true로 설정하더라도 DEBUG_EXPLOIT
추가 정보를 얻을 수 없습니다. /tmp
Metasploit SSH 세션 내에서도 쓰기 가능합니다.
$ 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 Server(의도적으로 업데이트하지 않습니다!)가 공격에 취약하지 않습니까?
답변1
버전 9.04지원됨2010년 10월 23일 현재. 발견한 취약점은 다음과 같습니다.보고된2009년 8월. 버전이 당시에 여전히 최신이고 지원되고 ISO가 패치되었으며 더 이상 취약하지 않은 버전을 다운로드하고 있기 때문에 이는 합리적으로 보입니다.
그리고, 깨지지 않는다는 걸 잘 보여주신 것 같습니다. 결국, 당신은 익스플로잇을 시도했지만 실패한 것 같습니다.
새로운 공격을 시도해 보는 것은 어떨까요? 그것은 마치CVE-2013-2094어느 것이우분투에도 영향을 미칩니다, 예를 들어.
답변2
이것은 귀하의 특정 질문에 대답하지 않고 오히려 학생들에게 보여줄 수 있는 더 많은 priv esc 옵션을 제공합니다...
'nix에서 priv esc를 유발할 수 있는 다음 두 가지 관리자 구성 오류를 고려할 수도 있습니다(priv esc를 허용하는 'nix 상자를 잘못 구성하는 다른 방법이 많이 있으므로 이를 짜증나게 생각하십시오).
find / -uid 0 -perm -4000 -type f 2>/dev/null
루트/루트 그룹(및)이 소유한 suid 및 GUID 바이너리를 사용하여find / -uid 0 -perm -2000 -type f 2>/dev/null
권한이 낮은 사용자가 해당 폴더를 변경할 수 있도록 허용하는지 확인합니다. 권한이 낮은 사용자가 쓸 수 있는 라이브러리의 경우 경로 삽입 . 그들이 사용하는 라이브러리는 어떻습니까? 변경할 수 있는 경우:DT_RPATH
다음 명령 중 하나를 사용하여 바이너리의 any 및 ELF 헤더 값을 확인하십시오.DT_RUNPATH
objdump -x
...readelf -a
...scanelf
(PaX에서)elfdump
(더 선을 통해)readelf -a binary | grep PATH
sudoers
결함NOPASSWD
- 사용자가 화면 잠금을 잊어버린 경우 로컬 공격자는 이 액세스 권한을 사용하여 운영 체제에서 자신의 권한을 상승시킬 수 있습니다.Sudoers에 실행 파일 누락 -
/etc/sudoers
파일의 일부 실행 파일이 존재하지 않습니다. 실행 파일이 생성되면 sudo를 통해 루트로 실행할 수 있으며, 이를 통해 권한 상승이 허용됩니다.고아 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에 언급된 명령 및 파일에 대한 파일 권한이 약합니다. 루트가 소유한 suid 및 guid 비트 바이너리에 대한 이전 단락을 참조하세요.