강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
Nessus 분석보고서
조회 : 4,077  



Nessus 분석보고서

update : 2001.07

장윤숙/CERTCC-KR jys@certcc.or.kr

1. 개요

Nessus는 http://www.nessus.org에서 무료로 다운받아 사용할 수 있는 보안취약점 점검도구로 local과 remote 시스템 보안 취약점 찾아주는 도구이다.

사람들이 어떤 보안툴을 선호하는지 알아보기 위해 2000년 5월과 6월에 1200명의 Nmap사용자들을 대상으로 선호하는 보안툴 중 5개의 툴(Nmap은 제외)을 택하도록 하는 설문조사를 해본 결과(http://www.insecure.org/tools.html) Nessus가 1위를 차지할 정도로 Nessus는 보안 취약점 점검기능이 뛰어나다.

Nessus는 Renaud Deraison에 의해 만들어지기 시작하여 1998년 4월 처음 버전이 발표되었고, 2001년 7월 현재 1.0.8 버전이 발표된 상태다.

Nessus의 특성을 살펴보면 다음과 같다.

■ Nessus는 사용이 자유롭고, up-to-date가 간편하다
Nessus는 GNU General Public License(GPL)하에 모든 사람이 자유롭게 읽고 code를 수정할 수 있다.

■ sever/client구조로 동작한다.
server daemon인 nessusd는 보통 UNIX machine(Linux, *BSD, Solaris)에서 수행되어야 하고 client는 Windows 95/98/NT 다른 UNIX컴퓨터로 수행될 수 있다. (GIMP가 설치되어 있어야만 함.)

■ nmap과 gtk를 기반으로 한다.
Nessus는 nmap보다 더욱 정교하고 GUI환경을 제공하여 쉽게 사용할수 있다.

■ plug-in로 자세한 부분까지 점검할 수 있고 plug-in 업데이트도 간단히 할 수 있다.
Nessus는 2001년 7월 현재 18개의 family, 679개의 library를 제공해 자세한 부분까지 점검해줄 수 있게 하고 간단히 plug-in을 업데이트 할 수 있는 유틸리티를 제공한다.
모든 설치가 끝나면 /usr/local/sbin/nessus-update-plugins파일이 생기는데 root권한으로 이 파일을 실행하면 이 유틸리티가 알아서 모든 plugin을 받아서 설치해준다.

■ 결과 보고서를 HTML, ASCII등 여러 가지 형태로 레포팅 해준다.

Top

2. Nessus의 보안 취약점 점검 항목

Nessus의 보안 점검은 plug-in항목을 통해 이루어지는데 2001년 7월 현재 18개의 family, 679개의 library를 제공한다. 이러한 plug-in family들은 넓고 다양하게 security hole(취약점)에 대해 test 할 수 있게 한다. 예를 들어 Backdoors family는 BackOrifice, NetBus, SubSeven, trin00등 27개의 항목이 running되는지 점검해준다.

Nessus에서 제공하는 plug- in 항목을 살펴보면 다음과 같다.

Family

plug- in 수

Family Member 예

Backdoors

27

BackOrifice, NetBus, SubSeven, trin00

CGI abuses

208

cgi, Overflows

Denial of Service

88

teardrop, buffer overflow,WINS UDP flood denial, SunKill

Finger abuses

8

in.fingerd |command@host bug

Firewalls

12

Proxy accepts CONNECT requests

Usable remote proxy on any port

FTP

38

Anonymous FTP enabled

wu-ftpd SITE EXEC vulnerability

Gain a shell remotely

19

SSH Overflow, rsh on finger output

Gain root remotely

47

BIND vulnerable to overflows,

Imap buffer overflow,

General

26

Determine which version of BIND name daemon is running

FTP Server type and version

Misc.

35

Services,Default accounts

NIS

2

NIS server, bootparamd service

Port scanners

6

Ping the remote host, TCP SYN scan

Remote file access

33

NFS export, Check for Apache Multiple / vulnerability

RPC

38

RPC portmapper, statd service

SMTP problems

21

EXPN and VRFY commands,

Mail relaying

SNMP

8

Default community names of the SNMP Agent, An SNMP Agent is running

Useless services

12

Telnet, Echo port open, rlogin

Windows

51

Using NetBIOS to retrieve information from a Windows host

SMB log in

Top

3. Nessus설치

Nessus는 server-client 구조로 동작된다.

UNIX계열에서는 Nessus서버를 구축할 수 있지만 Win32계열에서는 Nessus서버를 구축할 수 없고, 클라이언트를 설치하여 UNIX계열 Nessus서버에 접속하여 실행할 수 있다.

Nessus는 http://www.nessus.org/에서 다운받아 설치할 수 있는데,

·Posix download page : Unix계열의 시스템 (Solaris, FreeBSD, GNU/Linux등)
·Win32 download page : Microsoft Windows 사용자들
·Java download page : 자바기반 Nessus클라이언트 설치시

위의 세가지 경우중 자신에게 맞는 Nessus를 다운받아 설치하면 된다.

Nessus서버를 설치하기 위해서는 우선 아래의 사전도구들이 설치되어 있어야 한다.

·GTK : GTK는 GIMP를 만들기 위한 툴킷으로 Nessus 클라이언트를 사용하기 위해서는 사전에 설치되어야 한다.
다운받을 수 있는 곳 : ftp://ftp.gimp.org/pub/gtk/v1.2
·Nmap : Nmap는 현재 가장 많이 쓰이고 있는 뛰어난 포트 스캐너(port scanner)로 다양한 스캐닝을 제공한다.
다운받을 수 있는 곳 : http://www.insecure.org/nmap/
·m4 : gmp library가 설치되어 있으면 선택사항으로 libgmp가 설치되어 있으면 필요없다.
다운받을수 있는 곳 : ftp.gnu.org/pub/gnu/m4

1) Nessus 서버 설치

① 프로그램 파일 다운로드

http://www.nessus.org/posix.html에 가면 다운 받을수 있는 미러 사이트들이 있다.

2001년 7월 현재 안정적으로 나온 Nessus 버전은 1.0.8로 다음 4개의 file을 다운받고 압축을 푼다.

┨nessus-libraries-1.0.8.tar.gz
┨libnasl-1.0.8.tar.gz
┨nessus-core-1.0.8.tar.gz
┨nessus-plugins-1.0.8.tar.gz

Top

② Compile 하기

위에서 다운받은 4개의 파일들의 압축을 풀면 다음 4개의 디렉토리가 생성된다.

drwxr-xr-x 7 root kong 4096 7월 20 10:33 nessus-plugins
drwxr-xr-x 7 root kong 4096 7월 20 10:32 nessus-libraries
drwxr-xr-x 7 root kong 4096 7월 20 10:32 nessus-core
drwxr-xr-x 5 root kong 4096 7월 20 10:31 libnasl

우선 nessus-libraries를 설치하는 과정을 보도록하자.

# cd nessus-libraries
# ./configure ====> nessus-libraries를 설치하기 전에 먼저 configure 스크립트를 실행한다.
# make ====> 컴파일한다.
# make install

위의 순서대로 libnasl , nessus-core , nessus-plugins도 설치하면 되는데 이때는 root권한으로 하여야 한다.

※ 리눅스 사용자라면 /etc/ld.so.conf에 가서 /usr/local/lib를 추가해주고 ldconfig를 실행한다.

# vi /etc/ld.so.conf
/usr/X11R6/lib
/usr/lib
/usr/kerberos/lib
/usr/lib/gconv
/usr/local/lib ========> 이부분을 추가해주어야 함.
# ldconfig -v

Solaris 사용자라면

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib (또는 ~/.profile에 추가해주어야 한다.)

Top

③ 사용자 추가

nessusd서버는 사용자들의 database를 가지고 있고, /usr/local/sbin밑의 nessus-adduser utility를 통해 새로운 사용자를 추가 할 수 있다.

# ls -alct|more
-rwxr-xr-x 1 root root 7920 3월 18 04:42 nessus-adduser*
-rwxr-xr-x 1 root root 258684 3월 18 04:42 nessusd*
-r-xr-xr-x 1 root root 3700 3월 18 04:33 nessus-update-plugins*

아래는 test라는 user를 추가하는 예제이다.

# ./nessus-adduser
Add a new nessusd user
----------------------
Login : test
Authentication method (cipher/plaintext) [cipher] :
Is "test" a local user on this machine [ |n]?
Ok, treating user "test" as a local user.
User rules
----------
nessusd has a rules system which allows you to restrict the hosts
that test has the right to test. For instance, you may want
him to be able to scan his own host only.
Please see the nessus-adduser(8) man page for the rules syntax
Enter the rules for this user, and hit ctrl-D once you are done :
(the user can have an empty rules set)
Login : test
Auth. method : cipher, local user connecting from 127.0.0.1
Rules :
Is that ok ? (y/n) [y] y
Generating the user key for "test" (please be patient)
Generating primes: ......q............................;
Retrying: ...................q...........pg
To protect your private key just generated, enter your personal
pass phrase, now. Keep that pass phrase secret. And each time
when you restart nessus, re-enter that pass phrase when you are
asked, for. This prevents anybody else from logging in to the
nessus server using your account.
The drawback of a pass phrase is that it will prevent you from being
able to use nessus(1) in a cron job or in a quiet script.
If you do not want to use a pass phrase, enter a blank one.
To change or remove the pass phrase, later on read in the manual
page nessus(1) about the -C option.
New pass phrase:
Repeat :
Pass phrase:
+ kill -1 4416
user added.

Top

④ Nessus 데몬을 실행한다.

# ./nessusd -D

2) Client 구성

nessus 데몬을 구동까지 함으로써 서버에서의 설정은 끝났고, client 부분을 보도록 하겠다.
client는 nessus를 설치한 서버에서 사용할 수도 있고, 윈도우등의 원격시스템에서 nessus가 설치된 서버로 접속하여 사용할 수도 있다.
서버에서 client를 실행하는 것은 아래와 같다.

# nessus

윈도우시스템에 nessus client를 설치하기 위해서는 우선 http://www.nessus.org/win32.html에서 윈도우 사용자용 nessus(WinNessus.zip)를 다운받고 압축을 푼다.
압축을 풀고난후 Nessus/bin폴더 밑에 만들어진 nessus.exe를 실행시키면된다.
제대로 설치가 됐으면 다음과 같은 화면이 뜬다.

여기서 한번 Passphrase를 입력하면 다음번 접속부터는 간단히 password만 묻는 화면이 나온다. 여기서 Ok를 클릭하면 사용자의 계정을 입력하는 login창이 뜬다.

① Login in

login in 화면이 뜨면 접속할 nessus 서버의 ip주소와 사용할 계정을 입력한 후 Login in 버튼을 클릭한다.

② Plugins 선택

스캐닝할 plug -in을 선택한다.

nessus의 보안취약점 점검은 plug-in 항목을 통해 이루어지는데 2001년 7월 현재는 18개의 family, 679개의 library에 대해 점검할수 있으며 http://cgi.nessus.org/plugins에서 자세한 내용을 볼 수 있다.

Plugin selection에서 점검할 부분을 정해주면 되는데 제공하는 Plugin 중 Denial of Service 에 대해 체크하는 부분은 자신의 시스템이 아닌 다른 서버를 스캐닝할 경우 실제 공격으로 오인받을수 있으므로 주의하여야 한다.

③ Plugin prefernces

Plugin prefernces부분은 보안점검을 할 때 필요한 몇몇의 argument에 대해 체크해주는 부분이다.
예를 들어 pop2 overflow 점검은 가능한 pop 계정이 있어야 하고, queso plugin은 configuration 파일의 경로를 지정해야 하는등의 설정을 해주는 부분이다.

④ scan option

scan option은 사용할 port scanner를 선택하는 항목으로 가장 빠르게 점검할 수 있는 Nmap tcp connect scan항목을 선택하는 것이 좋다.

⑤ target 지정

이 부분은 스캔할 호스트를 정하는 부분으로 local network의 호스트에 대해서는 사설 ip주소를 사용할 수 있으며 여러 개의 호스트를 점검하고자 할 때는 콤마(,)를 사용해 호스트를 구분하고 172.16.2.0/24 같은 포맷으로 여러 호스트들을 지정할 수 있다.

⑥ user

이 부분은 rules section부분으로 점검할 때의 rule를 정해주는 부분이다.
예를 들어 172.16.2.0/24 점검할 때 172.16.2.152만 제외하는 등의 설정을 할 때 사용한다.

start the scan 버튼을 클릭하면 target host들에 대해 스캐닝을 시작한다.

⑦ report

nessus는 스캐닝이 끝나면 모든 정보를 종합해서 리포트를 작성해 보여주고 패치방법등을 안내해 주는데 결과보고서는 HTML, ASCⅡ등 원하는 대로 선택할 수 있다.

<참고자료>

·http://nessus.org
·http://www.sans.org./infosecFAQ/audit/nessus.htm

Top

 

자료제공 : CERTCC-KR : 한국정보보호진흥원


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=427


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
(주) 수퍼유저