본문으로 바로가기

[Forensic] backdoor / 200

category ICEWALL 2019. 7. 22. 03:02

Download: sniffing.pcapng

 

PCAPNG 파일이 주어진다. challenge description에 FTP와 관련한 내용이 있으므로, FTP 프로토콜 상에서 통신한 내용을 보면 첫 단서를 찾을 수 있다.

 

user id와 password는 각각 victim, shadowwindowmanunder 이고, 이를 사용하여 FTP 서버에 접속할 수 있다.

 

firmware.iso 를 받아서 마운트하면 여러 파일이 있는데, 그 중 주목해야 하는 파일은 ELF 바이너리 파일인 backdoor.elf다. IDA로 분석을 시도한다.

 

global에 ch0부터 ch12까지 7글자의 문자열이 선언되어 있고 세 번째 입력에 따라서 각각의 문자열을 system으로 실행해 준다. 그 전에 gen 함수에서 문자열에 대해, 각 바이트를 XOR 0x10 연산하는 처리를 한다.

 

ch0부터 ch12까지 변환 결과를 간단한 코딩으로 확인할 수 있다.

 

#include <cstdio>

int main() {
	const char *ch[13] = {"qw27182", "?ry~?cx", "@as5w82", "dowm21a", "3as2ss3", "!35~@as", "51!#@#$", "r[H!`jZ", ":O~58[_", "q\{gLu2", "$AHM\"jg", "csfsBr@", ")~8OWJ3"};

	for (int i=0 ; i<=12 ; i++) {
		printf("ch%d : ", i);
		for (int j=0 ; j<7 ; j++) printf("%c", ch[i][j]^16);
		printf("\n");
	}

	return 0;
}

ch1이 /bin/sh임을 알 수 있다. exit을 통과할 수 있도록 첫 번째 입력은 r[H!`jZ, 두 번째 입력은 dowm21a, 세 번째 입력에 1을 넣으면 쉘을 얻을 수 있다.

 

 

'ICEWALL' 카테고리의 다른 글

[Web] resume2 / 150  (0) 2019.07.22
[Web] resume / 100  (0) 2019.07.22
[Forensic] secret / 100  (0) 2019.07.22
[Forensic] sniffing / 80  (0) 2019.07.22
[Forensic] image / 50  (0) 2019.07.22