오늘은 취약점 스캐너 툴을 이용해 볼 것이다.

* 취약점 스캐너
 - nesus scanner
  : nesus는 nesus server를 이용해 취약점을 스캔한다.
  : 여러사용자가 nesus server를 이용해 취약점을 분석할 수 있다.
  : 이제 우리는 nesus server를 리눅스에 설치할 것이다.
  : 무료로 제공되는 취약점 점검 도구중에 가장 유명하다.

Nessus 스캐너는 다른 스캐너와 조금 다르다.
Nessus 서버를 만든 후 그 서버가 스캔을 하고 호스트에 결과를 알려주는 식이다.
Nessus 서버를 다른 호스트들이 이용할 수 있다.

만들어두었던 리눅스에 Nessus 서버를 설치할 것이다.



(Nessus 서버 설치)



Nessus 서버를 실행시켜 준다.



(Nessus 서버 실행)



실행되었고 8834번 포트가 열려있는 것을 확인 할 수 있다.

호스트에서 이 서버에 접속해서 사용해야한다.
window 호스트에서
https:서버아이피:8834 로 접속한다.
안전하지 않음으로 뜨는 것은 해당 브라우저가 해당 인증서가 없기 때문에
안전하지 않다고 뜨는 것일 뿐이다.



(컨티뉴 클릭)



Continue를 클릭하고
계정을 만들어야한다.
간단하게 admin으로 설정했다.



(계정설정)



그리고 Activation Code를 받아야한다.
그러기 위해서는 등록해야한다.



(Activataion 코드 입력창)



홈페이지에 들어간다!



(Get an activation 클릭)



클릭하면 회원가입창이 나오고
회원가입을 하면
적은 email주소에 Activation 코드가 온다.
그 코드를 입력해주면 된다.



(Activation 코드 입력)



들어오면 처음 화면이 아래와 같다.
Scans, Polices 화면이 있다.



(Scans 화면)





(Policies 화면)



- Scans 에서는 스캔하는 화면이고
Policies에서는 직접 정책, 룰을 설정하는 곳이다.

Policies에서 Policy를 만들어보겠다.



(기본 정책들)



기본 룰 중 Basic Network Scan으로 클릭해서
이름 등을 설정해준다.




(TEST로 설정했다.)




(Policy 생성된 모습)



이렇게 설정된 TEST Policy로 스캔을 할 수 있다.
TEST 정책에 들어가보면
세부적인 설정을 할 수 있다.




(세부 설정 모습)



이제 스캔을 해보겠다.
New Scan을 누른다.



(New Scan)



아까 만들었던 정책을 이용해도 되고
기본적으로 설정되있던 정책을 사용해도 된다.
들어오면
스캔의 이름 타겟을 적는 페이지가 나온다.
Target에는 스캔을 할 대상을 입력하면 된다.



(스캔 입력)



Save를 누르면 스캔 목록이 나온다.
여기서 재생 버튼을 클릭하면 스캔을 시작한다.



(스캔 목록)



스캔을 하는 모습이다.
다 되면 결과가 정리되서 나오지만 실시간으로도 볼 수 있다.



(분석 화면)



취약점의 심각성정도에 따라 표시도 다르게 나온다.
치명적이거나 심각한 취약점은 표시가 되어서 나온다.



(취약점 분석 화면)



추가적인 Open Source Scanner
 - GIMP
 - SAINT
 - Nikto
이런 것들이 있다. :)




오늘은 스캔 공격을 할 것이다.
스캔 자체도 공격이므로
실제 사용시 처벌받는다. (그러므로 가상환경에서 혹은 자기 공유기 안에서만 하도록한다.!)
스캔은
보통 공격 전에 공격대상의 시스템을 확인 할 때 사용된다.

어느 포트가 열려있고, OS는 뭐를 쓰고있고 방화벽은 어떻게 있고 등등
스캔을 통해서 사전 정보를 입수한다.

스캔 공격을 하기 전에
피해자의 호스트에서 열수 있는 포트는 열기 위하여 아래와같이
서비스를 실행해준다.



(포트 개방)



그 후 공격자 호스트에서
nmap을 이용하여 스캔해준다.



(스캔)



스캔 결과를 보면 열려있는 포트 번호가 주룩 나와있다.

어떤 식으로 스캔을 하는 걸까?
피해자의 호스트에서 와이어샤크로 패킷을 분석했다.



(패킷 분석)



패킷을 보면 SYN 패킷과 RST 패킷이 잔뜩 보인다.

nmap은 기본적으로 다른 설정을 안해주면 TCP Half Scan을 한다.
스텔스 스캔이라고도 하는데
SYN 패킷을 걸고 응답이 ACK로 오면 RST로 끊어주고
응답이 RST로 오면 닫혀있다는 것을 아는 것이다.



(패킷 분석)



패킷을 보면 SYN 패켓에 대해 ACK 패킷이 오니까 바로 RST 패킷을 보내 끊어주었다.

이번엔 TCP Full Scan을 해보겠다.



(TCP Full Scan)




(패킷 화면)



패킷을 보면
연결을 다 해주는 것을 확인 할 수 있다.
이 때문에 흔적이 남는 단점이 있다.
원리는 Half Scan과 같다. 다만 RST를 보내지 않고 연결을 해준다는 것이 다르다.

이번엔 Fin 패킷을 보내는 Fin Scan을 해보겠다.
명령어는 -sF 이다.



(FIn Scan)




(패킷 화면)



패킷을 보면 FIN 패킷이 날라오는 것을 확인 할 수 있다.

FIN 패킷은 열려있으면 아무 응답이 없고, 닫혀있으면 RST가 오는 원리를 이용한다.

같은 원리인 크리스마스 Scan을 해보겠다.
명령어 -sX



(X-mas Scan)




(패킷 화면)



패킷을 보면 모든 Flag가 설정되있는 것을 볼 수 있다.

그 다음으로는 Null Scan이 있다.
Null 스캔도 Fin, X-mas Scan과 원리가 같다.
명령어는 -sN이다.



(NULL Scan)




(패킷 화면)



패킷을 보면 아무 Flag도 설정되있지 않아
<None>으로 표시되는 것을 확인 할 수 있다.

또 명령어 -O를 입력해주면
해당 시스템의 운영체제 정보를 확인 할 수 있다.



(-O 명령어)



조금 더 상세하게 운영체제 정보까지 파악 할 수 있다.

오늘은 공격전 상대의 정보를 파악하는데 필요한 스캔 공격을 알아보았다.



오늘은
TCP 헤더를 이용한 공격 기법을 확인해 볼것이다.
TCP 공격기법으로는
1) TCP Scanning
2) TCP를 이용한 DDos 공격이 있다.

오늘은 TCP Scanning 기법을 확인 해 볼 것이다.

1) TCP Scanning
 - Flag ( SYN, FIN, RST, ACK, ... )
 - 열려있는 포트와 닫혀있는 포트의 응답이 다르다.
 - 3-way handshake를 이용한다.

- FULL-Scan
 : 3-way handshake과정을 모두 거친다.
 : 세션을 맺어보는 것이다.
 : 맺어지면 열려있는 것이고 연결이 안되면 닫혀있는 것이다.
 : TCP 연결 흔적이 남는다. 연결되었다는 기록이 남는다.



(FULL Scan 코드)





(포트가 열려있을 때 모습)




위 처럼 포트가 열려있으면 아무 반응이 없다.

하지만 포트가 닫혀있으면 연결이 안되므로



(135번 포트 스캔)




(오류 메세지)




연결 할 수 없다고 뜬다.

이 처럼 한번 TCP 연결을 해보면서 포트가 열려있는지 확인하는 것을
TCP 스캔이라고 한다.




(Half Scan 코드)




(포트가 열려있을 경우)




포트가 열려있을 경우 위 처럼 ACK SYN 패킷이 돌아온다.

닫혀있는 경우 RST 패킷이 돌아온다.




(닫혀있는 경우)




포트가 닫혀있는 경우는 위와 같이 RST 패킷이 돌아온다.
즉, 연결이 안된다.

- HALF-Scan( Stealth Scan )
 : 3-way handshake를 이용하지만 완벽하게 연결하지 않는다.
 SYN Scan( 열려있는 포트에 대한 스캐닝 기법 )
 (1) 서버에 동기화 요청 (SYN)
 (2) 서버에서는 SYN-ACK로 응답(Listening이라면)
     서버에서는 RST 패킷을 보낸다. (닫혀있다면)
 (3) ACK로 응답을 하지 않는다.

SYN-ACK 패킷이 오면 우리는 그에 따른 응답을 안해주고 연결을 여기서 끊어준다.
그렇기 때문에 Half Scan이라고 한다.

서버에 로그 흔적이 남지 않는다. (연결이 이루어지지 않았기 때문에)


 (닫혀있는 포트에 대한 스캐닝 기법)
 - FIN SCAN, NULL SCAN, X-MAS SCAN,...
 -> 이녀석들은 반대다.
 -> 닫혀있으면 반응하고, 열려있으면 반응을 안한다.
 => 이것이 표준이지만, 표준과 다른 경우도 많다.
 - X-MAS 는 모든 플래그를 세팅해둔다.


 - SYN-ACK 스캔 ( 호스트 스캔 )  (유용한 스캔) (포트와는 상관없다.)
 : ping보다 성능이 더 좋다. (방화벽에서 막지 못한다.)
 : 포트가 열려있는지 닫혀있는지 관계없이 호스트가 살아있다면 응답이온다.
 : 죽어있다면 응답이 오지 않는다.
 : 방화벽을 다 뚫을 수 있고 살아있는 시스템을 다 체크할 수 있는 좋은 스캔이다.
 : 해당 서버에 기록이 남지 않는다.




(SYN-ACK 스캔 모습)





+ Recent posts