분류 전체보기 105

[FTZ] level 11

level11 (password : what!@#$?) level11에 접속을 해서 'ls -l' 를 통해 'attackme' 라는 setuid인 파일과 'hint' 파일이 존재하는 것을 확인하였다. 'cat' 명령어를 통해 'hint' 파일 내용을 확인하였다. 더보기 ※ 'hint' 파일 해석 #include #include int main( int argc, char *argv[] ) { char str[256]; (1) setreuid( 3092, 3092 ); (2) strcpy( str, argv[1] ); (3) printf( str ); (4) } (1) str 배열의 크기를 256 바이트로 지정 (2) level12의 사용자 ID (3) 사용자가 입력한 값을 'strcpy' 를 통해 'st..

Systemhacking/FTZ 2021.05.17

[FTZ] level10

level 10 (password : interesting to hack!) 'ls'을 통해 'hint '파일이 존재하는 것을 확인한 후, 'cat' 명령어를 통해 내용을 확인하였다. '공유 메모리'를 이용하였고, 공유 메모리 식별 번호인 'key_t = 7530' 라는 정보를 통해 level11의 권한을 얻는 문제이다. 즉, '7530' 위치에 접근하는 소스코드를 작성해야 한다. '공유 메모리'는 프로세스 간에 공유해서 쓰는 메모리를 의미한다. '공유 메모리'는 공유 메모리를 사용할 프로세서 중 하나가 조건을 설정해 공유 메모리를 만들고, 그 외의 프로세서가 필요한 정보를 이용해 공유 메모리를 같이 사용하는 것이다. 더보기 ※ 공유 메모리 설정할 때 쓰이는 함수 1. shmget() - 공유 메모리를 ..

Systemhacking/FTZ 2021.05.17

[FTZ] level9

level 9 (password : apple) 'ls'을 통해 'hint' 파일이 존재하는 것을 확인한 후, 'cat'명령어를 통해 내용을 확인하였다. '/user/bin'에 위치한 'bof' 파일의 소스코드가 출력되었고, 이 소스를 이용하여 level10의 권한을 얻는 문제이다. 여기서 나오는 'bof'는 시스템 해킹에서 가장 기초가 되는 취약점으로 버퍼가 넘쳤음을 의미하는 'buffer over flow' 의 준말이다. 공격자는 지정한 입력값 외에 원하는 값을 버퍼의 크기보다 많이 넣으면 공격자가 원하는 명령을 실행할 수 있다. 먼저 'bof' 소스를 해석해보았다. #include #include #include main(){ char buf2[10]; (1) char buf[10]; printf(..

Systemhacking/FTZ 2021.05.06

[윈도우즈보안과 악성코드기초] 기초정적분석 2

기초 정적분석 part02 PE 파일헤더와 섹션 .text : CPU가 실행하는 명령어인 실행 가능한 코드 포함 대부분의 코딩과 관련된 명령어가 포함 .rdata : 임포트와 익스포트 정보 포함, 읽기 전용 데이터 저장 : .idata, .edata 포함 : 임포트, 익스포트 정보 저장 외부 dll 파일, api 함수들에 대한 정보 포함 더보기 .rdata .idata : 존재 시 임포트 함수 정보를 저장하고 있으며, 존재하지 않는다면 .rdata 섹션 내의 임포트 함수 정보에 저장됨 .edata : 존재 시 익스포트 함수 정보를 저장하고 있으며, 존재하지 않는다면 .rdata 섹션 내의 익스포트 함수 정보에 저장됨 .pdata : 64비트 실행 파일에만 존재하며, 예외 처리 정보를 저장함 .data :..