'2016/06'에 해당되는 글 3건

  1. 2016.06.23 Unix/Linux 로그 분석 2
  2. 2016.06.22 WSO WebShell
  3. 2016.06.22 악성코드 분석에 도움이 될만한 사이트
Digital Forensics/Linux2016. 6. 23. 10:46
반응형

Unix/Linux 포렌식에서 조사관은 로그 분석을 통해 침입자의 다양한 침입 흔적을 알 수 있다. 시스템에 대한 스캔 행위, exploit 을 통한 공격, 특정 사용자 계정으로의 접속, root 권한 획득, 트로이 목마 설치, 자료 유출 및 삭제 등 공격자의 행위 하나하나가 모두 시스템에 의해 감시 되고 로그로 남기 때문이다.
 그럼 먼저 일반적인 Unix/Linux의 로그 저장 경로를 알아보자.
 
/usr/admin : 초기 유닉스, BSD 계열(HP-UX 9.X , SunOS 4.X)
/var/admin : 최근 유닉스, BSD 계열(SUN Solaris , HP-UX 20.X 이후, IBM AIX)
/var/log : 일부 BSD 계열(BSD, FreeBSD, Sun Solarix, Linux)

/var/run : 일부 Linux 계열

 각 로그 별 저장 데이터는 다음 표와 같다. 각 로그에 대한 자세한 설명은 뒷 부분에서 다룬다.
 로그 저장 데이터
 utmp, utmpx 현재 로그인한 사용자들에 대한 상태 정보
 wtmp, wtmpx 사용자들의 로그인-아웃 정보
 sulog, authlog su(switch user) 명령어 사용 정보
 syslog, secure 사용자 인증에 관련된 정보
 loginlog, failedlogin, btmp 실패한 로그인 정보
 shutdownlog 셧다운, 리부팅, 홀트 정보
 access_log, error_log 웹 서버 접속 정보, 에러 정보
 lastlog 각 사용자의 최근 로그인 정보
 messages 콘솔 상의 화면에 출력되는 메세지 정보
 xferlog FTP 데몬을 통해 송수신 되는 데이터 정보
 acct, pacct 각 사용자별 실행한 명령어 정보
 history 각 사용자별 실행한 명령어, 인자 정보
 sialog Compaq Tru64 OS의 su 명령어 사용 정보



 위에서 대략적으로 설명한 로그들은 시스템 별로 각각 저장 여부가 다르다. 실제 시스템별 저장되는 로그는 다음 표와 같다.
 
로그Solaris 2.X HP-UX 9.X IBM AIX Linux Compaq Tru64 
 utpmx,  
 wtmpx
 /var/adm(/etc) 해당 없음 해당 없음 해당 없음 해당 없음
 utmp, wtmp /var/adm(/etc) /usr/adm /var/adm /var/log(wtmp)
 /var/run(utmp)
 /var/adm
 btmp 해당 없음 /usr/adm 해당 없음 /var/log 해당 없음
 syslog /var/log /usr/adm/sys
log/syslog.log
 /var/adm 해당 없음 /var/log
 secure 해당 없음 해당 없음 해당 없음 /var/log 해당 없음
 sulog /var/adm /usr/adm /var/adm 해당 없음 해당 없음
 pacct /var/adm /var/adm /var/adm /var/log /var/log
 authlog /var/log 해당 없음 해당 없음 해당 없음 해당 없음
 messages /var/adm /var/adm /var/adm /var/log /var/adm
 loginlog /var/adm 해당 없음 해당 없음 해당 없음 /var/adm
 failedlogin 해당 없음 해당 없음 /etc/security 해당 없음 해당 없음
 sialog 해당 없음 해당 없음 해당 없음 해당 없음  /var/adm



다음은 각 로그 파일에 대한 상세 설명이다.
(그림 출처 : "UNIX 로그분석을 통한 침입자 추적 및 로그관리 : Part 1" by 정현철)



1. utmp, utmpx
  - 시스템에 현재 로그인한 사용자들에 대한 상태를 기록(바이너리 형식)
  - /var/run (Linux) 혹은 /var/adm, /etc/ (Solaris) 등에 위치함
  - 사용자 이름, 터미널 장치 이름, 원격 로그인 시 원격 호스트 이름, 사용자 로그인한
    시간 등을 기록
  - who, w, whodo, users, finger 등의 명령어를 통해 내용 확인 가능
  - 'w'는 utmp(x)를 참조하여 현재 시스템에 성공적으로 로그인한 사용자에 대한 snapshot
    을 제공해 주는 명령으로  해킹 피해 시스템 분석 시에 반드시 실행해 보아야 함
   
    ※ 분석 포인트!!!
    1) 접속한 계정이 모든 정상적인 계정인가?
    2) 접속 IP가 내부 IP 이외 이거나 국외 IP인가?
    3) 사용자 행위가 정상적인가? 스캔툴이나 DOS 공격을 수행하는지 확인한다.

 

그림1. 'w' 명령을 통한 현재 로그인 사용자의 snapshot 확인 





2. wtmp, wtmpx
  - 현재까지의 각 사용자 별 로그인/아웃 누적 정보(바이너리 형식 : utmp strcture 사용)
  - 시스템 셧다운, 부팅 히스토리까지 포함
  - 'last' 명령을 통해 내용 확인 가능
  - 로그 파일 rotate 시, 이전 wtmp 데이터는 'wtmp.1' 형태로 저장됨
    'last -f ./wtmp.1" 형식으로 내용 확인 가능 

    ※ 분석 포인트!!!
    1) 접속 시간이 정상적인가? 보통 공격은 새벽 시간대에 이루어짐
    2) 접속 IP가 내부 IP 이외 이거나 국외 IP인가?

그림 2. 'last' 명령을 통한 wtmp 내용 확인





3. sulog, authlog
  - su(switch user) 명령어 사용 기록(텍스트 형식)
  - 날짜 및 시간, 성공(+)/실패(-), 사용한 터미널 이름, from 사용자, to 사용자 등의 정보가
    포함

   ※ 분석 포인트!!!
    'su' 명령은 다른 사용자의 ID로 로그인하는 것과 동일한 효과를 가지므로 로그인 정보
    를 기록하는 utmp/wtmp 파일과 연동하여 분석할 필요가 있음
    => su 명령을 통해 관리자 권한을 얻더라도 utmp와 wtmp에 기록이 남지 않음 
    => 일반 사용자로 로그인한 후, 'su' 명령을 통한 권한 상승은 불법적인 접근으로 의심해
        볼 수 있음

그림 3. 'sulog' 파일 내용 확인





4. syslog, secure
  - 사용자 인증과 관련된 로그 및 커널, 데몬들에서 생성된 모든 로그를 기록(텍스트 형식)
  - rsh, rlogin, ftp, finger, telnet, pop3 등에 대한 접속 기록 및 접속 실패 기록 등 시스템의
    보안과 밀접한 관계에 있는 로그
  - 보안사고가 발생할 경우 가장 먼저 백업하여야 하며 가장 먼저 분석을 시도하여 하는
    로그 파일
  - Linux 계열에서는 secure 로그로 남음

   ※ 분석 포인트!!!
    1) 아래 그림과 같이 짧은 시간 안에 여러 서비스에 대한 접속 시도는 multiple 스캔 공격
        으로 판단 가능
    2) 버퍼오버플로우 흔적을 찾을 수 있음

그림 4. 'secure' 로그 파일 안에서의 Multiple 스캔 공격 흔적




 
5. loginlog, failedlogin, btmp
  - 실패한 로그인 시도를 기록(텍스트 형식)
  - 기본적으로 생성되지 않고 수동으로 생성해 주어야 함
  - 사용자ID, 터미널명, 날짜 및 시간
  - Solaris를 포함한 시스템 V 계열의 유닉스에서는 loginlog파일이 사용됨(Text 형식)
  - Linux와 HP-UX에서는 btmp 파일을, AIX에서는 failedlogin 파일을 사용(바이너리 형식)
  - Linux의 경우, 'lastb' 명령을 사용하여 btmp 파일의 내용을 확인 가능

   ※ 분석 포인트!!!
    -
특정 IP로 부터의 다수의 접속 실패는 Brute-Force 공격으로 의심할 수 있음
        =>해당 Brute-Force 공격의 성공 여부는 syslog, messages 파일과의 병행 분석을 통
           해 확인

그림 5. 'loginlog' 파일의 내용 확인




 

6. shutdownlog
  - HP-UX 에만 있는 로그, 시스템의 shutdown, reboting, halt 내역 기록(텍스트 형식)
  
   ※ 분석 포인트!!!
    - 일반 사용자가 'su'로 권한 상승 후, 'shutdown' 명령 실행시 로그 파일에 일반 사용자 
      ID로 기록이 남음 => 시스템이 해커에 의해 리부팅 혹은 셧다운 되었는지 확인 가능
    - 'reboot after panic'이란 flag로 기록이 남으면 커널 패닉으로 판단, 시스템 장애추적에 
      활용될 수 있음





7. access_log, error_log
  - access_log : 웹 페이지 접속 및 파일 다운로드 기록(텍스트 형식)
  - error_log : 존재하지 않는 파일에 대한 접근 등의 에러 기록(텍스트 형식)
  
   ※ 분석 포인트!!!
    1) 웹 서버에 대한 공격은 주로 CGI 프로그램에 집중, 취약한 CGI 프로그램에 대한 공격
       로그를 검사
    2) 웹 서버마다 로그 포멧이 모두 조금씩 다름. 각각의 포멧을 익혀두는 것이 필요.

그림 6. 'access_log' 에 기록된 취약한 CGI 프로그램에 대한 스캔 공격 흔적





8. lastlog
  - 각 사용자가 가장 최근에 로그인한 시간과 접속장소가 기록(바이너리 형식)
  - 동일한 사용자에 대해서는 이전 내용을 overwrite 함
  - wtmp(x), utmp(x) 등 사용자와 관련된 로그와 병행하여 함께 분석하여야 하는 파일
  - IBM AIX의 lastlog의 경우, 텍스트 형식으로 저장됨
  - 'lastlog' 명령을 통해 내용 확인 가능

그림 7. 'lastlog' 명령 출력 결과





9. messages
  - 콘솔 상의 화면에 출력되는 메세지들을 기록(텍스트 형식)
  - timestamp, 호스트명, 프로그램명, 메시지 내용
  - 메세지 내용에는 su 실패에 대한 로그, 특정 데몬이 비활성화된 로그, 부팅시에 발생된
    에러 등 다양한 로그들을 포함
  - syslog와 마찬가지로 보안사고가 발생시에 가장 먼저 분석을 하여야 하는 파일

   ※ 분석 포인트!!!
    1) 취약점을 가진 다양한 서비스들을 미리 파악하여 분석 수행
    2) 로그만을 통해 취약점에 대한 공격의 성공/실패 여부는 알 수 없기 때문에 해당 취약점
       의 특성을 파악하여 직접 확인할 필요가 있음 
    3) 대부분의 버퍼오버플로우 공격의 경우, 아래 그림과 같이 비정상적인 로그가 기록됨  

그림 8. 버퍼오버플로우 공격으로 인한 비정상적인 로그 기록

    4) 스니핑 툴이 설치하여 모니터링을 수행할 경우, 네트워크 카드는 Promiscuous 모드로
      설정되어 있어야 함. 따라서 아래 그림과 같이 'messages' 로그에서 네트워크 카드의 
      Promiscouos 모드 On/Off 시간을 알 수 있음.

그림 9. 'messages' 로그에 기록된 네트워크 카드 Promiscuous 모드 On/Off 시간





10. xferlog
  - ftp 데몬을 통하여 송수신되는 모든 파일에 대한 기록(텍스트 형식)
  - 송수신 자료와 시간, 송수신을 수행한 원격 호스트, 송수신된 파일의 크기, 송수신된 파
    일의 이름, 파일의 송수신 모드, 특수 행위 플래그, 전송 방향, 로그인한 사용자의 종류
  - 디폴트로는 로그가 남지 않으며 '/etc/inetd.conf' 에서 'ftp stream tcp nowait
     root /usr/sbin/tcpdin.ftpd -l -a'와 같이 '-l' 옵션을 주었을 때만 로그 생성
  
   ※ 분석 포인트!!!
   
1) 접속 시간이 정상적인가? 
    2) 접속 IP가 내부 IP 이외 이거나 국외 IP인가?
    3) 송수신한 파일이 해킹툴이나 주요 자료인지 확인
    4) wtmp와 utmp와 병행 분석
        => wtmp에는 ftp 접속 흔적이 남아 있지 않은데 xferlog에는 기록이 남아 있을 때 침입
           을 의심할 수 있음

그림 10. 'xferlog'에 기록된 의심 해킹툴 다운로드 흔적





11. acct, pacct
  - 각 사용자의 수행한 단일 명령어의 모든 정보를 기록(바이너리 형식)
  - 명령어의 아규먼트는 기록되지 않음
  - 'lastcomm'이나 'acctcom' 명령어을 통해 내용 확인 가능 
  - 기본적으로 실행되지 않으면 'startup' 이나 'accton' 명령어로 설정

   ※ 분석 포인트!!!
    1) acct, pacct 로그에는 사용한 명령어만 남으므로 history 로그를 통해 보완한다.
   

그림 11. 'lastcomm' 명령어를 통한 사용 명령어 기록 확인





12. history
  - 각 사용자별로 수행한 명령을 기록(텍스트 형식) 
  - 명령어의 아규먼트를 모두 기록
  - 쉘에 따라 .sh_history, .history, .bash_history 등의 파일로 기록

   ※ 분석 포인트!!!
    1) 로그 파일은 각 사용자의 홈 디렉토리에 숨긴 파일 형태로 저장됨
    2) 백도어와 같이 비정상적으로 루트 쉘을 획득할 경우, 루트의 홈 디렉토리(/root/)가
        아닌 최상위 디렉토리에 로그 파일이 생성됨

그림 12. 'history' 로그에 기록된 lrk4(루트킷) 다운로드 및 설치 흔적





13. sialog
  - Compaq Tru64에 sulog와 authlog 대신 저장되는 로그

※ Compaq Tru64 로그 체계
  1) SIA(Security Integration Architecture)라는 독특한 보안체계가 있기 때문에 일반적인
      System V 계열과는 차이가 있음
  2) 같은 파일명을 사용하더라도 타 UNIX 계열과 로그 포멧이 대부분 다름
     - wtmpx : '/var/adm'에 저장(다른 포멧)
     - pacct : '/var/adm'에 저장(다른 포멧)
     - messages : '/var/adm'에 저장(같은 포멧)
     - loginlog : '/var/adm'에 저장(같은 포멧)
     - lastlog : '/var/adm'에 저장(다른 포멧)
     - sulog와 authlog가 없는 대신 /var/adm 에 sialog 저장



* 출처 : http://blueangel-forensic-note.tistory.com/entry/UnixLinux-%EB%A1%9C%EA%B7%B8

반응형
Posted by CCIBOMB
반응형

* WebShell


웹쉘(WebShell)은 원격 관리도구인 RAT(Remote Administration Tool) 또는 백도어(Backdoor)라고 불림. 웹쉘은 서버 제어권을 장악하거나 어떠한 스크립트를 실행하거나 자료를 파괴하는 등 모든 기능을 가진 GUI 도구도 있고, 단순히 브라우져의 URL을 통해 명령하고 서버에서 실행하게 하는 단순한 몇줄짜리 코드도 있음. 웹쉘은 서버가 지원하는 어떠한 언어로도 작성될 수 있음


* WSO WebShell

WSO의 경우는 PHP로 작성됨. ApachePHP 기반으로 서버를 운영하고 있다면, WSO와 같은 강력한 PHP 웹쉘에 취약할 수 있음. 웹쉘이 설치되고 나면 서버 관리자와 동일한 권한을 갖게 됨


* WSO 웹쉘 특징(참조 : thehackernews.com)

Authorization for cookies

Server Information

File manager (copy, rename, move, delete, chmod, touch, creating files and folders)

View, hexview, editing, downloading, uploading files

Working with zip archives (packing, unpacking) + compression tar.gz

Console

SQL Manager (MySql, PostgreSql)

Execute PHP code

Working with Strings + hash search online databases

Bindport and back-Connect (Perl)

Brute force FTP, MySQL, PgSQL

Search files, search text in files

Support for * nix-like and Windows systems

Antipoiskovik (check User-Agent, if a search engine then returns 404 error)

You can use AJAX

Small size. The boxed version is 22.8 Kb

Choice of encoding, which employs a shell.

 

* WSO 웹쉘 사용법

아래와 같은 환경에 웹쉘을 업로드 하면, 웹사이트 장악 완료.

Site name abcxyz.com

abcxyz’s root directory /var/www/abvxyz/

Uploaded directory /var/www/abvxyz/uploads/wso.php


* WSO 웹쉘 화면



 

반응형
Posted by CCIBOMB
반응형

악성코드 분석에 도움이 될만한 사이트

악성코드 분석에 도움이 될만한 사이트 정리
1. 자주 쓰이는 악성코드 분석툴
2. 온라인 바이러스 스캐너 및 분석도구
3. 악성코드 유포 주소 확인 및 샘플 공유사이트
4. 전세계 악성코드들의 활동을 대쉬보드로 제공하는 사이트들
5. 악성코드 분석을 위한 가상화 및 샌드박스를 제공하는 사이트
6. 문서파일관련 악성코드 분석자료
7. 그외 공개되어 있는 악성코드 분석 도구들
8. 모바일 기반 악성코드 분석9. 악성코드 분석 강좌 및 참고자료를 제공하는 사이
10. 기타 참고자료
 
1. 자주 쓰이는 악성코드 분석툴
동적분석 도구
- 
실시간 프로세스 모니터링 (Process Explorer, Process Monitor)
- 실시간 메모리 분석 (vmmap)
- 
윈도우 시작 프로그램 분석(Autoruns)
- 실시간 레지스트리 생성 및 수정 정보 분석(regmon)
- 실시간 네트워크 연결 분석(Cport)
- 실시간 네트워크 트래픽 및 패킷 분석(WireShark, Smsniff)
- 강력한 루트킷 탐지 도구(Gmer)
정적분석 도구
- 대표적인 바이너리 디버깅 프로그램(OllyDbg, Immunity Debugger)
메모리 덤프 분석 도구(WinDbg)
- 
파일내 헥사값을 분석하기 위한 에디터(HxD, WinHex)
- 
헥사 비교 에디터 (Beyond Compare, HexCmp)
- 
패킹 여부 확인 및 해제 도구 (UPX, PEID)
- 
파일내 스트링 검색도구 (BinText)
- PE 
포멧 및 구조 분석 도구 (PEview)
- 최고의 디스어셈블러, 
악성코드를 정밀 분석하기 위한 프로그램 (IDA Pro)
- 자바 소스를 출력하기 위한 디컴파일 도구 (JD-gui)

그외 추가적인 자료
- PE구조 분석 (
PE101)
- 해쉬값 체크 도구 (HashTab)
- 악의적인 행위를 추적하기 위한 도구(Regshot, Winalysis, SystemSherlock)
2. 온라인 바이러스 스캐너 및 분석도구
(주요 사이트)

(기타)
(그외 리스트 및 참고자료)
3. 악성코드 유포 주소 확인 및 샘플 공유사이트
실시간으로 악성코드가 심어져 있는 웹페이지나 서버의 리스트를 제공
악성코드 분석을 위한 각종 샘플을제공하는 사이트
안드로이드 기반 악성코드 샘플 제공
전세계에서 발생하는 실시간 악성코드 샘플들에 대하여 수집
관리자에게 메일로 아이디를 발급받아 악성코드를 제공받을 수 있다.
악성코드 유포, 피싱, 유해 사이트에 대한DB정보 제공
최신 안드로이드 기반 악성코드 샘플 제공
안드로이드 기반 악성코드 샘플 및 관련 자료 제공
http://rogunix.com/docs/Android/Malware/
4. 전세계 악성코드들의 활동을 대쉬보드로 제공하는 사이트들
허니팟프로젝트를 통해 전세계에서 활동하는 웜을 포함한 각종 악성코드에 대한 실시간 정보
Akamai 에서24시간 인터넷 환경에 대한 모니터링을 통해 악성코드를 이용한 공격정보 모니터링
카스퍼스키에서 24시간 수집하는 데이터를 바탕으로 원하는 기간에 따른 통계정보를 제공
트랜드마이크로에서C&C서버 및 봇넷의 활동을 실시간으로 분석
Shadowserver 단체에서 수집한 보안장비를 바탕으로 DDoS 공격 및 봇넷의 활동을 실시간으로 분석함
Arbor에서 전세계 ISP업체 및 글로벌 업체와 협력하여 봇에 관점에서 분석 정보를 제공
5. 악성코드 분석을 위한 가상화 및 샌드박스를 제공하는 사이트
악성코드를 분석하기위한 자동화된 우분투기반의 샌드박스
악의적인 파일에 대해 스크린샷 및 기본적인 분석정보를 제공하는 샌드박스
행위기반 분석도구 악성코드를 행위를 바탕으로 판별하기 위한 도구
행위기반의 악성코드 분석도구
프로세스의 동작과 시스템에 대한 변경사항을 분석하기 위한 버스터 샌드박스
악의적인 파일에 대해 가상으로 프로그램을 설치하여 테스트할 수 있는 샌드박스
허니팟 프로젝트에서 제공하는 샌드박스 도구
온라인상에서 자바스크립트PDF, HTML 파일들을 언패킹하여 분석하기 위한 사이트
6. 문서파일관련 악성코드 분석자료
Office문서파일관련 악성코드 파일에 대한 분석자료
PDF파일 분석 도구
PDF파일 분석 참고자료
AdobeFlash/SWF 파일 분석
파이썬 기반의 HWP문서 파싱 및 분석도구
7. 그외 공개되어 있는 악성코드 분석 도구들
(그외 오픈소스 기반 동적분석도구)
파이썬기반의 웹사이트 악성코드 삽입 판별 및 취약점을 통한 공격여부를 판단하기 위한 도구
봇넷 기반의 악성코드를 분석하기 위한 네트워크 시뮬레이션 도구
호출되는 API 및 서비스들을 추적하고 모니터링할 수 있는 도구
실행중인 응용프로그램을 확인할 수 있는 도구
웹브라우저상의 취약점을 이용한 악의적인 행위를 방지하기 위한 도구
TCP/UDP 연결을 추적하고 분석하기 위한 툴
(그외 오픈소스 기반 정적분석도구)
파이썬기반의 악성코드 정적분석도구
EXE파일을 정적분석할 수 있는 간단한 도구
https://code.google.com/p/peframe/
USB 악성코드 감염 여부 검사도구
PE파일 디지털 서명 확인 도구
Virustotal과 연동하여 악성코드로 의심되는 파일들을 자동으로 전송하고 분석하기 위한 도구
바이러스 토탈 API를 이용하여 MD5해시정보를 이용한 악성코드 탐색
nmap 스크립트를 이용하여 바이러스토탈의 파일 체크

8. 모바일 기반 악성코드 분석
(안드로이드 기반 동적분석)

(안드로이드 기반 정적분석 도구)

(모바일 기반의 악성코드 분석 참고자료)
IOS, 안드로이드 기반의 역공학 및 악성코드 분석 도구 및 관련자료 제공
모바일 운영체제 기반의 악성코드 대응기법 연구
Mac OS 기반의 악성코드 관련 정리된 자료
SANS에서 제공하는 안드로이드기반의 악성코드 역공학 (회원가입 필요)
맥기반의 악성코드 위협과 대응

9. 악성코드 분석 강좌 및 참고자료를 제공하는 사이트
(악성코드 분석관련 강좌사이트)
악성코드 분석관련 튜토리얼 강좌
악성코드 분석에 대한 튜토리얼 자료
IDA 튜토리얼 동영상 사이트
기본적인 악성코드 분석 동영상
(악성코드 분석 자료를 제공하는 블로그)
카이섹에서 제공하는 악성코드 및 취약점에 대한 분석자료
그외 악성코드 및 취약점에 분석자료를 제공하는 해외 블로그들
10. 기타 참고자료
관련된 악성코드 샘플 및IDA 분석 자료, code를 제공하는 사이트
악성코드 분석을 학습할 수 있는 다양한 자료 제공
악성여부를 안전하게 테스트 하기 위한 샌드박스 도구들과 사용방법을 소개한 자료
어셈블리 언어를 배우고 실습해 볼 수 있는 튜토리얼 페이지
쉘코드를 실행파일로 만들어 주는 사이트
Base64 문자열을 encode/decode하여 실행파일로 만들어 주는 사이트
파이선 프로그래밍을 이용한 악성코드 분석
Metasploit을 통해 감염된 meterpreter.exe 악성코드 샘플 분석
Windbg를 이용한 커널 디버깅


* 출처 : http://sisjinho.blogspot.kr/2013/03/blog-post.html

반응형
Posted by CCIBOMB