정윤상이다.

정보보안기사를 A to Z로 준비하는건 힘드니까 내맘대로 정리하자



1. Log - FTP(xferlog)


로그를 구성하는 필드목록

Current-time    현재 Local Time

Transfer-time    전송에 걸린 총 시간(Seconds)

Remote-host    설명이 필요음슴

File-size    설명이 필요음슴

Filename   설명이 필요음슴

Transfer-type    전송모드로써 a(ASCII) 혹은 b(Binary)

Special-action-flag    현재 사용되진 않고 _ (Underbar)로 표현하고 있어 굳이 설명을 하면

C : The file was compressed

U : The file was uncompressed

T : The file was tar'ed

Direction    전송된 방향인데 o(out-going) 이랑 i(in-coming), d(deleted) 있음

Access-mode    어떤 유저가 접속했는지 a(Anonymous) 혹은 g(guest), r(real; 로컬 계정)

Username    설명이 필요음슴(Anonymous는 보통 이메일을 적는게 예의라고하는데 어따 찍힌데)

Service-name   걍 ftp (아닌경우가 있나?)

Authentication-method    인증에 사용한 메소드인데 현재 사용안해서 0(None)값 임

Authenticated-user-id    인증에 사용한 메소드의 리턴된 유저 ID값인데 사용안해서 *값임

※ 과거에 RFC 1413 Identd 프로토콜을 이용한 인증을 사용할때 썻었던 필드인데... 이제는 안써서 걍 빈값

Completion-status    전송결과이며 c(Complete) 혹은 i(Incomplete)


실제 로그 샘플을 보자

Thu Sep 2 09:52:00 2004 50 192.168.20.10 896242 /home/test/file1.tgz b _ o r suporte ftp 0 * c


2004년 9월 2일 09:52:00에 192.168.20.10에서 suporte 로컬 계정으로 접속 한 뒤,

896242 크기의 /home/test/file1.tgz 파일을 Binary 모드로 50초 동안 다운로드 받아 성공함




2. Log - ACCESS_LOG


로그포맷을 변경할 수 있기에 의미가 없긴한데, 일다 기본적인 포맷은




LogFormat "%h %l %u %t \"%r\" %>s %b" common

CustomLog logs/access_log common


127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326


%h : 서버에 요청을한 클라이언트의 IP

%l : 뭐..모르겠다 잘 안

%u : username인데 잘 안쓰지

%t : 시간일것이고

%r : HTTP METHOD + URI + HTTP VERSION

%>s : 모양이 이상하긴한데 HTTP Response의 상태값

%b : HTTP Response에서 Header를 제외한 크기


요렇게 된거도 있다. Refer와 User-agent 추가된것이고 양식은 %{HEADER NAME}i 이다!


LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined

CustomLog log/access_log combined


127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"



3. App - TCPDUMP


TCPDUMP 명령어? 인데 LOG로 보기도 뭐


tcpdump option

-i <INTERFACE>

-w <SAVE TO FILE>

...


tcpdump expression

Type = [ host | net | port | portrange ] (Default: host)

Direction = [ src | dst | src or dst | src and dst | ... ] (Default: src or dst)

Proto = [ ether | ip | arp | tcp | udp | ... ] (Default: all)


잘 조오오합 하면 될듯




4. App - Crontab


예약 작업을 지원하는 프로그램. 핵심은 & 


1. Listing

[root@localhost ~]# crontab -l [-u <USERNAME>]

※ 전체 User의 모든 것 하려면 /etc/passwd에서 파싱해서 하더라 예제보니까


2. Editing

[root@localhost ~]# crontab -e [-u <USERNAME>]

vi 에디터와 인터페이스가 동일하다!


* * * * * /root/test.sh 2> /dev/null

분 / 시 / 월 / 일 / 요일(0(일요일)~6) 순서로 해석하면되고 Comma나 Dash도 사용이 가능하다


10,20 * * * * /root/test.sh 2> /dev/null

요따구로도 가능하고


* * * *  1-5 /root/test.sh 2> /dev/null

요렇게해서 평일에만 실행되게도 할 수 있다.


*/10 * * * * /root/test.sh 2> /dev/null

생소하지만 이렇게 10분마다 실행되게도 할 수 있다.



5. App - Snort


룰에 대해서 짚고 넘어가보자


Header


[ alert | log | pass | active | dynamic] [ tcp | udp] <STARTIP> <STARTPORT> [ -> | <- | <> ] <DESTIP> <DESTPORT>


Options


content: "<CONTENT STRING>"; nocase;

content: "|<HEXVALUE> <HEXVALUE> <HEXVALUE>|"

content: " \: \; \\ \" "


content: "GET"; depth: 3;

어느정도까지 검사할건지! Byte 단위


content: "/malware"; offset: 5; depth: 8;

어디부터 검사할건지! Byte 단위 (GET /malware)


content: "ABC"; content: "FGH"; distance: 2;

이전 content 매칭 이후 어느정도 뒤에서 검사할지! (ABCDEFGH)


content: "ABC"; content: "FGH"; distance: 2; within: 3

해당 몇 Byte 이내에서 검사할지! (ABCDEFGH)


pcre: "<FUCKING REGEX>"




??. App - FTP


Active 냐 Passive 냐가 중요한데, Server 기준에서 생각을 하자


<ACTIVE>



<PASSIVE>




1. Connect

C:\> ftp < DOMAIN | IPADDR >

ftp> open < DOMAIN | IPADDR >


2. Directory

ftp> ls [-al]

ftp> cd <DIRECTORY>

ftp> pwd


3. Download

ftp> ascii

ftp> bin


ftp> get <FILENAME>

ftp> mget <FILENAME>,<FILENAME>

ftp> mget *.<EXT>


4. Upload

ftp> put <FILENAME>

ftp> mput <FILENAME>,<FILENAME>


5. Quit

ftp> < quit | bye | close >







보안목표

위험처리방안

uid 종류





저작자 표시
신고
댓글 로드 중…

최근에 게시된 글