DNS Exfilteration

DNS 관련 해서 정보를 유출하는 무언가가 있나보다.
일단 wireshark로 열어봐서 Stream을 보자
뭘 막 주고 받는다. 여기에 뭔가를 숨겨서 보내는 거겠지. DNS 관련 패킷들이다
무심코 이제 인코딩을 해봤다.
나만 뭔가 이상한게 보이는건 아닐거다. 이미지를 쪼개서 보내는 중인거 같다.
일단 받는 부분만 따로 분류를 해서, flag.pcap으로 저장한 다음에,
DNS query 부분만 잘 가공을 해서 붙여봅시다
import struct Ether_pkt=b"\x08\x00\x27\x55\x59\x8F\x0A\x00\x27\x00\x00\x00\x08\x00" fp = open("flag.pcap",'rb') data = fp.read() count =0 DNS_query = "" for i in range(0,len(data)): if data[i:i+14] == Ether_pkt: if count < 2: count +=1 continue try: length= int.from_bytes(data[i+0x26:i+0x28],byteorder='big') idx = data[i+0x36:i+length].find(b'\x2d') DNS_query += data[i+0x36:i+0x36+idx-3].decode('utf-8')[19:].replace("<","").replace("$","") count +=1 except: continue fo = open("flag.png",'wb') fo.write(bytearray.fromhex(DNS_query[16:]))
Python