CodeEngn Malware02 풀이
Wargame | CTF/Reversing

CodeEngn Malware02 풀이

2번문제입니다. 역시나 악성코드 소스분석입니다. 일단 또 한줄씩 살펴보겠습니다.

첫부분을 보면 body라는 배열안에 xml헤더 같은 문자열을 정의하는 부분이 보입니다. 일반적인 xml 정의 코드와는 다르게 DAV라는 문자가 있네요. 그래서 검색을 해보았습니다.

해당 xml코드는 WebDAV라는 프로토콜을 사용하기 위한 정의 방법이였습니다. 여기서 WebDAV 프로토콜은 웹을 읽고 쓰기가 가능한 매개체로 만들고, 사용자가 서버(일반적으로 웹 서버나 웹 공유) 의 문서를 만들고 변경하고 이동할 수 있는 프레임워크를 제공한다고 합니다.

일반적인 WebDAV 정의방법입니다. 해당코드와 매우 유사합니다. WebDAV를 사용하는걸 확실히 알 수 있습니다.

여기선 sql문이 보이는것으로 보아서 어떤 쿼리문을 실행시키는 것으로 보입니다.


여러가지 버퍼들을 할당하고, 어떤 리턴주소일꺼 같은 주소값도 세팅하는 모습이 보입니다. 그뒤에 통신을 위한 TCP 소켓을 생성한뒤에 IP주소와 PORT번호를 세팅해줍니다. 그 밑에는 쉘코드를 만들고 그 쉘코드의 사이즈를 리턴해주고 받고 있습니다. 아마도 이것은 나중에 WebDAV프로토콜을 이용해서 어떠한 동작을하는 코드를 전송할 때 사용될 것으로 예상됩니다.


그리고 동적할당한 메모리에 공격자가 임의로 정한 리턴주소를 비롯해서 jumpcode(아마 쉘코드가있는) 부분과 WebDAV에 필요한 헤더 정보인 Host, Content-Length등을 메모리에 세팅해주는 모습입니다.

그리고 그 뒤에 서버와의 통신을 위해 Connect라는 함수를 사용하고 있습니다.

Connect 한뒤에 write 와 아마 비슷한 함수를 사용해서 해당 서버로 버퍼값을 write 하는것으로 보입니다.



추가적으로 TCP 소켓에서 write send 함수 실행 시에 어떻게 동작하는지 알아보았습니다.

'Wargame | CTF > Reversing' 카테고리의 다른 글

CodeEngn Malware04 풀이  (0) 2018.08.07
CodeEngn Malware03 풀이  (0) 2018.08.07
CodeEngn Malware01 풀이  (0) 2018.08.07
CodeEngn Advance07 풀이  (0) 2018.04.30
CodeEngn Advance06 풀이  (0) 2018.03.26