IT/리눅스마스터1급

리눅스 backdoor

알콩달콩아빠 2023. 8. 1. 16:47
728x90
반응형

리눅스 백도어 설치

대상 : Cento6 , ishell-v0.2

1. centos6.zip을 서버와 클라이언트로 나눠 압축 풀기(설치)

2. yum -y install gcc* (두개 모두 해당)

양쪽 모두 ish 파일의 압축을 푼다.

client : 서버측에서 작업을 하기 위해 IP를 확인하고 ishd 파일을 실행시킨다

server : 클라이언트의 IP를 적어주면 연결이 된 것 을 확인 할 수 있다.

hacker라는 파일을 생성을 하였다.

client 측에서 확인을 해보면 hacker라는 파일이 보인다.

서버에서 접근 후 touch, poweroff 등 명령어가 client에게 먹힌다.

작업하기 편하도록 바탕화면에 있는 ISH 파일을 최상위로 옮긴다 (mv ./ISHELL-v0.2/ ~)

 

스케줄에 의해 프로그램 실행하기 : client에서 작업

서비스 실행

/etc/rc.d/init.d/crond restart

※ windows에서 동작 중인 프로세스

csrss.exe : 윈도우 콘솔 관장 / 스레드 생성 및 삭제 / 32비트 가상 MS-DOS 모드 지원

Explorer.exe : 작업표시줄, 바탕화면 같은 사용자 쉘 지원하는 프로세스

Lsass.exe : winlogon 서비스에 필요한 인증 프로세스 (Local Security Authentication Sever)

Mstask.exe : 시스템에 대한 백업이나 업데이트에 관한 작업의 스케줄러 프로세스(widows task scheduler)

Smss.exe : 사용자 세션 시작 기능을 담당하는 프로세스/Winlogin, win32를 구동/시스템 변수 설정

smss는 winlogon이나 csrss 종료 시 시스템을 종료

spoolsv.exe : 프린터와 팩스의 스풀링 기능을 수행하는 프로세스 (Print Spooler Service)

Svchost.exe : DDL(dynamic Link Libraties)에 의해 실행되는 프로세스의 기본 프로세스

Servicecs.exe : 시스템 서비스 시작 및 정지 / 그룹 간의 상호 작용하는 기능 수행하는 프로세스

System : 대부분 커널 모드 스레드의 시작점이 되는 프로세스

System idle Process : 각 CPU마다 하나씩 실행 / CPU의 잔여 프로세스 처리량을 %로 나타낸 값

Taskmgr.exe : windows 작업 관리자 자신의 프로세스 (Task Manager)

winlogin.exe : 사용자 로그인 및 로그오프를 담당하는 프로세스 /. 윈도우의 시작, 종료 또는 작업관리자 프로세스

Msdtc.exe : 웹 서버 및 SQL 서버 구동 시에 다른 서버와 연동하기 위한 프로세스

Ctfmon.exe : 키보드, 음성, 손글씨 등 여러 가지 텍스트 입력에 대한 처리를 할 수 있게 지원하는 프로세스

Dfssvc.exe : 분산 파일 시스템에 대한 지원을 위해 백그라운드로 실행되고 있는 프로세스

※ 위의 프로세스가 대표적인 윈도우 프로세스다.

※ 열린 포트 확인

- backdoor 상당 수가 외부와 통신을 위해 열어놓은 서비스 포트에 생성

- 시스템에서 netstat 명령어로 열린 포트 확인

- 일반 시스템에서 사용되는 포트는 그리 많지 않으르모 주의에 살펴보면 백도어가 사용하는 포트를 쉽게 확인 가능

- 포트 번호만으로 확인하기 어려운 경우 스니퍼를 이용한 패킷 분석을 통해 백도어의 사용 여부를 판단 할 수 있다.

※리눅스의 경우 setuid 파일 검사

- 주기적으로 setuid의 파일에 대한 내용을 확인하여 살펴본다.

※바이러스와 백도어 탐지tool 이용

- 잘 알려진 백도어는 대부분 바이러스 일종으로 분류되어 백신tool이나 탐지tool에서 발견이 가능하다.

※ 무결성 검사

- 시스템에 어떤 변화가 일어나는지 알아보는 것을 무결성 검사라고 한다.

- MD5 해시 기법을 많이 사용한다.

- 파일 내용이 조금만 바뀌어도 MD5해쉬 결과값이 다르므로 관리자는 주요 파일의 MD5값을 주기적으로

수집하고 검사하여 파일의 변경 내역을 확인한다.

※windows에서 포트확인툴 : fport

- cmd에서 fport프로그램으로 각 포트에 대한 프로그램의 위치와 이름 확인 가능

※Linux 백도어 탐지 : ps -ef

- 시스템의 쉘과 프로세스 소유자에 관계없이 확인 모든 프로세스 확인

- 열린 포트확인 : netstat -an(윈도우와 동일)

※SetUID파일 검사

- find 명령 이용해서 시스템에서 SetUID, SetGID가 부여된 파일 탐색

- find / -perm +4000(+2000) or /4000(/2000)

※ 백도어 탐지 툴 이용

- 리눅스에서는 백도어 탐지 툴 발전 미흡

- 커널형 백도어는 이런 방법으로 탐지하기 어려워 chkrootkit 등과 같이 이용해야 한다.

- 윈도우에서는 SFC(system file checker)기본 제공, 다양한 백신 툴 활용해도 됨

- 무결성 검사 : 윈도우처럼 MD5sum 툴 이용, sha1sum 제공 되며 Tripwire를 활용해도 된다.

※백도어 삭제

- ps -kill 명령을 통해 해당 프로세스 중지, 해당 백도어 파일 삭제로 완료

※tripwire를 이용해서 무결성 검사

-폭넓게 사용 가능한 파일 무결설 tool

- tripwire사에서 지속적으로 버전 업그레이드 중

- 모든 버전의 checksum alogorithm을 지원 (MD5, MD2. MD4, SHA/SHS, HAVAL등)

- 크래커가 침입하여 백도어를 만들어 놓거나 설정 파일을 변경해 놓았을 때 분석해주는 강력한 도구

- 시스템 내의 지정한 중요한 디렉터리와 파일에 대한 데이터 베이스를 생성한 후 tripwire를 실행할 때 새로 생성된

DB와 비교하여 그 차이점을 보고 관리자가 시스템 내에서 어떠한 변화가 있는지 감지할 수 있게 해주는 도구

- 크래커가 백도어 설치 후 tripwire의 DB를 갱신해 버리는 경우 크래킹 사실을 알 수 없는 단점이 있다

설치

yum epel 저장소 추가(Extra Packages for enterprise linux yum 저장소)

1. yum repolist

2. rpm -qa epel-release

3. yum list epel-release

4. yum install epel-release

5. rpm -qa epel-release

6. yum list installed epel-release

7. yum repolist

8. yum install tripwire

설치가 끝나면

/usr/sbin/tripwire-setup-keyfiles 를 입력해서 구동을 한다

패스워드 입력

site keyfile

- tripwire 설정 파일 생성 및 tripwire 데이터베이스를 갱신할 때 필요

- 암호는 8자리 이상, root의 암호와는 다른 암호를 권장함

local keyfile(/etc/tripwire/호스트명-local.key)

- tripwire 데이터베이스를 초기화할 때 사용되는 암호를 생성

- site keyfile과 다른 암호 권장

- /etc/tripwire/ 디렉터리에는 tripwire와 관련된 설정 파일, key 파일 및 정책 파일이 저장

- tw.pol과 tw.cfg : tripwire 관련 설정파일, 암호화 되어있음, 기본 설정 내용은 twcfg.txtm twpol.txt 파일을

기본으로 하여 만들어짐

- twcfg.txt파일과 twpol.txt 파일은 각각 tw.cfg tw.pol 파일이 생성되면 디른 사용자가 내용을 볼 수 없도록

usb나 다른 시스템으로 옮긴 후 삭제하는 것이 보안상 좋다.

-twcfg : tripwire의 실행 환경에 관련한 사항

* site keyfile의 암호를 입력

* 에디터가 불가능 하므로 내용 확인하거나 설정 내용을 변경하려면 twcfg.txt를 이용

- twpol.txt : 해당 시스템에 대한무결성 검사 목록 저장 파일, 시스템에 최적화 할 수 있음

*정책 파일은 감시할 디렉터리 및 파일을 지정하고 어느 정도의 강도로 감시할 것인가를 다루고 있는 파일

twpol.txt 정책 파일 설정

mv ./twpol.txt ./twpol.txt.bak

[root@tiger tripwire]# cat > ./twpol.txt

/bin -> $(ReadOnly);

/etc -> $(IgnoreNone)-SHa; << 파일 변경 못하도록

/var -> +tpug; << 디렉터리에 허가권이나 소유권 변경 못하도록

※ 정책 파일 인식시키기

새로운 정책 파일이 생성될 수 있도록 : # twadmin --create-polfile /etc/tripwire/twpol.txt

명령어를 실행하고 site keyfile의 암호를 입력하면 된다.

※데이터 베이스 초기화 및 검사

# tripwire --init

이때 암호는 두번째 local keyfile이 필요

초기화된 데이터 베이스는 /var/lib/tripwire/호스트명.twd파일로 생성

/var/lib/tripwire/ => 별도로 저장하는 것이 바람직

※ tripwire 실행 결과 확인

# tripwire --check | more << report가 생성 (var/lib/tripwire/report)

※ 변경된 파일 찾아 보고하는지 확인을 하려면

cp /bin/bash /var/lib/backdoor

chmod 4755 /var/lib/backdoor

chown root.itbank /var/lib/backdoor

tripwire --check | more 를 입력시 backdoor파일을 찾아낸다.

작성된 보고서 보기

- /var/lib/triwire/report/ 에 보고서가 있고

#twprint --print-report -r /var/lib/tripwire/report/보고서명.twr

을 입력하면 보인다. 뒤에 | less나 more을 붙여주는 것이 좋다.

※tripwire 데이터베이스 갱신

- 디렉터리와 파일이 변동되어있을 때는 기존의 tripwire 데이터베이스를 업그레이드

- 정책 파일과 데이터베이스 초기화 과정은 동일하다.

# tripwire --create-polfile /etc/tripwire/twpol.txt

# tripwire --init

 

출처 : 3. 리눅스 backdoor : 네이버 블로그 (naver.com)

 

728x90
반응형