#About
LQ. telnet은 다보여...
LEQ : telnet
Hint : Key is telnet Password
주어진 문제에서 요구하는 것은 단순히 텔넷통신을 한 패킷을 찾는 것임
+ 텔넷은 데이터가 암호화 기능이 없으므로 SSH를 사용하는 것을 권장.
#Solution
# -*- coding:utf-8 -*-
import socket
import dpkt
import datetime
def mac_addr(address):
return ':'.join('%02x' % ord(mac) for mac in address)
def extract(pcap):
for timestamp,data in pcap:
try:
eth = dpkt.ethernet.Ethernet(data)
ip = eth.data
tcp = ip.data
src,dst = socket.inet_ntoa(ip.src),socket.inet_ntoa(ip.dst)
if tcp.dport==23 or tcp.sport==23 and len(tcp.data)>=0:
# request = dpkt.http.Request(tcp.data)
print "[+] Timestamp : ",datetime.datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
print "[+] MAC Address : ",mac_addr(eth.src), ' --> ', mac_addr(eth.dst)
print "[+] IP Address : ",src+" --> "+dst
print "[+] Data : ",data
print "\n",
except:
pass
def main():
p = open('C:/2013_Hack_The_Packet_Online_PreQUAL_PROB.pcap','rb')
pcap = dpkt.pcap.Reader(p)
extract(pcap)
if __name__=='__main__':
main()
텔넷 통신이므로 텔넷의 포트번호에 해당하는 23번을 기준으로 출발지 또는 도착지가 23번인 즉,
텔넷과 관련된 모든 패킷을 필터링 했을 경우 아래와 같은 결과를 확인할 수 있다
[그림 1] - 포트번호를 기준으로 한 패킷 분석 결과
(위 그림에서 확인할 수 있는 Data 필드의 값이 깨진 이유를 아는 분 댓글로 적어주시면 감사하겠습니다...!!)
위 그림에서 확인할 수 있듯 IP 주소 192.168.163.1에서 192.168.163.154에 패킷을 전송하는 것을 확인할 수 있다
따라서 위 IP를 기준으로 아래와 같이 와이어 샤크에 패킷 필터링을 했을 경우 아래와 같이 TELNET 패킷을 확인할 수 있다
[그림 2] - 패킷 필터식을 통한 패킷 확인
위 그림에서 확인할 수 있듯 TELNET을 사용하여 데이터를 주고 받는 것이 보이며 TELNET은 암호화가 되지 않는다고 앞서 언급했기 때문에 패킷이 원문으로 보일 것이므로 위 TELNET 패킷의 TCP 흐름을 따라가 보았더니 아래와 같이 플래그를 확인할 수 있었다.
[그림 3] - 플래그 값 확인
FLAG = HTPLEO!!!
'Wargame' 카테고리의 다른 글
[SCENARIO] CFReDS_ data leakage case (0) | 2018.07.19 |
---|---|
2013 [Hack The Packet] M_01 (0) | 2018.03.21 |
2011 [Hack The Packet] L_03 (0) | 2018.03.21 |
2011 [Hack The Packet] L_01 (0) | 2018.03.14 |
[FEDORA CORE 4] Dark_stone > Cruel (0) | 2017.12.29 |