일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- public static final
- down casting
- 깊은 복사
- dbeaver
- 파이참
- finalize
- access modifier
- lambda
- extends
- 엔드포인트
- 자바
- has-a
- Java
- 내부클래스
- Inbound
- identityHashCode
- 얕은 복사
- Wrapper class
- shebang
- Up Casting
- generic programming
- 셔뱅
- node.js
- pycharm
- Stream
- arraycopy
- parameter group
- 스트림
- singletone
- constructor
- Today
- Total
٩(๑•̀o•́๑)و
chapter 5. Telnet 패킷 분석 본문
텔넷(Telecommunication Network Protocol)이란?
:원격지 컴퓨터를 액세스하기 위한 사용자 명령들과 TCP/IP 기반의 프로토콜
->자신이 사용권한을 가지고 있다는 전제하에 다른 사람의 호스트 컴퓨터를 원격지에서 액세스할 수 있는 기능을 제공한다.
chapter_5.pcap을 오픈하고 [Conversation]을 클릭하면 Telnet(포트번호 23)만이 존재함을 알 수 있다.
이 라인을 필터링 해보면 처음 1,2,3라인에서 [SYN],[SYN,ACK],[ACK]를 보아 TCP의 세션연결과정인 3 Way Handshaking임을 알 수 있다.
그리고 라인 4~268에서는 로그인 및 명령어 등을 사용한 내역이 포함되어 있다.
마지막으로 라인 269~272를 보면 [FIN,ACK],[ACK],[FIN,ACK],[ACK]로 통신종료를 했음을 알 수 있다.
이제 패킷을 상세히 확인해보자.
먼저 이더넷 헤더를 보면
필드 |
내용 |
Destination |
00:00:c0:9f:a0:97 (목적지의 mac주소) |
Source |
00:a0:cc:3b:bf:fa (송신지의 mac주소) |
Type |
IPv4 (이더넷 다음에 오는 헤더) |
이제 이더넷헤더 다음에 오는 IPV4헤더를 보면
필드 |
내용 |
Version |
4 (IP 버전정보, IPv4) |
Header Length |
20bytes (헤더길이 정보) |
Differentiated Serice Field |
0x00 (서비스종류 없음) |
Total Length |
52 (헤더 및 데이터길이 합산) |
Identification |
0x16a8 (패킷소속 고유번호) |
Flags |
0x02 (패킷분할 안됨) |
Fragment offset |
0 ( 첫번째는 항상 0 값임) |
Time to live |
64 (패킷수명 최대홉수) |
Protocol |
TCP (IPv4 헤더 다음에 따라오는 프로토콜) |
Header Checksum |
0xa2b8 (헤더오류 검증정보) |
Source |
192.168.0.2 (송신자 IP주소) |
Destination |
192.168.0.1 (수신자 IP주소) |
IPv4다음으로 오는 TCP헤더는
필드 |
내용 |
Source Port |
1254 (송신자의 포트번호) |
Destination Port |
23 (수신자의 포트번호)(Telnet) |
Sequence Number |
1 (데이터 순서를 나타내는 번호) |
Acknowledge Number |
1 (다음에 수신할 번호) |
Header Length |
32bytes (TCP헤더 길이) |
Flags |
0x10 (ACK) |
Window Size |
32120 (한 번에 수신할 수 있는 패킷사이즈) |
Checksum |
0xf87c (헤더오류 검증정보) |
Options |
- (기타 조정기능 정보) |
이제 아까 [conversation]에서 [Follow stream]을 해보자. 이를 통해서 분할되어 있는 관련 패킷을 조합해서 관련된 내용을 볼 수 있다.
명령어 |
내용 |
login: .."........"ffaakkee |
fake 계정을 입력함. echo현상발생 |
Password:user |
암호 user를 입력함 |
Welcome to OpenBSD: |
서버배너정보가 보임 |
$ llss $ llss --aa |
ls 및 ls -a 명령어를 입력함. echo현상발생 |
$ //ssbbiinn//ppiinngg wwwwww..yyaahhoooo..ccoomm |
/sbin/ping www.yahoo.com 명령어를 입력하여 www.yahoo.com에 ping을 전송함 echo 현상발생 |
$ eexxiitt |
exit 명령어를 입력함. echo현상발생 |
이상으로 telnet 접속계정 및 암호, 그리고 사용했던 명령어들을 확인 할 수 있다.
여기서 echo현상이란 것은 1개 문자열이 2개로 보이는 것이다. 예를 들어 fake계정을 입력할 때 사용자가 계정의 첫 번째 문자열 f를 입력하면 f 문자열이 서버로 전송되고, 다시 서버에서 동일한 문자 f를 리턴하면서 화면에 입력한 f문자열이 보여지는 echo현상이 발생된다. 이와 같은 현상으로 패킷 수집 결과에서도 사용자가 보낸 문자열 f가 한번 보이고, 다시 서버에서 응답한 문자열 f가 수신되는 것을 확인할 수 있다.
[출처]
security 네트워크 패킷 포렌식 (https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=18680157)
'네트워크 패킷 포렌식('15~16. SISS)' 카테고리의 다른 글
네트워크 패킷 포렌식 스터디 발표 자료 (0) | 2021.04.08 |
---|---|
chapter 6. 파일 magic number (0) | 2016.05.29 |