
CTF 주최: 5부 – Jeopardy 스타일 CTF 이벤트에 대한 자세한 콘텐츠를 만드는 방법
다른 도전 과제를 만드는 예를 살펴보겠습니다. "이 파일에서 플래그를 찾는 것"보다.
초급 네트워크 분석에 대한 주제를 만들고 싶습니다. 다양한 프로토콜에 대한. 내 머리 꼭대기에서 질문을 포함하고 싶습니다. DNS, NNTP(Network News Transport Protocol) Telnet, FTP 및 IRC에서 그것들은 모두 암호화되지 않은 프로토콜이라고 생각합니다(그리고 HTTP보다 더 재미있습니다. 매우 일반적이기 때문에 많은 도전 과제에서 사용됩니다.)
우리는 우리만의 .pcap 파일을 만들고 싶습니다. 그리고 우리는 로아 캐릭터 슬롯이 깨끗해지기를 원합니다(보통 컴퓨터에는 아마도 모든 종류의 로아 캐릭터 슬롯이 있기 때문입니다). 이메일이나 채팅처럼 정기적으로 인터넷과 대화하는 것 클라이언트). 깨끗한 VM을 얻는 쉬운 방법은 Kali VM을 다운로드하는 것입니다. 에서 하나 찾아보세요..). 용기가 있다면 더 자주 사용하는 VM을 사용할 수 있습니다. 저는 그것을 사용하는 Windows VM이 있습니다. 나는 이 예를 위해 사용하기로 결정했습니다. 원하는 VM이 있으면 계획을 세울 수 있습니다. 로아 캐릭터 슬롯이 무엇을 하길 원하는지. 더 깨끗한 pcap을 생성하려면 적극 권장합니다. tcpdump나 Wireshark를 시작한 다음 시작하는 대신 미리 계획을 세우세요. 그것을 알아 내려고 노력 중입니다. Wireshark가 아직 설치되지 않았다면 설치하세요. (libpcap을 사용하여 수집할 수 있음).
용DNS, 우리가 하는 모든 일은 DNS 항목을 생성하고 미리 선택할 필요 없이 로아 캐릭터 슬롯에서 질문을 생성할 수 있기 때문에 특별한 작업을 수행할 필요는 없다고 생각합니다.
용NNTP, 지금 보안을 듣습니다! 팟캐스트를 통해 GRC 뉴스그룹에 연결할 수 있다는 것을 알고 있습니다. news.grc.com에 연결하려면 다운로드, 설치 및 준비해야 하는 Gravity를 추천합니다.
용텔넷, 연결할 수 있는 텔넷 서버를 찾아야 합니다. 흥미로울 것입니다. MUD는 텔넷 서버를 사용하는데, 저는 구글링을 하다가 toril Mud를 찾았습니다. torilmud.org:9999에 연결할 수 있습니다. VM에 Telnet이 설치되어 있는지 확인하십시오. (Windows를 사용하는 경우 Putty를 다운로드하세요. 일반적으로 SSH 클라이언트로 사용되지만 Telnet을 통해서도 연결할 수 있습니다.) torilmud.org:9999에 연결하려면 명령줄(또는 Putty)에서 telnet을 준비하세요. 준비가 되면 거기에 계정과 캐릭터를 생성하고 로그인할 때 "깃발은 거북이입니다"라고 말하고 로그아웃하겠습니다.
지금은FTP. 연결하려면 FTP 로아 캐릭터 슬롯트가 필요합니다. 데비안 미러에 대해 인터넷 검색을 하다가 임의의 FTPp 로아 캐릭터 슬롯트인 Mirrors.bloomu.edu를 선택해 보겠습니다. 우리는 거기에 로그인해야 합니다(익명으로, 비밀번호를 사용하여[이메일은 보호됨]), 디렉터리를 찾아 .deb 파일을 다운로드합니다(ASCII 모드에서 데이터 모드로 전환하지 않고).
용IRC, 클라이언트가 필요합니다. HexChat을 다운로드하는 것이 좋습니다. 재미있는 사용자 이름(및 백업 사용자 이름)을 갖도록 구성하고 chat.freenode.net(포트 6697)에 연결하도록 설정하되 아직 연결을 클릭하지 마세요.
이제 .pcap이 너무 깨끗하지 않은지 확인하려면 임의의 위 작업을 수행하는 로아 캐릭터 슬롯에 브라우저의 웹로아 캐릭터 슬롯트를 확인하세요. Firefox를 엽니다(또는 가장 좋아하는 브라우저)를 선택하고 임의의 로아 캐릭터 슬롯트(예: torilmud.com) .pcap에 일부 HTTP 트래픽도 있는지 확인하세요.
이제 스크립트가 준비되었으므로 모든 내용을 확인하십시오. 사용하려는 프로그램이 열려 있고 연결할 준비가 되어 있습니다. 그런 다음 Wireshark를 열고 해당 기본 인터페이스에서 모든 로아 캐릭터 슬롯을 수집하기 시작합니다.
그런 다음 나는 적당한 속도로 대본을 따랐습니다.
나는 Gravity에서 news.grc.com에 연결했고, grc.cookies 그룹을 방문하고 몇 가지 메시지를 읽어보세요. 그런 다음 torilmud.com으로 이동했습니다. Firefox에서 일부 웹 로아 캐릭터 슬롯을 생성합니다. 나는 "telnet torilmud.org 9999"를 실행하여 Toril Mud에 접속하여 계정과 캐릭터를 생성한 후 캐릭터는 "플래그는 망했다"고 말하고 종료합니다.
그런 다음 "ftp"가 있는 Putty 세션에서 Enter 키를 쳤습니다. mirrors.bloomu.edu”를 사용하여 익명으로 연결하고 로그인합니다. 미리 정해진 이메일 주소. Debian의 미러 폴더에 들어가서 임의의 .deb 파일을 다운로드했습니다(특히 데이터 모드로 전환하지 않았습니다).
그런 다음 Wireshark를 중지하고 .pcap을 저장했습니다.
다음으로 .pcap로 돌아가 로아 캐릭터 슬롯을 분석하고 내가 한 일을 바탕으로 질문을 생각해 보세요.
먼저 좋은 질문을 찾기 위해 DNS 로아 캐릭터 슬롯을 기준으로 정렬했습니다. 첫 번째 DNS 항목은 "chat.freenode.net"이므로 첫 번째 질문을 만들었습니다.
1. 이 .pcap에서 검색된 첫 번째 도메인 이름은 무엇입니까(도메인 이름의 예:)?
그런 다음 NNTP 로아 캐릭터 슬롯을 살펴보았습니다. 나는 첫 번째 그룹을 찾았습니다. (grc.cookies)에 가입하고 두 번째 질문을 만들었습니다.
2. 이 .pcap에서 사용자가 구독/액세스한 첫 번째 뉴스 그룹은 무엇입니까?
뉴스 그룹 로아 캐릭터 슬롯에서 잠재적인 바이러스에 대한 메시지를 보았습니다: “애드웨어:Win32/RelatedLinks.” 그래서 세 번째 질문을 만들었습니다.
3. 뉴스 그룹의 메시지 중 하나는 사용자에게 잠재적인 바이러스를 경고하는 팝업에 대해 설명합니다. 잠재적인 바이러스의 전체 이름은 무엇이었나요?
다음으로 Telnet/MUD 로아 캐릭터 슬롯에 대해 질문하고 싶습니다. 나 MUD(포트의 torilmud.org) 연결에 대한 간단한 것부터 시작했습니다. 9999).
4. 사용자가 이 .pcap의 MUD에 액세스했습니다. 액세스한 MUD의 도메인 이름과 게시물은 무엇이었습니까('DOMAIN:PORT' 형식)www.google.com:443)?
나는 Telnet/MUD 로아 캐릭터 슬롯을 더 살펴보고 다음과 같은 결론을 내렸습니다. 다섯 번째 질문입니다.
5. 이 세션에서 사용자는 MUD에 연결할 때 새 사용자를 생성했습니다. '사용자 이름:비밀번호' 형식으로 성공적으로 생성된 사용자 이름과 비밀번호 조합은 무엇입니까?
나는 Telnet/MUD 로아 캐릭터 슬롯을 계속해서 살펴보다가 나왔습니다. 여섯 번째 질문은 제가 말한 깃발에 관한 질문입니다. "완전히"입니다.
6. 제공된 .pcap에서 사용자는 MUD에 즉시 로그인하여 깃발에 대해 이야기하는 캐릭터를 생성했습니다. 캐릭터가 말한 깃발은 무엇입니까?
다음으로 FTP 로아 캐릭터 슬롯으로 전환하여 로그인 정보에 따른 일곱 번째 질문(익명:[이메일은 보호됨]).
7. 제공된 .pcap에서 사용자는 FTP 로아 캐릭터 슬롯트에 로그인했습니다. FTP 로아 캐릭터 슬롯트에 로그인할 때 사용한 비밀번호는 무엇인가요?
FTP 로아 캐릭터 슬롯이 계속되면서 다음에 대해 질문하고 싶었습니다. 참가자들이 찾을 수 있도록 다운로드한 파일을 만들었습니다. 여덟 번째 질문입니다.
8. 제공된 .pcap에서 사용자는 FTP 로아 캐릭터 슬롯트에 로그인했습니다. 여기에서 다운로드한 파일 이름은 무엇입니까?
참여자가 다운로드한 파일을 추출하도록 강제하려면 .pcap에서 다운로드한 파일의 해시에 대해 질문하고 싶었습니다. 파일(해시를 얻으려면 .pcap에서 추출해야 하므로) 아홉 번째 질문을 만들었고, 이를 위해 파일을 추출해야 했습니다. .pcap을 직접 실행하고 sha256sum을 실행하여 해시를 가져옵니다.
9. 이 세션에서 사용자는 FTP 로아 캐릭터 슬롯트에 로그인했습니다. 다운로드한 파일의 sha256 해시는 무엇입니까?
IRC 연결은 이제 암호화를 사용하므로 제가 교통 체증으로 인해 저처럼 로그인하고 채널에 연결하는 모습을 볼 수 없었습니다. 예상됨. 그러다가 우리가 어떤 IRC 도메인 이름과 포트를 가지고 있는지에 대한 질문을 깨달았습니다. linked to가 좋은 질문이 될 것입니다(chat.freenode.net:6697이었습니다).
10. 이 세션에서 사용자는 IRC 서버에 연결되었습니다. 연결한 서버의 도메인 이름과 포트는 무엇입니까? (www.google.com:443과 같이 도메인 이름:포트 형식)
다음 게시물에서는 귀하의 질문에 대한 솔루션 슬라이드를 만드는 방법을 살펴보겠습니다.