시스템
-
[Toddler's Bottle] 5번.[passcode]$ 시스템 해킹 $/pwnable.kr 2018. 12. 2. 11:09
이번에 풀어볼 문제는 pwnable.kr의 5번문제인 [passcode] 문제 입니다.주요한 passcode.c 파일이 있네요 한번 확인해 보겠습니다.코드를 살펴 보면 main() -> welcome() -> login() 이 순서대로 들어가는 것을 알 수 있습니다.welcome()에서 이름을 입력 받은 뒤에 login()에서 passcode1,passcode2를 입력 받아서 if문으로 비교 해서 맞으면 /bin/cat flag를 실행 시키는 방식으로 이루어진 코드 인 것 같습니다. 한번 코드를 실행시켜서 338150와 13371337을 넣어보겠습니다.Segmentation fault 즉, 세그먼테이션 오류가 나네요 그 이유를 보니 scanf에서 &가 없습니다.&변수 형태가 변수가 들어있는 주소이고, 이..
-
[Toddler's Bottle] 3번.[bof]$ 시스템 해킹 $/pwnable.kr 2018. 12. 1. 23:17
이번에 풀어볼 문제는 pwnable.kr의 3번문제인 [bof] 문제 입니다.문제를 보니까 download가 있으니 한번 다운 받아 보겠습니다.URL 이 있기 때문에 wget 을 사용했습니다. 파일을 한번 확인 해 보겠습니다 음.. 일반폴더 하나와 c언어로 작성된 코드가 하나 있네요 내용을 확인해보면 func함수로 들어가서 값을 출력하는거 같은데..Key 값과 0xcafebabe와 일치해야 /bin/sh에 있는 flag가 나오는 코드인거 같네요 Key값은 func에 있는 0xdeadbeef 인거 같은데… 실행을 한번 해보겠습니다. 실행권한을 부여해주고 실행을 해보니 값을 입력 받으려고 하는거 같네요 저기에있는 0xcafebabe를 입력해보겠습니다. 안나오는 걸 보니 gdb를 이용해서 한번 리버싱 해보겠습..
-
[Toddler's Bottle] 4번.[flag]$ 시스템 해킹 $/pwnable.kr 2018. 11. 30. 22:33
이번시간에 풀어볼 문제는 www.pwnable.kr 의 4번째 문제 [flag]입니다.키워드를 한번 뽑아보면 packed // reversing // need binary 리버싱을 이용해야 하는 문제인거 같네요 일단 저 url을 이용해서 다운로드를 받아줍니다.그리고 파일이 무엇인지 확인합니다.실행했을때 힌트를 받을수도 있기 때문에 실행파일로 바꿔 봅시다.실행파일로 바뀌었다는 걸 알수 잇습니다. 실행을 한번 해보겠습니다. malloc() (동적할당) 과 strcpy 그리고 flag를 그곳에 둘것이니 가져가라 라는 뜻같네요 파일 분석을 한번 해보면..그냥 ELF형식의 64비트라는것을 알수 있네요. 32비트가 아니라는것은 알수 있었습니다. 그러면 이제 gdb을 이용해서 리버싱을 한번 해보겠습니다.gdb로 들어..
-
[Toddler's Bottle] 2번.[collision]$ 시스템 해킹 $/pwnable.kr 2018. 11. 29. 17:00
이번에 풀어볼 문제는 pwnable.kr의 2번문제인 [collision] 문제 입니다. (* 사정상 이번에는 cmd를 이용해서 문제를 풀겠습니다. )MD5 해시 라는 말이 보이네요 ssh를 통해서 한번 문제로 들어가 보겠습니다. ls -l 명령어를 통해 무슨 파일이 있는지 확인해 보겠습니다. col, col.c , flag가 있네요 flag는 접근 불가능 하고 col.c를 읽어 봐야 할거 같네요.Hash code 가 16진수로 되어있네요. 대충 코드를 살펴 보니 argc는 2보다 커 야하고 길이는 20이어야 합니다. Hashcode 16진수를 10진수로 변환해 보겠습니다. 0x21DD09EC -> 568134124 Check_password함수를 보면 입력 받은 p의 주소 값을 포인터형 변수 ip에 집..
-
[Toddler's Bottle] 1번.[fd]$ 시스템 해킹 $/pwnable.kr 2018. 11. 29. 11:24
처음으로 www.pwnable.kr 1번문제를 보면 다음과 같습니다.맨 아래줄에 있는 ssh fd@pwnable.kr -p2222 를 이용해서 문제에 접속하기입력 후에 guest를 비번으로 입력ls 명령어를 이용해서 무슨 파일이 있는지 확인합니다.fd.c 파일과 fd파일 flag파일이 있네요. 그러면 fd.c파일의 내용을 확인 해보겠습니다.fd을 실행할때 argc라는 변수를 같이 입력해야 실행이 되는 파일입니다.argc는 2 이상이어야 하고 int fd = atoi(argc[1])을 보면 값이 0x1234 라는것을 알수 있습니다. 0x1234는 16진수 값이기 때문에 10진수로 바꿔줘야 합니다. 0x1234 = 4660입니다.엔터 하면 입력을 계속 받으려고합니다. 다시 코드를 보면 if(!strcmp("..
-
어셈블리어(Assembly)의 기초와 8086 프로세서Basic knowledge/시스템(Pwn) 2018. 11. 27. 07:00
어셈블리를 하기 위한 기초 지식 1. 하드웨어1) CPU - 컴퓨터에서 구성 단위 중 기억, 연산, 제어의 3대 기능을 종합하는 장치인 Central Processing Unit(중앙 처리 장치)의 줄임말- 메모리에 있는 내용을 읽고, 쓰며 데이터를 메모리와 각 레지스터로 보내는 역할- 하나의 프로세서는 12~14개의 레지스터가 있고, CPU의 연산, 논리 장치는 숫자와 기호에 관한 연산자를 인식- 클럭 속도, IPC, 코어 수에 따라서 CPU의 성능이 결정됩니다. 2) RAM- 사용자가 자유롭게 내용을 읽고 쓰고 지울수 있는 기억장치 이며, ROM과 함께 컴퓨터의 주기억 장치 역할- 각 셀들은 숫자 값을 포함하고 주소가 정해지는 형식이며 프로그램에서는 메모리라고 불리는 것들은 RAM을 의미 2. 808..
-
시스템 호출(System Call)Basic knowledge/시스템(Pwn) 2018. 11. 26. 16:51
시스템 호출 이란? - 시스템 호출은 대부분 시스템 콜이라고 자주 쓰임- 시스템 콜은 응용프로그램에서 운영체제에게 어떠한 기능을 수행해 달라고 하는 하나의 수단- 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근 하기 위한 인터페이스 시스템 호출의 기능 1. 사용자 모드에 있는 응용 프로그램이 커널의 기능을 사용할 수 있도록 한다.2. 시스템 호출을 하면 사용자 모드에서 커널 모드로 바뀐다,3. 커널에서 시스템 호출을 처리하면 커널 모드에서 사용자 모드로 돌아가 작업을 계속한다. 시스템 호출의 유형 1. 프로세서 제어(process Control)2. 파일 조작(file manipulation)3. 장치 관리(Device Management)4. 정보 유지(Inform..