- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- suspend
- androidstudio
- 진짜학습지
- PR
- jlpt
- Kotlin
- errorhandling
- CustomTab
- Android
- rxjava
- 학습지
- 일본어기초
- ai
- blog
- posting
- 진짜일본어
- webflux
- 안드로이드
- 책리뷰
- 책추천
- 코틀린
- pullrequest
- 일본어문법
- GIT
- 진짜학습지후기
- n3문법
- coroutine
- 인공지능
- github
- KotlinInAction
목록~2019/NEBULA (7)
코딩하는 개굴이
LEVEL 08 level08의 About을 봅시다. 친절한 필자가 영어를 무서워하는 당신을 위해 해석을 해드리죱!(으쓱) 누구나 읽을 수 있는 파일들이 다시 공격하였습니다….응? 뭔소리죠이게……음…. 이럴 때는 먼저 하핳 실행해보는 거죠 뭐 항상 하던 것 처럼 /home/flag08 위치에 뭐가 있는지 확인 해 보았더니 capture.pcap라는 것이 있네요! pcap란, 패킷캡쳐의 줄임말로써, 네트워크 트래픽을 캡쳐하기 위한 API로 구성이 되어있다. 이 pcap를 읽기 위해선 캡쳐된 패킷을 파일로 저장하거나, 저장된 패킷을 일고, 분석/편집할 수 있는 프로그램이 필요한데, 대표적인 와이어샤크를 이용할 겁니다. --------------------------------------------------..
LEVEL 05 About을 살펴 봅시다! flag05의 홈 디렉토리를 잘 보자. 당신은 디렉토리 권한의 약점을 찾는 것입니다. 라고 하는군여. flag05 디렉토리를 살펴 보니까, 뭔가 수상해 보이는 .backup디렉토리가 있읍죠 들어가 보니까, 더 수상해 보이는 압축파일이 있네요 우선, 그 수상한 파일을 tmp 폴더에 복사해 넣고, tmp 폴더를 확인하면 잘 복사된 것을 알 수 있습죠 level05의 디렉토리를 만들고, 거기에 압축한 것을 해제 할게요 그리고 확인 해 봤더니 ssh파일들이 있는 것을 알 수 있네여 ssh가 뭔지 몰랐던 누군가를 위해 설명을 해드리자면, (절대 누군지는 말 못해여 글쓴이라고 말못합니다) ssh 는 secure shell의 약자로써, 암호화된 네트워크 프로토콜로, 암호화 ..
level04 우선 이 문제를 들어가기 전에 살짝 예습도 복습도 아닌 무언가를 알고 가보자! 리눅스에서 링크의 종류는 심볼릭 링크, 하드 링크가 있는데, 심볼릭 링크는 어떤 파일을 가리키고 있는 파일을 뜻해서, 예를 들어, ln -s first.txt second.txt 라는 명령을 이용하게 된다면, second.txt라는 파일을 만드는데, 이 파일은 내용은 아무것도 없고, first.txt 파일을 가리키는 역할을 할 뿐으로, second.txt파일을 호출하면, first.txt 파일로 연결해 주는 역할을 해! 하드 링크는 하드에 저장되어 있는 자료에 다양한 이름을 부여하는 거야. ln first.txt second.txt 라는 명령어를 이용하게 된다면, second.txt 파일이 생성되는데, 심볼릭 링..
LEVEL 02 SOLUTION: level02의 코드에는 buffer 변수에 “/bin/echo %s is cool”, getenv(“USER”)을 넣은 후 buffer를 시스템 함수로 실행시키는 내용이 들어있습니다. 즉, 우리가 공락할 부분이 환경변수 USER 가 되는 것 입니다. USER 환경변수에는 우리가 로그인한 계정명이 저장되어 있으므로, 즉, buffer에는 “/bin/echo level02 is cool”가 저장되어 있고, 이를 실행하면 될 것 같습니다. flag02를 실행 해 보니, level02 is cool 이 출력되는 것을 확인할 수 있습니다. 그렇다면, 환경변수 USER을 수정하면 다른 명령어도 system으로 실행 할 수 있을 것 같다는 생각이 들게 됩니다. 즉, /bin/bas..
SOLUTION: ABOUT 설명에서, 위의 프로그램은 임의의 프로그램을 실행시키는 취약점이 존재한다고 합니다. 위 프로그램의 목적은(사실 네뷸라의 모든 목적은....ㅎㅎ) 위 프로그램의 취약한 부분을 이용해서 flag01의 쉘을 띄우는 것인데, 이 프로그램은 SUID, GUID를 얻어와 얻어온 SUID, GUID로 설정한 후, system() 함수를 실행시킵니다. 일반적으로, 프로그램이 system 함수를 이용해서 어떤 행위를 수행 할 때 취약점이 발생할 가능성이 크므로, system 함수에 인자로 들어가 있는 명령을 보려고 프로그램 flag01을 실행시켜 보면, and now what? 이라고 잘 출력하므로, echo명령이 정상적으로 실행 되는 것을 알 수 있습니다. 그래서 이를 이용하기 위해서, 환..
LEVEL00 (우왕 영어다 영어가 꼬불꼬불...그러나 걱정 말아욧! 제가 해석 해 줄테닛!!>ㅂ ~/00result.txt 2> /dev/null {} \; 라는 find 명령어를 사용합니다. (find: 파일, 디렉토리를 검색하는 명령어/ -perm -4000: 최소 4000(=Set UID)가 포함된 권한 / -user flag00: 계정 이름이 flag00/ -exec ls -al 1> ~/00result.txt 2> /dev/null {} \; : 검색결과 리스트를 00result.txt에 기록하고, 오류메시지를 버린다) 이후, 00result.txt파일을 확인하면, 두개의 파일이 의심스러운 것을 알 수 있습니다. 그 해당 파일을 실행한 후, getflag 명령을 입력하면, level00을 클리..
NEBULA https://exploit-exercises.com/nebula/ 네뷸라는 유저에게 일반적인 혹은 일반적이지 않은 리눅스의 취약점을 익히도록 돕습니다. 이를 마치면, 리눅스 시스템에 대한 로컬 공격에 대한 안목이 어느정도 생기게 될 것이며, 일부 원격 공격에 대한 안목 또한 생기게 될 것입니다. TIP: -GETTING ROOT: root계정이 필요한 경우, ID와 비밀번호를 nebula로 로그인 한 후, "sudo -s" 명령을 입력합니다. (패스워드는 "nebula"입니다) 그러면 루트 권한을 얻을 수 있습니다.-N레벨을 실행시, ID: levelN / PW: levelN