리눅스 서비스 호스트
Telnet 의 이해에 대해 서로 다른 사람들이 서로 다른 관점을 가지고 있으며, Telnet 은 일종의 통신 프로토콜로 볼 수 있지만, 침입자에게 Telnet 은 원격 로그인 도구일 뿐이다. 침입자가 원격 호스트에 텔넷 연결을 설정하면 침입자는 대상 호스트의 하드웨어 및 소프트웨어 리소스를 사용할 수 있으며 침입자의 로컬 시스템은 키보드와 모니터가 있는 터미널과 같습니다.
2. 2 란 무엇인가? 침입자가 사용하는 텔넷?
(1) 텔넷은 호스트를 제어하는 첫 번째 수단입니다.
앞서 언급했듯이 침입자가 원격 호스트에서 명령을 실행하려면 IPC$ 연결을 설정하고 net time 명령을 사용하여 시스템 시간을 확인한 다음 at 명령을 사용하여 원격 실행 명령을 완료하는 예약된 작업을 설정해야 합니다. 이 방법은 원격으로 명령을 실행할 수 있지만 텔넷은 침입자에게 훨씬 편리합니다. 침입자가 원격 호스트에 텔넷 연결을 설정하면 로컬 컴퓨터처럼 원격 컴퓨터를 제어할 수 있습니다. 텔넷은 침입자가 흔히 사용하는 원격 제어 방식이라는 것을 알 수 있다. 원격 호스트에 대한 관리자 권한을 얻기 위해 최선을 다할 때 텔넷을 사용하여 로그인하는 경우가 많습니다.
(2) 발판으로 사용
침입자는 보이지 않는 육계를' 발판' 이라고 부른다. 그들은 종종 한 육계에서 다른 육계로 로그인하기 위해 이 방법을 사용하여 IP 주소가 침입 중에 노출되지 않도록 합니다. (존 F. 케네디, Northern Exposure (미국 TV 드라마), 육계, 육계) 이 과정은 5 장에서 자세히 소개될 것이다.
3. NTLM 검증 정보
텔넷이 너무 강하고 침입자가 가장 많이 사용하는 로그인 방식 중 하나이기 때문에 Microsoft 는 텔넷에 인증을 추가했습니다. 이를 NTLM 인증이라고 합니다. 텔넷 터미널에는 텔넷 서비스 호스트의 사용자 이름과 비밀번호뿐만 아니라 NTLM 인증 관계도 필요합니다. NTLM 인증은 많은 침입자를 차단하는 걸림돌처럼 텔넷 호스트의 보안을 크게 향상시킵니다.
4. 텔넷을 사용하여 로그인합니다
로그인 명령: 텔넷 호스트 [포트]
텔넷 연결 해제 명령: exit.
텔넷 연결을 성공적으로 설정하려면 원격 컴퓨터의 계정과 비밀번호를 제어하는 것 외에도 원격 컴퓨터는 텔넷 서비스를 시작하고 NTLM 인증을 취소해야 합니다. STERM, CTERM 등의 특수 Telnet 도구를 사용하여 연결할 수도 있습니다.
2.3.2 일반적인 원격 로그인 침입
1.텔넷의 일반적인 침입 단계
1: IPC$ 연결을 설정합니다. 여기서 sysback 은 앞서 설정한 뒷문 계정이며 명령은 그림과 같습니다.
2 단계: 그림과 같이 원격 호스트에서 비활성화된 텔넷 서비스를 시작합니다.
세 번째 단계: 그림과 같이 IPC$ 를 분리합니다.
4 단계: NTLM 인증 제거. 원격 컴퓨터의 NTLM 인증이 제거되지 않으면 그림과 같이 원격 컴퓨터에 로그인할 때 실패합니다.
그러나 침입자는 다양한 방법을 사용하여 NTLM 인증을 무효화합니다. NTLM 을 제거하는 방법에는 여러 가지가 있습니다. 침입자가 어떻게 NTLM 인증을 해제했는지 알 수 있는 몇 가지 일반적인 방법은 다음과 같습니다.
(1) 방법 1
먼저 그림과 같이 로컬 컴퓨터에 원격 호스트와 동일한 계정과 암호를 설정합니다.
그런 다음 시작 → 프로그램 → 액세서리로 이동하여 명령 프롬프트를 찾아 명령 프롬프트를 마우스 오른쪽 버튼으로 클릭한 다음 다음 다음 그림과 같이 속성을 선택합니다.
"다른 사용자로 실행" 앞의 상자를 선택한 다음 "확인" 버튼을 클릭합니다. 그런 다음 위의 경로를 따라 "명령 프롬프트" 를 찾아 마우스 왼쪽 버튼을 클릭하여 열어 그림과 같은 대화상자를 표시합니다.
그림과 같이 사용자 이름과 암호를 입력합니다.
OK 를 클릭하여 MS-DOS 인터페이스를 얻은 다음 그림과 같이 MS-DOS Telnet in 을 사용합니다.
"telnet192.168.27.128" 을 입력하고 캐리지 리턴을 한 후 결과 인터페이스에 "y" 를 입력하면 비밀번호가 전송되고 로그인됩니다
최종 결과는 그림과 같습니다.
그림 2-47 은 원격 호스트가 텔넷 최종 사용자를 위해 연 셸이며, 이 셸에 입력한 명령은 원격 컴퓨터에서 직접 실행됩니다.
예를 들어 "net user" 명령을 입력하여 그림과 같이 원격 호스트의 사용자 목록을 확인합니다.
(2) 방법 2
이 메서드는 NTLM.EXE 도구를 사용하여 NTLM 인증을 제거합니다. 먼저 원격 호스트에 IPC$ 연결을 설정하고 NTLM.EXE 를 원격 호스트에 복사한 다음 at 명령을 통해 원격 시스템에서 NTLM.EXE 를 실행하도록 합니다. 전체 과정이 그림과 같다.
NTLM.EXE 에서 예약된 작업을 수행한 후 "telnet192.168.27.128" 명령을 입력하여 원격 컴퓨터에 로그인할 수 있습니다
마지막으로 로그인 인터페이스를 얻을 수 있습니다.
로그인 인터페이스에 사용자 이름과 암호를 입력합니다. 사용자 이름과 암호가 올바르면 원격 컴퓨터에 로그인하여 원격 컴퓨터의 셸을 얻습니다.
로그인이 성공하면 그림과 같이 로그인 인터페이스가 제공됩니다.
또는 그림과 같이 ResumeTelnet.exe 와 함께 제공되는 프로그램 ResumeTelnet.exe 를 사용하여 원격 호스트의 NTLM 인증을 "resume telnet. exe// server username password" 형식으로 복구할 수 있습니다.
실행 후 그림과 같이 나타납니다.
오른쪽 그림에서 볼 수 있듯이 resumeTelnet.exe 는 대상 호스트의 telnet 서비스를 종료하고 NTLM 인증을 재개했습니다.
고급 침입 게임 해적에 원격으로 로그인
앞의 소개에서 알 수 있듯이, 컴퓨터가 NTLM 인증을 사용하더라도 침입자는 쉽게 NTLM 인증을 해제하고 텔넷 로그인을 할 수 있습니다. 침입자가 포트 23 을 사용하여 로그인하면 관리자가 쉽게 찾을 수 있지만 불행히도 침입자는 일반적으로 기본 포트 23 을 통해 텔넷을 하지 않습니다. 그렇다면 침입자는 어떻게 텔넷 포트와 텔넷 서비스를 수정하여 자신의 행방을 숨길 수 있을까? 다음은 이 프로세스를 설명하고 이 프로세스를 완료하는 데 필요한 도구에 대한 몇 가지 일반적인 예입니다.
X-Scan: NT 약한 비밀번호를 사용하는 호스트를 스캔하는 데 사용됩니다.
OpenTelnet: NTLM 인증용, Telnet 서비스 열기, Telnet 서비스 포트 수정.
AProMan: 프로세스를 보고 종료하는 데 사용됩니다.
Instsrv: 호스트에 서비스를 설치하는 데 사용됩니다.
(1)AProMan 소개
AproMan 은 바이러스 백신 소프트웨어에 의해 살해되지 않고 명령줄을 통해 프로세스를 보고 조사할 수 있습니다. 예를 들어, 침입자가 대상 호스트에서 바이러스 백신 소프트웨어를 실행 중인 것으로 밝혀져 업로드된 도구가 바이러스 백신 소프트웨어에 의해 살해될 경우, 도구를 업로드하기 전에 바이러스 백신 방화벽을 끕니다. 사용 방법은 다음과 같습니다.
C:/AProMan.exe -a 는 모든 프로세스를 표시합니다.
C:/AProMan.exe -p 는 포트 프로세스 연결을 표시합니다 (관리자 권한 필요).
C:/AProMan.exe -t [PID] 지정된 프로세스 번호를 가진 프로세스를 종료합니다.
C:/a proman. exe-f[ 파일 이름] 프로세스 및 모듈 정보를 하나의 파일에 저장합니다.
2)instsrv 소개
Instsrv 는 서비스 이름과 서비스가 실행하는 프로그램을 자유롭게 지정할 수 있는 명령줄을 사용하여 서비스를 설치 및 제거할 수 있는 프로그램입니다. Instsrv 는 아래와 같이 더 자세한 용법이 그림 2-6 1 에 나와 있습니다.
설치 서비스: 프로그램 실행 위치 >
서비스 제거: instsrv 제거
훌륭한 원격 서비스 관리 도구인 SC 도 있습니다. 원격 컴퓨터에서 서비스를 로컬로 질의, 시작, 정지 및 삭제할 수 있는 명령줄 도구입니다. 그의 용법은 매우 간단해서 여기서는 소개하지 않는다. 침입자가 텔넷을 통해 로그인하고 텔넷 뒷문을 남기는 방법을 보여주는 예가 있습니다.
첫 번째 단계: NT 약한 암호로 호스트를 스캔하십시오. X-Scan 의 스캔 모듈에서 다음과 같이 NT-SERVER 약한 암호를 선택합니다.
그런 다음' 스캔 매개변수' 에서 스캔 범위를' 192. 168.27.2 부터192.1까지 지정합니다
잠시 기다린 후 스캔 결과가 그림과 같이 나타납니다.
2 단계: openTelnet 을 사용하여 원격 호스트 telnet 서비스를 열고, 대상 호스트 포트를 수정하고, NTLM 인증을 삭제합니다.
침입자는 원격 호스트에서 텔넷 서비스를 시작하는지 여부에 관계없이 도구 opentelnet 을 통해 해결할 수 있습니다. 예를 들어 "open telnet//192.168.27.129 administrator" 명령을 사용합니다
3 단계: 필요한 파일 (instsrv.exe, AProMan.exe) 을 원격 호스트에 복사합니다.
먼저 IPC$ 를 설정한 다음 네트워크 하드 드라이브를 매핑하여 필요한 파일을 원격 컴퓨터의 c:/winnt 디렉토리에 복사하여 붙여넣습니다. 구체적인 과정은 그림과 같다.
복사가 성공하면 그림과 같이 나타납니다.
4 단계: 텔넷 로그인.
MS-DOS 에' telnet192.168.27.12966' 명령을 입력하여 원격 호스트/kloc 에 로그인합니다
5 단계: 방화벽 프로세스를 종료합니다.
침입자가 트로이와 같은 프로그램을 원격 호스트에 복제하고 실행해야 하는 경우 원격 호스트에서 안티바이러스 방화벽을 미리 종료합니다. 트로이와 같은 프로그램이 원격 호스트에 복제되지는 않았지만, 이 과정을 소개하고 싶습니다. 침입자 로그인이 성공하면 AProMan 프로그램을 사용하여 c:/winnt 디렉토리로 들어갑니다. 먼저 AProMan 명령을 통해? A 모든 프로세스를 보고 바이러스 백신 방화벽 프로세스의 PID 를 찾고 마지막으로 AProMan 을 사용합니까? T [PID] 는 안티바이러스 방화벽을 죽입니다.
6 단계: 더 미묘한 텔넷 서비스를 설치합니다.
나중에 컴퓨터에 로그인하기 위해 침입자는 항상 첫 로그인 후 뒷문을 남깁니다. 다음은 침입자가 시스템 서비스를 설치하여 텔넷 서비스를 영원히 작동시키는 방법입니다. 서비스를 설치하기 전에 Windows 운영 체제가 Telnet 서비스를 어떻게 제공하는지 알아야 합니다. 컴퓨터 관리를 열고 그림과 같이 텔넷 서비스의 속성을 봅니다.
Telnet 속성 창에서 실행 파일의 경로가 "C:/WINNT/ SYSTEM32/tlntsvr.exe" 를 가리키는 것을 볼 수 있습니다. Tlntsvr.exe 프로그램은 Windows 시스템에서' 원격 로그인 서비스' 를 제공하기 위해 특별히 고안된 것입니다. 즉, 서비스가 프로그램을 가리키면 해당 서비스는 텔넷 서비스를 제공합니다. 따라서 침입자는 새 서비스를 사용자 정의하고 tlntsvr.exe 를 가리켜 해당 서비스에서 제공하는 텔넷 서비스를 통해 로그인할 수 있습니다. 이렇게 하면 원격 호스트에서 텔넷 서비스가 비활성화된 경우에도 침입자가 방해받지 않고 원격 컴퓨터에 로그인할 수 있습니다. 이 방법을 텔넷 백도어라고 합니다. 다음은 위의 과정이 어떻게 이루어졌는지입니다. 먼저 그림과 같이 instsrv 가 있는 디렉토리를 입력합니다.
그런 다음 instsrv.exe 를 사용하여' SYSHEALTH' 라는 서비스를 만들고 이 서비스를 c:/winntz/system32/tlntsvr.exe 를 가리키며 instsrv.exe 의 사용법에 따라 c:/winntz/system32/tlntsvr.exe 를 가리킵니다
이름이' SYSHEAHTH' 인 서비스가 성공적으로 설정되었습니다. 겉으로 보면 서비스와 원격 연결은 상관없지만, 실제로 서비스는 침입자가 남긴 텔넷 뒷문 서비스다.
컴퓨터 관리를 통해 서비스가 원격 컴퓨터에 추가되었음을 알 수 있습니다. 침입자는 일반적으로 이 서비스의 시작 유형을' 자동' 으로 설정하고 그림과 같이 기존의' 텔넷 서비스' 를 중지 및 비활성화합니다.
인증을 통해 원격 호스트의 텔넷 서비스가 중지 및 비활성화되었지만 침입자는 여전히 텔넷을 통해 원격 호스트를 제어할 수 있음을 알 수 있습니다. 이러한 변경 사항을 통해 관리자가 "netstat" 를 사용하더라도? N' 명령을 사용하여 포트 66 이 텔넷 서비스를 제공하는지 알 수 없는 열린 포트 번호를 확인합니다.
그리고, 참, 여기가 netstat 인가요? N 명령. 이 명령은 그림과 같이 로컬 시스템의 현재 연결을 확인하는 데 사용됩니다. 여기서' Proto' 는 현재 연결된 프로토콜 유형 (예: TCP 프로토콜, UDP 프로토콜 등) 으로 나열됩니다. 로컬 주소' 는 로컬 호스트의 IP 주소로 나열됩니다. 그림에서 볼 수 있듯이 로컬 호스트에는' 192. 168.0.2' 와'192./'라는 두 개의 IP 주소가 있습니다 외부 주소' 는 원격 호스트의 IP 주소로 나열됩니다. 상태 열은 설정, TIME_WAIT, SYN_SENT 등을 포함한 현재 접속 상태입니다.
자주 묻는 질문과 대답
1. q: 원격 호스트의 사용자 이름과 암호를 받았지만 그림과 같이 opentelnet 에 연결할 수 없습니다. 왜요
A: 반환된 오류 번호' 53' 에 따라 대상 호스트가 서버 서비스를 시작하지 않았거나 IPC$ 를 열지 않았습니다.
Q: 텔넷 침입을 어떻게 막을 수 있습니까?
대답:
계좌 비밀번호의 루봉성을 보장하고 폭력에 의해 깨지는 것을 방지하다.
Telnet 서비스를 비활성화합니다.
Opentelnet 은 IPC$ 를 통해 구현되므로 IPC$ 를 끄면 특정 상황이 발생하지 않습니다.
네트워크 방화벽을 설치합니다.