티스토리 뷰

컴퓨터/프로그래밍/OS

lsof 명령어 활용법

Rough Existence 2007. 9. 4. 02:50
lsof 명령어 활용법

글쓴이 : 윤영한(master@ilinuxbay.com)
작성일 : 2005-02-21
카피라이트 : 리눅스베이교육센터, 윤영한

목차

1. lsof 란?
2. lsof 활용법
3. 해킹 추적
4. 결론
____

1. lsof 란?


]# whatis lsof
lsof (8) - list open files ( 열려진 파일들을 보는 명령어 )

일반적으로 시스템에서 동작하고 있는 모든 프로세스에 의해서 열리어진 파일들에
관한 정보를 보여주는 시스템 관리 명령어


2. lsof 활용법


2.1. lsof 파일명

지정한 파일을 엑세스 하고 있는 프로세스의 정보를 보여준다.

]# lsof /usr/sbin/proftpd
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
proftpd 647 nobody txt REG 8,2 433516 209221 /usr/sbin/proftpd

2.2. lsof /tmp

지정한 디렉토리를 엑세스 하고 있는 프로세스의 정보를 보여준다.

]# lsof /tmp
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
libhttpd. 27187 root 3u REG 7,0 0 13 /tmp/ZCUD5mDv1l (deleted)
libhttpd. 27318 nobody 3u REG 7,0 0 13 /tmp/ZCUD5mDv1l (deleted)
libhttpd. 27319 nobody 3u REG 7,0 0 13 /tmp/ZCUD5mDv1l (deleted)
libhttpd. 27320 nobody 3u REG 7,0 0 13 /tmp/ZCUD5mDv1l (deleted)
libhttpd. 27321 nobody 3u REG 7,0 0 13 /tmp/ZCUD5mDv1l (deleted)

2.3. lsof -i

모든 네트워크 연결되어 있는 프로세스와 파일을 정보를 보여준다.

]# lsof -i
sshd 586 root 3u IPv4 1877 TCP *:ssh (LISTEN)
xinetd 600 root 5u IPv4 1943 TCP *:pop3 (LISTEN)
sendmail 619 root 4u IPv4 1962 TCP *:smtp (LISTEN)
proftpd 647 nobody 0u IPv4 315947 TCP *:ftp (LISTEN)
mysqld 708 mysql 3u IPv4 2652 TCP *:mysql (LISTEN)


ex)lsof -iTCP ; lsof -iUDP
tcp 나 혹은 UDP를 걸러서 볼때 사용한다.



2.4. lsof -c 데몬명

지정한 데몬과 연결되어 있는 프로세스와 파일을 정보를 보여준다.

]# lsof -c proftpd
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
proftpd 647 nobody cwd DIR 8,3 4096 2 /
proftpd 647 nobody rtd DIR 8,3 4096 2 /
proftpd 647 nobody txt REG 8,2 433516 209221 /usr/sbin/proftpd
proftpd 647 nobody mem REG 8,3 106424 15973 /lib/ld-2.3.2.so
proftpd 647 nobody mem REG 8,3 23404 15994 /lib/libcrypt-2.3.2.so
proftpd 647 nobody mem REG 8,3 30488 17917 /lib/libpam.so.0.75
proftpd 647 nobody mem REG 8,3 1571340 95813 /lib/tls/libc-2.3.2.so
proftpd 647 nobody mem REG 8,3 14888 15996 /lib/libdl-2.3.2.so
proftpd 647 nobody mem REG 8,3 8612 17914 /lib/liblaus.so.1.0.0
proftpd 647 nobody mem REG 8,3 51908 16016 /lib/libnss_files-2.3.2.so
proftpd 647 nobody 0u IPv4 315947 TCP *:ftp (LISTEN)
proftpd 647 nobody 4r REG 8,3 3509 82811 /etc/passwd
proftpd 647 nobody 5r REG 8,3 1241 83170 /etc/group


2.5. lsof -p 프로세스ID

지정한 프로세스와 관련된 프로세스와 파일의 정보를 보여준다.

]# lsof -p 1
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root cwd DIR 8,3 4096 2 /
init 1 root rtd DIR 8,3 4096 2 /
init 1 root txt REG 8,3 27036 16204 /sbin/init
init 1 root mem REG 8,3 1571340 95813 /lib/tls/libc-2.3.2.so
init 1 root mem REG 8,3 106424 15973 /lib/ld-2.3.2.so
init 1 root 10u FIFO 8,3 71415 /dev/initctl


3. 해킹 추적

3.1. 시나리오

]#lsof -i -> 기본 포트연것을 확인한다.
]#lsof -p -> 프로세스를 분석한다.
]#lsof /home/홈페이지 디렉토리 -> 특정디렉토리에 있는 프로세스 검사
]#lsof /tmp -> 임시파일 관련 프로세스 분석
]#lsof /dev -> 정규 해킹 디렉토리 분석


각종 정보를 수집해고 정리 및 대응을 한다.

4. 결론

보안 관련된 일을 하는 사람은 반드시 마스터해야한다.