Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
BaRMIe — Java RMI 열거 및 공격 도구. | Kitploit
도구/GitHubGitHub/nickstadb/barmie
Vulnerability AnalysisExploitationInformation GatheringPenetration Testing
GitHubnickstadb/barmie

BaRMIe

Java RMI 열거 및 공격 도구.

저장소 보기
747978년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

BaRMIe

BaRMIe는 Java RMI(Remote Method Invocation) 서비스를 열거하고 공격하기 위한 도구입니다.

RMI 서비스는 종종 적절한 보안 제어 없이 위험한 기능을 노출하지만, 효과적인 테스트 도구의 부족으로 인해 보안 평가 중에 간과되는 경향이 있습니다. 2008년 Adam Boulton은 AppSec USA(YouTube)에서 발표하고 일부 RMI 공격 도구를 공개했지만 곧 사라졌습니다. 그러나 해당 도구를 사용하더라도 성공적인 제로 지식 공격은 네트워크를 통한 상당한 무차별 대입 공격(~64비트/9경 가지 가능성)에 의존합니다.

BaRMIe의 목표는 보안 전문가가 안전하지 않은 RMI 서비스를 식별, 공격 및 보호할 수 있도록 하는 것입니다. 기존 소프트웨어의 부분적인 RMI 인터페이스를 사용하여 BaRMIe는 네트워크를 통해 먼저 64비트를 무차별 대입하지 않고도 해당 서비스와 직접 상호 작용할 수 있습니다.

최신 버전 빌드 및 실행 준비 파일은 여기에서 다운로드하세요: https://github.com/NickstaDB/BaRMIe/releases/latest

면책 조항

BaRMIe는 보안 전문가가 사용자가 사전에 공격 권한을 가지고 있는 시스템의 안전하지 않은 RMI 서비스를 식별하는 것을 돕기 위해 작성되었습니다. 컴퓨터 시스템에 대한 무단 접근은 불법이며 BaRMIe는 모든 관련 법률을 준수하여 사용해야 합니다. 이를 위반하면 기소될 수 있습니다. BaRMIe의 개발자는 어떠한 책임도 지지 않으며 이 프로그램의 오용이나 손해에 대해 책임을 지지 않습니다.

사용법

BaRMIe 사용은 간단합니다. 매개변수 없이 BaRMIe를 실행하면 사용법 정보가 표시됩니다.

root@kitploit:~
$ java -jar BaRMIe.jar
  ▄▄▄▄    ▄▄▄       ██▀███   ███▄ ▄███▓ ██▓▓█████
 ▓█████▄ ▒████▄    ▓██ ▒ ██▒▓██▒▀█▀ ██▒▓██▒▓█   ▀
 ▒██▒ ▄██▒██  ▀█▄  ▓██ ░▄█ ▒▓██    ▓██░▒██▒▒███
 ▒██░█▀  ░██▄▄▄▄██ ▒██▀▀█▄  ▒██    ▒██ ░██░▒▓█  ▄
 ░▓█  ▀█▓ ▓█   ▓██▒░██▓ ▒██▒▒██▒   ░██▒░██░░▒████▒
 ░▒▓███▀▒ ▒▒   ▓▒█░░ ▒▓ ░▒▓░░ ▒░   ░  ░░▓  ░░ ▒░ ░
 ▒░▒   ░   ▒   ▒▒ ░  ░▒ ░ ▒░░  ░      ░ ▒ ░ ░ ░  ░
  ░    ░   ░   ▒     ░░   ░ ░      ░    ▒ ░   ░
  ░            ░  ░   ░            ░    ░     ░  ░
       ░                                     v1.0
             Java RMI enumeration tool.
               Written by Nicky Bloor (@NickstaDB)

Warning: BaRMIe was written to aid security professionals in identifying the
         insecure use of RMI services on systems which the user has prior
         permission to attack. BaRMIe must be used in accordance with all
         relevant laws. Failure to do so could lead to your prosecution.
         The developers assume no liability and are not responsible for any
         misuse or damage caused by this program.

Usage:
  BaRMIe -enum [options] [host] [port]
    Enumerate RMI services on the given endpoint(s).
    Note: if -enum is not specified, this is the default mode.
  BaRMIe -attack [options] [host] [port]
    Enumerate and attack the given target(s).
Options:
  --threads  The number of threads to use for enumeration (default 10).
  --timeout  The timeout for blocking socket operations (default 5,000ms).
  --targets  A file containing targets to scan.
             The file should contain a single host or space-separated
             host and port pair per line.
             Alternatively, all nmap output formats are supported, BaRMIe will
             parse nmap output for port 1099, 'rmiregistry', or 'Java RMI'
             services to target.
             Note: [host] [port] not supported when --targets is used.
Reliability:
    A +/- system is used to indicate attack reliability as follows:
      [+  ]: Indicates an application-specific attack
      [-  ]: Indicates a JRE attack
      [ + ]: Attack insecure methods (such as 'writeFile' without auth)
      [ - ]: Attack Java deserialization (i.e. Object parameters)
      [  +]: Does not require non-default dependencies
      [  -]: Non-default dependencies are required

열거 모드(-enum)는 RMI 레지스트리 서비스를 통해 노출된 객체의 세부 정보를 추출하고 엔드포인트에 영향을 미치는 알려진 공격을 나열합니다.

공격 모드(-attack)는 먼저 주어진 대상을 열거한 다음 RMI 서비스에 대한 알려진 공격을 시작하기 위한 메뉴 시스템을 제공합니다.

명령줄에서 단일 대상을 지정할 수 있습니다. 또는 BaRMIe가 간단한 텍스트 파일이나 nmap 출력에서 대상을 추출할 수 있습니다.

취약한 대상이 식별되지 않았습니까?

훌륭합니다! 이것은 BaRMIe를 개선하는 데 도움을 줄 수 있는 기회입니다! BaRMIe는 RMI를 통해 노출된 클래스에 대한 약간의 지식에 의존하므로 기여는 BaRMIe와 RMI 서비스의 보안을 개선하는 데 큰 도움이 될 것입니다.

대상 애플리케이션의 JAR 파일이나 소스 코드에 접근할 수 있다면, 관련 JAR 파일에 대해 코드를 컴파일하는 것만으로 공격을 생성하는 것은 간단합니다. LocateRegistry 및 Registry 클래스를 사용하여 관련 원격 객체를 검색하고 원하는 메서드를 호출하세요. 또는 임의의 객체나 비-기본형 매개변수를 허용하는 원격 메서드를 찾으세요. 이러한 매개변수는 역직렬화 페이로드를 전달하는 데 사용될 수 있습니다. BaRMIe 공격 및 공격 생성에 대한 더 많은 문서는 가까운 시일 내에 제공될 예정입니다.

또는 연락하여 BaRMIe -enum 출력과 이상적으로는 관련 JAR 파일을 포함한 최대한 많은 세부 정보를 제공해 주세요.

공격 유형

BaRMIe는 RMI 서비스에 대해 세 가지 유형의 공격을 수행할 수 있습니다. 각각에 대한 간략한 설명이 이어집니다. 추가 기술 세부 사항은 가까운 시일 내에 https://nickbloor.co.uk/에 게시될 예정입니다. 또한 저는 44CON 2017에서 연구 결과를 발표했으며 슬라이드는 여기에서 찾을 수 있습니다: BaRMIe - Poking Java's Back Door.

1. 안전하지 않은 메서드 공격

안전하지 않은 RMI 서비스를 공격하는 첫 번째이자 가장 간단한 방법은 안전하지 않은 원격 메서드를 호출하는 것입니다. 종종 위험한 기능이 RMI를 통해 노출되며, 원격 객체 참조를 검색하고 위험한 메서드를 호출함으로써 트리거될 수 있습니다. 다음 코드는 이에 대한 예입니다:

root@kitploit:~
//Get a reference to the remote RMI registry service
Registry reg = LocateRegistry.getRegistry(targetHost, targetPort);

//Get a reference to the target RMI object
Foo bar = (Foo)reg.lookup(objectName);

//Call the remote executeCommand() method
bar.executeCommand(cmd);

2. 객체 타입 매개변수를 통한 역직렬화

일부 RMI 서비스는 위험한 기능을 노출하지 않거나 인증 및 세션 관리와 같은 보안 제어를 구현합니다. RMI 서비스가 매개변수로 임의의 Object를 허용하는 메서드를 노출하는 경우 해당 메서드는 역직렬화 공격의 진입점으로 사용될 수 있습니다. 이러한 메서드의 몇 가지 예는 아래에서 볼 수 있습니다:

root@kitploit:~
public void setOption(String name, Object value);
public void addAll(List values);

3. 불법 메서드 호출을 통한 역직렬화

직렬화 사용과 서버 측 메서드 매개변수의 안전하지 않은 처리로 인해, 비-기본형 매개변수 타입을 가진 모든 메서드를 역직렬화 공격의 진입점으로 사용할 수 있습니다. BaRMIe는 TCP 프록시를 사용하여 네트워크 수준에서 메서드 매개변수를 수정함으로써 이를 달성하며, 본질적으로 불법 메서드 호출을 트리거합니다. 취약한 메서드의 몇 가지 예는 아래에서 볼 수 있습니다:

root@kitploit:~
public void setName(String name);
public Long add(Integer i1, Integer i2);
public void sum(int[] values); 

이러한 각 메서드의 매개변수는 프록시를 통과하는 메서드 호출 시 역직렬화 페이로드로 대체될 수 있습니다. Java는 네트워크를 통해 수신된 원격 메서드 매개변수가 실제 매개변수 타입과 호환되는지 역직렬화 전에 확인하려고 시도하지 않기 때문에 이 공격이 가능합니다.

도구 다운로드