#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

+ Recent posts