달력

4

« 2024/4 »

  • 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

'Nubelra Level08'에 해당되는 글 1

  1. 2017.07.16 [문제풀이] Nebula, Level05, Level06, Level07, Level08

※ LEVEL 05 


Q. Check the flag05 home directory. You are looking for weak directory permissions.


A. 해당 문제는 백업 디렉터리가 존재하고 ssh 접근 시 사용되는 정보들이 해당 디렉터리에 저장되어 있는 것을 알 수 있다. 여기서 문제는 이 정보들을 이용할 경우 패스워드를 직접 입력하지 않아도 로그인이 가능하다는 것이다. 


[그림 1] 백업 파일 확인


[그림 2] 해당 파일을 복사한 뒤 압축 해제


[그림 3] ssh 프로토콜을 활용하여 접속 시도


[그림 4] 로그인 성공 및 플래그 획득 


추가적으로 설명하자면 ssh 프로토콜은 원격 접속 대상(서버)의 특정 경로(기본 경로 : ~/.ssh 디렉토리 이하)에 위치한 authorized_keys 파일에 클라이언트의 공개키가 저장되어 있을 때 클라이언트가 서버로 ssh 접속 요청을 할 때 해당 키에 대응되는 개인키가 존재할 경우 로그인을 허용하게 된다. 


즉, 


Server A's Home Directory/.ssh/authroized_keys 

Client's Home Directory/.ssh/id_rsa 


두 개가 서로 대응되는 비대칭키 쌍이어야 한다는 의미이다.  

위와 같은 관계가 형성될 경우 패스워드 인증을 대신하여 비대칭키 인증으로  ssh 로그인이 가능하다. 





※ LEVEL 06


Q. The flag06 account credentials came from a legacy unix system.


A. 부적절한 암호(DES)를 적용한 패스워드를  passwd 파일에 저장한 상태이다. 크랙 툴(john the ripper)을 사용하면 저장된 암호문을 평문으로 크랙하여 확인할 수 있다. 


[그림 5] 패스워드 파일 확인


[그림 6] 추출된 패스워드 파일을 이용하여 크랙


[그림 7] 크랙된 패스워드 확인 


해당 패스워드를 가지고 flag06 계정으로 로그인을 하면 된다. 





※ LEVEL 07


Q. The flag07 user was writing their very first perl program that allowed them to ping hosts to see if they were reachable from the web server.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl
 
use CGI qw{param};
 
print "Content-type: text/html\n\n";
 
sub ping {
  $host = $_[0];
 
  print("<html><head><title>Ping results</title></head><body><pre>");
 
  @output = `ping -3 $host 2>&1`;
  foreach $line (@output) { print "$line"; }
 
  print("</pre></body></html>");
  
}
 
# check if Host set. if not, display normal page, etc
 
ping(param("Host"));
cs



A. 이 CGI 프로그램은 thttp 데몬을 이용하여 서비스하고 있으며 권한은 flag07로 동작하고 있다. 따라서 우리는 명령어 인젝션을 통해 플래그를 획득할 수 있겠다. 처음에 나는 해당 서비스가 동작을 안하고 있길래 잠시 혼란을 겪었으나 리부팅을 하니 서비스가 올라와 정상적으로 문제를 해결할 수 있었다. 


[그림 8] 설정파일 확인 (서비스 구동 권한)


[그림 9] 서비스 확인


[그림 10] 해당 CGI 요청 후 플래그 획득 




※ LEVEL 08


Q. World readable files strike again. Check what that user was up to, and use it to log into flag08 account.


A. 이는 인증 정보가 담긴 네트워크 패킷 파일이 모든 사용자에게 읽기 권한이 부여되어 있어 문제가 되는 문제(?)이다. 


[그림 11] 패킷 덤프 파일 확인


[그림 12] 와이어샤크로 분석 


저기에 "." 으로 표기되는 문자는 실제 DEL 키를 나타내는 헥사값 "0x7F"이므로 순서를 다시 조합하여 flag08 패스워드로 이용하면 된다. 


:
Posted by einai