WireShark는 패킷 분석 도구이다.
98byte인 이유 = 이더넷 헤더 + IP헤더 + ICMP
DVWA에서 로그인 하고 로그인 정보 보기
FTP_sniff.pcapng 분석 (Id Password 찾기)
telnet_sniff.pcapng (Id Password 찾기)
위의 사진의 결과 id는 blackpink인 것을 알 수 있었다.
그래서 PacketDetails에서 String으로 blackpink를 검색한 결과 3-Way-Handshake의 모습을 볼 수 있었다.
- 3-Way-Handshake
- TCP 연결시 서로의 연결에 대한 정보를 교환하는 방법으로 연결을 요청하는 쪽에서 [SYN]을 보내면 요청 받는 쪽이 연결이 가능한 상태시 [SYN, ACK]가 날라온다 그럼 [ACK]를 보내 연결을 한다. ( # 연결 불가능 할시 [RST,SYN]가 날라옴)
흐름을 보기위해 TCP Stream을 누르면
위와 같이 id : blackpink password : love 인 것을 알 수 있다.
(# 아이디 및 명령어가 두번씩 쳐진 것은 echo의 영향)
ftp-clientside101.pcapng (이미지 찾기)
패킷을 분석해보면 로그인을 하였고, 우리의 문제는 파일을 찾는 것이다.
우선적으로 파일을 전송하기 위해서는 파일자체는 데이터가 큰 편이므로 length가 크고 분할 혹은 단편화 과정을 거친 것 처럼 보이는 패킷이 연속되어 있는 것을 보면 된다. 또한 파일을 찾는 것이니 파일 전송 프로토콜인 FTP를 기반으로 요청패킷을 분석해 봤다.
위의 사진처럼 pantheon.jpg를 요청한 것을 볼 수 있고 이 패킷의 번호를 토대로 그 이후 패킷을 보면
위의 사진처럼 3-Way-Handshake을 거친 후 1514로 분할 혹은 단편화(위의 경우 TCP/IP 통신을 했으므로 분할과정을 거쳤다)과정을 거친 모습이 보인다. 그럼 3-Way-Handshake이후 패킷의 흐름을 보면
.jpg의 매직넘퍼인 JFIF가 보이는 것을 알 수 있다. 이 파일을 Raw로 변경한 후 저장하면 이미지를 볼 수 있다.
whoisshe.pcapng (이미지 찾기)
패킷을 분석해보면 우선 80번 포트와 통신을 하는 것을 볼 수 있었다. -> HTTP통신이므로 웹이다.
그래서 http.request로 검색한 결과 이용자는 yura.jpg를 요청한 것을 볼 수 있었다 위 문제와 동일한 방법으로 251번 패킷 이후를 분석해보면
위와 같이 TCP연결을 거친 후 파일전송이 시작된 것을 볼 수 있다. 흐름으로 보면
위 문제의 FTP전송과는 다르게 HTTP는 요청과 응답 메시지도 흐름에 포함되는 것을 볼 수 있는데 이렇게 되면 단지 Raw로 바꾸어 jpg로 저장하는 방법은 안된다. -> 헥스 에디터 도구를 이용하여 파일 매직넘버 이전부분을 지운 후 .jpg로 저장하면 이미지를 얻을 수 있다.
<유라 이미지 나중에 등록>
네이버 검색캡쳐.pcap (검색 결과 찾기)
네이버로 검색한 글자를 찾는 문제이다. 우선 네이버에 검색을 했을 시 흐름을 머리속으로 생각해보면 입력 할 때마다 추천 검색어가 등장하는 것을 알 수 있고, 또한 검색을 했을 시 서버에 검색 결과를 요청을 해야 한다는 것을 알 수 있다. 이를 토대로 HTTP GET을 검색해보면 된다.
위 사진을 보면 steve jobs를 검색한 것을 알 수 있었다.
lemieux.pcap (파티에 참석하기 위한 비밀문구는 무엇일까요?)
파티에 참석하기 위해 파티 초대장을 이메일로 받아야하는데, 초대장을 보낸 패킷을 분석하는 문제이다.
위의 사진처럼 mail단어를 기반으로 검색한 결과 손쉽게 얻을 수 있었다. 메시지 전체를 알기 위해 복사를 해보면
Hey! I want to plan a party at your venue. I'm expecting a lot of people though and I don't want anyone who isn't supposed to be there showing up for the fun. If you can do me a favor and make sure to ask for the phrase "brooklyn beat box" before letting attendees in, that would be awesome!
와 같은 내용을 알 수 있다.
회사 내부의 스파이를 잡아라
- ch01) evidence01.pcap
어떻게 접근해야 할 지 모를때는 흐름별로 조사하는 방법으로 조사해본다.
2번째 흐름을 보던중 recipe.docx라는 레시피 파일이름을 알 수 있었고, 또한 Sec558user1이라는 유저를 알 수 있었다.
이 정보를 토대로 1. docx파일이 오갈만한 연속된 length를가진 패킷을 찾는방법 2. 계속해서 흐름 번호를 늘려보며 분석하는 방법을 사용하여 분석하면
recipe.docx가 등장하고 docx의 파일 매직넘버인 PK를 확인할 수 있었다. -> PK이전을 지우면 레시피를 얻을 수 있다
예전에는 Office File의 확장자가 doc, ppt, xls 이었음.
요즘에는 Office File의 확장자가 docx, pptx, xlsx --------> XML형식으로 작성됨 : File Signature는 PK (50 4B 03 04)가 됨
<레시피 파일 이미지 나중에 업로드>
- ch02) evidence02.pcap
( # SMTP란 인터넷에서 이메일을 보내기 위해 이용되는 프로토콜이다. 사용하는 TCP 포트번호는 25번이다.)
앞부분을 보면 이렇게 암호화되어있지만 ID와 Password를 알 수 있다. (암호의 경우 해쉬로 판단된다.)
또한 이메일 주소들을 알 수 있다. (보내는 사람이 sneakyg33k로 받는 사람은 sec558 위 문제에서 얻은 user정보이다. -> 받는 사람은 직원으로 추정, 보내는 사람은 범인 Ann이다.)
sneakyg33k을 토대로 검색한 결과 두번째 메일을 찾을 수 있었다. 패킷 No을 보면 메일을 두번 보낸 것을 확인 할 수 있다.
흐름을 본 결과 "secretrendezvous.docx"를 보낸것을 알 수 있었다.
# Email과 Web Mail 차이는??
- Web Mail은 웹브라우저로 열어봅니다. ----> ex) 네이버, 구글, 다음 등등
- Email은 Outlook, Outlook Express, 메일(Win10) 확장자는 eml( tcp stream eq 1을 eml로 저장한 후, 메일 또는 Outlook으로 열어보면 됨)
<이메일은 나중에 업로드>
- ch03) evidence03.pcap
검색한 영화를 찾는 문제이므로 http.request.method == GET 혹은 frame matches search로 찾아보면
위와 같이 3번의 검색을 한 것을 알 수 있다. 위의 검색을 토대로 search 혹은 movie로 검색하여 영화를 검색해서 본 영화가 무엇인지 알아보면
위와 같이 영화 id를 가진 단 하나의 패킷을 볼 수 있었다.
이후 계속
- ch04) evidence04.pcap
스캐닝
- 열린포트에서는 ACK/SYN로 응답, 닫힌포트에서는 ACK/RST로 응답 ----> 열린포트를 알 수 있음
1. TCP SYN Scan (Half Open Scan, Stealth scan)
- SYN만 보내고, 서버의 포트가 열려있는지만 확인하고, 마지막 ACK를 안보냄 ----> 연결이 이루어지지 않음
2. TCP ACK Scan
- ACK를 보내서, 응답이 없으면 열린포트, RST가 오면 닫힌 포트
3. UDP Scan
- 실행중인 포트에서 UDP응답이 옴 (UDP는 Handshaking이 없으므로, 닫힌포트는 ICMP destination unreachable)
4. TCP Connect Scan (연결 완성)
- SYN를 보내서, ACK/SYN가 오면, ACK를 보내줌 ----> 정상연결
5. TCP Xmas
- TCP Flag를 모두 1로 만들어서 보내는 공격 : 111111 -----> Flag 6개를 모두 활성화(엉터리 로직)
- 열린포트는 응답없음, 닫힌포트는 RST를 보냄 ---> 구분 가능
6. TCP RST
- RST를 보내는 기법 (잘 사용 안함)
* Apple MAC : Hardware와 OS를 같이 판매 ----> MAC주소에 Apple이라고 나옴
Windows : Hardware의 MAC주소가 Network 장비 회사, OS는 TTL=128로 응답, 135, 139번 포트 열려있음
TCP Flag 순서 : UAPRSF
U:32, A:16, P:8, R:4, S:2, F:1 ----> 오른쪽부터 2의 0승, 2의1승, 2의2승....
열린포트에서 어떻게 응답?? ACK/SYN ---> 010010 ----> 16+2 = 18 디스플레이 필터에 입력 tcp.flags == 18
- ACK로 응답하는지 확인하려면? 010000 ----> 디스플레이 필터에 입력 tcp.flags == 16
'SK Rookies 9 > Network System Secure' 카테고리의 다른 글
로그 분석 (0) | 2022.09.22 |
---|---|
Metasploit 실습 (0) | 2022.09.21 |
Exploit (0) | 2022.09.20 |
암호화 (0) | 2022.09.19 |
9월 15일 (0) | 2022.09.16 |