리눅스 백도어 설치
대상 : 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
'IT > 리눅스마스터1급' 카테고리의 다른 글
[Linux] 시간 동기화 Time sync (0) | 2023.08.01 |
---|---|
[Linux] 서버 시간동기화 방법 / server synchronization time (0) | 2023.08.01 |
[CentOS] smartd에서 mail, mailx 사용해 메일 보내기 - 1 (0) | 2023.07.27 |
운영체제/Linux[linux] 리눅스 시스템에서 간단히 메일 전송하기 mailx tool (0) | 2023.07.27 |
Linux > [리눅스] mailx 사용법/명령어 (0) | 2023.07.26 |