이번 문제는 풀이 과정에서 삽질을 너무 많이하여 시간이 꽤 걸렸네요..
자 이번 문제 지문부터 보도록 하죠!
일단 문제는 어떤 해커가 B 회사의 백업 데이터를 유출 시켰다는 내용입니다.
그런데 그 해커는 회사 내부의 보안시스템을 우회하기 위해 자신만의 특별한 네트워크를 형성하여 침입을 했다는군요.
문제에서는 와이어샤크를 이용하여 트래픽을 분석하고 유출된 데이터가 있던 시스템의 주소를 알아내라는 군요.
또 공격자에 의해 도난당한 데이터가 힌트가 될 수도 있다는 말을 하고 있습니다.
일단 와이어샤크로 패킷파일을 열어보면 udplite 프로토콜 패킷밖에 보이지 않습니다.
이때는 정말 난감했었습니다. udplite라는 프로토콜도 생소할 뿐만 아니라 stream등도 보지 못했기 때문이죠.
이때는 무작정 패킷 하나하나를 분석하였습니다.
그러던 중 data 부분에서 많이 보던 것이 보였습니다.
한창 ipv6를 공부한다고 까불었을 때 많이 보았던 hex 값이었습니다.
ipv6의 ip 형태이죠!!
그래서 혹시나 하여 해당 패킷들을 ipv6로 바꾸어 보았습니다.
변환 방법은 패킷을 우클릭 -> decode as -> network tab -> IPv6 순서로 클릭을 하시면 됩니다.
이제야 뭔가 평소에 보던 패킷들이 보이는군요.
바로 TCP Stream을 보았더니 많이 보던 시그니처가 있었습니다.
7z 시그니처를 보니 압축 파일이 오고 간듯 합니다.
더군다나 이 패킷들은 모두 하나의 패킷이어서 다른 파일은 더 이상 발견하지 못하였습니다.
해당 스트림을 raw 포맷으로 저장하고 압축을 풀어보면 아래와 같이 swf 플래시 파일이 하나 나옵니다.
해당 swf 파일을 실행 해 보면 아래와 같이 답변은~ 하면서 무언가가 써집니다.
문제에서는 데이터가 힌트도 될 수 있다 하였으니 ipv6.dst를 염두에 둬 봅시다.
패킷에는 오로지 두 개의 호스트 IP만 존재합니다. 이 중 유출 데이터 시스템 주소를 구별 해야 하는데 이는 간단합니다.
데이터 유출은 파일이 옴겨진 것이고 파일이 옴겨질 때는 보내는 쪽지 유출된 시스템이라고 충분히 생각 할 수 있습니다.
그러므로 패킷파일에서 많은 량의 패킷을 발송한 호스트만 찾으면 됩니다.
찾아보니 fe80::c0a8:8888(192.168.136.136) 패킷을 일방적으로 많이 보내고 있었습니다.
이제 답변의 형태로만 만들어주면 됩니다.
답변의 형태는 strupr(md5(유출된 데이터안의 힌트|유출된 데이터의 시스템 주소))) 이니 아래와 같이 계산하면 됩니다.
- 6642E5A831032D2CF852C66024D9C1F1
자 이번 문제 지문부터 보도록 하죠!
One day, attacker A hacked into B company’s internal system and then stole backup data.
This backup data was made by attacker A himself.
Attacker A used his specifically configured network to detour B company’s security system.
Now you(B'company's an employee) detected it late.
You have to analyze the traffic by using WireShark and have to find which data was leaked from which internal system.
A stolen data by Attacker A will be an important hint to find the answer.
Answer : strupr(md5(Hint_in_the_leaked data|Hacked_internal_system_address)) ('|'is just a character)
일단 문제는 어떤 해커가 B 회사의 백업 데이터를 유출 시켰다는 내용입니다.
그런데 그 해커는 회사 내부의 보안시스템을 우회하기 위해 자신만의 특별한 네트워크를 형성하여 침입을 했다는군요.
문제에서는 와이어샤크를 이용하여 트래픽을 분석하고 유출된 데이터가 있던 시스템의 주소를 알아내라는 군요.
또 공격자에 의해 도난당한 데이터가 힌트가 될 수도 있다는 말을 하고 있습니다.
일단 와이어샤크로 패킷파일을 열어보면 udplite 프로토콜 패킷밖에 보이지 않습니다.
[그림 1 - 패킷파일 내용]
이때는 정말 난감했었습니다. udplite라는 프로토콜도 생소할 뿐만 아니라 stream등도 보지 못했기 때문이죠.
이때는 무작정 패킷 하나하나를 분석하였습니다.
그러던 중 data 부분에서 많이 보던 것이 보였습니다.
[그림 2 - data 부분]
한창 ipv6를 공부한다고 까불었을 때 많이 보았던 hex 값이었습니다.
ipv6의 ip 형태이죠!!
그래서 혹시나 하여 해당 패킷들을 ipv6로 바꾸어 보았습니다.
[그림 3 - ipv6로 변환]
변환 방법은 패킷을 우클릭 -> decode as -> network tab -> IPv6 순서로 클릭을 하시면 됩니다.
이제야 뭔가 평소에 보던 패킷들이 보이는군요.
바로 TCP Stream을 보았더니 많이 보던 시그니처가 있었습니다.
[그림 4 - TCP Stream]
7z 시그니처를 보니 압축 파일이 오고 간듯 합니다.
더군다나 이 패킷들은 모두 하나의 패킷이어서 다른 파일은 더 이상 발견하지 못하였습니다.
해당 스트림을 raw 포맷으로 저장하고 압축을 풀어보면 아래와 같이 swf 플래시 파일이 하나 나옵니다.
[그림 5 - 압축 파일 내용]
해당 swf 파일을 실행 해 보면 아래와 같이 답변은~ 하면서 무언가가 써집니다.
[그림 6 - swf 파일 실행 결과]
문제에서는 데이터가 힌트도 될 수 있다 하였으니 ipv6.dst를 염두에 둬 봅시다.
패킷에는 오로지 두 개의 호스트 IP만 존재합니다. 이 중 유출 데이터 시스템 주소를 구별 해야 하는데 이는 간단합니다.
데이터 유출은 파일이 옴겨진 것이고 파일이 옴겨질 때는 보내는 쪽지 유출된 시스템이라고 충분히 생각 할 수 있습니다.
그러므로 패킷파일에서 많은 량의 패킷을 발송한 호스트만 찾으면 됩니다.
찾아보니 fe80::c0a8:8888(192.168.136.136) 패킷을 일방적으로 많이 보내고 있었습니다.
이제 답변의 형태로만 만들어주면 됩니다.
답변의 형태는 strupr(md5(유출된 데이터안의 힌트|유출된 데이터의 시스템 주소))) 이니 아래와 같이 계산하면 됩니다.
[그림 7 - 문제 답변 계산]
- 6642E5A831032D2CF852C66024D9C1F1
'[+] Hacking > [-] Challenge Report' 카테고리의 다른 글
Codegate 2012 Misc 4 300 풀이 (7) | 2012.03.03 |
---|---|
Codegate 2012 Misc 100 풀이 (2) | 2012.03.01 |
Codegate 2012 Forensic 500 풀이 (2) | 2012.02.29 |
Codegate 2012 Forensic 400 풀이 (4) | 2012.02.28 |