문제를 보면 Frequnecy analysis 라고 쓰여있고, 뜻은 빈도 분석이다.

빈도 분석이란 암호 해독법의 일종으로 평문과 암호문에 사용되는 문자나 문자열의 빈도를 단서로 이용하는 암호 해독법이다.

밑에 있는 문자열을 을 해독하라는 것 같다.


빈도 분석하는 툴이 있는 사이트 https://quipqiup.com/ 에서 해독하면

kim yuna is a south korean figure skater she is the olympic champion in ladies singles the world champion the four continents champion a three time grand prix final champion the world junior champion the junior grand prix final champion and a four time south korean national champion kim is the first south korean figure skater to win a medal at an isu junior or senior grand prix event is u championship and the olympic games she is the first female skater to win the olympic games the world championships the four continents championships and the grand prix finals he is one of the most highly recognized athletes and media figures in south korea as of april this years he is ranked second in the world by the international skating union she is the current record holder for ladies in the short program the free skating and the combined total under the isu judging systems he is also the first female skater to surpass the two hud read point mark under the isu judging systems he has never been placed off the podium in her entire career

이런 값을 얻을 수 있다.


따라서 key 값은 kimyuna 이다.


'Security & Hacking > Wargame' 카테고리의 다른 글

[SuNiNaTaS] Forensic 29  (0) 2019.02.09
[SuNiNaTaS] Forensic 28  (0) 2019.01.31
[SuNiNaTaS] Forensic 21  (0) 2019.01.24
[SuNiNaTaS] Forensic 19  (0) 2019.01.22
[SuNiNaTaS] Forensic 18  (0) 2019.01.19

1
2
3
4
5
6
my_str = "python string indexing"
print(my_str[0], my_str[10])
# 출력값 : p i
 
print(my_str[-5])
# 출력값 : e
cs

문자열 인덱싱은 원하는 문자를 골라 내는 것이다.

컴퓨터는 0부터 순서를 세기 때문에 순서는 0부터 시작한다.

인덱싱 값에 음수를 사용하는 경우 뒤에서 부터 순서를 센다.


1
2
3
4
5
6
7
8
9
10
my_str = "python string slicing"
 
print(my_str[7:13])
# 출력값 : srting
print(my_str[9:])
# 출력값 : ring slicing
print(my_str[:10])
# 출력값 : python str
print(my_str[:])
# 출력값 : python string slicing
cs

슬라이싱은 문자열을 원하는 범위 만큼 조각 내는 것이다.

" : "(클론)으로 범위를 지정한다.

'시작 인덱스'만 지정해준 경우에는 지정된 부분부터 '끝' 까지 슬라이싱 되고, 

'끝 인덱스'만 지정해준 경우에는 '처음'부터 지정한 '끝 인덱스' 까지 슬라이싱 된다.

인덱스를 지정하지 않았을 경우에는 문자열 전체가 출력된다.

'Language > Python' 카테고리의 다른 글

튜플(Tuple)  (0) 2019.01.31
리스트 관련 함수  (0) 2019.01.31
리스트(List)  (0) 2019.01.30
포매팅  (0) 2019.01.30
변수끼리 값 교체  (0) 2019.01.27

다른 언어에서는 대채적으로 변수끼리 값을 교체 할 때 

1
2
3
4
5
6
7
= 10
= 5
 
tmp = a
= b
= tmp
 
cs

이런식으로 tmp라는 임의의 변수를 하나 생성하여 그곳에 임시 저장 후 값을 교체 해야 한다.


그러나 파이썬에서는 임의의 변수를 생성하지 않고 기존 두개의 변수 만으로도 값을 교체할 수 있다.

1
2
3
4
= 10
= 5
 
a,b = b,a
cs


'Language > Python' 카테고리의 다른 글

튜플(Tuple)  (0) 2019.01.31
리스트 관련 함수  (0) 2019.01.31
리스트(List)  (0) 2019.01.30
포매팅  (0) 2019.01.30
문자열 인덱싱 / 슬라이싱  (0) 2019.01.27

사진에 가려져 있는 Key값을 알아내는 문제인 것 같다.

사진을 다운로드 받아 용량을 확인해 보면 일반적인 이미지 파일보다 큰 용량을 가지고 있는 것을 확인 할 수 있다.\


WinHex로 이미지 파일을 열면 FF D8이라는 jpg파일의 시그니쳐 값이 여러개 보인다.

여러개의 이미지 파일이 하나로 합쳐져 있었던 것이다.


WinHex의 도구들 중에는 숨겨진 파일들을 한번에 추출할 수 있는 도구가 있다.

상단 메뉴에 Tools -> Disk Tools -> File Recovery by Type... 에 들어가면 아래와 같은 매뉴가 나온다.


사진 파일들을 추출 할 것이니 Pictures에 체크 하고, Complete byte-level search로 설정하고 추출하면 많은 양의 사진들이 추출 된다.

사진의 내용들을 조합하면 H4CC3R_IN_TH3_MIDD33_4TT4CK 라는 Key 값을 얻을 수 있게 된다.


'Security & Hacking > Wargame' 카테고리의 다른 글

[SuNiNaTaS] Forensic 28  (0) 2019.01.31
[SuNiNaTaS] Forensic 26  (0) 2019.01.27
[SuNiNaTaS] Forensic 19  (0) 2019.01.22
[SuNiNaTaS] Forensic 18  (0) 2019.01.19
[SuNiNaTaS] Forensic 15  (0) 2019.01.19

0과 1이 연속으로 있는것을 보니 이진수인것 같다. 


바이너리를 텍스트로 변환해 주는 사이트에서 변환을 해보면 문자열이 하나 나온다.

http://www.unit-conversion.info/texttools/convert-text-to-binary/

NVCTFDV KF JLEZERKRJ REU KFURP ZJ R XFFU URP REU RLKYBVP ZJ GCRZUTKWZJMVIPYRIU 라는 문자열이 나오는데 키 값을 입력해보면 이것이 정답은 아닌 것 같다.
이 문자열을 보면 어느정도 간격마다 띄어쓰기가 되어 있는것을 보니 카이사르 암호가 적용된것 같다.


카이사르 암호는 암호화하고자 하는 내용을 알파벳별로 일정한 거리만큼 밀어서 다른 알파벳으로 치환하는 방식이다.


카이사르 암호를 복호화 할 수 있는 사이트에서 복호화를 하면 https://www.dcode.fr/caesar-cipher

WELCOME TO SUNINATAS AND TODAY IS A GOOD DAY AND AUTHKEY IS PLAIDCTFISVERYHARD

라는 값이 나오며 key값을 얻을 수 있다.

'Security & Hacking > Wargame' 카테고리의 다른 글

[SuNiNaTaS] Forensic 26  (0) 2019.01.27
[SuNiNaTaS] Forensic 21  (0) 2019.01.24
[SuNiNaTaS] Forensic 18  (0) 2019.01.19
[SuNiNaTaS] Forensic 15  (0) 2019.01.19
[SuNiNaTaS] Forensic 14  (0) 2019.01.13

문제를 보면 숫자들이 있는데 숫자들이 띄어져 있는 형태가 아스키 코드인 것 같다.

숫자를 아스키 코드로 변환해 주는 사이트가 있다.

https://www.browserling.com/tools/ascii-to-text


저 사이트에서 숫자들을 아스키 문자열로 바꾸어 주게 되면VG9kYXkgaXMgYSBnb29kIGRheS4gVGhlIEF1dGhLZXkgaXMgVmVyeVZlcnlUb25nVG9uZ0d1cmkh 라는 값이 나온다.

이 값을 키값으로 입력하면 키 값이 너무 길다고 나온다.


base64로 저 값을 디코딩 해보면 

Today is a good day. The AuthKey is VeryVeryTongTongGuri! 라는 값이 나오며 문제를 해결된다.


'Security & Hacking > Wargame' 카테고리의 다른 글

[SuNiNaTaS] Forensic 21  (0) 2019.01.24
[SuNiNaTaS] Forensic 19  (0) 2019.01.22
[SuNiNaTaS] Forensic 15  (0) 2019.01.19
[SuNiNaTaS] Forensic 14  (0) 2019.01.13
[webhacking.kr] Challenge 4  (0) 2018.12.28

힌트를 보면 Key는 파일 안에 있다고 하고 노래를 들을 수 있고, 다운 받을 수도 있다. 

노래를 다운받으면 다이어리 라는 노래가 다운받아진다.



이 파일의 속성에 들어가 '자세히'를 누르면 지휘자에 Key값으로 추측되는 내용이 들어가 있다.

키값에 GoodJobMetaTagSearch 를 입력해보면 문제가 해결 된다.




'Security & Hacking > Wargame' 카테고리의 다른 글

[SuNiNaTaS] Forensic 19  (0) 2019.01.22
[SuNiNaTaS] Forensic 18  (0) 2019.01.19
[SuNiNaTaS] Forensic 14  (0) 2019.01.13
[webhacking.kr] Challenge 4  (0) 2018.12.28
[webhacking.kr] Challenge 14  (0) 2018.12.14

suninatasd의 패스워드를 찾으면 되는 것 같다.

파일을 다운로드 받으면 tar 파일이 나오는데 .tar 파일은 리눅스에서 여러개의 파일을 하나로 묶을때의 확장자이다.


tar파일의 압축을 풀어보면 passwd 파일과, shadow 파일이 있다.

이 두 파일을 메모장으로 열어보면 다음과 같은 파일이 있다.

[passwd]

[shadow]

passwd 파일은 리눅스의 계정 목록이 있는 파일이고  shadow는 계정의 암호가 암호화 되어 저장되어 있는 파일이다.


shadow 파일은 : (클론)을  기준으로 내용이 구분되어 있고, 클론을 기준으로 클론 사이사이에는 다음과 같은 내용이 있다.

1. 계정 이름

2. 패스워드를 암호화 시킨 값

3. 1970년 1월 1일부터 패스워드가 수정된 날짜의 일 수

4. 패스워드가 변경되기 전 최소 사용 기간

5. 패스워드 변경 전 최대 사용 기간

6. 패스워드 사용 만기일 전에 경고 메시지를 제공하는 일 수

7. 로그인 접속 차단 일 수

8. 로그인 사용을 금지하는 일 수

9. 예약필드. 사용하지 않음


2번 항목에는 $를 기준으로 [$Hashid$Salt$Hash value]로 구분된다.

해시로 암호화 될때는 같은 내용은 무조건 같은 해시값을 갖는다. 

그래서 랜덤의 솔트값을 추가하여 같은 내용이라도 다른 해시 값을 갖도록 한다.

Hash id로 많이 사용 되는 것은 1,5,6이다.



이 파일들을 보면 suninatas라는 계정이 있고, 이 계정의 암호는 암호화 되어 shadow 파일에 저장되어 있다. 

john이라는 암호화 크랙툴을 이용하여 shadow파일을 크랙하면 암호를 볼 수 있을 것 같다.



john이라는 도구를 이용하면 root와 suninatas 계정의 password를 알 수 있다.

root의 password는 toor, suninatas의 password는 iloveu1이 나온다.


'Security & Hacking > Wargame' 카테고리의 다른 글

[SuNiNaTaS] Forensic 18  (0) 2019.01.19
[SuNiNaTaS] Forensic 15  (0) 2019.01.19
[webhacking.kr] Challenge 4  (0) 2018.12.28
[webhacking.kr] Challenge 14  (0) 2018.12.14
[webhacking.kr] Challenge1  (0) 2018.12.12

4번문제 페이지에 들어가면 문자열과 Password 입력 칸이 있다.

저 문자열을 해석하여 나온 값을 Password에 넣으면 되는 것 같다.


YzQwMzNiZmY5NGI1NjdhMTkwZTMzZmFhNTUxZjQxMWNhZWY0NDRmMg== 

이 문자열의 끝에 '='가 있는 것을 보니 base64로 디코딩 해야 할 것 같다.


https://www.base64decode.org/

이 홈페이지에서 저 문자열을 넣어 디코딩을 하면 c4033bff94b567a190e33faa551f411caef444f2 라는 문자열이 나온다.

Password에 디코딩한 문자열을 입력해 보았지만 문제는 풀리지 않았다.


c4033bff94b567a190e33faa551f411caef444f2 문자열은 영소문자+숫자의 문자가 40개로 이루어진 문자열이므로 SHA1 알고리즘으로 암호화 된 것 같다.


https://hashtoolkit.com/

이 홈페이지에서 c4033bff94b567a190e33faa551f411caef444f2 를 해독하면 a94a8fe5ccb19ba61c4c0873d391e987982fbbd3가 나오고
a94a8fe5ccb19ba61c4c0873d391e987982fbbd3를 한번더 해독하면 'test' 라는 문자열이 나온다.

test라는 문자열을 Password에 입력하면 문제가 해결된다.


'Security & Hacking > Wargame' 카테고리의 다른 글

[SuNiNaTaS] Forensic 15  (0) 2019.01.19
[SuNiNaTaS] Forensic 14  (0) 2019.01.13
[webhacking.kr] Challenge 14  (0) 2018.12.14
[webhacking.kr] Challenge1  (0) 2018.12.12
[webhacking.kr] Challenge 5  (0) 2018.11.24

DHCP (Dynamic Host Configuration Protocol) : 사용자가 인터넷을 하기 위한 IP주소 설정, 중복 방지. 

    Gateway, Subnetmask, DNS서버 등을 자동으로 구성해주는 기능


@Server

#yum -y install dhcp                // dhcp 패키지 설치


#vi /etc/dhcp/dhcpd.conf         // dhcp 설정 파일

6번줄 - 서비스를 적용할 네트워크 대역

7번줄 - 할당할 IP주소 범위

8번줄 - 게이트웨이 주소

9번줄 - 브로드캐스트 주소

10번줄 - 서브넷 마스크

11번줄 - DNS서버 주소

12번줄 - 기본 임대시간(초)

13번줄 - 최대 임대시간(초)


#service dhcpd start            // dhcp 데몬 시작



@Client

#ifconfig

- 현재 ip : 100.100.100.110


#vi /etc/sysconfig/network-scripts/ifcfg-eth0

- 기존의 ip설정을 주석처리하고 BOOTPROTO 값을 dhcp로 변경

#service network restart        // 네트워크 재시작

#ifconfig

- 설정에서 정한 ip주소 범위 안의 주소를 받음




특정 호스트에게 고정 IP 할당하기

@Server

#vi /etc/dhcp/dhcpd.conf

16번줄 - 호스트 이름

17번줄 - MAC주소 (호스트에서 ifconfig명령으로 확인가능)

18번줄 - 고정 IP주소


#service dhcpd restart        // dhcp데몬 재시작


@Client

- 고정한 IP 주소를 받아온다.



@재부팅 시에도 자동으로 서버가 동작할수 있도록 설정

#chkconfig dhcpd on





 

'Server' 카테고리의 다른 글

[Linux]NFS  (0) 2018.12.15
[Linux] Bonding  (0) 2018.10.07
[Linux]NC  (0) 2018.10.06

+ Recent posts