최근 펌웨어에서는 관련 내용이 수정된 것으로 보아 이 내용을 공개해도 될 것 같습니다.
안녕하세요, 오늘은 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 역시 정적 링크하였습니다. [다운로드]
공유하기 링크
- TAG
- iptime, ipTime공유기, ipTime공유기설정, telnetd
댓글
-
ㅈ
좋은 자료 감사합니다.2016/12/09 00:33
-
admi_n
잘 보고 갑니다2017/03/02 20:58
-
Asdfqwer
굳 좋은자료 하지만 지금은 안되네요2017/07/31 10:14
-
고등어
안녕하세요 지금 좋은 자료 잘읽어보앗습니다2017/08/15 17:28
지금 제가 iptime 공유기와 iptime에서 나오는 nas 하드 1개짜리를 사용하고 있습니다.
나스에 리눅스를 설치하여 원격으로 사용을 하고 싶은데 혹시 설명이 가능할 할까요?? -
컴퓨터매니아
ipTIME 나스에 사용되는 OS가 이미 리눅스입니다.2018/08/06 00:10
-
최정우
우오오오 감사합니다. 근데 핑은 못 때리네요 비지박스 0.60 버전 쉘로 붙어지네요 텔서버2017/11/30 23:46
흠...프로세스랑 디렉터리 확인 말고 뭐 할 수 있는게 딱히 없네요 핑테스트 할 수 있는 방법도 있을까요 -
컴퓨터매니아
이메일 주소 알려주시면 ipTIME용 busybox 바이너리 보내드릴게요.2017/12/10 17:21
-
컴퓨터매니아
이메일 확인하세요.2017/12/24 16:22
-
컴퓨터매니아
게시물 하단에 업로드 하였습니다.2018/02/19 01:52
-
컴퓨터매니아
----2018/08/10 23:15
[code][root@centos iptime]# binwalk a6004nm_kr_10_068.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 uImage header, header size: 64 bytes, header CRC: 0x6017745B, created: 2018-07-24 03:12:15, image size: 16066999 bytes, Data Address: 0x81001000, Entry Point: 0x81608270, data CRC: 0x37DE26E3, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: "a6004nm"
64 0x40 LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompressed size: 9288256 bytes
[b]3574263 0x3689F7 Squashfs filesystem, little endian, version 4.0, compression:xz, size: 12491892 bytes, 1717 inodes, blocksize: 131072 bytes, created: 2018-07-24 03:12:10[/b][/code]
[b] A6004NS-M 펌웨어를 분석하니 위와 같이 표시되네요. [/b]
아래에 squashfs filesystem 이부분을 떼어서 ssh 데몬을 추가하신 후 squashfs-tools 이용하여 다시 붙이면 될 것 같습니다. 추가적인 내용을 원하시면 답글 바랍니다. -
컴퓨터매니아
[i][운영자 각주][/i]2018/08/10 23:15
[quote]ipTIME과는 관계없는 내용이지만 SK Broadband에서 기본으로 제공하는 공유기의 경우 펌웨어 업데이트 시 파일명 뒤에 [b][red];명령어[/red][/b]를 삽입하면 그 명령어가 실행이 되는 것 같습니다. 예로 [b][red]"파일명;reboot"[/red][/b] 를 입력하였더니 공유기가 재부팅 되더군요.[/quote] -
KIRI
A6004NS SSH 살릴수 있는 방법이 있을까요? ㅠㅠ2018/12/24 11:06
http://iptime.com/iptime/?page_id=16&uid=19825&mod=document
위의 Entware 를 한번 시도해보려고 하는데 이거로는 제한사항이 있어서요... -
컴퓨터매니아
ipTIME사가 공개한 소스코드 (http://gpl.iptime.org/gpl/HDD1/GPL) 여기에 userapps_a6004ns.tar.xz 파일을 다운로드 받아 펌웨어를 제작할 수 있을 것 같네요.2019/01/11 00:06
압축파일의 [b]fs/bcmac[/b] 폴더를 참조하시면 될 것 같습니다. -
무우
최근에는 http://192.168.0.1/sess-bin/d.cgi 으로 주소가 바뀌었네요2024/02/20 14:18
최근에 달린 댓글
- 방문자
- 2627734
- Today
- 337
- Yesterday
- 307
태그
- seo
- 블로그
- ipTime공유기
- 네이버 애널리틱스
- noscript
- pc최적화 프로그램
- 데이터복원
- 대기 모드
- 광고단위
- 애드센스
- png
- 서버
- Carriage Return
- 예약파티션
- 사용자게정
- 구글애드센스
- iptime
- 프로그램제거
- 보안경고
- CCL
- 로그인
- 호스팅
- activex
- 리눅스
- 워터마크
- 포트
- 인증툴
- 아파치
- Sysprep
- 백신