포트 32764에서 Netgear 라우터 수신?


13

펌웨어 V5.01.01을 실행하는 Netgear DG834G가 있습니다. LAN 쪽에서 포트를 스캔하면 tcp 포트 32764에서 수신 대기 중입니다.이 포트에 텔넷으로 연결하려고하면 응답 MMcS\xff\xff\xff\xff\0\0\0\0이 16 진수로 표시됩니다.

UPnP를 사용할 수 없으며 원격 관리 포트가 아니며 WAN 쪽에서 열리지 않습니다. Netgear의 설명서에서 아무것도 찾을 수 없으며 온라인 검색으로도 찾을 수 없습니다. 소수의 사람들이 알아 차린 것처럼 보이지만 실제로는 아무도 대답 할 수 없습니다. 또한 해당 포트에 대한 아웃 바운드 액세스를 차단하는 방화벽 규칙을 만들었으며 여전히 열려 있으므로 실제로 수신 대기하는 라우터입니다.

아무도 이것이 무엇인지 알 수 있습니까?


어떤 텔넷 클라이언트를 사용하고 있습니까? 퍼티를 사용할 때 넷기어 라우터와 함께 제공되는 모든 것은 "MMcSÿÿ"입니다.
Mokubai

1
그 위에 이중 점이있는 y는 16 진수 0xff입니다. 나와 동일합니다.
Dentrasi

SF-Port32764-TCP : V = 5.61TEST4 % I = 7 % D = 5 / 8 % Time = 4FA9A45B % P = i686-pc-linux- gnu % r SF : (GenericLines, C, "MMcS \ xff \ xff \ xff \ xff \ 0 \ 0 \ 0 \ 0") % r (도움말, C, "MMcS \ xff \ xff \ SF : xff \ xff \ 0 \ 0 \ 0 \ 0 ") % r (X11Probe, C,"MMcS \ xff \ xff \ xff \ xff \ 0 \ 0 \ 0 \ 0 ") % r (LPDStr SF : ing, C,"MMcS \ xff \ xff \ xff \ xff \ 0 \ 0 \ 0 \ 0 ") % r (TerminalServer, C,"MMcS \ xff \ xff \ SF : xff \ xff \ 0 \ 0 \ 0 \ 0 "); 이 포트가 기본적으로 열린 이유에 대한 더 많은 통찰력은 좋을 것입니다.


이 장치는 사용자의 소유이며 LAN에 있으므로 시도해 볼 수 있습니다 nmap -sV --version-all the_device_hostname.
user2284570

답변:


4

흠, 이상해

16 진 ff = 10 진수 255이므로 논리적으로받는 응답은 다음과 같습니다.

MMcS 255.255.255.255 0.0.0.0 (네트워크 명확성을 위해 추가 된 점) 기본적으로 네트워크의 브로드 캐스트 주소입니다. 네트워크의 모든 IP가 MMCS 서비스 (예 : 255.255.255.255 네트 마스크 0.0.0.0)를 사용할 수 있다는 내용 일 수 있습니다 .

Vista에서 네트워크를 통한 멀티미디어 트래픽의 우선 순위를 얻는 데 사용할 수 있는 멀티미디어 클래스 스케줄러 와 같이 MMCS에는 여러 가지가 있습니다. 포트가 로컬 네트워크에서만 열린 이유를 설명합니다.

이 페이지 의 첫 번째 게시물 5에 대한 정보도 있습니다 .

나는 함께 할 수있는 뭔가가 될 것입니다 의심 MIP-MANET 셀 스위칭 휴대 전화 네트워크와 함께 할 수있는 뭔가가 될 것으로 보인다. 와우 MMCS 255.255.255.255에 대해 Google을 사용할 때 반환되는 이상한 것들이 있습니다. 마찬가지로 .

따라서 Windows MultiMedia Class Scheduler가 라우터와 통신하여 트래픽의 우선 순위를 정할 수있는 포트 일 가능성이 높지만 이상한 펑키 한 휴대폰 네트워크가 될 수 있습니다.



@kenorb 나는 자부심, 부끄러움 또는 약간의 위반을
느낄지 모르겠다

나는 당신이 어떤 사람들이 그들의 크리스마스 시간을 망치지 않도록 도와 주신 것을 자랑스럽게 생각합니다 :)
kenorb

17

실제로 이것은 여기에 설명 되어 있으며이 스크립트를 사용하여 악용 할 수 있는 제조업체에서 포함하는 소프트웨어 백도어 인 것으로 보입니다 .

지금까지 비 공급 업체 관련 담당자는 Linksys WAG200G, Linksys WAG320N (펌웨어 V1.00.12) 및 Netgear DM111P 라우터에 백도어가 있다고보고했습니다. 그러나 Netgear DG834, DG834G WPNT834 DG934, WG602, WGR614 라우터, Linksys WAG160N 및 DGN2000, WAG120N wireless-WRVS4400N과 같은 장치가있을 수 있습니다. 이 백도어는 다른 장치에도 존재할 수 있습니다.



@ D3C4FF : 가장 흥미로운 것은 정상적으로 작동 할 때 서비스의 목적지 ip_address가 무엇인지 알 것입니다. 어떤 사람이 자동으로 데이터를 수집하는지 알고 싶습니다.
user2284570

실제로이 질문은이 백도어 가 원본 슬라이드 쇼에서와 같이 만들어지는 주된 결과였습니다. backdoor_description.pptx :)
kenorb

1

이것은 펌웨어 업그레이드에 사용되는 SerComm 제조 라우터 및 홈 게이트웨이 장치 (Linksys, Netgear, Cisco)에있는 MIPS 포트입니다.

scfgmgr포트 32764에서 수신 대기중인 프로세스에 의해 관리됩니다 .

텔넷을 통해 액세스하면 접두사 ScMM또는 MMcS(시스템의 엔디안에 따라) 데이터 가 반환되는 것 같습니다.

페이로드가 뒤 따르는 헤더 (0xC 바이트)를 가진 매우 간단한 이진 프로토콜입니다.

헤더 구조 :

typedef struct scfgmgr_header_s {
    unsigned long   magic;
    int             cmd;
    unsigned long   len;
} scfgmgr_header;

이는 Cisco GPL 소스를 기반으로합니다 (예 : 폐기 된 ftp-eng.cisco.com의 wap4410n_v2.0.1.0_gpl.tgz).

실제 정보는 elvanderb의 설명 및 샘플 Python 코드를 참조하십시오 .


현재 힙 기반 버퍼 오버플로로 유명합니다 ( 백도어 ). 이것은 2013 년 크리스마스 에 Eloi Vanderbeken 에 의해 발견 되었지만 2008 년 중국 해커들에 의해 아마도 알려졌을 것입니다 ( cgi file ).

작동하는 방법은 다음과 같습니다.

힙 기반 버퍼 오버 플로우 :

힙 기반 버퍼 오버 플로우

메시지 :

메시지

따라서 간단한 넘침 메시지를 사용하면 많은 흥미로운 세부 정보를 얻을 수 있습니다.

스크린 샷-WiFi 사용자 이름 및 비밀번호

그러나 이로 인해 구성이 재설정 될 수 있으므로 집에서 구성하지 마십시오.

다음은이 포트를 통해 실행 된 라우터가 수행 한 역 명령입니다.

  1. nvram -덤프 구성.

  2. get var -구성 변수 가져 오기

    가능한 스택 기반 버퍼 오버 플로우 (변수가 사용자에 의해 제어되는 경우)

  3. set var -설정 구성 var

    스택 기반 버퍼 오버 플로우, 출력 버퍼 (크기 ≈ 0x10000)가 스택에 있습니다.

  4. commit nvram -/ tmp / nvram에서 nvram / dev / mtdblock / 3을 읽고 CRC를 확인하십시오.

    / tmp / nvram에서 nvram (/ dev / mtdblock / 3)을 설정하십시오. CRC 확인

  5. 브리지 모드를 ON으로 설정하십시오 (확실히 테스트 할 시간이 없었습니다)

    nvram_set(“wan_mode”, bridgedonly)
    nvram_set(“wan_encap”, 0)
    nvram_set(“wan_vpi”, 8)
    nvram_set(“wan_vci”, 81)
    system(“/usr/bin/killall br2684ctl”)
    system(“/usr/bin/killall udhcpd”)
    system(“/usr/bin/killall -9 atm_monitor”)
    system(“/usr/sbin/rc wan stop >/dev/null 2>&1”)
    system(“/usr/sbin/atm_monitor&”)
    
  6. 인터넷 속도 측정 표시 (다운로드 / 업로드)

  7. cmd (예, 쉘입니다 ...)

    • 특수 명령 :

      • 종료, 안녕, 종료-> 종료 ... (alive = 0)
      • cd : 디렉토리 변경 (약간의 WTF)
    • 다른 명령 :

      • stdout 처리 (?)의 정수 오버플로는 악용 할 수 없지만 여전히 ...
      • cmd 출력의 버퍼 오버 플로우 (다시 동일한 버퍼)…
  8. 파일 쓰기

    • 페이로드의 파일 이름
    • 루트 디렉토리 = / tmp
    • 디렉토리 탐색이 가능할 수도 있습니다 (테스트되지는 않았지만 공개 (sprintf (“/ tmp / % s”, payload))…)
  9. 리턴 버전

  10. 모뎀 라우터 IP를 반환

    • nvram_get (“lan_ipaddr”)
  11. 기본 설정 복원

    • nvram_set (“restore_default”, 1)
    • nvram_commit
  12. / dev / mtdblock / 0 읽기 [-4 : -2]

    • 뭔지 몰라, 테스트 할 시간이 없었어
  13. 디스크 (/ tmp / nvram)에서 nvram을 덤프하고 커밋

출처 : (슬라이드 쇼) Linksys가 내 크리스마스를 구한 방법!


일반적으로 이러한 종류의 포트는 공식적으로 IANA에 의해 이루어져야합니다 .

다음은 2007 년 LinuxQuestions 에서이 포트와 관련하여 unSpawn이 응답 한 내용입니다 .

공식적으로 IANA가 할당 한 포트 (0에서 약 30000 사이의 숫자) 인 경우 해당 번호는 / etc / services의 서비스 ( 'getent services portnumber'), Nmap과 같은 스캐너의 서비스 파일 또는 온라인과 일치해야합니다 Sans 'ISC와 같은 데이터베이스.

임시 포트 사용은을 사용하여 로컬로 구성 할 수 있습니다 /proc/sys/net/ipv4/ip_local_port_range sysctl. 이전 기본값은 1024-5000이며 서버의 경우 32768-61000의 값이 사용되고 일부 응용 프로그램은 1025-65535와 같은 것을 원합니다.

또한 이는 정적 서비스 간 매핑이며 / etc / services는 TCP/22특정 상황에서 반드시 필요하지 않은 SSH와 일치 한다고 말합니다 .

그것은 당신이 당신이 그것을 사용하여 심문 할 수있는 호스트에 액세스 할 수있는 경우는 다음에 바인드 한 어떤 프로세스가 모르는 어느 포트의 다른 경우 netstat -anp, lsof -w -n -i protocol:portnumber또는 fuser -n protocol portnumber. 이것이 가장 정확한 방법입니다.

그렇지 않으면 호스트에 액세스 할 수없는 경우 예를 들어 telnet을 통해 호스트에게 질문 할 수 있습니다. 이것은 정확한 방법이 아니며, 손상된 호스트의 경우 침입자에게 자신의 사건에 대해 경고 할 수 있습니다.

또한보십시오:

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.