본문 바로가기

Hacking/Web Hacking-

[Tool] Acunetix Web Vulnerability Scanner 리포트

안녕하세요. Security M1S 입니다.


본 포스팅에서는 Acunetix Web Vulnerability Scanner 에 대하여 알아보도록 하겠습니다.


줄여서 Acunetix Scanner(아큐네틱스 스캐너) 라고 부르기도 합니다.


아큐네틱스는 웹 취약점 분석 스캐닝 툴로써, 특정 사이트에 취약점이 존재하는지 여부를 파악하고 점검할 수 있게 도와주는 툴입니다.


그러나 현실적으로는 많이 악용되고 있다는것도 사실입니다.


이른바 툴키디/스크립트 키디라고 불리는 계층의 해커를 꿈꾸는 꿈나무들이, 내부에 탑재되어있는 Blind SQL Injection 기능, 크롤링 기능 등

그 위법 여부와 위험성을 자각하지 못하고 함부로 사용하여 법적인 처벌을 받는 경우도 종종 있는 것 으로 보여집니다.







실제로 Acunetix 에 탑재되어있는 Blind SQL 의 모습.


상세 기능에 대하여 천천히 알려드리겠습니다.



우선 Acunetix 스캐너의 경우, 다양한 스캐닝을 지원합니다.




우선 스캐닝 부분에 대해서만 나열해보아도


아래와 같은 스캐닝을 지원합니다.



GHDB(Google Hacking Data Base) 이란?


→구글 해킹 데이터베이스. inurl: / filetype/ site/ intitle/ intext 등의 명령어를 사용하여 해당 사이트를 공격,탐색해

해당 사이트에 취약점이 있는지에 대해 분석하는 것을 일컫습니다.




위와 같이 구글로봇이 수집한 사이트의 정보를 토대로 하여금 

타켓 사이트를 공격합니다.



High_Risk_Alerts

→높은 수준의 취약점이 있는지에 대해서만 검토합니다.





Network_Scripts


→네트워크 스크립트. 

네트워크에 취약점이 있는지 스크립트를 통하여 공격하고 분석하여 결과를 리포트합니다.



DOS 공격, DOM-BASE SCRIPT ATTACK, ERROR-BASED SCRIPT ATTACK,세션 하이재킹, ARP 스푸핑 등 다양한 네트워크 공격을 시도하고


네트워크 상에 취약점이 있는지를 분석하여 리포트합니다.


기본적으로 acunetix에 내장되어 있는 스크립트들이며, 별도로 추가할 수 있습니다.





Parameter_Manipulation


→웹 파라미터를 변조하여 공격합니다. 해당 사이트의 모든 페이지에 대해 접속하여 공격하기 때문에

스레드에 무리가 올때도 있습니다.


예시는 이미지파일로 첨부합니다.



해당 이미지에서는 예를 들어서 가격 변조 부분에 대하여 다루었으나(CSRF 등으로도 가능한 부분입니다.)

파라미터를 변조함으로써 일어나는 해킹공격은 다양합니다.



실제로 파라미터 변조 공격을 이용하여 타인 개인정보를 유출 시킨 사례들도 수두룩합니다.


KT 해킹사건의 경우에도, 위치추적 사건 경우에도 파라미터 변조 공격으로 발생하였습니다.


예를 들어서, 내 휴대폰 디바이스의 위치를 조회하기를 원하여 내 휴대폰 번호를 입력하고 조회를 하였다고 가정해봅시다.


URL은 findmyphone?number=01012345678 이라고 가정합니다.


이때, 권한 설정이 똑바로 되지 않거나 필터링이 바로 동작하지 않을 경우 number=을, 내가 원하는 휴대폰 번호로 삽입하여


010-2222-2222 사용자의 위치를 추적할 수 있게 됩니다.


이러한 식으로 파라미터를 변조하여 공격합니다. 


초보 해커들의 세계에서는 PAROS 등의 웹 프록시 툴이 주로 사용되는것으로 보여집니다.





SQL_injection

→이미 아시는 분도 상당히 계시겠지만, SQL 공격입니다.

쿼리를 이용하여 공격하여 데이터베이스에 접근하여 정보를 탈취하거나 공격하는 방법으로써, 시스템 관리자 권한을 획득하거나 

유저 정보를 탈취하기 위하여 주로 사용되는 공격기법중 하나입니다.







▲가장 기본적인 SQL 인젝션 구문.


그러나 대부분의 웹사이트들은 이러한 기본적인 SQL 인젝션에 대하여 방어하고 있습니다.


가장 쉽게 싱글쿼터를 디펜싱하는 방법부터,



▲위와 같이 글자 수를 제한하는 방법까지 다양합니다.


또한 공백문자를 필터링 하는 등의 방법을 사용하는데, 이러한 경우에는

%09, %0a, %0b, %0c, %0d, %a0, /**/ 를 사용하여 우회할 수 있습니다.


해당 키워드들이 방어되고 있을 경우에는 ()를 사용하면 됩니다. 


select * from table 라는 쿼리와 select(*)from(table) 이라는 쿼리가 서로 동일하기 때문입니다.


#, -- 등의 주석이 필터링 되었을 경우에는 ;%00, /* 를 대신 사용할수도 있으며

또한 싱글쿼터 검열로 인해 문자열을 집어넣을 수 없을때는 0x, 0b를 사용해서 2진법, 16 진법 형태로 치환하여 공격이 가능합니다.


예를 들어

select x'61' = 'a'


아래처럼 0x, 0b 대신 36 진법을 사용해도 됩니다.



이렇게 시스템 관리자 권한을 획득하게 되면 메인페이지까지 변조할 수 있습니다.

또, 시스템 관리자 권한을 컨트롤 할 수 있게 설계해두었다면 administrator(혹은 root)가 탈취되었을 때 시스템이 파괴되는 등 

치명적인 심각성을 유발할 수 있습니다.



실제로 통계를 봐도 CSRF 공격과 동시에 SQL 인젝션이 공격에 가장 많이 이용되었다는 것 을 알수 있습니다.



ACUNETIX에서는 이러한 기본적인 공격과 더불어 고급 기법을 사용하여 스캐닝합니다.


별도로 인젝션 구문을 추가할 수 도 있습니다.









TEXT_SEARCH


텍스트의 발생빈도를 검색합니다.




weak_passwords


말 그대로 취약한 패스워드를 찾습니다.

사이트의 ADMIN 패널로 접근하거나 USER 모드로 접속하여 ID/PW가 취약한지 여부를 검토합니다.




web_applications


웹에 어플리케이션이 별도로 존재하는지 스캐닝합니다.



Blind_SQL_injection


SQL 인젝션이 통상적으로 먹히지 않을 경우 Blind SQL INJECTION 을 시도하게 됩니다.

SQL Injection 은 쿼리를 삽입하여 원하는 데이터를 한번에 얻어낼 수 있는 데에 비해 Blind SQL Injection 은 참과 거짓, 쿼리가 참일때와 거짓일 때의 서버의 반응으로 데이터를 뽑아내는 기술입니다.




 즉, 쿼리를 삽입하였을 때, 쿼리의 참과 거짓에 대한 반응을 응답받을 수 있을 경우에 사용이 가능합니다.

또한 원하는 결과를 얻을 수 있는 데이터베이스의 이름을 알아야 가능합니다.






CSRF


이미 전에 게시글에서 설명한 바 있습니다만, XSS와 비슷한개념이나 CSRF는 타켓이 웹 브라우저를 신용한다는 점을 사용한 공격입니다.


특정 게시판이나 웹서버등에 스크립트를 삽입하고 피해자는 해당 스크립트 코드대로 동작을 수행하게 됩니다.


본인의 권한으로 말이죠.


이 외에도 수없이 많은 예시들이 있으나, 패스.







Directory_and_file_checks


기본적인 크롤링이라고도 일컫을수 있는데, 파일 디렉토리 접근권한을 체크하고 내부 파일의 퍼미션권한에 대하여 체킹합니다.


만일 디렉토리 접근권한이 오픈이라면 



위와 같이 디렉토리 리스팅 취약점을 사용하여 서버 내부의 파일에 접근할 수 있고,


시스템 PASSWORD 등, 중요 문서가 노출될 수 있습니다.




file_upload


웹 사이트에 파일업로드 취약점이 존재하는지 검토합니다.


대부분의 공격은 웹쉘로 이루어지는데, 이러한 웹쉘이 가장 많이 사용되는 취약점이 파일업로드 취약점입니다.




▲securitym1s.php 웹쉘 파일 업로드.





확장자를 필터링 하지 않아 발생하기도 하며, 게시판에 TEST.PHP 와 같은 파일을 업로드함으로써 






▲해당 파일 URL 붙여넣기




▲시스템 권한 획득



해당 웹 사이트 및 시스템 서버의 관리자권한을 획득할 수 있습니다.






이러한 기능 외에도, 크롤링과 같은 기본적인 사이트 정보 수집부터 배너 정보 수집 등


해당 서버에 대한 면밀한 스캐닝을 진행하게 됩니다.







위와 같이 메인 스캐닝창이 열리면 좌측에서 원하는 기능을 선택하여 수행할 수 있습니다.


기본적인 스캔에 관한 부분은 위에서 설명드린 바 있으며,




위와 같이 스캐닝 타켓을 설정하고 NEXT 버튼을 눌러서 시작하면



위와 같이 크롤링, 취약점 정보를 수집합니다.


우측에 위험도 표시와 더불어 설명, 상세설명, 네트워크 그래프 등이 표시됩니다.



이렇게해서 스캐닝 결과는


WVS 리포터로 자동저장되며,


리포팅 프로그램으로 확인 가능합니다.









그외에 추가적으로 쓸만한 기능에 대하여 몇가지 더 알려드리도록 하겠습니다.







HTTP SNIFFER 기능.


물론, 대부분이 사용하는 와이어샤크에 비하면 못하지만,그래도 나름 쓸만한 듯 싶습니다.


특정 포트 지정기능이 있어 편리하고, 



위와 같이 원하는 기능만 별도 설정 가능합니다.


주로 모의해킹 테스팅할때 패킷분석용으로 사용합니다.




특정 서버 기본 테스팅도 가능.






별도로,


CSRF 등에 사용되는 http editor 기능도 존재합니다.







퍼징 기능도 존재하는 모습.






위와 같이 해당 사이트의 ADMIN ID/PW 브루트포싱 기능도 존재합니다.


딱히 쓸모는 없는듯.


그러다 서버 터집니다~ 






▲최근 출시된 ACUNETIX Web vulnerability scanner 11. 현재로써는 build 최신버젼임.


웹 사이트에서 사용하는 특징이 있습니다. NESSUS 와 동일합니다.





2017 해킹툴 TOP2위에 등재되기도 했네요.


(음...별 쓸모는 없는데 ; 왜 2위인지 이해불가능.)




자, 이렇게해서 리포팅 종료하겠습니다.