no image
2019년 가트너가 발표한 "10대 기술 트렌드" !
안녕하세요 :D 가트너라는 곳에서 매년 10대 기술 트렌드를 발표를 합니다! 공식 사이트 및 영상은 요기 있어요! ↓ https://www.gartner.com/smarterwithgartner/gartner-top-10-strategic-technology-trends-for-2019/ Gartner Top 10 Strategic Technology Trends for 2019 Blockchain, quantum computing, augmented analytics and artificial intelligence will drive disruption and new business models. www.gartner.com https://youtu.be/nRTRyfIDp4k 다들 보셨죠 ! 이제 어..
2019.07.13
no image
FTZ - Level 4
일단 우선 hint를 보도록 합시다! "누군가 /etc/xinetd.d/에 백도어를 심어놓았다.!" 힌트를 통해서 xinetd 에 관련된 문제임을 알 수 있습니다. 그러므로 xinetd 데몬의 개념을 알아야 풀 수 있습니다. 먼저 리눅스 시스템의 부팅 순서는 다음과 같습니다. 1. 부트 로더(Grub) 실행 2. 커널 이미지 메모리 로딩 3. /etc/inittab 파일에 있는 내용 중 선택된 모드로 init 프로세스 실행 4. xinetd 데몬에 의한 네트워크 데몬 가동 5. 부팅 완료 여기서 부팅이 마무리되는 과정에서 네트워크 데몬을 가동하는 것이 xinetd 슈퍼 데몬입니다. # 네트워크 데몬이란 ? FTP, Telnet, SSH, Apach 등과 같은 네트워크 통신을 위한 데몬을 의미한다. # x..
2019.07.13
no image
FTZ - Level 3
level3번 문제이다. 먼저 Hint를 알아보자. autodig의 소스코드와 "동시에 여러 명령어를 사용하려면?" "문자열 형태로 명령어를 전달하려면?" 이다. 일단 먼저 소스코드를 분석해보면 strcpy에 dig이라는 것을 보고 dig 명령어에 관련된 것이라고 생각할 수 있다. dig은 도메인 서버의 IP주소를 확인하는 프로그램으로 nslookup과 유사하다. 그러나 nslookup과의 차이는 dig은 기본적으로 유닉스 계열 운영체제에 탑재되어 있다는 것이다. 또한 dig 사용 시 "@쿼리할 DNS 서버의 IP" 옵션을 입력해야 한다. (반드시는 아님, 옵션을 생략하더라도 사용 가능) 이제 소스 코드를 분석하면 흐름은 다음과 같다. 1. "dig @"라는 문자열을 cmd 배열에 넣는다. 2. "dig..
2019.07.12
no image
FTZ - Level 2
먼저 Hint를 확인해보자 ! "텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데..." Hint 에서 대략적으로 알 수 있는 것은 쉘의 명령을 실행 시킨다는 것에서 쉘을 통한 권한 상승 문제라는 것을 유추해볼 수 있다. level3으로 올라가야하기 때문에 level3이 소유자이고 SetUID가 걸려있는 파일이 있을 수 있으니 찾아보자! 찾는 명령어는 level1에서 사용했던 동일한 방법을 사용한다. /usr/bin 폴더에 editor이라는 프로그램이 있다. 확인하면 SetUID가 걸려있고 소유자는 level3임을 확인할 수 있다. 다시 한번 더 문제를 보자. "텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데..." 편집을 하는 중에 명령을 실행 시키는 것이니 vi를 통해 실행 시켜보면 다음..
2019.07.11
no image
FTZ - Level 1
이제 문제로 들어가 봅시다 ! level1의 아이디와 비밀번호는 당연히 뭔지 아시죠 ^^? ID : level1 PW : level1 먼저 Hint를 한번 열어 봅시다! "level 2 권한에 setuid가 걸린 파일을 찾는다." 그럼 setuid가 뭘까? SetUID는 소유자의 권한을 통하여 파일을 실행시키는 것으로써 유닉스 또는 리눅스에 소유자 권한이 s로 설정된 것이다. 예를 들어 소유자가 root이면 그 파일을 실행하는 사람이 누가 되었든지 파일이 실행되는 프로세스는 실행되는 동안 파일 소유자인 root 권한으로 실행된다. 출처 : [네이버 지식백과] 프로세스 권한과 SetUID 계속해서 SetUID가 걸린 파일을 찾는 것이니 find 명령어를 통해서 찾아보도록하자! find [경로] [Optio..
2019.07.11
no image
FTZ 서버 구축하기
보안 공부를 하시는 왠만한 분들은 다들 아시는 아주 유명한 Hackerschool에서 만든 FTZ 서버 구축을 알아보겠습니다! 먼저 이 파일을 다운 받아주세요! https://drive.google.com/open?id=1ub98uNRmXrsQr08XfVoKdEK7ybcV_30o 위의 파일을 다운 받으시고 보시면 Text 파일을 보시면서 구축하시면 되구요! 지금부터 설명 들어갈게요! 먼저 VMware나 Virtual Box를 통해서 vmx 파일을 열어줘야 합니다. 저는 VMware 환경에서 실행을 했습니다 ^_^ 그리고 실행을 시키고 간단한 설정을 해주어야 합니다! 다음 그림과 같이 해주세요! 그리고 다음과 같이 ISO 파일을 삽입 시켜 줍니다! 그리고 실행하시면 쨘! 하고 됩니다 ^^ 다들 문제도 푸시..
2019.07.11

안녕하세요 :D

 가트너라는 곳에서 매년 10대 기술 트렌드를 발표를 합니다!

 

공식 사이트 및 영상은 요기 있어요! ↓


https://www.gartner.com/smarterwithgartner/gartner-top-10-strategic-technology-trends-for-2019/

 

Gartner Top 10 Strategic Technology Trends for 2019

Blockchain, quantum computing, augmented analytics and artificial intelligence will drive disruption and new business models.

www.gartner.com

https://youtu.be/nRTRyfIDp4k


다들 보셨죠 !

 

이제 어떤 것들이 있는지 하나씩 알아보도록 합시다 !

 

2019년 Top 10 전략적 기술 트렌드를 Intelligent, Digital, Mesh 로 분류를 할 수 있어요 :D


Intelligent

AI가 거의 모든 기존 기술에 존재하고 완전히 새로운 범주를 만드는 방법

Digital

몰입형 세상을 만들기 위해 디지털 세계와 물리적 세계를 융합

Mesh

사람, 기업, 장치, 컨텐츠 및 서비스를 확장하는 사이의 연결


각각의 기술들이 어디에 속하는지 표로 한 눈에 볼 수 있어요!

 

그림 1     Top 10 Strategic Technology Trends for 2019

  • 사물 자동화(Autonomous things)
  • 증강 분석(Augmented analytics)
  • AI 개발(AI-driven development)
  • 디지털 트윈(Digital twins)
  • 앳지 컴퓨팅(Empowered edge)
  • 몰입적 기술(Immersive technologies)
  • 블록체인(Blockchain)
  • 스마트 공간(Smart spaces)
  • 디지털 윤리 및 개인정보보호(Digital ethics and privacy)
  • 양자 컴퓨팅(Quantum computing)

컴퓨터 기술이 급속도로 발전함에 따라 정말 많은 변화가 일어나고 새로운 기술들이 생겨나고 있어요!

IT 종사자분들 뿐만 아니라 다른 분야의 종사자 분들도 한번쯤은 알아보는게 좋다고 생각이 드네요 :D

 

그럼 이만 포스팅을 마치겠습니다 :D

FTZ - Level 4

HelloMG
|2019. 7. 13. 15:21

일단 우선 hint를 보도록 합시다!

그림 1     hint

"누군가 /etc/xinetd.d/에 백도어를 심어놓았다.!"

힌트를 통해서 xinetd 에 관련된 문제임을 알 수 있습니다. 그러므로 xinetd 데몬의 개념을 알아야 풀 수 있습니다.

먼저 리눅스 시스템의 부팅 순서는 다음과 같습니다.

 

1. 부트 로더(Grub) 실행

2. 커널 이미지 메모리 로딩

3. /etc/inittab 파일에 있는 내용 중 선택된 모드로 init 프로세스 실행

4. xinetd 데몬에 의한 네트워크 데몬 가동

5. 부팅 완료

 

여기서 부팅이 마무리되는 과정에서 네트워크 데몬을 가동하는 것이 xinetd 슈퍼 데몬입니다.

# 네트워크 데몬이란 ? FTP, Telnet, SSH, Apach 등과 같은 네트워크 통신을 위한 데몬을 의미한다.

# xinetd 슈퍼 데몬이란? 부모 프로세스와 자식 프로세스의 관계에서 부모 프로세스에 해당하는 데몬이다.

 

그럼 xinetd 데몬의 설정 구조를 알아보도록 합시다 :D

그림 2     xinetd 글로벌 설정

instances : xinetd 데몬에 의해 실행되는 네트워크 서비스 데몬의 최대 동시 접속 허용 

log_type : 시스템 로그 타입 설정

log_on_success : 접속 성공 시 남기는 로그

log_on_failure : 접속 실패 시 남기는 로그

cps = 25 30 : 동시 접속이 25개가 되면 30초동안 비활성화

 

그럼 이제 힌트에서 제공한 위치에서 backdoor 파일을 찾아보도록 합시다 !

그림 3     /etc/xinetd.d/backdoor

이름만 보아도 backdoor이네요 : )

이 디렉터리에는 네트워크 서비스 데몬이 모여 있는 곳입니다. 그래서 backdoor도 서비스라는 것을 짐작 할 수 있죠 :D

이제 backdoor 서비스 설정을 확인해보도록 합시다!

그림 4     backdoor

backdoor의 항목들은 다음과 같습니다.

 

disable : 데몬을 활성 또는 비활성

flags = REUSE : 서비스 포트가 사용중인 경우 해당 포트의 재사용을 허가

socket_type = stream : TCP/IP 프로토콜을 선택

wait : 서비스가 연결된 상태에서 다른요청이 들어 오면 바로 응답할 것인지 유무( no : 응답 , yes : 비응답)

user : 해당 데몬의 권한으로 실행

server : xinetd에 의해 실행될 데몬 파일

log_one_failure : 정상적인 기동에 실패한 경우 로그에 기록

 

여기서 중요하게 보아야할 점은 level5 계정의 권한으로 finger라는 서비스를 이용해

/home/level4/tmp/backdoor 파일이 실행된다는 것입니다 :D

그럼 이 파일 찾아가 보도록 합시다 !

그림 5     /home/level4/tmp

찾아가보니 backdoor 파일이 보이지 않는군요. finger 서비스를 이용해서 문제를 풀어야 할 것 같습니다.

서비스를 이용하기 위해서 포트를 먼저 확인해 봅시다 !

그림 6     finger service port

finger 서비스가 사용하는 포트는 79/tcp임을 알 수 있고 이를 이용해서 공격하면 될 것습니다 :D

그리고 활용하기 위해서는 포트가 열려있는지를 확인 해야 합니다.

확인하기 위해 다음과 같은 명령을 사용해봅시다.

그림 7     netstat -na

포트가 열려있는 것이 확인이 되었으니 해당 경로에 backdoor파일을 만들어주면 될 거예요!

그림 8     backdoor code

컴파일 후 실행 시키면 level5의 권한으로 실행되는 것을 알 수 있습니다.

그림 9     실행 결과

이를 통해 알 수 있는 것은 소스 코드의 "id"를 "my-pass"로 바꾸면 level5의 비밀번호를 알 수 있겠죠 :D

 

좀 더 가서 셸을 따기 위해 "/bin/bash"를 바꿔서 실행시키면 과연 셸을 얻을 수 있을까?

바꿔서 실행을 시켜보면 실행이 되지 않는 것을 확인 할 수 있을 거예요!

그럼 셸은 어떻게 따낼 수 있을까?

 

nc 프로그램을 이용해서 따낼 수 있는데 이것은 직접해보는 것을 추천드립니다 !

그럼 다음 문제에서 만나도록 합시다 :D

'CTF > FTZ' 카테고리의 다른 글

FTZ - Level 6  (0) 2019.07.16
FTZ - Level 5  (0) 2019.07.14
FTZ - Level 3  (0) 2019.07.12
FTZ - Level 2  (0) 2019.07.11
FTZ - Level 1  (0) 2019.07.11

FTZ - Level 3

HelloMG
|2019. 7. 12. 12:53

level3번 문제이다.

먼저 Hint를 알아보자.

그림 1     Hint

autodig의 소스코드

"동시에 여러 명령어를 사용하려면?"

"문자열 형태로 명령어를 전달하려면?"

이다.

 

일단 먼저 소스코드를 분석해보면 strcpy에 dig이라는 것을 보고 dig 명령어에 관련된 것이라고 생각할 수 있다.

dig은 도메인 서버의 IP주소를 확인하는 프로그램으로 nslookup과 유사하다.

그러나 nslookup과의 차이는 dig은 기본적으로 유닉스 계열 운영체제에 탑재되어 있다는 것이다.

또한 dig 사용 시 "@쿼리할 DNS 서버의 IP" 옵션을 입력해야 한다.

(반드시는 아님, 옵션을 생략하더라도 사용 가능)

 

이제 소스 코드를 분석하면 흐름은 다음과 같다.

1. "dig @"라는 문자열을 cmd 배열에 넣는다.

2. "dig @" 문자열 뒤에 autodig 명령어 다음에 입력된 문자열을 붙인다.

3. "dig @입력받은 문자열" 뒤에 " version.bind chaos txt"라는 문자열을 붙인다.

 

이제 파일을 찾아보도록하자.

그림 2     Find 명령

그리고 실행을 시켜보면 다음과 같이 잘 실행되는 것을 알 수 있다.

그림 3     autodig 실행

다시 힌트와 소스코드를 보면 system() 함수에 여러 개의 명령을 실행할 수 있게

문자열을 전달하는 해야 한다는 것을 이해할 수 있다.

 

그럼 dig이라는 명령어를 통해 여러개의 명령어가 실행되는지 부터 확인을 해보자.

그림 4     여러 개 명령 수행

세미콜론(;)을 이용하여 명령어를 여러개 동시 실행하였고 id라는 명령어가 실행됨을 알 수있다.

그럼 문자열은 " " 로 묶어주면 되는 일이니 문제를 해결할 수 있을 방법을 떠올릴 수 있다.

그림 5     문제 해결

level 4의 SetUID가 걸려 있기 때문에 my-pass 명령어를 통해 Password가 출력되는 것을 볼 수 있다.

 

또 다른 방식으로 이러한 일이 가능하다면 백도어를 심을 수도 있다는 것을 생각 할 수 있다.

먼저 코딩을 해보자.

그림 6     소소코드

그리고 gcc 명령에 -o 옵션을 이용하여 컴파일 시킨다.

여기서 주목해야할 점은 level4 권한으로 컴파일 하기 때문에 level 4 의 소유자로 프로그램이 만들어진다는 것이다.

그림 7     backdoor 컴파일

그리고 SetUID 권한을 설정한 후 실행을 시키면 level4의 권한을 획득 할 수 있다.

그림 8     backdoor 실행

 

'CTF > FTZ' 카테고리의 다른 글

FTZ - Level 5  (0) 2019.07.14
FTZ - Level 4  (0) 2019.07.13
FTZ - Level 2  (0) 2019.07.11
FTZ - Level 1  (0) 2019.07.11
FTZ 서버 구축하기  (0) 2019.07.11

FTZ - Level 2

HelloMG
|2019. 7. 11. 19:28

먼저 Hint를 확인해보자 !

그림 1     Hint

"텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데..."

Hint 에서 대략적으로 알 수 있는 것은 쉘의 명령을 실행 시킨다는 것에서 쉘을 통한

권한 상승 문제라는 것을 유추해볼 수 있다.

level3으로 올라가야하기 때문에 level3이 소유자이고 SetUID가 걸려있는 파일이 있을 수 있으니 찾아보자!

찾는 명령어는 level1에서 사용했던 동일한 방법을 사용한다.

그림 2     Find 명령

/usr/bin 폴더에 editor이라는 프로그램이 있다.

확인하면 SetUID가 걸려있고 소유자는 level3임을 확인할 수 있다.

그림 3     editor

다시 한번 더 문제를 보자.

"텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데..."

편집을 하는 중에 명령을 실행 시키는 것이니 vi를 통해 실행 시켜보면 다음과 같은 화면이 나온다.

그림 4     vi editor

vi를 통해 이러한 화면이 나올 때

":! 명령어"

를 사용을 하면 SetUID가 걸려 있기 때문에 소유자 권한으로 명령어를 실행 시킬 수 있다.

그래서 다음과 같이 사용하면 level 3 권한을 획득 할 수 있다.

그림 5     vi 취약점
그림 6     권한 획득

 

'CTF > FTZ' 카테고리의 다른 글

FTZ - Level 5  (0) 2019.07.14
FTZ - Level 4  (0) 2019.07.13
FTZ - Level 3  (0) 2019.07.12
FTZ - Level 1  (0) 2019.07.11
FTZ 서버 구축하기  (0) 2019.07.11

FTZ - Level 1

HelloMG
|2019. 7. 11. 15:25

이제 문제로 들어가 봅시다 !

level1의 아이디와 비밀번호는 당연히 뭔지 아시죠 ^^?

ID : level1

PW : level1

 

먼저 Hint를 한번 열어 봅시다!

그림 1     Hint

"level 2 권한에 setuid가 걸린 파일을 찾는다."

 

그럼 setuid가 뭘까?


SetUID는 소유자의 권한을 통하여 파일을 실행시키는 것으로써

유닉스 또는 리눅스에 소유자 권한이 s로 설정된 것이다.

예를 들어 소유자가 root이면 그 파일을 실행하는 사람이 누가 되었든지

파일이 실행되는 프로세스는 실행되는 동안 파일 소유자인 root 권한으로 실행된다.

그림 2     SetUID

출처 : [네이버 지식백과] 프로세스 권한과 SetUID


계속해서 SetUID가 걸린 파일을 찾는 것이니 find 명령어를 통해서 찾아보도록하자!

find [경로] [Option]

"어떤 옵션을 주고 찾을까?" 라는 생각을 하게 된다.

Hint의 단서를 통해 알 수 있는 것은 파일의 소유자 이름, SetUID 이므로

소유자 이름 및 권한으로 검색하면 효율적일 것 같다!

그림 3     Find 명령

명령어에 보면 " ~ 2> /dev/null" 는 왜 넣었을까?

"2" 는 표준에러를 뜻한다.(0 : 표준입력, 1: 표준출력)

">"는 파일로 보낸다는 것을 의미한다.

"/dev/null"는 null 장치이다(뭔가 설명하기가 애매하다..).

즉, 에러가 뜨는 것들을 /dev/null로 보내어 출력을 시키지 않는 것을 의미하며

여기서 사용하는 이유는 " 2> /dev/null"을 빼고 입력 시 알 수 있는데

권한 불가로 상당히 많은 에러가 출력이 되기 때문에 보기 편하게 하기 위하여 사용한 것이다.

그럼 문제 파일을 찾았으니 실행을 시켜보도록 하자!

그림 4     ExecuteMe

확인하여 보니 소유자가 level2 이고 "rws-r-x---" 소유자 권한이 걸려 있음을 확인했다.

그럼 실행을 시켜 보도록 하자!

그림 5     ExecuteMe 실행

my-pass와 chmod를 제외한 한가지 명령어를 실행시켜준다고 한다.

그리고 아이디를 보니 level2로 되어 있음을 볼 수 있고

SetUID 권한으로 인해 level2의 권한이 설정되어 있으니 /bin/bash 명령을 통해

level2 권한을 탈취할 수 있을 것이다!

그림 6     권한 탈취

이것으로 level2로 권한 상승이 되었다!

비밀번호는 my-pass를 통해 확인하면 됩니다^^! 뿅!

'CTF > FTZ' 카테고리의 다른 글

FTZ - Level 5  (0) 2019.07.14
FTZ - Level 4  (0) 2019.07.13
FTZ - Level 3  (0) 2019.07.12
FTZ - Level 2  (0) 2019.07.11
FTZ 서버 구축하기  (0) 2019.07.11

FTZ 서버 구축하기

HelloMG
|2019. 7. 11. 11:01

보안 공부를 하시는 왠만한 분들은 다들 아시는

아주 유명한 Hackerschool에서 만든 

FTZ 서버 구축을 알아보겠습니다!

먼저 이 파일을 다운 받아주세요!

 


https://drive.google.com/open?id=1ub98uNRmXrsQr08XfVoKdEK7ybcV_30o


 

위의 파일을 다운 받으시고 보시면 Text 파일을 보시면서 구축하시면 되구요!

지금부터 설명 들어갈게요!

 

먼저 VMware나 Virtual Box를 통해서 vmx 파일을 열어줘야 합니다.

저는 VMware 환경에서 실행을 했습니다 ^_^

그림 1     VMware 열기

그리고 실행을 시키고 간단한 설정을 해주어야 합니다!

다음 그림과 같이 해주세요!

그림 2     Settings

그리고 다음과 같이 ISO 파일을 삽입 시켜 줍니다!

그림 3     ISO 삽입

그리고 실행하시면 쨘! 하고 됩니다 ^^

다들 문제도 푸시고 공부도 열심히 하시길 바랄게요!

'CTF > FTZ' 카테고리의 다른 글

FTZ - Level 5  (0) 2019.07.14
FTZ - Level 4  (0) 2019.07.13
FTZ - Level 3  (0) 2019.07.12
FTZ - Level 2  (0) 2019.07.11
FTZ - Level 1  (0) 2019.07.11