본문 바로가기

Information Security/Digital Forensic

[Digital Forensic] Linux Forensic

반응형

* Linux System 핵심

  • 현재 Kali Linux를 포함하여, Debian 계열의 점유율이 가장 높음
  • Tree 구조의 계층 형태로 파일 시스템이 존재
  • Shell based System (명령어 기반)
  • File Types
    • 일반 파일
    • 특수 파일 (커널 자체 생성 파일 : 사용자가 생성 할 수 없음)
    • Directory
  • Kernel based System (리눅스 포렌식의 핵심)
    • Windows Forensic의 핵심은 Registry

 

 

 

* Linux Forensic 분석 방법론

1) Live Forensic

- 활성(휘발성) 정보의 분석이 가능

- 리눅스 명령어의 사용이 가능

  • 직접 접속을 통한 내부 분석
  • ssh로 접속하여 분석

2) Offline Forensic

- Disk Snapshot, Image의 가상 머신 파일로의 변환하여 부팅하는 방식으로 정적 분석 진행

- 변환 방식

  • dd(raw), E01 등의 이미지 파일 타입을 qemu를 사용하여 vmdk로 변환하여 가상 머신에서 부팅
    (해당 작업을 완료한 후, 분석 수행 PC에서 해당 가상 머신 OS와 Network 대역을 맞추고 SSH 접속)
  • 분석 PC(Kali Linux, Windows 등)에서 Disk 이미지를 Mount 또는 분석 Tool에 불러와 분석

 

 

 

* Offline Linux Digital Forensic 수행 준비

*** 주의 사항 *** => 수집되어 변환할 이미지의 계정과 Password를 모를 시, 아래 작업을 수행하더라도 정상적으로 분석 작업을 수행할 수 없으니, ID/PW를 아는 경우에만 수행할 것

1) 이미지 타입 File의 가상 Disk 타입으로 변환 후 부팅

- qemu Tool 설치 (on Windows)

- 툴을 설치한 경로를 확인하여 해당 경로에 정상 설치 확인

해당 경로의 qemu-img.exe를 사용하여 img 파일을 vmdk로 변환

- 관리자 권한의 CMD로 명령어 입력 후 변환

qemu-img.exe convert -pO vmdk 변환대상이름 변환할이름.vmdk

- 이후 해당 vmdk File을 VMWare의 New virtual Machine으로 추가

- ISO 추가 없이, 운영체제 유형만 적절히 지정 후, Default Disk Remove 후, 해당 vmdk 추가 작업 진행

- 이후 부팅 수행 시, 원본 Disk가 탑재된 동일한 OS의 증거물을 가진 가상 머신으로 부팅 가능

2) 분석 대상 접속 후 Network 대역 및 Disk 정보 확인

- 부팅 후, ID / PW를 정상적으로 입력후, 분석 수행 PC <> 분석 대상과의 네트워크 대역을 설정

- ip ad (ifconfig와 유사) 명령어를 통해 Network 대역 확인 후, 동일 대역으로 맞춤
(대부분 가상 이미지로 부팅 시, 네트워크 인터페이스가 DOWN 상태이므로, UP으로 변경 필수)

ip ad로 확인 시, DOWN 상태 확인되어, root 권한으로 전환 후, 인터페이스 UP 수행
분석 수행 PC 대역 확인 (192.168.163.132/24)
분석 대상 대역대를 분석 수행 PC의 대역으로 변경 (192.168.163.133/24)

- 대역 설정 후, 정상 통신 확인을 위한 ping test 수행

- 분석 수행 PC에서 ssh를 통해 분석 수행 PC로 접속 할 수 있도록 설정
(단순 분석 뿐만아니라, 필요 Tool을 사용해야 하는 경우가 있어 해당 방식을 선행하도록 권장함)

  • cd /etc/ssh
  • mousepad sshd_config 파일에서 port, listenaddress, permitrootlogin 수정 (vi, vim으로 해도 무관)

  • 저장 후, /etc/init.d/ssh restart (sshd restart 명령어)

  • 분석 대상의 Disk 상태 확인 (df -TH 후 fdisk -l)
    • Mount가 가능하고, 주요 증거들이 모여있는 파티션을 확인하기 위해서 두 명령어로 명확한 파일 시스템으로 할당이 된(실제 사용되는) 파티션의 식별과 주요 분석 대상 확인

3) ssh 접속을 통한 dd(raw) format 이미징 후, mount 수행

  • 분석 수행 PC가 분석 대상의 Disk 이미지를 가져올 수 있는 용량인지 확인 필수

  • 분석 수행 PC ssh -> 분석 대상으로 접속
    • 분석 대상의 ID와 PW로 접속하며, 접속 후 sudo su를 통해 루트 권한 할당이 분석에 필수적

  • ssh 접속 후, 분석 대상의 파티션을 dd(raw) format 이미지 -> 분석 수행 PC로 이동
    • 예시 명령어) dd if=/dev/sda2 | ssh 분석수행PC계정명@분석수행pcIP "dd of=이미지이름"

  • 분석 수행 PC의 home Directory에서 지정했던 파일명으로 raw 이미지 확인

  • 분석 수행 PC에서 해당 raw format 이미지 Mount
    • 예시) losetup /dev/loop0 가져온_이미지_파일명
      (해당 명령어는 loop라는 Device에 Mount하는 명령어)
    • 단, 해당 명령어는 가져온 dd 이미지에 파일 시스템 정보가 명확히 존재할 때 정상 구동 가능
      (정상적으로 Mount가 안될 시, 파일시스템 Format이 지정되지 않은 부정확한 이미지 일 수 있음)
    • 정상적으로 Mount가 된다면 /media 경로에 자동으로 Mount 확인 가능

 

 

 

* Linux Forensic 핵심 대상

대상 내용
/ (최상위 경로) * 최상위 디렉토리
home * 사용자 홈 디렉토리
- 계정별로 관련된 모든 정보를 저장
dev * 장치 관련 디렉토리
- 일반적으로 실행 파일이 존재하지 않는 경로이므로, 실행 파일이 있을 시, 주의 깊게 확인이 필요
var * 대부분의 로그가 저장되는 경로
etc * 전반적인 시스템 설정 정보를 저장
- 악성 설정 정보에 대한 추적에 용이
usr * Default로 지정되는 Application 설치 경로
bin * 명령어가 저장되는 경로
- 보통 실행 파일을 덮어쓰는 등의 방식으로 악성 행위 수행
proc * Process 정보를 저장하는 경로

 

 

 

* 비 휘발성 데이터 수집 명령어

분류 명령어/경로 및 내용
시스템 정보 * cat /proc/cpuinfo
- cpu 정보를 출력하나, cpu의 취약점 발현이 쉽지 않아서, 필수적이진 않음


* cat /proc/self/mounts
- 명령어가 실행 된 마운트 지점에 대한 출력
커널 정보 * cat /etc/os-release
- Linux OS 정보가 상세히 담겨 있는 텍스트 파일 내용 출력


* uname -r
- Live 상태로 확인되는 커널 버전 정보


* cat /proc/version
- File 상태로 확인되는 커널 정보


* cat /etc/hostname
- hostname 명령어와 동일한 출력이지만, 공격자가 변조시키는 Case도 존재


** 커널 정보의 비교는, 동일 OS를 구축하여, 동일 경로에 대한 비교로 빠르게 선별할 수 있음
사용자 계정 정보 * cat /etc/passwd (사용자 계정 정보 파일)
- 사용자 이름
- shadow password
- UID
- GID
- Comment
- Home Directory
- 사용자 절대 경로 로그인 쉘 (단, nologin으로 입력되어 있을 시, 사용자가 접근할 수 없는 계정)
ex) root:x:0:0:root:/root:/usr/bin/zsh
- 해당 정보는 특히, root 권한으로 사용되는 계정 여부 확인이 필수적


* cat /etc/shadow (사용자 암호 정보 파일)
- 계정명
- Hash + Salt를 조합한 Password
(첫 시작 부분의 "$문자$" 사이의 문자 값에 따라 어떠한 암호 알고리즘을 사용하는지 식별 가능하며, 해당 정보는 암호를 Crack할 수 있는지 여부를 판단하는데 사용)
- john the ripper 툴과 pass 사전 파일을 통해서 복호화를 수행하는 경우 다수 존재


* cat /etc/group (사용자가 속할 수 있는 Group에 대한 정보 파일)
- root 권한을 행사 할 수 있는 그룹에 속한 계정이 어떤 것들인지 식별하는 것이 중요
- root, lxd, wheel(su), sudo 그룹이 대표적으로 권한 상승이 가능한 그룹


* cat /etc/sudoers (root 권한으로 상승이 가능하도록 설정 사항을 기록한 파일)
현재 로그인 된 사용자, 로그인 History * w
- wtmp Log 파일에 대한 정보 중 로그인한 사용자가 어떤 방식으로 로그인 했는지 등을 확인 가능
- tty (컴퓨터와 직접 연결된 통신 포트) 및 pts (원격지 터미널 정보 or 가상 터미널 연결) 등 확인 가능


* last
- /var/log/wtmp Binary 로그 파일 내용을 평문으로 출력
- sudo 명령 사용 이력, 인증, 원격 사용자 로그인 등을 확인 가능
(사용자 계정과 시간 정보를 Check 하는것이 핵심)


* lastb
- /var/log/btmp를 참조하여 마지막 로그인 정보 또는 과거에 잘못 접속한 계정의 이력을 확인 가능
자동 실행,
스케줄링 정보
* /home/계정명/.bash_profile
- root를 제외한 다른 계정의 홈 디렉토리에 존재하는 사용자 별 자동 실행 프로그램에 대한 설정


* /etc/profile
- 전체 사용자를 대상으로 적용되는 자동 실행 프로그램 설정
- 실행 권한(+x)이 존재하는 파일 이름을 삽입하여 무한 실행하는 등의 공격 수행
- 해당 File 악용 Case가 상당히 많은편


* /etc/init.d
- 부팅 시, 자동으로 실행되는 Binary 정보


* /etc/service
- 지정된 포트, 프로세스 등을 자동으로 허용하는 파일


* cron
- 스케줄러로 시간, 요일, 조건에 의해 실행 (= Windows 작업 스케줄러)
- Linux 버전에 따라 이름이 상이하며 cron도 경로, 종류가 다양함
1) /var/log/cron
2) /etc/cron.d
3) /etc/cron
4) /etc/crontab
5) /var/spool/cron/crontabs
- crontab 또는 crontabs 파일 내용을 설정해야 cron 관련 경로에 배치 된 실행 권한이 존재하는 파일이 실행
- 단순히 경로에 파일만 넣는 경우 실행이 되지 않음 / 단, 공격자가 사용 후 crontab 내용 삭제는 가능
Linux Log File * /var/log
- cron, web, system, application 등의 다수 로그 확인 가능
- 각각의 로그 디렉토리는 access.log (성공), error.log (실패) 정보가 존재
- 특히 error.log를 우선적으로 보며, 실패한 최초 시간을 확인하여 선별 추적 진행이 가능


* /var/log/secure(구 버전) or /var/log/auth.log
- 원격에서 접속한 사용자의 로그 확인이 가능
- 악성 서비스로 추측되는 로그가 존재할 시, syslog도 참조하여 해당 서비스가 어떤 명령어를 실행 했는지 확인할 때도 유용


* /var/run/utmp 또는 /var/adm/utmpx
- 현재 로그인한 사용자 상태 정보를 담고 있는 파일
- w, who, finger 명령어로 확인 가능


* /var/log/wtmp 또는 /var/adm/wtmpx
- 성공한 로그인/아웃 정보 및 System Boot/Shutdown 히스토리를 담은 파일
- last 명령어로 확인 가능


* /var/log/btmp 또는 /var/adm/loginlog
- 실패한 로그인 정보를 담은 파일
- lastb 명령어로 확인 가능 (솔라리스는 text 파일)


* /var/log/lastlog 또는 /var/adm/lastlog
- 마지막으로 성공한 로그인 정보를 담은 파일
- lastlog 명령어로 확인 가능 (솔라리스 finger)
숨겨진 파일 및 디렉토리 * find /경로명 -name ".*" 2>/dev/null
- 지정 경로에 대해 숨김 파일을 출력하는 명령어
- 단, /(최상위 경로) 기준으로 설정한 find 명령어는 부하가 크고 시간이 오래걸려 권장하지 않음


** find 권장 경로
/home
/root
/var
/etc
/usr
/bin
/dev
/tmp
etc...


* ls -al
- 디스크가 Mount 된 경우는 해당 명령어로 숨김 파일 정보의 확인이 수월
- 이미징 확인 툴에서도 ".파일명" 형태로 즉시 숨김 파일 인지가 가능
File 서명
(일종의 File Header)
* xxd 파일명
- 파일의 처음 10 ~ 20byte에 존재하는 헤더 정보에서 확장자를 비교하여 서명 상태 확인
- hexa 값과 ASCII 값을 구분하여 확인하는 등의 방법이 존재 (비교적 번거로운 과정)
File 확장자 * file 파일명 또는 strings 파일명
- xxd 명령 대신 file 명령어로 쉽게 확장자 비교가 가능
- 파일이 특정되면 strings 명령어로 문자열을 뽑아내서 추가 분석 진행


* zip, jpg, png, pdf, xls, doc, exe, elf 정도의 Header는 어떤식으로 ASCII, Hexa가 구성되어 있는지 숙지하는게 분석에 매우 도움
쓰기 가능 File * find 경로 -writable -type f 2>/dev/null
- 쓰기 권한(+x)이 존재하는 파일 확인
시간 정보 * touch -t 시작시간 start 후, touch -t 종료시간 end
- 시작 시간을 지정한 파일명과, 종료 시간을 지정한 파일명을 통해 범위를 지정하여 시간 범위 내에서 수정된 파일의 검색이 가능


* find 경로 -newer start -a ! -newer end
- 지정한 파일보다 더 최근에 생성되거나, 변경된 파일 검색 가능


* 시간으로 파일명 생성 시, yyyymmddhhmm.ss 값으로 설정이 가능
ex) touch -t 202305011123.00 start 및 touch -t 202305102359.00 end


* MAC (Modify, Access, Change)
- Modify : 파일 내용에 대한 변경 시간
- Access : 파일 접근에 대한 시간
- Change : 파일 속성값의 변경에 대한 시간
(단, Access 시, Change도 동일하게 변경)



* stat 파일명
- live 상태에서 stat 명령어를 통해 파일 생성 시간(Birth)값 까지 추가적으로 확인 가능
(정적 상태에서 분석 시, Disk 이미지 분석 Tool에서 created time 정보를 토대로 타임라인 구성 가능
악성 의심 정보 * rkhunter --check --rwo
- /dev 경로 위주로 탐색을 수행하는 악성 정보 탐색 도구 (별도 설치 필요)


* chkrootkit
- 시스템 Binary 파일을 검사하여, 루트킷이 만든 수정 사항을 감지하는 셸 스크립트 도구
(최근 침해 사고 동향 상, 루트킷 방식으로 숨기기 보다는 대놓고 퍼트려 놓는 방식이 다수)
패키지 설치 정보 * dpkg -l
- 설치된 모든 패키지의 이름, 버전 정보 등 출력


* dpkg -L 패키지명
- 해당 패키지가 설치된 모든 경로를 출력
사용자 홈 디렉토리
숨김 파일
* /home/계정명/.local
- 해당 디렉토리는 일종의 휴지통 역할로 최근 문서 열람, 파일 및 폴더 열람 정보 등을 확인 가능
- .local/share/recently-used.xbel 파일에 최근 열람한 문서 정보를 확인 가능
(visited, bookmark, application name 항목을 통해 시간, 파일명, 접근에 사용된 앱 이름 등 기록)


* /home/계정명/.mozilla
- 웹 브라우저 전용 로그 디렉토리로 사용자 별 해시값으로 이름을 가진 로그 디렉토리가 존재
(.mozilla/firefox)
- places.sqlite : 방문 정보
- cookies.sqlite : Web Cookie 정보
- extension.json : 확장 프로그램 정보


* /home/계정명/.Thuderbird
- 메일 프로그램 관련 정보


* /home/계정명/.cache
- 웹 이용 내역을 남기는 썸네일, Cache 정보


* /home/계정명/.vim
- vim을 이용한 기록 (단, vi만 사용하는 경우 존재하지 않는 경우도 있음)


* /home/계정명/.*_history
- 해당 사용자의 명령어 사용 기록
- 정상적으로 터미널 창이 종료된 경우에만 history 파일에 저장
(지울 시 복구가 불가능하며, 시간 정보가 존재하지 않음)


* /home/계정명/.profile
- 해당 사용자 대상으로 자동 실행되는 Program 정보
- 실행 권한(+x)이 존재하는 파일 이름을 넣어 놓는 형태로 무한 실행하는 등의 방식

 

 

 

* Linux System Dump (Disk Image)

  • Disk를 이미지 형태로 생성
  • Device 이름은 보통 /dev로 시작
    • fdisk -l 명령어로 현재 몇개의 디스크가 연결 되었는지 정보 확인 가능
  • 디스크 이미지 생성 명령어 (dd)
    • ex) dd if=/dev/sda1 of=test.001 (로컬 저장 방식)
    • ex) dd if=/dev/xvda | ssh 분석수행PC계정명@본인IP "dd of=linux_1.001"
      • 원격(ssh)을 이용한 타 시스템의 이미지 덤프 방식
      • nc를 사용하는 방식도 존재하며 속도는 빠르지만 안정성이 떨어지는 편
  • 수집된 이미지(raw format) Mount
    • losetup /dev/loop0 이미지파일이름.확장자
    • cd /media/kali/~~~
      • ewfmount 이미지파일이름.E01 마운트Directory이름
        • E01은 위 명령어로 Mount 진행
        • 이후, mkdir 폴더명
        • mount -o offset=$((2048%512)) -v ./마운트Directory이름/ewf1 ./mkdir로Create한directory이름
  • raw format image 파일 부팅 방법
    • 별도로 생성한 dd 타입 이미지를 vmdk type으로 변경하여 가상 머신에서 부팅
    • 게시물 상단의 qemu로 변환하여 부팅하는 방법 참조
  • 예시
    • 분석 수행 시스템에서 ext4 type의 정상 .E01 또는 .raw 이미지 파일 Mount 방법
      • ewfmount 설치
      • mkdir로 mount에 사용할 Directory 2개 생성
      • ewfmount 이미지파일 대상_디렉토리1
        • 이후, ewf1 file 생성 확인
        • mount ./ewf/ewf1 대상_디렉토리2
        • 정상 mount 확인 가능

ewf (대상_디렉토리1) 폴더에 ewfmount 수행
ewf1 파일 생성 확인 가능
ewf1 파일을 /mount (대상_디렉토리2)에 mount
mount 디렉토리에 정상적으로 이미지 마운트 확인 가능

 

 

 

* 휘발성 데이터 수집 명령어

분류 명령어/경로 및 내용
호스트 식별 * hostname
- 침해 사고 조사 시(특히 다수 대상), 대상 식별을 위해 사용
시간 정보 * date
- 현재 시스템에 대한 시간 정보 확인


* date + %s
- Unix Time으로 변경하여 시간 정보 출력 (1970.01.01 00:00 부터 초 단위로 환산)
시스템 Timezone * cat /etc/timezone
- 시스템 Timezone 설정 상태 확인 (date 명령어로도 확인 가능)
부팅 기준 시간 * uptime
- 시스템 부팅 후, 작동한 시간 확인
- 현재 로그인한 사용자 수
- 현재 시간
- 특정 시간동안의 시스템 평균 메트릭 등
IP 설정 정보 * ip ad 또는 ifconfig
- 호스트 식별을 위해 사용하며, eth, ens등의 NIC 설정 정보 확인 가능
- 네트워크 패킷 덤프를 위해 확인이 필수적임


* 명령어 출력 정보 분류
- lo, ens33 = NIC
- UNKNOWN = NIC가 작동하나, 연결이 없는 상태
- UP = NIC 작동 및 연결이 있는 상태
무차별 수집 * ifconfig eth숫자 promisc
- 수사관 성향에 따라 사용 여부가 다름
- 보통 네트워크 차단, 전체 수집이 필요한 상황 등에 따라 사용
Network Dump * tcpdump -i eth숫자 -vv -w 파일명.pcap
- 지정한 eth 대상으로 파일명.pcap이란 패킷 덤프 파일을 기록


* wireshark 파일명.pcap
- tcpdump로 생성된 파일의 네트워크 통신 이력 추적 진행


* tcpdump -i any
- 모든 인터페이스에 대한 네트워크 통신 Dump
소켓 정보 * netstat -ss
- 활성화 된 소켓 정보에 대한 수집 명령어


* netstat -rn
- 라우팅 테이블 정보 수집


* netstat -anop
- 최적 옵션 설정으로, 출력 결과 전체를 볼 필요는 없으며, 명령어 상단에 tcp, udp. raw 등의 프로토콜 정보를 한정하여 선별 확인을 권장
포트 정보 * nmap -sT 또는 -sU 대상
- netstat으로 수집하지 못한 열린 포트에 대해 추가 정보 수집이 가능


* lsof -i -P -n
- nmap과 동일 목적으로 사용 가능한 명령어 (list open file)
실행중인 파일 정보 *lsof -u 유저명
- 유저 이름을 별도로 지정하여 실행중인 파일에 대한 정보를 출력
마운트 정보 출력 * mount 또는 df -TH
- 마운트 된 디스크 정보 출력 명령어
커널 모듈 정보 * lsmod
- 일종의 라이브러리 정보로 로드 된 커널 모듈을 탐색하는 명령어
- 어떤 모듈이 의심스러운지 찾기 위한 전체 리스팅이 목적
(극히 드물게 악성 정보가 발견되며, 보통은 쉘 스크립트(파일) 자체로 침해를 수행)


* modinfo 커널모듈이름
- 분석할 커널 모듈 이름을 입력하여 상세 정보를 출력
- 기본 설치 모듈들에 대해서 숙지할 시(또는 비교할 수 있는 동일 OS 구축), 침해 사고 선별이 수월함
사용자 이벤트 * ausearch -ui 숫자 -i
- uuid 기반으로 사용자 이벤트를 검색하며 일종의 감사 목적의 로그 (별도 설치가 필요한 명령어)
- 해당 감사 로그를 설정하지 않았다면, /var/log/audit/audit.log 정보(auditd)가 없음


* auditd 설정 방법
1) auditd 설치
2) cd /etc/audit/plugins.d
3) vi 또는 mousepad를 통해 syslog.conf 파일 열기
4) 파일 내용 중 active 정보를 yes로 변경 후 저장하여 로깅 활성화 (active = yes)
5) service auditd restart


* ausearch -ui 숫자 -i | grep -i session 및 ausearch -ui 숫자 -i | grep service
- auditd가 설정되어 적재되는 로그들이 존재할 시, grep -i를 통해 추적
- 특히 session과 service로 필터링하여 서비스 유형, 시간 정보, uid, service_start/stop, session_open/close 등의 정보를 상세히 보길 권장
ELF 파일 정보 * readelf -a 파일명
- 악성코드 초동 분석 시, 가장 많이 사용하는 명령어
- 재부팅 여부에 따라서 해당 정보가 달라질 수 있기 때문에 휘발성 정보로 분류


* .rela.plt section
- 해당 섹션에 나온 정보는 elf 파일에서 사용했던 함수의 정보를 확인할 수 있음
- 보통 해당 부분에서 socket 함수(외부 통신)를 가장 많이 찾는 편
프로세스 상세 정보 * pstree
- 프로세스들을 상호 연관된 경우 트리 형태로 출력해주는 명령어
- 프로세스 정보 파악 시, 우선적으로 실행하여 연관 프로세스에 대한 파악 후 추가 확인 진행


* top
- CPU ,Memory 점유 정보를 출력하며, 리소스 과다 점유 프로세스는 채굴기인 경우가 다수


* ps -aux
- 시스템 / 유저 프로세스에 대한 구분을 하며 확인 진행을 권장
- [대괄호]로 묶인 프로세스의 경우 커널의 자체 데몬 프로세스로 굳이 볼 이유는 없음
(유저 프로세스를 중점으로 확인하길 권장)
SWAP 영역 정보 * cat /proc/swaps
- 메모리 스왑 영역에 대한 정보 출력
Disk 파티션 정보 * cat /proc/partitions
- 디스크 파티션 정보 출력
Kernel 메세지 로그 * dmesg
- 커널 로그를 출력해주며 연결된 장치 정보 및 오류 정보 등의 중요 정보가 다수 저장
실행중인 서비스 정보 * systemctl --state=active --type=service
- Live Forensic 환경에서 실행중인 서비스를 확인할 수 있는 명령어
Memory Dump * 해당 Live 시스템의 Memory가 저장한 모든 정보를 파일로 저장하는 것
- volatility 툴을 많이 사용하며, 분석에 Profile 또는 ISF 정보가 필요하기 때문에 과정이 복잡함

 

 

 

* Linux 계열 Backdoor

- Linux System Forensic 과정에서 자주 확인되는 Backdoor 유형에 대한 정리

  • crontab에 sh -i 이용
  • 백도어 기능이 있는 자체 .sh 파일 생성
  • elf 파일로 백도어 악성 파일 사용
  • ssh 공개키를 타 호스트에 locate하여 백도어 구현
    • 사용자_홈Directory/.ssh 경로의 authrized_keys에 있는 공개키를 타 호스트로 locate
    • 비밀키만 공격자가 본인의 PC(공격 수행 호스트)에 locate 할 시, 언제든 접속이 가능
      • ssh-keygen 명령어로 공개키, 비밀키를 생성
      • .ssh로 백도어 공격의 연관성이 확인 될 시, /var/log/secure 로그 파일에 실패(failed), 성공(accepted password...) 로그가 확인 가능

ssh-keygen 명령어로 Key 생성
비밀키와 공개키 생성 확인 가능

 

 

 

반응형