최근 펌웨어에서는 관련 내용이 수정된 것으로 보아 이 내용을 공개해도 될 것 같습니다.

안녕하세요, 오늘은 ipTIME 공유기에서 쉘이나 리눅스 명령어를 실행하는 방법을 알려드리겠습니다.
ipTIME 공유기를 리눅스 머신으로 개조하시거나 USB에 있는 파일을 실행하고 싶으신 분들에게는 도움이 될 것 같습니다.
리눅스에 대한 배경지식이 있어야 글을 잘 이해하실 수 있습니다.

* 심각한 보안 취약점은 아닙니다. 사용자가 특정 옵션을 설정해야만 가능합니다. (대부분은 꺼져 있음)
* 공유기를 재부팅할 경우 '쉘(텔넷 서버) 실행하기' 단계부터 다시 실행해주셔야 합니다.
* 이 글은 ipTIME n704bcm(V9.42), ipTIME n604m(V9.06), ipTIME n7004ns(V9.32)에서 테스트되었습니다.
   2008년 펌웨어에서도 가능한 것으로 추정됩니다.
* 상세한 과정(디스어셈블리 등)까지 확인하고 싶으신 분은 이 링크에 있는 글을 확인해주세요.

어떻게 알게 되었는가?

ipTIME 공유기의 '고급 설정 - 기타 설정 - 원격 지원' 옵션이 무엇인지 알아보면서 알게 되었습니다.
펌웨어를 추출해서 디스어셈블리 해 보았습니다.


사용자 삽입 이미지

리눅스 명령어를 실행하는 방법

먼저, 위에서 언급했던 '고급 설정 - 기타 설정 - 원격 지원'에 가서 '원격 지원' 을 실행합니다.

다음, http://192.168.0.1/cgi-bin/d.cgi 에 접속합니다. 관리자 암호는 필요없습니다.
그러면 아래와 같이 세 개의 텍스트 입력상자와 버튼이 나타납니다. (화면이 8년 전에 있었던 백도어와 비슷하네요.)

첫 번째 상자는 확인하고 싶은 파일명,
두 번째 상자는 실행하고 싶은 명령어,
세 번째 상자는 디버그용 암호를 입력하는 용도로 사용됩니다.
아래에는 실행한 명령어의 결과를 알려주거나 파일을 보여줍니다.


사용자 삽입 이미지


테스트로 'ls' 명령어 (폴더 내용 확인)를 실행해보겠습니다.
명령어는 root(최고 관리자)권한으로 실행됩니다.

앞에서 언급한 디버그용 암호는 #notenoughmineral^ 입니다.


사용자 삽입 이미지

쉘(텔넷 서버) 실행하기

이제 텔넷 서버를 실행해 보겠습니다.
기본적으로 모든 포트가 막혀 있는데 텔넷에 접속하기 위해 23포트를 풀어줍니다.

명령어에 /sbin/iptables -A INPUT -p tcp --dport 23 -j ACCEPT 를 입력합니다.
실행에 성공했다면 아래에 아무것도 나타나지 않으며 화면이 새로고침 됩니다.


사용자 삽입 이미지


다음, 텔넷 서버를 실행하기 위해서 /sbin/utelnetd -i br0 -l /bin/sh 를 입력합니다.
대부분의 ipTIME 공유기에는 펌웨어에 텔넷 데몬이 기본적으로 포함되어 있습니다.

모델에 따라 
/sbin/at -i br0 -l /bin/sh (ipTIME n7004ns 등)
/sbin/telnetd -i 192.168.0.1 -l /bin/sh
/bin/telnetd -i 192.168.0.1 -l /bin/sh
/usr/bin/telnetd -i 192.168.0.1 -l /bin/sh
를 실행해야 되는 경우도 있습니다.


사용자 삽입 이미지


실행에 성공했다면 'telnetd: starting port: 23 ...' 과 같은 메시지가 표시됩니다.


사용자 삽입 이미지


이제 텔넷 클라이언트를 실행시켜 보겠습니다. telnet 192.168.0.1 을 입력합니다.
(윈도우 7 이상은 제어판 - 프로그램 및 기능 - Windows 기능에서 텔넷 클라이언트를 설치해야 합니다.)
비밀번호 없이 로그인이 가능합니다.


사용자 삽입 이미지


ipTIME 펌웨어는 리눅스 OS를 이용하므로 리눅스 명령어(cat, ls, cp, mv, ps 등)를 실행할 수 있습니다.
단, /etc, /var, /tmp 를 제외하고는 파일시스템이 읽기 전용(SquashFS) 입니다.
USB 지원 모델의 경우 USB가 /mnt/HDD1에 탑재됩니다.

nginx나 PHP도 컴파일만 잘 하시면 실행 가능합니다.
(실제로 n7004ns에 nginx+PHP 5.4를 실행해서 DokuWiki 같은 가벼운 프로그램을 올려 보았습니다.)
작동은 잘 됩니다만(좀 느리네요) 하드웨어의 제약 때문에 실제로 사용하긴 힘드실겁니다.


사용자 삽입 이미지


이제 당신의 공유기가 또 다른 하나의 컴퓨터가 되었습니다.^^


많은 분들의 요청으로 ipTIME n7004ns(MIPS)에서 사용 가능한 busybox, curl, nginx, php(fpm) 파일을 업로드합니다. 이 파일은 모두 정적(static) 링크되어 있으며, 모든 php extension 역시 정적 링크하였습니다. [다운로드]
 댓글

             
1 ... 2 3 4 5 6 7 8 9 10 ... 82