Ruby 를 사용 하여 FTP 암호 해독 실현

4844 단어 RubyFTP암호 해독
이 글 은 Ruby 를 이용 하여 저희 의 FTP 암호 해독 기 를 구축 하 는 데 도움 을 드 리 겠 습 니 다.이 를 통 해 폭력 공격 의 개념 과 중요성 을 알 리 고자 한다.자,긴 말 하지 않 겠 습 니 다.다음은 시작 하 겠 습 니 다!
무엇이 폭력 공격 입 니까?
폭력 공격 이라는 말 은 많은 안전 권 동료 들 에 게 낯 설 지 않 고 간단 하고 난폭 하 다 고 할 수 있다.그러나 많은 공격 자 들 에 게 폭력 공격 은 불가 결 하거나 부족 한 공격 수단 이다.실제 응용 에 서 는 폭력 공격 이 많은 시간 과 자원 을 소모 하기 때문에 공격 자가 가장 선 호 하 는 방안 이 되 지 는 않 지만 공격 자의 마지막 옵션 이 될 수 있다.
예 를 들 어 우 리 는 다음 과 같은 장면 을 설정 합 니 다.
현재 회사 의 FTP(파일 전송 프로 토 콜)서버 에 접근 하려 고 합 니 다.계 정 비밀 번 호 를 얻 을 수 있 는 모든 방법 을 시 도 했 지만 목표 FTP 서버 의 안전성 이 매우 좋 고 안전 에 구멍 이 없 으 며 이 회사 의 직원 들 의 안전 의식 도 매우 강하 기 때문에 사회 공학 적 공격 도 할 수 없다.이런 극단 에 가 까 운 상황 에 직면 하여 결국 너 는 폭력 공격 방식 을 취해 야 한다.
우선 폭력 해독 을 위 한 공격 사전 을 미리 준비 해 야 할 것 이다.그리고 암호 해독 도구 의 지정 한 위치 에 사전 을 끌 어 다 놓 습 니 다.암호 해독 도 구 는 사전 의 단어 목록 을 하나하나 시도 하고 FTP 서버 에 로그 인하 여 올 바른 FTP 서비스 암호 가 일치 할 때 까지 시도 합 니 다.
쉽 죠?폭력 공격 은 간단 하고 거 칠 지만 그 위력 은 만만 치 않다.때때로 그것 은 우리 가 침투 테스트 의 성 패 를 결정 할 것 이다!다음은 우리 만 의 FTP 암호 해독 기 를 구축 합 시다!
자신 만 의 FTP 암호 해독 기 구축
여기 서 우 리 는 Ruby 스 크 립 트 를 사용 하여 FTP 암호 해독 기 를 구축 할 것 입 니 다.만약 에 Ruby 스 크 립 트 를 잘 모 르 시 면 걱정 하지 마 세 요.저 는 여러분 을 위해 준 비 했 습 니 다루비 의 기초 튜 토리 얼이 튜 토리 얼 은 본문 에 사 용 된 Ruby 기초 지식 을 포함 하고 있 기 때문에 저 는 여러분 들 이 본문 을 읽 기 전에 Ruby 의 기초 지식 을 파악 하여 본문 을 잘 읽 을 수 있 도록 하 는 것 을 권장 합 니 다.다음은 코드 부분 으로 바로 들 어 가 겠 습 니 다.
Python 스 크 립 트 처럼 코드 시작 위치 에서 Ruby 스 크 립 트 라 고 설명 하고 필요 한 함수 라 이브 러 리 를 도입 하여 사용자 의 입력 정 보 를 가 져 와 야 합 니 다.

여기 서 우 리 는 두 개의 라 이브 러 리 파일 만 필요 하 다.우 리 는 socket 라 이브 러 리 를 이용 하여 FTP 서버 와 통신 하여 폭력 적 으로 해결 하려 는 로그 인 연결 작업 을 시도 해 야 합 니 다.타임 아웃 라 이브 러 리 는 대상 서버 와 의 첫 시간 초과 설정 에 사 용 됩 니 다.서버 가 접근 할 수 없 으 면 시간 초과 알림 을 되 돌려 줍 니 다.
다음은 ARGV 목록 의 길 이 를 확인 해 야 합 니 다.이 목록 은 스 크 립 트 가 시 작 될 때 생 성 됩 니 다.목록 에는 사용자 가 명령 행 순서 로 입력 한 모든 인자 가 포함 되 어 있 습 니 다.여기 서 우리 가 사용 하 는 unless 문 구 는 if not 에 해당 합 니 다.만약 에 ARGV 가 받 은 매개 변수 길이 가 3 과 같 지 않 으 면 이 스 크 립 트 는 사용 규칙 을 인쇄 하고 종 료 됩 니 다.
다음 코드 는 대상 서버 에 연결 하려 고 시도 하고 대상 서버 가 정상적으로 통신 할 수 있 는 지 확인 합 니 다.

상기 코드 는 socket 라 이브 러 리 를 간단하게 사용 하고 IP 주 소 를 잃 어 버 려 서 대상 서버 와 의 통신 연결 을 만 들 었 습 니 다.이 동시에 저 희 는 timeout 라 이브 러 리 를 사용 하여 10 초 동안 시간 초과 순환 을 했 습 니 다.연결 이 10 초 안에 완료 되 지 않 으 면 스 크 립 트 는 클 라 이언 트 인터페이스 에서 사용 자 를 알려 주 고 스 크 립 트 를 닫 습 니 다.이러한 기본 적 인 기능 이 있 으 면 다음 함수 로 사용자 의 사전 목록 파일 을 읽 습 니 다.

이 기능 함수 의 실현 은 사실 매우 간단 하 다.우 리 는 파일 경 로 를 함수 의 매개 변수 로 하고 읽 은 단어 목록 을 인쇄 합 니 다.그리고 우 리 는 file.open()함 수 를 이용 하여 파일 을 열 고 파일 내용 을 읽 습 니 다.파일 을 읽 을 때,우 리 는 줄 마다 텍스트 끝의'줄 바 꿈 문자'로 목록 의 내용 을 분할 합 니 다.그러면 우리 가 필요 로 하 는 암호 목록 을 얻 을 수 있 습 니 다.이 목록 을 전역 변수 에 저장 하고 파일 을 닫 아 다음 작업 을 진행 합 니 다.파일 읽 기 에 실패 하면 스 크 립 트 는 클 라 이언 트 인터페이스 에서 사용 자 를 알려 주 고 스 크 립 트 를 종료 합 니 다.현재 우 리 는 상기 두 개의 FTP 암호 해독 기의 기본 기능 함 수 를 갖 추고 있 습 니 다.그 다음 에 우 리 는 서버 에 로그 인 하려 는 기능 함 수 를 실제 적 으로 구축 할 수 있 습 니 다.

이 함 수 는 매우 중요 하 다.왜냐하면 그것 은 우 리 를 위해 실제 적 인 해독 조작 을 할 것 이기 때문이다.먼저 TCP 소켓 을 만 들 고 FTP 서버 에 연결 한 다음 FTP 서버 의 banner 응답 을 기다 리 고 있 습 니 다.배 너 응답 을 성공 적 으로 받 은 후에 우 리 는 사용자 이름 을 입력 하고 비밀번호 입력 알림 을 기다 리 기 시 작 했 습 니 다.이어서 우 리 는 비밀 번 호 를 서버 에 보 내 려 고 시도 합 니 다.이 때,우 리 는 서버 에서 데 이 터 를 받 아 변수 에 저장 할 것 이다.이 데 이 터 는 우리 가 로그 인 을 시도 한 결 과 를 포함 할 것 이다.
대상 FTP 서버 에 성공 적 으로 로그 인 했 는 지 문자열'230'을 통 해 판단 합 니 다.그렇지 않 으 면 false 로 돌아 갑 니 다.지금까지 우리 의 FTP 암호 해독 기 는 기본적으로 성형 되 었 습 니 다.마지막 으로 우리 가 해 야 할 일 은 상기 기능 함 수 를 호출 하고 통합 시 켜 우리 의 폭력 공격 을 실행 하 는 것 입 니 다.

상기 코드 는 우리 가 이전에 만 든 함 수 를 호출 하고 대상 FTP 서버 를 검사 하고 우리 가 제공 한 사전 목록 파일 을 읽 을 것 입 니 다.이 어 대상 FTP 서버 를 공격 하기 시작 합 니 다.사용자 가 제공 하 는 단어 목록 을 하나씩 시도 하 는 순환 을 사용 합 니 다.최종 암호 가 일치 하면 스 크 립 트 는 해결 결 과 를 사용자 에 게 되 돌려 주 고 스 크 립 트 를 닫 습 니 다.다음은 우리 의 성 과 를 시험 해 보 자!
폭력 공격 테스트
우선 사전 파일 을 만 들 것 입 니 다.이것 은 단지 하나의 예 이기 때문에 나의 사전 파일 은 매우 짧다.그러나 실제 환경 에서 우 리 는 일반적으로 매우 큰 사전 파일 을 사용 해 야 한다.다음은 제 가 만 든 단어 목록 입 니 다.

스 크 립 트 를 실행 합 니 다.간단 한 사용 팁 이 있 습 니 다.

현재,우 리 는 이 스 크 립 트 의 사용 규칙 에 따라 상응하는 매개 변수 값 을 제공 하고 스 크 립 트 를 실행 합 니 다.한 동안 의 기다 림 을 통 해 우 리 는 FTP 서버 비밀번호 가 성공 적 으로 폭파 되 는 것 을 볼 수 있 습 니 다.

총결산
내 가 처음에 말 했 듯 이 폭력 공격 은 간단 하고 거 칠 지만 공격 자 에 게 는 우리 가 침투 하 는 성 패 를 결정 할 때 가 있다.따라서 우리 안전 테스트 요원 으로서 폭력 공격 의 과정 과 원 리 를 깊이 이해 하 는 데 는 이례 적 인 의미 가 있다.

좋은 웹페이지 즐겨찾기