기생충과 같은 맬웨어에 대해

4364 단어 CTF
주의: 이 기사는 「KOSEN 시큐리티 콘테스트 2020」에서 나온 「기생충과 같은 멀웨어」에 대해 조사해, 다시 풀어 보았다고 하는 기사입니다. 미리 양해 바랍니다

처음에



이 기사는, 거기서 나온 「기생충과 같은 멀웨어」라고 하는 문제를 푸는 열쇠가 되었다 Helminth 왜 다시인가라고 하면, DNS 쿼리는 꺼냈습니다만, 디코드시에 팀 메이트와 에스퍼로 FLAG를 통해 버렸기 때문입니다. (내 KOSEN 보안의 writeup은 여기)

또 실수 등 있으면 가르쳐 주시면 다행입니다.

기생충 같은 악성코드



문제의 내용은 다음과 같습니다.




Helminth 는 맬웨어에서 자주 사용되는 TXTレコード 대신 Aレコード 를 사용하는 것 같습니다. (자세한 내용은 참고 문헌을 참조해 주시면 좋겠습니다.)
HelminthAレコード 의 제약으로, 게재되는 정보는 8bit 까지이므로, 거기에 넣기 위해서 ASCII 코드 (7bit) 입니다.

통신 내용 꺼내기



먼저 tshark를 사용하여 127.0.0.1의 DNSクエリ를 꺼냅니다.



패킷의 내용을 보면 s.com 의 통신으로 행해지고 있는 것을 알기 때문에, 다음과 같이 실행합니다. (참고 문헌에 있다 기사 보다 인스파이어 했습니다.)
tshark -r helminth.pcapng -T fields -e dns.resp.name | grep s.com | awk -F . '{print $1}'

이것을 실행하면 불필요한 것도 나오므로 삭제합니다.

꺼낸 후
00L01000JQ30D0A433A5C55736572735C7368753E747970652022433A5C
00L01001YRE50726F6772616D2046696C65735C526F6F6B69655C435446
00L01002QSF5C464C41472E74787422200D0A464C41477B48656C6D696E
00L010034YQ74685F6E69686F6E676F5F64655F6B697365696368755F72
00L01004K33617369796F21777777777D0D0A

통신 세부사항



다음에 통신은 이하의 형식이 되기 때문에 DATA 의 부분만 꺼냅니다.
00[botid][cmdid][partid][(random)][DATA].domain

cmdid ← 実行コマンド応答時の cmdid
partid ← 実行結果を分割したときの通し番号(001,00Aとか)
DATA ← 実行結果(ASCIIコード 16進数表現)


botid 는 ASCII 코드의 10진수 표현을 IP 주소로서 임베드하고 있는 것 같기 때문에, 최초의 IP 주소가 76.0.0.0 이므로 L 입니다.
random 의 부분의 문자수는 3 문자와 같기 때문에, 그것도 제거합니다.

최종 문자열
0D0A433A5C55736572735C7368753E747970652022433A5C
50726F6772616D2046696C65735C526F6F6B69655C435446
5C464C41472E74787422200D0A464C41477B48656C6D696E
74685F6E69686F6E676F5F64655F6B697365696368755F72
617369796F21777777777D0D0A

이 캐릭터 라인을 cyberchef 에 돌진해 ASCII 코드이므로 16 진수로 디코드 합니다.


FLAG는 FLAG{Helminth_nihongo_de_kiseichu_rasiyo!wwww}이었습니다.

절차



쓸데없이 쓰고 버려, 순서를 이해하기 어려울지도 모르기 때문에, 여기까지의 순서를 정리합니다.
  • DNS 쿼리를 검색합니다.
  • 00[botid][cmdid][partid][(random)][DATA].domain의 형식에 따라 DATA
  • botid 는 첫 번째 서버의 응답으로 판단하고 random 부분은 3자이므로 삭제합니다.
  • 위의 절차를 밟으면 임의의 방법으로 디코딩

  • 마지막으로



    나에게 멀웨어 통신을 파싱하는 것이 처음이었다.
    그 중에서 확실히 어떤 형태로 전송되고 있는지 특징을 알고 나서 다시 FLAG를 얻을 수 있어서 좋았습니다.

    참고문헌



    [1] 표적형 공격에서 사용된 악성코드를 해석하여 C2 서버를 만들었다. 그 악성코드는 DNS 터널링을 하는 드문 것이었다.
    [2] Google CTF 및 Trendmicro CTF - 생산성이 없는 이야기

    좋은 웹페이지 즐겨찾기