본문 바로가기

Security

침투테스트(FTP와 웹을 이용한 대규모 공격)

1. FTP와 웹을 이용한 대규모 공격

 

# k986ytv

k986ytv

# FTP(File Transfer Protocol, 파일 전송 프로토콜)

  - TCP 기반의 네트워크에서 사용자들이 서로 파일을 전송할 수 있도록함

  - 일반적으로 사용자는 사용자이름과 패스워드 조합으로 FTP서버에 인증함

  - 익명인증 : 사용자이름 - "anonymous"입력, 패스워드 대신 이메일주소 입력

 

 

 1) 파이썬으로 익명 FTP 스캐너 만들기

   - ftplib 를 활용하여 특정 서버가 익명로그인을 허용파는지 판단하는 스크립트 작성

   - anonLogin()함수는 호스트 이름을 입력받고 익명 로그인이 허용되는지 묘사하는 불리언 반환

     (성공하면 "True", 연결을 시도하는 과정에서 예외가 발생하면 "False")

 

anonLogin.py

실행결과

2) Ftplib로 FTP 사용자 인증정보 공격하기

  - FileZilla 같은 FTP 클라이언트 프로그램은 평문으로 된 설정 파일에 패스워드를 종종 저장함

  - 평문으로 디폴트 폴더에 패스워드가 저장되어 있으면 악성코드가 인증정보를 탈취하기에 매우 용이함

bruteLogin.py

실행결과

FTP brute force 공격을 할 수 없음..

 

>> kali에 ftp를 구축하여 다시 연결 >> 성공

 

3) FTP 서버에 있는 웹 페이지 검색하기

  - FTP 서버에 있는 인증정보로 서버에서 웹 접속을 제공하는 지 확인해야함

    > FTP 서버의 디렉토리에 있는 콘텐츠의 목록을 가져온 후 디폴트 웹 페이지를 검색함

    > returnDefault() 함수는 FTP 연결을 입력받아서 발견한 디폴트 페이지를 배열로 반환함

    > NLST에서 반환하는 각 파일 이름을 디폴트 웹 페이지 파일 이름과 일치하는 지 확인함

    > 발견된 디폴트 페이지를 retList라는 배열에 추가 후 이 배열을 반환함

서버문제로 연결안됨

4) 웹 페이지에 악성코드 삽입하기

   - 악성 리다이렉트로 감염

     > 메타스플로잇을 사용하여 서버를 만들고 http://10.10.10.112:8080/exploit에 악성 페이지를 호스트함.

     > 공격코드 : ms10_002_aurora

     > 취약한 컴퓨터로 해당 주소에 접속하게 될 경우 컴퓨터가 해킹될 것임

ms10_002_aurora를 이용한 공격코드
본 컴퓨터의 보안상의 이유로 공격이 실행되지 않음..

  > 성공한다면 악성코드는 리버스 TCP 쉘을 생성하여 피해자의 윈도우 커맨드 프롬프트에 접근 가능하게 됨

  > 커맨드 쉘에서 감염된 피해자의 관리자 권한으로 명령 실행 가능

 

 

  + 감염된 서버에 리다이렉트를 추가하여 공격자가 설치한 악의적인 서버로 방문자가 리다이렉트되도록 해야함

     - 피해자 서버에 있는 디폴트 페이지를 다운로드

     - iframe 삽입 후 다시 악의적인 페이지를 피해자 서버에 업로드함.

 

 5) 모든 공격 통합하기

   - attack()함수에 모든 공격을 포함시킴 - 사용자 이름, 패스워드, 호스트 이름, 리다이렉트 사이트 입력

     > 인증정보를 가지고 FTP 서버 로그인

     > 스트립트를 통해 디폴트 웹 페이지 검색

     > 스크립트에서 디폴트 페이지를 다운로드하여 악성 리다이렉트 추가

     > 스크립트를 통해 다시 감염된 페이지를 업로드

     > 웹 서버 방문자 공격