

















여기서, 스테가노그래피란?
스테가노그래피는 '비밀 통신' 기술의 한 종류로, 메시지나 파일을 다른 파일(예: 사진, 오디오, 동영상) 안에 숨겨서, 겉으로 보기에는 아무런 이상이 없는 것처럼 보이게 하는 기술입니다.
암호화(Cryptography)와는 어떻게 달라?
- 암호화: 메시지를 알아볼 수 없는 형태로 '변형' 합니다.
- 예: "안녕" -> "x7d#kL2"
- 메시지 자체가 숨겨지지는 않기 때문에, 누군가 암호화된 메시지를 발견하면 "이건 비밀 메시지구나"라고 알아차릴 수 있습니다.
- 스테가노그래피: 메시지 자체를 '숨깁니다'.
- 예: "안녕"이라는 글자를 평범한 고양이 사진 안에 숨깁니다.
- 겉으로 보면 그냥 고양이 사진일 뿐이라서, 누군가 이 파일을 보더라도 그 안에 비밀 메시지가 있다는 사실조차 알지 못합니다.
어떻게 숨길까?
가장 흔한 방법은 디지털 이미지나 오디오 파일의 미세한 부분을 수정하는 것입니다. 예를 들어, 사진을 이루는 수많은 픽셀의 색상 값을 아주 조금씩 바꾸는 방식으로 데이터를 숨길 수 있습니다. 이 정도의 변화는 사람의 눈으로는 거의 구분할 수 없습니다.
어디에 쓰일까?
- 보안 및 정보보호: 기밀 문서를 숨기거나, 워터마크를 삽입하는 용도로 사용됩니다.
- 사이버 범죄: 범죄 조직이 불법 정보를 숨겨서 주고받는 데 악용되기도 합니다.
스테가노그래피는 겉으로 드러나지 않는다는 점에서 강력한 비밀 통신 수단이지만, 이 때문에 악의적으로 사용될 수도 있어 보안 전문가들이 주의 깊게 다루는 분야이기도 합니다.

"Stegseek" 이란 무엇일까?
stegseek는 **스테가노그래피(Steganography)**를 이용해 숨겨진 파일을 찾는 도구입니다.
이름에서 알 수 있듯이 'Steg' (스테가노그래피)와 'seek' (찾다)의 합성어입니다. 주로 JPG, PNG 같은 이미지 파일이나 MP3 같은 오디오 파일에 숨겨진 비밀 파일을 찾아낼 때 사용됩니다.
stegseek는 어떻게 파일을 찾아낼까?
stegseek는 **무차별 대입 공격(Brute-force attack)**을 사용해 숨겨진 파일을 찾습니다.
스테가노그래피로 파일을 숨길 때 비밀번호를 설정하는 경우가 많습니다. stegseek는 미리 가지고 있는 비밀번호 목록(wordlist)에 있는 단어들을 하나씩 대입해서 숨겨진 파일의 비밀번호를 찾아냅니다.
만약 비밀번호가 일치하면 숨겨진 파일의 압축이 풀리면서 파일의 내용을 볼 수 있게 되는 방식입니다.


여기까지 10000, 4444, 65535 총 3개의 값을 발견했다.
port-knocking 힌트와, img파일의 'porta'를 미루어볼때, 아마도 포트번호로 추정된다.
※ 반대로 steghide 도구를 사용해도 된다. 파일을 숨기거나 추출할 수 있다. (Embed/Extract)



knockd 란 무엇일까?
미리 정해둔 순서대로 특정 포트에 '똑똑' 노크(접속시도) 를 해야만 진짜 접속할 포트를 열어주는 보안 기술
포트 노킹이란?
포트 노킹은 서버의 특정 포트를 열거나 닫기 위해 미리 정해진 순서대로 TCP 또는 UDP 패킷을 보내는 보안 기술입니다. 외부에서 특정 포트(예: SSH 접속에 사용되는 22번 포트)에 바로 접근하는 것을 막고, '비밀 신호'를 보낸 사용자에게만 해당 포트를 일시적으로 열어주는 방식입니다.
예를 들어, SSH 포트를 외부에 아예 닫아두고, 다음과 같은 '비밀 신호' 순서로 패킷을 보내도록 설정할 수 있습니다.
- 5400번 포트로 접속 시도
- 6700번 포트로 접속 시도
- 8900번 포트로 접속 시도
이렇게 미리 정한 순서대로 포트에 접근 시도가 들어오면, knockd는 SSH 포트(22번)를 열어 사용자가 접속할 수 있게 해줍니다.
knockd의 역할
knockd는 서버에서 데몬(daemon) 형태로 동작합니다. 데몬은 백그라운드에서 계속 실행되면서 특정 이벤트를 감시하는 프로그램입니다.
knockd는 설정 파일(knockd.conf)에 정의된 규칙에 따라 다음과 같은 작업을 수행합니다.
- 패킷 감시: 모든 포트로 들어오는 패킷을 감시합니다.
- 패킷 순서 분석: 미리 정해진 순서대로 패킷이 들어오는지 확인합니다.
- 규칙 실행: 올바른 순서의 패킷이 감지되면, 방화벽 규칙을 변경하여 특정 포트를 열어줍니다.
이러한 knockd의 기능 덕분에, 해커나 악의적인 사용자는 해당 포트의 존재조차 알기 어렵기 때문에 무차별 대입 공격(Brute-force attack) 같은 공격을 효과적으로 방어할 수 있습니다.






















설정 오류: 핵심적인 문제는 hackable_3 같은 일반 사용자 계정이 lxd 그룹에 속해 있었다는 점.
이 그룹에 속한 사용자는 LXD 컨테이너를 생성하고 관리할 수 있는 특별한 권한을 가지고 있다.
lxd 권한 상승 취약점을 이용해 root 권한을 획득하는 과정
- 우선 hackable_3 계정으로 전환하여, 이 계정이 lxd 권한 상승이 가능한 조건을 갖추고 있는지 확인
- lxd 권한 상승을 위해 alpine 이미지를 사용하기로 결정하고, 해당 이미지를 다운로드
- 이후 이미지를 가져와서 컨테이너를 만들고, 이 컨테이너를 호스트 시스템의 /root 디렉터리에 마운트하여 root 권한을 탈취
→ 컨테이너 기술의 권한 관리 취약점을 이용하는 대표적인 해킹 시나리오.
lxd 그룹에 속한 사용자는 컨테이너를 생성하고 관리할 수 있는데, 이 권한을 악용해 호스트 시스템의 루트 권한까지 접근 가능
'CTF' 카테고리의 다른 글
| [9월 12일] CTF_Keyring (0) | 2025.09.12 |
|---|---|
| [9월 11일] CTF_Ripper: 1 (0) | 2025.09.11 |
| [9월 9일] CTF_Potato Sun(CSR): 1 (0) | 2025.09.09 |
| [9월 9일] CTF_Potato: 1 (0) | 2025.09.09 |
| [9월 8일] CTF_Momentum2 (0) | 2025.09.08 |