3. tcpdump 플래그(flags)
TCP 플래그
|
TCPDUMP 플래그 |
플래그의 의미 |
SYN |
S |
SYN패킷, 접속요청을 할 때 보내는 패킷을 말한다. TCP접속시에 가장먼저 보내는 패킷이다. |
ACK |
ack |
ACK패킷, 상대방으로부터 패킷을 받은 뒤에 알려주는 패킷을 말한다. 다른 플래그와 같이 출력되는 경우도 있다. |
FIN |
F |
접속종료를 위한 플래그로 이 패킷을 보내는 곳이 현재 접속하고 있는 곳과 접속을 끊고자 할 때 사용한다. |
RESET |
R |
이 패킷을 보내는 곳이 현재 접속하고 있는 곳과 즉시 연결을끊고자 할 때 사용한다. |
PUSH |
P |
데이터를 즉시 목적지로 보내라는 의미이다. 텔넷과 같이 상호작용이 중요한 프로그램의 경우 빠른 응답 이 중요한다. 이때 사용하는 플래그이다. |
UGENT |
URG |
긴급한 데이터는 다른 데이터에 비해 우선순위가 높아야 한다. 예를 들어 ftp로 자료를 받고 있는 도중 [CTRL]+[C] 를 받으면 즉시 자료받기를 중단해야 하는 것처럼 이 때 사용하는 플래그이다. |
Placeholder |
. |
패킷이 SYN, FINISH, RESET, PUSH등의 플래그가 없는 경우이 플래그가 세팅된다. 이 플래그는 ACK플래그와 함께 사용되는 경우도 있다.
|
|
4. tcpdump의 옵션
-h: 버전 및 기본 사용법을 보여준다.
-a : Network & Broadcast 주소들을 이름들로 바꾼다.
-c Number : 제시된 수의 패킷을 받은 후 종료한다.
-d : compile된 packet-matching code를 사람이 읽을 수 있도록 바꾸어 표준 출력으로 출력하고,종료한다.
-dd : packet-matching code를 C program의 일부로 출력한다.
-ddd : packet-matching code를 숫자로 출력한다.
-e : 출력되는 각각의 행에 대해서 link-level 헤더를 출력한다. -f : 외부의 internet address를 가급적 심볼이 아닌 숫자로 출력한다.(Sun의 yp server와의 사용은 가급적
피한다.)
-F file : filter 표현의 입력으로 파일을 받아들인다. 커맨드라인에 주어진 추가의 표현들은 모두 무시된다.
-i device : 어느 인터페이스를 경유하는 패킷들을 잡을지 지정한다. 지저되지 않으면 시스템의 인터페이스 리스트를 검색하여 가장 낮은 번호를 가진 인터페이스를 선택한
다.(이 때 loopback은 제외된다.)
예) tcpdump -i eth0 -l : 표준 출력으로 나가는 데이터들을 line buffering한다.
다른 프로그램에서 tcpdump로부터 데이터를 받고자 할 때 유용하다.
보통 ‘tcpdump -l | tee dat’ 나 ‘tcpdump -l < dat & tail -f dat’ 명령으로 연계해서 사용하면 편리하다.
-n : 모든 주소들을 번역하지 않는다(port,host address 등등) -N : 호스트 이름을 출력할 때, 도메인을 찍지 않는다.
-O : packet-matching code optimizer를 실행하지 않는다. 이 옵션은 optimizer에 있는 버그를 찾을 때나 쓰인다.
-p : 인터페이스를 promiscuous mode로 두지 않는다. -q : 프로토콜에 대한 정보를 덜 출력한다. 따라서 출력되는 라인이 좀 더 짧아진다.
-r file : 패킷들을 ‘-w’옵션으로 만들어진 파일로 부터 읽어 들인다. 파일에 “-” 가 사용되면 표준입력을 통해서 받아들인다.
-s length: 패킷들로부터 추출하는 샘플을 default값인 68Byte외의 값으로 설정할 때 사용한다.(Sun OS의 NIT에서는 최소가 96Byte이다).
68Byte는 IP,ICMP, TCP, UDP등에 적절한 값이지만 Name Server나 NFS 패킷들의 경우에는 프로토콜의 정보들을 Truncation할 우려가 있다.
이 옵션을 수정할 때는 신중해야만 한다.
이유는 샘플 사이즈를 크게 잡으면 곧 패킷 하나하나를 처리하는데 시간이 더 걸릴 뿐만아니라 패킷 버퍼의 사이즈도 자연히 작아지게 되어 손실되는 패킷들이 발생할
수 있기 때문이다.
또, 작게 잡으면 그만큼의 정보를 잃게되는 것이다.
따라서 가급적 캡춰하고자 하는 프로토콜의 헤더 사이즈에 가깝게 잡아주어야 한다.
-T type : 조건식에 의해 선택된 패킷들을 명시된 형식으로 표시한다. type에는 다음과 같은 것들이 올 수 있다.
rpc(Remote Procedure Call), rtp(Real-Time Applications protocol), rtcp(Real-Time Application control protocal), vat(Visual Audio Tool), wb(distributed White Board)
-S : TCP sequence번호를 상대적인 번호가 아닌 절대적인 번호로 출력한다.
-t : 출력되는 각각의 라인에 시간을 출력하지 않는다. -tt : 출력되는 각각의 라인에 형식이 없는 시간들을 출력한다.
-v : 좀 더 많은 정보들을 출력한다.
-vv : ‘-v’보다 좀 더 많은 정보들을 출력한다.
-vvv : 16진수값 형태로 정보를 보여준다. 보통 -X옵션과 사용되어
-w : 캡춰한 패킷들을 분석해서 출력하는 대신에 그대로 파일에 저장한다.
-x : 각각의 패킷을 헥사코드로 출력한다. -X : 헥사코드와 ascii형태 모두 출력해준다. 보통 -x 옵션과 같이 사용된다.
-조건식(expression) 옵션의 제일 마지막인 조건식은 어떤 패킷들을 출력할 지를 선택하는 데 쓰인다.
조건식이 주어지지 않는다면 모든 패킷들이 대상이 된다. 조건식들은 하나 또는 여러 개의 primitive들로 구성되어 있고 primitive들은 다시 하나 또는 여러 개의 qualifier들
다음에 오는 하나의 값으로 이루어진다.
*qualifier type : 주어진 값의 종류가 무엇인지를 나타낸다.
가능한 type들은 ‘host’, ‘net’, ‘port’가 있다.
type이 없는 값들은 type을 host라 가정한다.
dir : id로 부터의 어떤 특정한 전송 방향을 나타낸다. 가능한 방향은 ‘src’, ‘dst’, ‘src or dst’, ‘src and dst’이다.
만약 방향이 정해지지 않았다면, src or dst라 가정한다. “For`null’ link layers (i.e. point to point protocols such as slip) the inb ound and out
bound qualifiers can be used to specify a desired direction.”
proto : 매칭을 특정 프로토콜에 한해서 수행한다. 가능한 프로토콜들은 ether, fddi, ip, arp,rarp, decnet, lat, sca, moprc, mopdl, tcp, udp이다.
만약 프로토콜이 명시되지 않았다면, 해당하는 값의 type에 관련된 모든 프로토콜들이 그 대상이 된다.
*위의 패턴을 따르지 않는 primitive : gateway, broadcast, less, greater, 산술식이 있으며 참고로 더 정교한 조건식을 사용하려면 ‘and(&&)’,’or(||)’,’not(!)’ 을 사용할 수
있다.
*사용가능한 primitive들 dst host HOST => packet의 IP destination 항목이 HOST일때 참이 된다.
src host HOST => packet의 IP source 항목이 HOST일때 참이 된다.
host HOST => IP source, IP destination 항목 중 어느 하나라도 HOST이면 참이다.
ether dst ehost => ethernet destination 주소가 ehost일 때 참이다.
ether src ehost => ethernet source 주소가 ehost일 때 참이다.
ether host ehost => ethernet source, destination 항목들 중 어느 하나라도 ehost이면 참이다.
gateway host => 패킷이 host를 게이트웨이로 사용하면 참이다. 이 말의 의미는 ethernet sour ce나 destination 항목은 host이지만, IP source와 destination은 host가
아닐 때를 말한다.
dst net NET => 패킷의 IP destination 주소가 NET의 network number를 가지고 있을 때 참이다.
src net NET => 패킷의 IP source 주소가 NET의 network number를 가지고 있을 때 참이다.
net NET => 패킷의 IP source 주소 혹은 destination 주소가 NET의 network number를 가 지고 있을 때 참이다.
net netmask mask => IP 어드레스가 지정된 netmask를 통해서 net과 매칭되면 참이다.
net net/len => IP 어드레스가 netmask와 len 비트만큼 매치되면 참이다.
dst port PORT => 패킷이 ip/tcp, ip/udp 프로토콜의 패킷이고 destination port의 값이 PORT일 때 참이다.
port는 /etc/services에 명시된 이름일 수도 있고 그냥 숫자일 수도 있다. 만약 이름이 사용 됐다면 port 번호와 프로토콜이 같이 체크될 것이다.
만약 숫자나 불 확실한 이름이 사용됐을 경우에는 port 번호만이 체크될 것이다.
src port PORT => 패킷의 source port의 값으로 PORT를 가지면 참이다.
port PORT => 패킷의 source, destination port 중에 하나라도 PORT이면 참이다.
less length => 패킷이 length보다 짧거나 같으면 참이다.(len <= length)
greater length => 패킷이 length보다 짧거나 같으면 참이다.(len >= length)
ip proto protocol => 패킷이 지정된 종류의 프로토콜의 ip패킷이면 참이다. Protocol은 icmp, igrp, udp, nd, tcp 중의 하나 혹은 몇 개가 될 수 있다.
주의할 점은 tcp, udp, icmp들은 ‘\’로 escape되어야 한다.
ehter broadcast => 패킷이 ethernet broadcast 패킷이라면 참이다. ehter는 생략 가능하다.
ip broadcast => 패킷이 IP broadcast 패킷이라면 참이다.
ether multicast => 패킷이 IP multicast 패킷이라면 참이다.
ether proto protocol => 패킷이 ether type의 protocol이라면 참이다. protocol은 ip, arp, rarp 중에 하나 혹은 몇 개가 될 수 있다. ip proto protocol에서
와 마찬가지로 ip, arp, rarp는 escape 되어야 한다.
decnet src host => 만약 DECNET의 source address가 host이면 참이다. 이 어드레스는 ‘10.123’이 나 DECNET의 host name일 수 있다.
DECNET host name은 DECNET에서 돌아가도록 설정된 Ultrix 시스템에서만 사용 가능하다.
decnet dst host => DECNET destination address가 host이면 참이다.
decnet host HOST => DECNET source, destination address중의 하나라도 HOST이면 참이다.
ip, arp, rarp, decnet => ether proto [ip|arp|rarp|decnet]의 약어
lat, moprc, mopdl => ether proto [lat|moprc|mopdl]의 약어
tcp, udp, icmp => ip proto [tcp|udp|icmp]의 약어
expr relop expr => EXPR proto [expr:size]의 형식을 띤다. proto, expr, size에 올 수 있는 것들은 다음과 같다.
proto : ether, fddi, ip, arp, rarp, tcp, udp, icmp
expr : indicate Byte offset of packet of proto
size : optional. indicate the size of bytes in field of interest
default is one, and can be two or four => RELOP !=, =, <=, >=, etc.
이 조건식을 사용하기 위해서는 먼저 해당하는 Protocol(proto)의 헤더에 관련된 것들을 자세히 알아야만 한다.
proto에는 대상이 될 프로토콜을 지정한다. expr에는 프로토콜 헤더의 처음부터의 Byte Offset을 지정하는 식이 들어가게 된다.
Size는 Option이며 지정이 안 되어 있을 경우에는 자동으로 1byte를 지칭한다.
따라서 이 조건식을 사용하게 되면 헤더에 포함된 정보를 Bitmask를 사용하여 직 접 원하는 패킷인지를 가려낼 수 있기 때문에,
보다 정밀한 사용이 가능하게 된다
5. tcpdump 기본사용예
(1) [root@www root]# tcpdump => 현재 서버의 모든 패킷을 보여준다.
(2) [root@www root]# tcpdump port 21
tcpdump: listening on eth0
01:25:43.833276 203.xxx.xxx.100.4828 > xxx.com.ftp: S 1910472596:1910472596(0) win 16384 <mss )
01:25:43.833339 xxx.com.ftp > 203.247.40.244.4828: S 4108025962:4108025962(0) ack 1910472597 ) => 21번 포트로 들어온 패킷만 보여준다.
(3) [root@nanajjang /root]# tcpdump -c 2 host neuro.hannam.ac.kr Kernel filter, protocol ALL, datagram packet socket tcpdump: listening on all devices
11:09:44.576419 eth0 B arp who-has 203.247.40.247 tell neuro.hannam.ac.kr
11:09:44.576507 eth0 > arp reply 203.247.40.247 (0:c0:26:1:11:77) is-at 0:c0:26) => neuro.hannam.ac.kr의 패킷 2개만 보여준다.
(4) tcpdump -v -e broadcast => broadcast 의 정보를 자세히 출력하고 출력되는 각각의 행에 대해서 link-level헤더를 출력한다.
6. tcpdump로 패스워드 알아내기
(1) 설명: telnet을 이용하여 서버에 접속을 하면 패킷전송시에 암호화하지 않기 때문에 쉽게 내용 을 볼 수 있다. tcpdump를 이용하여 패스워드를 알아낼 수 있다.
(2) 사용예
1) 실행명령
[root@www root]# tcpdump port telnet -l -vvv -x -X >dumpdata & tail -f dumpdata
2) 패킷분석: 패킷의 양이 많으므로 잘 찾아야 한다. 먼저 연결된 포트를 확인한다.
20:38:22.395281 xxx.com.telnet > 210.xxx.xxx.100.35383: P [tcp sum ok] 175:182(7) ack 81 win 5792 <nop,nop,timestamp 80867670 35878949> (DF)
[tos 0x10] (ttl 64, id 59193, len 59) 0x0000 4510 003b e739 4000 4006 ca41 cbf7 28fc E..;.9@.@..A..(. 0x0010 d27b c1c2 0017 8a37 2992
16d8 2041 b972 .{…..7)….A.r 0x0020 8018 16a0 5fec 0000 0101 080a 04d1 f156 …._……….V 0x0030 0223 7825 6c6f 6769 6e3a 20 .#x%login:. => 서버
(xxx.com)에서 클라이언트(210.xxx.xxx.100에게 ‘login’이라는 것을 보여줌을 알 수있다. 또한 연결된 클라이언트의 포트번호가 35383임을 알 수 있다.
이 포트번호를 확인해야 패킷을 찾아갈 수 있다.
—중략—
20:38:23.979306 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 81:82(1) ack 182 win 5840 <nop,nop,timestamp 35879107 80867670> (DF)
[tos 0x10] (ttl 56, id 49475, len 53) 0x0000 4510 0035 c143 4000 3806 f83d d27b c1c2 E..5.C@.8..=.{.. 0x0010 cbf7 28fc 8a37 0017 2041
b972 2992 16df ..(..7…A.r)… 0x0020 8018 16d0 5130 0000 0101 080a 0223 78c3 ….Q0…….#x. 0x0030 04d1 f156 70
…Vp => 클라이언트에서 서버로 전송하는 부분만을 확인하면 된다.
P 다음에 존재하는 81:82와 ack 다음에 182라는 번호를 꼭 확인한다.
다음 패킷번호는 82:83이 되고 ack 183번이 되므로 ack 183이라는 부분을 찾아가면 된다. 여기서 클라이언트에서 서버로 전송한 글자는 맨 마지막에 표시된다. 즉 ‘p’이
다.
—중략—
20:38:24.162490 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 82:83(1) ack 183 win 5840 <nop,nop,timestamp 35879126 80868481> (DF) [tos
0x10] (ttl 56, id 49477, len 53) 0x0000 4510 0035 c145 4000 3806 f83b d27b c1c2 E..5.E@.8..;.{.. 0x0010 cbf7 28fc 8a37 0017
2041 b973 2992 16e0 ..(..7…A.s)… 0x0020 8018 16d0 4ef0 0000 0101 080a 0223 78d6 ….N……..#x. 0x0030 04d1 f481 6f ….o
—중략—
20:38:24.322785 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 83:84(1) ack 184 win 5840 <nop,nop,timestamp 35879142 80868575> (DF) [tos
0x10] (ttl 56, id 49479, len 53) 0x0000 4510 0035 c147 4000 3806 f839 d27b c1c2 E..5.G@.8..9.{.. 0x0010 cbf7 28fc 8a37 0017
2041 b974 2992 16e1 ..(..7…A.t)… 0x0020 8018 16d0 4a80 0000 0101 080a 0223 78e6 ….J……..#x. 0x0030 04d1 f4df 73….s
—중략—
20:38:24.445142 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 84:85(1) ack 185 win 5840 <nop,nop,timestamp 35879154 80868657> (DF)
[tos 0x10] (ttl 56, id 49481, len 53) 0x0000 4510 0035 c149 4000 3806 f837 d27b c1c2 E..5.I@.8..7.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b975 2992 16e2 ..
(..7…A.u)… 0x0020 8018 16d0 5820 0000 0101 080a 0223 78f2 ….X……..#x. 0x0030 04d1 f531 65 …1e
—중략—
20:38:24.532360 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 85:86(1) ack 186 win 5840 <nop,nop,timestamp 35879163 80868720> (DF)
[tos 0x10] (ttl 56, id 49483, len 53) 0x0000 4510 0035 c14b 4000 3806 f835 d27b c1c2 E..5.K@.8..5.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b976 2992 16e3 ..
(..7…A.v)… 0x0020 8018 16d0 53d6 0000 0101 080a 0223 78fb ….S……..#x. 0x0030 04d1 f570 69 …pi
—중략—
20:38:24.624350 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 86:87(1) ack 187 win 5840 <nop,nop,timestamp 35879172 80868764> (DF)
[tos 0x10] (ttl 56, id 49485, len 53) 0x0000 4510 0035 c14d 4000 3806 f833 d27b c1c2 E..5.M@.8..3.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b977 2992 16e4 ..
(..7…A.w)… 0x0020 8018 16d0 4e9f 0000 0101 080a 0223 7904 ….N……..#y. 0x0030 04d1 f59c 6e ….n
—중략—
=> posein이라는 글자를 알 수 있다. 즉 사용자 ID가 posein이다.
20:38:24.932380 xxx.com.telnet > 210.xxx.xxx.100.35383: P [tcp sum ok] 190:200(10) ack 89 win 5792
<nop,nop,timestamp 80868969 35879203> (DF) [tos 0x10] (ttl 64, id 59201, len 62) 0x0000 4510 003e e741 4000 4006 ca36 cbf7 28fc
E..>.A@.@..6..(. 0x0010 d27b c1c2 0017 8a37 2992 16e7 2041 b97a .{…..7)….A.z 0x0020 8018 16a0 d40b 0000 0101 080a 04d1
f669 ……………i 0x0030 0223 7923 5061 7373 776f 7264 3a20 .#y#Password:. => 서버에서 클라이언트에서 Password라는 글을 보내어 출력시킨다.
—중략—
20:38:25.300524 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 89:90(1) ack 200 win 5840 <nop,nop,timestamp 35879239 80868969> (DF)
[tos 0x10] (ttl 56, id 49490, len 53) 0x0000 4510 0035 c152 4000 3806 f82e d27b c1c2 E..5.R@.8….{.. 0x0010 cbf7 28fc 8a37 0017 2041 b97a 2992 16f1 ..
(..7…A.z)… 0x0020 8018 16d0 557f 0000 0101 080a 0223 7947 ….U……..#yG 0x0030 04d1 f669 66 …ip
—중략—
20:38:25.454778 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 90:91(1) ack 200 win 5840 <nop,nop,timestamp 35879255 80869177> (DF)
[tos 0x10] (ttl 56, id 49491, len 53) 0x0000 4510 0035 c153 4000 3806 f82d d27b c1c2 E..5.S@.8..-.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b97b 2992 16f1 ..(..7…A.
{)… 0x0020 8018 16d0 489e 0000 0101 080a 0223 7957 ….H……..#yW 0x0030 04d1 f739 72 …9a
—중략—
20:38:25.659340 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 91:92(1) ack 200 win 5840 <nop,nop,timestamp 35879275 80869236> (DF)
[tos 0x10] (ttl 56, id 49492, len 53) 0x0000 4510 0035 c154 4000 3806 f82c d27b c1c2 E..5.T@.8..,.{.. 0x0010 cbf7 28fc 8a37 0017 2041 b97c 2992 16f1 ..
(..7…A.|)… 0x0020 8018 16d0 554e 0000 0101 080a 0223 796b ….UN…….#yk 0x0030 04d1 f774 65 …ts
—중략—
20:38:25.777475 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 92:93(1) ack 200 win 5840 <nop,nop,timestamp 35879287 80869341> (DF)
[tos 0x10] (ttl 56, id 49493, len 53) 0x0000 4510 0035 c155 4000 3806 f82b d27b c1c2 E..5.U@.8..+.{.. 0x0010 cbf7 28fc
8a37 0017 2041 b97d 2992 16f1 ..(..7…A.})… 0x0020 8018 16d0 54d8 0000 0101 080a 0223 7977 ….T……..#yw 0x0030 04d1
f7dd 65 ….s
—중략—
20:38:26.049208 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 93:94(1) ack 200 win 5840 <nop,nop,timestamp 35879314 80869402> (DF)
[tos 0x10] (ttl 56, id 49494, len 53) 0x0000 4510 0035 c156 4000 3806 f82a d27b c1c2 E..5.V@.8..*.{.. 0x0010 cbf7 28fc
8a37 0017 2041 b97e 2992 16f1 ..(..7…A.~)… 0x0020 8018 16d0 887f 0000 0101 080a 0223 7992 ………….#y. 0x0030 04d1
f81a 31 ….w
—중략—
20:38:26.243634 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 94:95(1) ack 200 win 5840 <nop,nop,timestamp 35879334 80869541> (DF)
[tos 0x10] (ttl 56, id 49495, len 53) 0x0000 4510 0035 c157 4000 3806 f829 d27b c1c2 E..5.W@.8..).{.. 0x0010 cbf7 28fc
8a37 0017 2041 b97f 2992 16f1 ..(..7…A..)… 0x0020 8018 16d0 86df 0000 0101 080a 0223 79a6 ………….#y. 0x0030 04d1
f8a5 32 ….o
—중략—
20:38:26.442302 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 95:96(1) ack 200 win 5840 <nop,nop,timestamp 35879353 80869640> (DF)
[tos 0x10] (ttl 56, id 49496, len 53) 0x0000 4510 0035 c158 4000 3806 f828 d27b c1c2 E..5.X@.8..(.{.. 0x0010 cbf7 28fc
8a37 0017 2041 b980 2992 16f1 ..(..7…A..)… 0x0020 8018 16d0 8768 0000 0101 080a 0223 79b9 …..h…….#y. 0x0030 04d1
f908 31 ….r
—중략—
20:38:26.540930 210.xxx.xxx.100.35383 > xxx.com.telnet: P [tcp sum ok] 96:97(1) ack 200 win 5840 <nop,nop,timestamp 35879363 80869742> (DF)
[tos 0x10] (ttl 56, id 49497, len 53) 0x0000 4510 0035 c159 4000 3806 f827 d27b c1c2 E..5.Y@.8..’.{.. 0x0010 cbf7 28fc
8a37 0017 2041 b981 2992 16f1 ..(..7…A..)… 0x0020 8018 16d0 80f7 0000 0101 080a 0223 79c3 ………….#y. 0x0030 04d1
f96e 37 …nd
—이하생략— => 패스워드가 password라는 것을 알 수 있다
|