티스토리 뷰
$ scp -P 31338 rcity9@rcity.grootboan.com:/tmp/wooju/*.txt .
# scp 로 rcity9 로 접속해서 사용하던 디렉토리에 파일들을 로컬로 복사했다
rcity.rcityboan.com에서 CTF를 오픈하여 모든 문제를 풀었고, 단순히 풀고 끝내는 게 아닌 WriteUP을 작성해보고자 한다.
구성은 Tutorial , Easy , Medim , Hard 로 구성되어 있고 문제는 총 19문제이다.
Medium - Operation 9번 문제를 풀어 보자
문제를 풀이를 위해 Rcity CTF 서버 접속은 Kali를 통해 CLI로 진행했다.
목차
1. 문제 확인
2. 풀이
3. 여담
문제 확인
Medium Operation 두 번째 문제~
''''''
내용을 살펴보자면 nmap의 결과 파일이 flag로 있고 그것은 포트 번호이며 쉼표 문자열 로 되어있다고 한다.
먼저 파일을 파싱 해서 열려 있는 포트들만 나오도록 문자열을 만들라...
flag 문자열을 암호화키로 이용해라~ 그리고 플래그를 복호화하라~
풀이
파일을 한번 확인해보고 시작하자
문제에서는 "flag.txt" 파일을 복호화해라 했고 nmap-result.txt를 열린 포트들을 파싱 하라 했으니
우선 open으로 표시된 열린 포트들만 해싱해 보자
$grep "open" nmap-result.txt |awk '{gsub(/[^0-9]/, "", $1); print$1}'
# 이렇게 grep 와 awk 명령어를 이용해서 열려 있는 (open) 이 있는 것만 추려서 첫 열에 숫자들만 출력 한다.
# 출력하고 보니... open 이 다 있네.... 그냥 tr 명령어로 숫자만 남기거나 cut로 1열을 자르고 sed로 '/tcp'를 지워도 된다..
$cut -d' ' -f1 nmap-result.txt | sed 's/\/tcp//' > salt.txt
이렇게 해도 결과는 같다~
위에 출력 결과를 이용해서 flag를 복호화해야 하니 파일로 만들어 주자
$ mkdir /tmp/wooju
# 쓰기권한이 있는 /tmp/ 디렉토리에 내 공간을 만들어주고
$ grep "open" nmap-result.txt | awk '{gsub(/[^0-9]/, "", $1); print$1}' > /tmp/wooju/salt.txt
# 위 명령어에 "> /tmp/wooju/salt.txt" 를 추가해줘서 파일을 만들어준다.
** 문제에서 아래와 같이 바꾸라고 했으니
예) 21,22,23,25,53,....,27019
$ tr '\n' ',' < salt.txt > newsalt.txt
로 개행된 숫자들을 콤마로 가꾸어 주자
자... 여기까지 우선 newsalt.txt 파일을 만들었는데......
그냥 한 줄로 정리하면
cut -d' ' -f1 nmap-result.txt | sed 's/\/tcp//' | tr '\n' ',' > newsalt.txt
잘 되었나 하나하나 확인해야 한다면 차근차근 따라 하면 되고 결괏값만 원하면 아래처럼 파이프를 이용해서 한 줄로 해결하면 된다.
CTF 문제 풀면서 안 쓰던...
리눅스 명령어 연습 많이 된다~
너므 너므 좋아~
이제 복호화해야 하는데.... 음....
' cat flag.txt | openssl enc -d -aes-256-cbc -base64 -k <22,23,25,.. aasdasdf
이걸 이용해서 문제를 풀어보자
rcity 서버에서 실행하니 flag 가 안 나와서... 호스트 서버 kali에 파일 복사해서 실행했더니 잘 나온다
여담
와 이게... 문제 다시 풀면서 writeup 작성하려니 시간이 여간 많이 드는 게 아니다...
회사 사무실에서 점심시간 이용해서 쓰고 있는데... 점심시간 끝났다...
내 점심시간 ㅜㅜ
마무리
문제의 목적은 문자열을 파싱 하는 방법을 익히는 것이었다...
힌트에 있던 cut , tr , sed , openssl을 빠짐없이 다 익힐 수 있는 문제였다~
CTF 풀면서 가장 많이 쓰게 되는 것들은 한 번에 다 쓰는 거 같다...
요즘 script 작성법을 다시 익히게 되니 느므느므 좋다...
openssl enc에 대해서도 찾아보자
openssl enc 명령어는 OpenSSL 라이브러리를 사용하여 데이터를 암호화 및 복호화하는 데 사용되는 명령줄 도구입니다. OpenSSL은 다양한 암호화 알고리즘과 모드를 지원하며, 데이터를 보호하고 안전하게 전송하려는 경우에 유용합니다. 아래는 openssl enc 명령어의 주요 사용 사례와 옵션에 대한 간단한 설명입니다:
- 암호화: openssl enc를 사용하여 데이터를 암호화합니다. 암호화 알고리즘 및 키, 초기화 벡터 등의 매개변수를 설정해야 합니다.
bashCopy codeopenssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.bin
- 복호화: 암호화된 데이터를 원래의 형태로 복원하려면 openssl enc를 사용하여 복호화합니다.
bashCopy codeopenssl enc -d -aes-256-cbc -in encrypted.bin -out decrypted.txt
- 암호화 알고리즘 및 모드 선택: -aes-256-cbc와 같은 옵션을 사용하여 원하는 암호화 알고리즘 및 모드를 선택할 수 있습니다. OpenSSL은 다양한 암호화 알고리즘과 모드를 지원합니다.
- 기타 옵션: -salt, -in, -out과 같은 옵션을 사용하여 암호화 또는 복호화에 필요한 매개변수 및 파일 이름을 지정할 수 있습니다.
openssl enc 명령어는 강력한 보안을 제공하며, 데이터를 암호화하고 복호화하는 다양한 시나리오에서 사용됩니다. 이를 통해 데이터의 기밀성과 무결성을 유지할 수 있습니다. 자세한 사용법과 지원되는 암호화 알고리즘 및 모드는 openssl enc 명령어의 매뉴얼 페이지에서 확인할 수 있습니다(man enc 또는 openssl enc -help 명령으로 확인 가능).
랜다~~
'War Game Site > rcity' 카테고리의 다른 글
Rcity Medium Operation 11 / WriteUp (0) | 2023.09.13 |
---|---|
Rcity Medium Operation 10 / WriteUp (0) | 2023.09.13 |
Rcity Medium Operation 8 / WriteUp (0) | 2023.09.12 |
Rcity Easy Operation 7 / WriteUP (0) | 2023.09.12 |
Rcity Easy Operation 6 / WriteUP (0) | 2023.09.08 |
- Total
- Today
- Yesterday
- rhcsa8 덤프
- Rcityboan.com
- 라쿤시티
- Rcity1번
- PODman기초
- 리눅스 명령어
- rhcsa8
- 리눅스
- 파이썬실습
- 파이썬기초
- grootsecuriry
- RCity operation 1
- 리눅스 쉘 스크립트
- Rcity 9번
- podman
- Rcity CTF
- grootboan
- 리눅스 환경변수 지정
- Grootsecurity
- 쉘 스크립트 기초
- 주소DB만들기
- 리눅스본딩
- gzip
- rhcsa8 기출문제
- rhcsa8 시험문제
- CTF
- Rcity
- 맨탈훈련
- rhcsa8덤프
- 7-zip
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |