CodeEngn malware 02
코드엔진 malware 02번 문제풀이
두 번째 악성코드 분석 문제풀이다. 이 코드의 길이도 길기 때문에 구간을 나눠서 분석을 해봤다.
첫 번째 구간을 살펴보면 body배열에 문자열 값을 넣는 게 보이고 아래를 살펴보면 9번 라인에서 12번 라인까지 호스트의 80번 포트를 스캐닝 하는 것을 볼 수 있었다.
두 번째 구간을 살펴보면 IPv4 TCP stream 소켓을 생성하고 sockaddr_in구조체를 가지는 ssin를 생성하여 0으로 초기화 한 뒤에 IPv4 주소체계와 80번 포트를 설정하고 호스트 IP를 할당하였다. 그리고 30번 라인부터 37번 라인까지의 실행으로 szShellBuf에 쉘코드를 삽입하는 것으로 보인다.
마지막 3번째 구간을 분석해보면 szReqBuf에 HTTP헤더와 body(위의 배열 안에 들어있는 값)를 붙이고 그 아래에 쉘 코드를 붙이는 것을 확인할 수 있었다. 코드를 토대로 szReqBuf에 들어간 값을 구현해 보면 아래와 같다.
DAV라는 문자가 눈에 띄어 구글링을 해보니 WebDAV라는 게 있었다.
WebDAV란 HTTP의 확장으로 월드 와이드 웹 서버에 저장된 문서와 파일을 편집하고 관리하는 사용자들 사이의 협업을 손쉽게 만들어준다고 위키에 나와있었다.
위 코드는 취약한 WebDAV에 접근하여 서버에 쉘 코드를 올리는 것 같다.