[ipTIME] 공유기 씹.뜯.맛.즐 해보기 - 01

제로콜라·2025년 5월 15일

0. 개요

이전에 github pages로 사용하던 블로그가 업로드하는데 너무 복잡하고 정신 없어서 그냥 가장 편안한 Velog로 넘어왔다.

일단 앞서, 이 프로젝트를 시작하게 된 계기를 아주 빨리 집고 넘어갈 예정이다.

이번 프로젝트의 최종 목표는 공유기를 활용한 랜섬웨어 배포 하기 이다.

0.1. 프로젝트를 시작하게 된 계기

이 프로젝트 자체가 교내 동아리를 들어가서 시작한 스터디를 처음으로 할 수 있을것 같다.

현재 학과 동아리에서 랜섬웨어 스터디에 참여하게 되었다.

여기서 나온 의견을 정리한 내용을 보자면,

랜섬웨어 스터디
C2서버와 통신하지 않고 내부 값들을 사용해서 키를 만들어보기

IoT? 이걸로 뭐하지?

랜섬웨어를 만드는것을 목표로 하는 스터디인데, 여기서 내가 IoT 기기를 활용해보자는 의견을 제시했다.

이 의견을 스터디장인 선배님이 긍정적으로 봐주셨고, 이를 조금씩 더 확장하다보니 고등학교 때 공유기를 서버로 만들어서 썼던게 생각이 났다.

이걸 C2서버로 사용해서 공격?
흠….. 이걸 랜섬웨어로 공격해봤자 얻는게 없음.
그니까 이걸 P2P형태로 C2서버로 쓰면?

공유기를 C2서버로?
이거 한번 만들어봐야겠다
어떡하지,, 뭘하면 좋을까..?

막상 생각했던게 '웹서버정도는 열 수 있으니까 C2로서의 역할이 가능하지 않을까?' 였다.

하지만 공유기는 C2서버로서의 리소스가 충분하지 않았다.

그러면 P2P 형식이라면? 충분히 가능할 것 같았다. 나는 바로 의견을 냈고, 매우 긍정적인 반응을 보여주셨다.

근데 문제는 나도 한지가 2-3년 가량 되어서, 잊어버린게 한두가지가 아니었다.

그래서 '그러면 이걸 블로그로 써보자.' 라는 생각이 딱 들었고,

이게 이 블로그의 주제인 공유기 씹뜯맛즐 하기의 시초가 되었다.

근데 문제는 이 블로그를 써야겠다는 생각을 한지가 꽤 지났다는거지.. 시작이 반이니까 일단 지금까지 한거 끄적일거다.

1. 서버 클러스터링으로 C2서버 구축하기

일단 시작하면서 제일 먼저 떠오른게 P2P 방식을 사용해서 하는거였는데,

이게 생각보다 P2P가 구현하기도 까다롭고 기본적으로 하드웨어가 받쳐줘야한다는 사실을 알게 되었다.

어, 큰일이네? 어떻게 하지...?
그러면 하드웨어를 물리적으로 묶어버리는 서버 클러스터링을 해볼까?

이렇게 클러스터 형식으로 묶어버릴 계획을 해버리게 된다.

하지만 아직도 이게 구현자체가 힘들다는것을 망각하고 있을때라서 그러려니 하고 넘어가야한다.

아무리 구글링을 하는데 공유기를 클러스터링 한 사례가 없다. 당연한 소리 아니냐.. 어떤 미친놈이 공유기로 그런 짓을 하냐..

아무리해도 안될땐? chatGPT!

당연히 어렵다고 하긴 한다. 근데 어느정도 성능이 받쳐주면 가능은 하다고 한다.

근데 진짜 문제는 openWRT를 원격으로 어떻게 설치할것이며, 어떻게 연결할지가 가장 큰 난관이다.

이때 해보려고 했는데, 일단 조건에 맞는 장비가 일절 없었다. 그렇기에 당연히 테스트 또한 불가능했다.

조건:
최소 128MB의 RAM 탑재 되어야 함. (정상 동작하기 위해선 1GB는 되어야 함.)
openWRT가 설치가 가능한 미디어텍, 브로드컴 칩셋이 들어가야 함.
외장 저장장치 연결이 가능한 기기여야 함.

그냥 딱봐도 헬이다.


그래서 한동안 이걸 어떻게 하지 하다가 내 서버 망에 물린 공유기가 위에 최소사양은 맞출 수 있어서 계속해서 고민했다.

이전에 쓰던 기기가 있는데, 전 기기는 트래픽이 낮기도 하고 내가 이미 조져놓은 상태였기에 불안해서 미친듯이 고민했다.

당근:
ipTIME A3004T 판매 -> 24,000원

6만원짜리 공유기를 2만원대에 파는 분을 발견했다.

냉큼가서 주워왔다.

'후훗,,, 네 놈은 이제 죽었ㄸr,, 허헣허,,, 일루와,,,'

바로 그냥 집에 오자마자 배를 갈랐다.

이거랑 다른 모델이긴 한데, 딱 이런 모양이었다.

공유기에 저렇게 큰 방열판 2개가 달린건 세상 살면서 처음봤다.

일단 앞서서 openWRT를 올리는데 성공했고, ssh로 쉘에 접속했다.

어.. 큰일이다...

아니 Docker 를 설치하려고 하는데, containerd가 설치가 안된다..

아니 왜 안되는지 진짜 이유를 몰라서 애용하는 서버포럼에 관련 글을 찾아봤다.

하지만 답은 chatGPT에게 있었다.

음... 내가 산 공유기는 ramips 계열 칩셋이었고, 당연하게도 도커 데몬과 containerd 가 없는것이 당연했다.

한마디로 클러스터링이라는 것 자체를 docker로 구현하려고 했던건데, 그냥 docker 자체가 설치가 불가능한 구조였다.

이렇게 첫번째 도전기는 실패하게 되었다.

2. 다음 도전기 예고

다음 편에는 그냥 C2 서버를 포기하고, ipTIME 공유기의 기능인 '광고 및 공지 기능'을 사용해볼 예정이다.

그렇기에 이번엔 어떤 사양을 가진 공유기든, 상관이 없다.

지금 일단 RCE 취약점이 있는 버전을 찾아서 이 버전에 펌웨어를 다운로드 하는데까진 성공했다. (원래는 다운로드가 막혀있음.)

다음번에는 관련 1-day를 분석하고, 저 기능을 활성화하는 방식으로 진행할 예정이다.

profile
뭐가 됐든 재미있게 살자

0개의 댓글