728x90
FTZ level4 입니다.
cat hint: /etc/xinetd.d/에 백도어가 있다고 합니다.
xinetd는 리눅스의 수퍼 데몬으로, 메모리에 상주하여 데몬 프로그램을 돌리는 standalone 방식보다 속도는 조금 느려도 자원 관리 면에서 더 효율적인 방식입니다.
cd /etc: 우선 /etc 디렉터리에 이동했습니다.
cd xinetd.d
ls: backdoor 파일이 보입니다.
cat backdoor: backdoor 파일을 먼저 살펴봤습니다.
이를 분석하는 것이 중요해보입니다.
service finger # finger라는 서비스
{
disable = no # 해당 서비스의 실행 여부를 결정
flags = REUSE # 서비스 포트가 사용 중인 경우 해당 포트의 재사용을 허가함
socket_type = stream # stream, dgram, raw 중 하나
wait = no # yes는 단일 스레드, no는 다중 스레드
user = level5 # 서비스의 소유주
server = /home/level4/tmp/backdoor # 서비스가 연결되었을 때 실행할 프로그램, 절대 경로로 입력
log_on_failure += USERID # 서버 접속에 실패했을 경우 로그 파일에 기록할 내용을 설정
}
server 옵션은 서비스가 실행하는 프로그램을 뜻합니다.
지금은 'backdoor'이죠, 당장 생각나는 것은 user가 'level5'이므로 이 backdoor를 실행했을 때 패스워드를 출력하도록 하는 방법입니다.
먼저 /home/level4/tmp/backdoor로 이동해보겠습니다.
ls를 입력해보니 아무 것도 없습니다. backdoor가 실행되어야 하는데 말이죠.
그래서 만들었습니다.
my-pass를 실행할 수 있도록 코드를 짰습니다.
컴파일까지 완료하니, 이제 xinetd.d에서 실행되는 backdoor 경로에 'backdoor'가 생겼습니다.
이제, finger service를 실행해보겠습니다.
그런데 백도어 프로그램이 보이질 않습니다. 이렇게도 실행해봤더니 나오질 않았습니다.
구글링해보니 뒤에 @localhost로 명시를 해줘야 명시된 호스트 명으로 서비스 실행이 된다고 합니다.
728x90
'Wargame > FTZ' 카테고리의 다른 글
hackerschool FTZ level6 (0) | 2021.02.04 |
---|---|
hackerschool FTZ level5 (0) | 2021.02.04 |
hackerschool FTZ level3 (0) | 2021.01.26 |
hackerschool FTZ level2 (0) | 2021.01.21 |
hackerschool FTZ level1 (0) | 2021.01.19 |