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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
scallion — GPU 기반 어니언 해시 생성기 | Kitploit
도구/GitHubGitHub/lachesis/scallion
Password CrackingReconnaissanceInformation GatheringCryptography
GitHublachesis/scallion

scallion

GPU 기반 어니언 해시 생성기

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

2020년 프로젝트 업데이트

Scallion은 OpenCL과 RSA를 배우기 위한 취미 프로젝트였습니다. 현재 Scallion을 유지 관리하고 있지 않습니다. 두 가지 중요한 부분에서 비트로트(bitrot)가 발생했습니다:

  1. Tor가 v3 Onion 주소로 전환되었으며, Scallion은 이를 지원하지 않습니다. 기존 v2 주소는 2021년 10월부터 작동을 중단합니다. 새 사양은 다른 암호화 프리미티브를 사용하며 전반적으로 더 복잡합니다. GPU에서 RSA 키 배치를 생성하기 위해 사용한 트릭은 새로운 ECDSA 키에 동일한 방식으로 작동하지 않습니다. GPU에서 유사하지만 호환되지 않는 ECDSA 키를 생성하는 것은 가능합니다. 비트코인 주소 생성을 위해 vanitygen-plus 또는 이전 oclvanitygen을 참조하세요. Tor v3 숨겨진 서비스에 작동하는 (CPU 기반) 배니티 생성 도구 목록은 이 블로그 게시물을 참조하세요.
  2. 우리가 의존하는 OpenSSL 버전이 더 이상 사용되지 않으며 대부분의 최신 OS에서 사용할 수 없습니다. 업그레이드가 간단하지 않습니다. 최신 버전의 C# 바인딩에서 사용할 수 없는 OpenSSL의 일부 저수준 수학 함수를 사용하기 때문입니다. 저는 개인적으로 Nvidia Dockerfile을 사용하여 Scallion을 실행합니다. 이 Dockerfile은 여전히 구버전 OpenSSL이 포함된 Ubuntu 16.04 Xenial을 기반으로 합니다. 하지만 이 옵션은 Nvidia GPU 사용자에게만 해당됩니다. 구버전 OpenSSL 라이브러리를 직접 빌드하여 연결하거나, 라이브 USB 또는 VM(PCI-e 패스스루 포함)에서 이전 OS 버전을 실행할 수도 있습니다.

충분한 관심과 노력이 있다면 위의 두 가지 과제를 모두 해결할 수 있습니다. GPU ECDSA 키 생성 알고리즘을 지원하여 Tor v3를 지원할 수 있습니다. OpenSSL을 업데이트하고 수학 함수를 다른 라이브러리로 교체하거나 OpenSSL 라이브러리에 대한 자체 관리 코드 래퍼를 만들 수 있습니다. 그러나 v3 Onion 주소 지원을 vanitygen-plus와 같은 유지 관리되는 프로젝트에 추가하는 것이 더 나을 것입니다.

Scallion

Scallion을 사용하면 OpenCL을 사용하여 배니티 GPG 키와 .onion 주소(Tor의 숨겨진 서비스용)를 생성할 수 있습니다.

Scallion은 Mono(Arch Linux에서 테스트) 및 .NET 3.5+(Windows 7 및 Server 2008에서 테스트)에서 실행됩니다.

Scallion은 현재 베타 단계이며 활발히 개발 중입니다. 그럼에도 불구하고 사용할 준비가 되었다고 생각합니다. 개선 사항은 주로 성능, 사용자 인터페이스 및 설치 용이성 측면에서 예상되며, 키 생성에 사용되는 전체 알고리즘은 변경되지 않습니다.

Scallion은 MIT 라이선스로 제공됩니다. 이 프로젝트의 코드를 자신의 프로젝트에서 사용하는 경우 [email protected]으로 알려주시면 감사하겠습니다.

FAQ

자주 묻는 질문과 답변입니다:

  • GPG 키를 생성하는 이유는 무엇인가요?

    Scallion은 신뢰 망(Web of Trust)의 강력한 집합에 있는 모든 32비트 키 ID에 대한 충돌을 찾는 데 사용되었으며, 32비트 키 ID가 얼마나 안전하지 않은지 보여주었습니다. DEFCON 강연(동영상)이 있었으며, 추가 정보는 https://evil32.com/에서 확인할 수 있습니다.

  • 유효한 문자는 무엇인가요?

    Tor .onion 주소는 Base32를 사용하며, 모든 문자와 숫자 2~7(포함)로 구성됩니다. 대소문자를 구분하지 않습니다.

    GPG 지문은 16진수를 사용하며, 숫자 0-9와 문자 A-F로 구성됩니다.

  • 비트코인 ASIC(예: Jalapeno, KnC)을 사용하여 이 프로세스를 가속화할 수 있나요?

    안타깝게도 그렇지 않습니다. Scallion이 사용하는 프로세스는 개념적으로 유사하지만(nonce를 증가시키고 해시 확인), 세부 사항이 다릅니다(SHA-1 대 비트코인의 double SHA-256). 게다가 비트코인 ASIC은 비트코인 채굴 애플리케이션에 매우 특화되어 있기 때문에 빠른 것입니다. 예를 들어, 출시되지 않았지만 일반적인 접근 방식을 나타낼 가능성이 있는 ASIC인 CoinCraft A-1의 데이터시트를 참조하세요. 마이크로컨트롤러는 비트코인 블록의 마지막 128비트, 이전 비트의 해시 미드스테이트(midstate), 목표 난이도, 시도할 최대 nonce를 작업으로 보냅니다. ASIC은 nonce를 삽입할 위치를 선택하고 어떤 블록이 해시를 충족하는지 결정합니다. Scallion은 nonce를 다른 위치에 삽입해야 하며, 단순히 "XXXX보다 낮음"이 아닌 패턴 일치를 확인합니다.

  • 여러 장치를 어떻게 사용할 수 있나요?

    여러 Scallion 인스턴스를 실행하세요. 😄 Scallion 검색은 확률적이므로 두 번째 장치에서 작업을 반복하지 않습니다. 실제 다중 장치 지원은 어렵지 않지만 많은 것을 추가하지도 않습니다. tmux 또는 screen에서 여러 Scallion 인스턴스를 실행하여 큰 성공을 거두었습니다. 하나가 패턴을 찾으면 모든 작업을 수동으로 중단하거나(또는 출력 파일을 모니터링하고 결과가 표시되면 모두 종료하는 셸 스크립트 작성) 하면 됩니다.

의존성

  • OpenCL 및 관련 드라이버가 설치 및 구성되어 있어야 합니다. 배포판 문서를 참조하세요.
  • OpenSSL. Windows의 경우 사전 빌드된 x86 DLL이 포함되어 있습니다.
  • Windows에서만, VC++ Redistributable 2008

바이너리 다운로드

최신 바이너리 버전만 원하시나요? 여기에서 받으세요.

Linux 빌드

사전 요구사항

  • Linux 배포판에 맞는 최신 mono를 받으세요:

    http://www.mono-project.com/download/

  • 공통 의존성 설치:

    root@kitploit:~
    sudo apt-get update
    sudo apt-get install libssl-dev mono-devel
    
  • AMD/오픈소스 빌드 sudo apt-get install ocl-icd-opencl-dev

  • Nvidia 빌드 sudo apt-get install nvidia-opencl-dev nvidia-opencl-icd

  • 마지막으로 msbuild scallion.sln

Docker Linux (nvidia GPU 전용)

  1. nvidia-docker 컨테이너 런타임이 있어야 합니다.

  2. 컨테이너 빌드:

    root@kitploit:~
    docker build -t scallion -f Dockerfile.nvidia .
    
  3. 실행:

    root@kitploit:~
    docker run --runtime=nvidia -ti --rm scallion -l
    

    예상 출력 스크린샷

Windows 빌드

  1. VS Express for Desktop 2012에서 'scallion.sln' 열기
  2. 솔루션 빌드(저는 디버그 모드에서 모두 수행했습니다).

사용법

검색 중 Scallion을 다시 시작해도 "진행 상황"이 손실되지 않습니다. 이는 확률적 검색이며 Scallion은 "진행 상황"을 만들지 않습니다

장치 목록 보기

root@kitploit:~
$ mono scallion/bin/Debug/scallion.exe -l

해시 생성

root@kitploit:~
$ mono scallion/bin/Debug/scallion.exe -d 0 prefix
Cooking up some delicious scallions...
Using kernel optimized from file kernel.cl (Optimized4)
Using work group size 128
Compiling kernel... done.
Testing SHA1 hash...
CPU SHA-1: d3486ae9136e7856bc42212385ea797094475802
GPU SHA-1: d3486ae9136e7856bc42212385ea797094475802
Looks good!
LoopIteration:40  HashCount:671.09MH  Speed:9.5MH/s  Runtime:00:01:10  Predicted:00:00:56  Found new key! Found 1 unique keys.
<XmlMatchOutput>
  <GeneratedDate>2014-08-05T07:14:50.329955Z</GeneratedDate>
  <Hash>prefix64kxpwmzdz.onion</Hash>
  <PrivateKey>-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCmYmTnwGOCpsPOqvs5mZQbIM1TTqOHK1r6zGvpk61ZaT7z2BCE
FPvdTdkZ4tQ3/95ufjhPx7EVDjeJ/JUbT0QAW/YflzUfFJuBli0J2eUJzhhiHpC/
1d3rb6Uhnwvv3xSnfG8m7LeI/Ao3FLtyZFgGZPwsw3BZYyJn3sD1mJIJrQIEB/ZP
ZwKBgCTUQTR4zcz65zSOfo95l3YetVhfmApYcQQd8HTxgTqEsjr00XzW799ioIWt
vaKMCtJlkWLz4N1EqflOH3WnXsEkNA5AVFe1FTirijuaH7e46fuaPJWhaSq1qERT
eQT1jY2jytnsJT0VR7e2F83FKINjLeccnkkiVknsjrOPrzkXAkEA0Ky+vQdEj64e
iP4Rxc1NreB7oKor40+w7XSA0hyLA3JQjaHcseg/bqYxPZ5J4JkCNmjavGdM1v6E
OsVVaMWQ7QJBAMweWSWtLp6rVOvTcjZg+l5+D2NH+KbhHbNLBcSDIvHNmD9RzGM1
Xvt+rR0FA0wUDelcdJt0R29v2t19k2IBA8ECQFMDRoOQ+GBSoDUs7PUWdcXtM7Nt
QW350QEJ1hBJkG2SqyNJuepH4PIktjfytgcwQi9w7iFafyxcAAEYgj4HZw8CQAUI
3xXEA2yZf9/wYax6/Gm67cpKc3sgKVczFxsHhzEml6hi5u0FG7aNs7jQTRMW0aVF
P8Ecx3l7iZ6TeakqGhcCQGdhCaEb7bybAmwQ520omqfHWSte2Wyh+sWZXNy49EBg
d1mBig/w54sOBCUHjfkO9gyiANP/uBbR6k/bnmF4dMc=
-----END RSA PRIVATE KEY-----
</PrivateKey>
  <PublicModulusBytes>pmJk58BjgqbDzqr7OZmUGyDNU06jhyta+sxr6ZOtWWk+89gQhBT73U3ZGeLUN//ebn44T8exFQ43ifyVG09EAFv2H5c1HxSbgZYtCdnlCc4YYh6Qv9Xd62+lIZ8L798Up3xvJuy3iPwKNxS7cmRYBmT8LMNwWWMiZ97A9ZiSCa0=</PublicModulusBytes>
  <PublicExponentBytes>B/ZPZw==</PublicExponentBytes>
</XmlMatchOutput>
init: 491ms / 1 (491ms, 2.04/s)
generate key: 1193ms / 6 (198.83ms, 5.03/s)
cpu precompute: 10ms / 6 (1.67ms, 600/s)
total without init: 70640ms / 1 (70640ms, 0.01/s)
set buffers: 0ms / 40 (0ms, 0/s)
write buffers: 3ms / 40 (0.08ms, 13333.33/s)
read results: 67442ms / 40 (1686.05ms, 0.59/s)
check results: 185ms / 40 (4.63ms, 216.22/s)

9.50 million hashes per second

Stopping the GPU and shutting down...

멀티패턴 해싱

Scallion은 기본 정규식 구문을 통해 여러 패턴 중 하나 이상을 찾을 수 있습니다. 문자 클래스(예: [abcd])만 지원됩니다. . 문자는 모든 문자를 나타냅니다. Onion 주소는 항상 16자이며 GPG 지문은 항상 40자입니다. 일치 항목의 끝에 $를 넣어 접미사를 찾을 수 있습니다(예: DEAD$). 마지막으로 파이프 구문(예: pattern1|pattern2)을 사용하여 여러 패턴을 찾을 수 있습니다. 여러 패턴을 검색하는 것은(합리적인 수준에서) 속도를 크게 저하시키지 않습니다. 많은 정규식은 GPU에서 단일 패턴을 생성하여 속도 저하를 초래하지 않습니다.

예제가 포함된 몇 가지 사용 사례:

  • 가독성을 위해 접두사 뒤에 숫자 생성:

    root@kitploit:~
      mono scallion.exe prefix[234567]
    
  • 여러 패턴을 한 번에 검색(n.b. -c는 Scallion이 히트를 얻은 후에도 계속 생성하도록 함)

    root@kitploit:~
      mono scallion.exe -c prefix scallion hashes
      mono scallion.exe -c "prefix|scallion|hashes"
    
  • 접미사 "badbeef" 검색

    root@kitploit:~
      mono scallion.exe .........badbeef
      mono scallion.exe --gpg badbeef$ # GPG 키 생성
    
  • 설명이 필요 없는 복잡한 예:

    root@kitploit:~
      mono scallion.exe "suffixa$|suffixb$|prefixa|prefixb|a.suffix$|a.test.$"
    

Scallion은 어떻게 작동하나요?

높은 수준에서 Scallion은 다음과 같이 작동합니다:

  1. CPU에서 OpenSSL을 사용하여 RSA 키 생성
  2. 키를 GPU로 전송
  3. 키의 공개 지수 증가
  4. 키 해시
  5. 해시된 키가 부분 충돌이 아니면 3단계로 이동
  6. 키가 PKCS #1 v2.1에서 권장하는 온전성 검사를 통과하지 못하면(CPU에서 확인) 3단계로 이동
  7. 부분 충돌이 있는 새 키!

기본 알고리즘은 위에 설명되어 있습니다. 속도/성능은 GPU와 CPU 모두에서의 대규모 병렬화의 결과입니다.

속도 / 성능

Scallion은 확률적 검색을 수행한다는 점을 인식하는 것이 중요합니다. 실제 시간은 예측과 크게 다를 수 있습니다

초기 RSA 키 생성은 CPU에서 수행됩니다. 아이비브릿지 i7은 단일 코어를 사용하여 초당 51개의 키를 생성할 수 있습니다. 각 키는 채굴할 1기가해시의 지수를 제공할 수 있으며, 현재 구현된 대로 적절한 CPU는 여러 GPU를 따라잡을 수 있습니다.

SHA1 해싱은 GPU에서 수행됩니다. 테스트한 여러 GPU의 해시레이트는 아래와 같습니다(제조업체별로 그룹화되고 전력별로 정렬됨):

MH/s = 초당 백만 해시

Intel이 프로세서용 OpenCL 드라이버를 출시했으며 CPU에서 짧은 충돌을 찾을 수 있다는 점도 주목할 가치가 있습니다.

주어진 부분 충돌에 필요한 시간(평균)을 계산하려면 다음 공식을 사용하십시오:

유형예상 시간
GPG 키2^(4*길이-1) / 해시속도
.onion 주소2^(5*길이-1) / 해시속도

예를 들어 nVidia Quadro K2000M에서 약 90 MH/s의 속도를 봅니다. 이 속도로 8자 .onion 접두사를 생성하는 데 약 1시간 41분이 소요됩니다: 2^(5*8-1)/90 million = 101분.

워크그룹 크기

Scallion은 기본적으로 장치가 보고하는 선호 워크그룹 크기를 사용합니다. 이는 합리적인 기본값이지만 워크그룹을 실험하면 성능이 향상될 수 있습니다.

보안

Scallion에 의해 생성된 키는 shallot에 의해 생성된 키와 매우 유사합니다. 비정상적으로 큰 공개 지수를 가지고 있지만, openssl의 RSA_check_key 함수를 통해 PKCS #1 v2.1에서 권장하는 전체 온전성 검사 세트를 거칩니다. Scallion은 여러 RSA 키 크기를 지원하며, 1024b, 2048b 및 4096b에 최적화된 커널이 있습니다. 다른 키 크기도 작동할 수 있지만 테스트되지는 않았습니다.

감사 / 참고 자료

  • Scallion은 shallot를 기반으로 하며 vanitygen에서 영감을 받았습니다.
  • OpenCL SHA-1 구현은 NearSHA에서 각색되었습니다.
  • OpenTK 및 OpenSSL-net의 구성 요소를 포함합니다.

기부

기부는 비트코인 주소로 보내주세요: 1FxQcu6vhpwsqcTjPsjK43CZ9vjnuk4Hmo

도구 다운로드
GPU속도
Intel i7-2620M9.9 MH/s
Intel i5-5200U118 MH/s
NVIDIA GT 52038.7 MH/s
NVIDIA Quadro K2000M90 MH/s
NVIDIA GTS 250128 MH/s
NVIDIA GTS 450144 MH/s
NVIDIA GTX 670480 MH/s
NVIDIA GTX 9702350 MH/s
NVIDIA GTX 9803260 MH/s
NVIDIA GTX 1050 (M)1400 MH/s
NVIDIA GTX 10704140 MH/s
NVIDIA GTX 1070 TI5100 MH/s
NVIDIA GTX TITAN X4412 MH/s
NVIDIA GTX 10805760 MH/s
NVIDIA Tesla V10011646 MH/s
AMD A8-7600 APU120 MH/s
AMD Radeon HD5770520 MH/s
AMD Radeon HD6850600 MH/s
AMD Radeon RX 460840 MH/s
AMD Radeon RX 470957 MH/s
AMD Radeon R9 380X2058 MH/s
AMD FirePro W91002566 MH/s
AMD Radeon RX 4802700 MH/s
AMD Radeon RX 5803180 MH/s
AMD Radeon R9 Nano3325 MH/s
AMD Vega Frontier Edition7119 MH/s