목록INTERLUDE/System Hacking (40)
Information Security

Level 10 공유 메모리를 이용했다고 한다 공유메모리란? https://reakwon.tistory.com/96 [리눅스] 공유메모리 (Shared Memory) 개념과 예제(shmget, shmat, shmdt, shmctl) 공유메모리(Shared Memory) 프로세스에서 메모리는 해당 프로세스만이 사용하는게 일반적입니다. 메모리에는 명령어, 지역 변수, 동적 변수, 전역 변수와 같이 데이터가 존재하는데 그 프로세스만 reakwon.tistory.com 공유메모리는 프로세서 간의 공유하는 메모리라고 요약해 설명할 수 있다 위에 첨부한 링크로 공부하고 문제를 다시 살펴보자 1) 공유메모리에 접근해 level11 권한을 얻을 수 있는 코드를 넣은 c파일을 만들어 실행시켜주자 shmget을 이용해 인..

Level 9 #include #include #include main(){ char buf2[10]; char buf[10]; printf("It can be overflow : "); fgets(buf,40,stdin); if ( strncmp(buf2, "go", 2) == 0 ) { printf("Good Skill!\n"); setreuid( 3010, 3010 ); system("/bin/bash"); } } 해석해보자 buf2라는 배열 10칸 buf라는 배열 10칸 fgets를 입력받은 값을 buf에 저장해주는데 40이하여야 한다 setreuid(ruid, euid) ruid: Real User ID의 약자로 실제 본이느이 프로세스 id를 의미한다 euid: Effective User ID의..

Level 8 shadow 파일을 찾아 비밀번호를 알아내자 용량이 2700인 파일이라는 힌트를 어떻게 쓸 수 있을까? find 명령어를 써 보자 find / -size +[크기] -> [크기] 이상 크기의 파일을 검색한다 find / -size -[크기] -> [크기] 이하 크기의 파일을 검색한다 find / -size [크기] -> [크기] 크기의 파일을 검색한다 사이즈 단위를 살펴보자 b: 블록단위 c: 바이트 단위 k: 키로 바이트 단위 w: 2바이트 워드 m: 메가 바이트 g:기가 바이트 단위 크기가 2700바이트인 파일을 찾아보자 find /-size 2700c 여러가지의 파일들이 검색되었다 오류난 것들을 빼고 검색해보자 2>/dev/null을 추가하여 검색해보자 find / -size 2700..

Level 5 이어서 /usr/bin/level5를 계속 돌리면서 구해는 방법이 비효율적이고 실행이 잘 되지 않아서 다른 방법을 찾아보았다 /usr/bin/level5가 /tmp디렉토리에 level5.tmp라는 임시파일을 생성한다고 하였다 tmp에 어떤 파일이 있는지 살펴보자 tmp엔 파일이 존재하지 않았다. 그럼 우리가 직접 level5.tmp라는 파일을 만들어놓게 된다면 /usr/bin/level5가 그 파일에 내용을 덮어쓰기 하지 않을까? aa라는 내용을 담고 있는 level5.tmp를 만들었다 /usr/bin/levle5를 실행해보자 level6 비밀번호 획득 성공! Level 6 3번을 누르고 기다렸더니 Trying만 나오다가 꺼진다 1,2,3 다 똑같이 실행되고 ctrl+c를 해도 꺼지면서 창..

Level 4 백도어란? 인증되지 않은 사용자에 의해 컴퓨터의 기능이 무단으로 사용될 수 있도록 컴퓨터에 몰래 설치된 통신 연결 기능 백도어를 찾아서 없애줘야겠다! xinetd.d엔 무슨 내용이 들어 있는지 알아보자 backdoor 파일이 있네..? backdoor 파일을 읽어보자 service는 finger level5가 backdoor을 심은 것 같다 /home/level4/tmp/로 이동해보자 아무것도 없다 vim을 이용해 id와 비밀번호를 출력하는 c 코드를 작성해서 backdoor.c를 컴파일하고 실행해보자 vim에 들어가 i를 누르고 편집한 다음 esc를 눌러 명령어 모드로 전환 후 :wq로 저장하며 나가기 backdoor.c 컴파일하고 실행해주기 실행이 안 됨 finger는 user @hos..

Level 1 파일 내용을 확인하니 hint 파일, public_html, tmp 디렉토리가 들어 있었다. hint 파일의 내용을 살펴보자 먼저, setuid가 걸린 파일을 찾아보자 find / -perm -4000 /에서부터 SetUID가 걸린 모든 파일을 찾아라 너무 많이 나온 관계로 다시. 다른 것과 다르게 생긴 애 발견 /bin/ExecuteMe 찾아보니 저 녀석 빼곤 오류가 난 것이고 오류를 빼고 find 하려면 find / -perm -4000 -user level2 2>/dev/null 이 명령을 쓰면 된다. 2>/dev/null -> 여기서 2는 에러를 뜻하고 에러를 /dev/null은 휴지통이라는 뜻을 의미한다. 결국 에러를 휴지통에 넣으라는 뜻. 1>/dev/null -> 숫자 1은 정..

training 5 리눅스의 커널 버젼이 높을수록 속도도 더욱 빨라지고, 안전성도 높아진다. ** 커널을 이용한 해킹도 많이 있기 때문에 서버에 아이디가 있는 상태에서 정보를 캐낼 때 가장 먼저 이 커널 버젼을 봐야 한다 --> 지금 서버의 버젼은 레드헷 리눅스 9.0 --> 지금 서버 사양은 Inter(R) Celeron(R) CPU 2.40GHz training 6 cat 파일이름 test.txt 를 입력하게 되면 원래의 파일은 삭제된다. 리다이렉션을 두 번 써서 cat >> test.txt 를 입력하여 원래의 파일을 보존하고 새로운 내용을 추가할 수 있다. * 아무런 에러가 없었다면, 성공적으로 컴파일 된 것! 리눅스에서는 그 파일이 있는 절대경로를 모두 입력시켜줘야만 실행이 된다. ( 루트(/)부..