라즈베리파이로 파일서버를 쓰다가 최근에 NAS하나를 구입했습니다. 뒤적뒤적 보다가 ssh 오픈할 수 있는 케이스를 찾았는데 이미 관련 글도 있더군요…
(구글링 해볼껄..)

별건 아니지만 글로 작성해봅니다.


How to find?

앞서 이야기드리면 이건 취약점은 아닙니다. 해당 NAS에서 스펙으로 포함된 기능인데, 일반 사용자에게는 해가될 부분이 더 커서 가려놓은 것 같습니다.
NAS SDK 관련 문서에는 이런 내용이 있습니다.

Managing Apps from the Command Line
...

Warning

On some devices, the SSH service isn’t available by default and won’t appear in the service list. In order to enable the SSH service on those devices, you will need to add the appdev=1 parameter to the NAS URL in your browser. For example, if your NAS IP is 192.168.0.10, you should enter the URL http://192.168.0.10/?appdev=1
https://www.seagate.com/nasos/SDK/0.7/debug/index.html )

첨엔 개발자모드 정도로만 생각해서 대충보고 ssh 확인했었는데, 아래 내용 더 보다보니 공식 가이드에도 ssh 접근 방법이 명시되어 있긴하네요..

Eanble SSH Service

별다른거 없습니다. 웹 페이지 진입 시 appdev 파라미터에 1 값을 넣어주면 개발자모드(?)가 활성화되고 ssh 사용이 가능해집니다.

https://192.168.0.880.88/?appdev=1


일반 사용자 모드

개발자모드(?)


Connect SSH

NAS에서 사용자 계정을 만들면, 디바이스 내 리눅스 계정으로 생성됩니다. 그래서 초기 구성에서 지정한 관리자 계정이나 따로 추가한 계정으로 접근해보시면 정상적으로 쉘이 내려오는걸 확인하실 수 있습니다.
$ ssh youraccounts@192.168.0.88
youraccounts@192.168.0.88's password: 
[youraccounts@PersonalCloud ~]$ 
[youraccounts@PersonalCloud ~]$ 
[youraccounts@PersonalCloud ~]$ 
[youraccounts@PersonalCloud ~]$ uname -a
Linux PersonalCloud 3.10.72-svn18863 #1 Tue May 9 20:05:23 UTC 2017 armv7l GNU/Linux

Permission?

일부 명령, 기능들은 root 권한이 없으면 사용할 수 없습니다.

$ sudo ping google.com
You are about to enter the root level of your Seagate NAS.
Within root, you can make revisions to the NAS settings and
data via the command line. Due to its open access to all
settings and data within the NAS, Seagate recommends that
only administrators with advanced knowledge of the proper
command lines enter and use root.

SEAGATE IS NOT RESPONSIBLE FOR ANY LOSS OF DATA, CONFIGURATION,
SETTINGS,OR INFORMATION OF ANY TYPE DUE TO ENTERING OR USING ROOT.

어느정도선까지 NAS 내부에서 구현해서 사용할 수 있을런지는 모르겠지만, 일단 가능한 항목들이나 좀 찾아봐야겠네요.

아무튼 현재 기준으로 root를 사용하려면 취약점 찾아서 exploit이 필요할 것 같네요.
(여기부턴 하게되면 법의 보호를 잘 받지 못…)

그리고 … 문서 보다보니깐 rainbow라는 별도의 패키지를 도구를 사용해서 앱들을 관리하는 것 같습니다. 잘 이용하면 다른 앱을 설치할 수 있는 좋은 포인트가 될수도 있겠네요.

댓글 2개:

  1. ruby는 없지만 python은 있네요!
    $ ruby
    -bash: ruby: command not found

    $ python

    Python 2.7.11 (default, May 9 2017, 22:05:57)
    [GCC 4.6.4] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    >>>
    >>>


    사실 seagate쪽 앱이 파이썬으로 구성된듯 합니다..ㅋㅋ

    답글삭제
  2. $ curl
    curl: try 'curl --help' or 'curl --manual' for more information


    curl이 있는것으로 보아 쉘 스크립트랑 조합하면 어지간한 자동화는 다 돌릴 수 있겠네요 :)

    답글삭제