분류 전체보기 309

[Exploit-Exercises: Nebula] level09

환경설정 : iso 파일을 이용하여 서버를 연 후, cygwin을 이용하여 ssh로 서버에 접속함. * level09 ID: level09 PW: level09 취약한 PHP 코드에 대한 C setuid wrapper가 있는데… 이 level을 통과하려면 level09계정으로 로그인해라. 이 level의 파일은 /home/flag09에서 찾을 수 있다. php 파일을 제공해주고 있다... /home/flag09로 이동해서 살펴보았다. flag09와 flag09.php가 보인다. flag09가 flag09의 계정으로 setuid가 걸린 파일처럼 보인다. file 명령으로 flag09 파일과 flag09.php 파일이 무슨 파일들인지 살펴보았다. flag09는 setuid가 걸린 실행파일이었고, flag09..

WAR GAME/Nebula 2020.07.06

스택 프레임 (Stack Frame)

출처 : 동빈나님 유튜브 youtu.be/TxWOaKE5w_s 유튜브를 보며 공부하던 중 두고두고 복습이 필요할 것 같아 정리를 하려고 한다.. 스택 프레임(Stack Frame)을 이해하기 위해서 간단한 예제를 만들어보겠다. main() 함수를 살펴보면 1과 2를 더한 값(sum(1,2))을 변수 c에 삽입하고 프로그램을 종료한다. main() 함수 실행 -> main() 함수에서 sum(1, 2) 실행 -> sum() 함수에서 1과 2를 더한 값 반환 -> main() 함수에서 변수 c에 그 값을 저장 -> 프로그램 종료 이제 c언어 코드파일인 sum.c를 어셈블리어인 sum.a로 변환해주도록 하겠다. 저번 시간에 스택영역에서는 다양한 취약점이 존재한다고 했다. gcc에서는 이 취약점들을 기본적으로 ..

System Hacking 2020.07.02

메모리 구조 (Memory Architecture)

출처 : 동빈나님 유튜브 youtu.be/TxWOaKE5w_s 유튜브를 보며 공부하던 중 두고두고 복습이 필요할 것 같아 정리를 하려고 한다.. 구체적인 하나의 프로그램이 실행된 형태인 프로세스는 어떠한 메모리 구조를 가지게 될 지 알아보자. 기본적으로 실제 메인 메모리에서 하나의 세그먼트는 아래의 구조를 가지고 있다. 세그먼트(segment) : 하나의 프로세스를 묶은 것 실행 시점에 실제 메모리의 어느 위치에 저장될 지 결정된다. Stack, Heap, BSS, Data, Text로 나뉘어져 있다. - Text : 실제로 우리가 작성한 소스코드가 들어간다. 프로그램을 실행하게 되면 여기에 있는 어셈블리 코드가 한 줄 한 줄 읽히면서 프로그램이 구동된다. - Data : 실제로 초기화가 이루어진 변수가..

System Hacking 2020.07.02

[Exploit-Exercises: Nebula] level08 풀이

환경설정 : iso 파일을 이용하여 서버를 연 후, kali linux을 이용하여 ssh로 서버에 접속함. kali linux version : 4.19.0-kali3-amd64 * level08 ID: level08 PW: level08 읽을 수 있는 파일이 다시 검색됨. 해당 사용자가 무엇을 하고 있는지 확인하고 이를 사용하여 flag08 계정에 로그인하십시오. 이 단계를 통과하려면 level08 계정으로 로그인해라. 이 수준의 파일은 /home/flag08에서 찾을 수 있다. 소스코드는 별도로 제공되어있지 않다. 일단 문제에서 이야기하는 /home/flag08로 가보았다. 저기에 capture.pcap 이라는 조금 낯선 파일이 보인다. 이거를 tcpdump 명령을 이용하여 열어보려고 했는데 알아보기..

WAR GAME/Nebula 2020.06.30

[Exploit-Exercises: Nebula] level07 풀이

환경설정 : iso 파일을 이용하여 서버를 연 후, cygwin을 이용하여 ssh로 서버에 접속함. * level07 ID: level07 PW: level07 flag07 계정 사용자는 웹 서버에서 호스트에 연결할 수 있는지 확인하기 위해 ping을 할 수 있는 첫 번째 perl 프로그램을 작성하고 있었다. 이 level을 해결하려면 level07 계정으로 로그인해라. 이 단계의 파일은 /home/flag07에서 찾을 수 있다. 일단 문제에서 계정 flag07 사용자가 ping 테스트를 하기 위해 첫 번째 perl 프로그램을 작성했다고 한다. ping 테스트 : 어떤 시스템과 네트워크 상에서 통신이 가능한지 안한지 여부를 테스트 하는 것. 단순하게 통신 가능 여부를 테스트 할 뿐이지만 테스트하는 장치가..

WAR GAME/Nebula 2020.06.29

[Exploit-Exercises: Nebula] level06 풀이

환경설정 : iso 파일을 이용하여 서버를 연 후, kali linux을 이용하여 ssh로 서버에 접속함. kali linux version : 4.19.0-kali3-amd64 * level06 ID: level06 PW: level06 flag06 계정 자격 증명은 legacy unix system(취약한 유닉스 시스템)에서 나왔다. 이 level을 수행하려면 level06 계정으로 로그인해라. 이 레벨의 파일은 /home/flag06에서 찾을 수 있다. 문제에서 제시한 /home/flag06 에 가보았다. 딱히 힌트가 없는 것 같다. 그래서 구글링을 해보았다... 잊고 있었는데 내 블로그에도 포스팅 한 내용 이었다. (이래서 복습이 중요하다 ㅠㅁㅠ) FTZ 트레이닝을 하면서 배운 내용이었다. jir..

WAR GAME/Nebula 2020.06.26

[Exploit-Exercises: Nebula] level05 풀이

환경설정 : iso 파일을 이용하여 서버를 연 후, cygwin을 이용하여 ssh로 서버에 접속함. * level05 ID: level05 PW: level05 flag05 홈 디렉토리를 확인해라. 취약한 디렉터리 사용 권한을 찾을 수 있을 것이다. 이 level를 통과하려면 level05 계정으로 로그인해라. 파일은 /home/flag05에서 찾을 수 있다. 소스 코드는 따로 주어져 있지 않다. 문제를 바로 풀어보도록 하겠다. 문제에서 주어진 /home/flag05 아래 backup 폴더가 수상해보였다. 안에 살펴보니 .tar 형식의 파일을 gzip으로 압축한 파일인 .tgz 파일이 보였다. tar 명령을 이용하여 압축을 풀려고 하니 권한이 없다고 떴다. 그래서 tmp 디렉터리로 복사를 시도했다. /t..

WAR GAME/Nebula 2020.06.20

파일 디스크립터 (File Descriptor)

시스템 문제를 풀다보면 파일 디스크립터, 일명 fd라는 것이 자주 등장한다. 난 이걸 오래전부터 봐왔지만 볼 때마다 헷갈려 했었다. 요즘 푸는 nebula 워게임 문제에 나타나 이참에 정리 해보려고 한다. * 파일 디스크립터 (File Descriptor) - 시스템으로부터 할당 받은 파일을 대표하는 0이 아닌 정수 값 - 프로세서 열린 파일의 목록을 관리하는 테이블의 인덱스 프로그램이 프로세스로 메모리에서 실행을 시작 할 때, 기본적으로 할당되는 파일 디스크립터들이 있다. 바로 표준 입력(Standard Input), 표준 출력(Standard Output), 표준 에러(Standard Error)이다. 이 들에게 각각 0, 1, 2 라는 정수가 할당된다. (미리 예약된 것) 이들은 프로그램이 시작되면..

System Hacking 2020.06.11

[Exploit-Exercises: Nebula] level04 풀이

환경설정 : iso 파일을 이용하여 서버를 연 후, cygwin을 이용하여 ssh로 서버에 접속함. * level04 ID: level04 PW: level04 이 level에서는 토큰 파일을 읽어야 한다. 하지만 주어진 코드는 읽을 수 있는 파일을 제한한다.(읽지 못하게 한다.) 이것을 우회할 수 있는 방법을 찾아라 :) 이 level을 수행하려면 level04 계정으로 로그인해라. 이 level의 파일은 /home/flag04에서 찾을 수 있다. 문제를 푸는 방법 : 다음 레벨의 패스워드를 얻는 것이 아니라 flag03의 권한을 획득하여 getflag를 실행시키는 것 일단 문제를 풀어보도록 하겠다. flag04 파일을 보면 level04인 우리가 읽고 실행시킬 수 있다. 일단 내 입맛(?)대로 실행시..

WAR GAME/Nebula 2020.06.11

[Exploit-Exercises: Nebula] level03 풀이

환경설정 : iso 파일을 이용하여 서버를 연 후, cygwin을 이용하여 ssh로 서버에 접속함. * level03 ID: level03 PW: level03 flag03의 홈 디렉토리를 확인해라. 여기엔 2분마다 도는 crontab이 있다. 이 레벨을 통과하려면 level03 계정으로 로그인해라. 이 레벨의 파일은 /home/flag03에서 찾을 수 있다. 문제를 푸는 방법 : 다음 레벨의 패스워드를 얻는 것이 아니라 flag03의 권한을 획득하여 getflag를 실행시키는 것 리눅스에서는 프로그램이 일정한 주기로 cron 데몬으로부터 실행된다. crontab : cron 설정파일인 cron table 이번에는 문제에 코드가 없다. 바로 문제를 풀어보도록 하겠다. 일단 문제에 제시되어있는 /home/..

WAR GAME/Nebula 2020.05.21