
VPN 전반적인 정찰, 테스트, 열거 및 익스플로잇 툴킷
🚩 이는 vortex의 공개 저장소입니다. 최신 버전과 업데이트를 원하시면 https://porchetta.industries/를 통해 지원을 고려해주세요.
VPN 종합 정찰, 테스트, 열거 및 익스플로잇 툴킷
이 프로젝트를 후원하고 vortex의 최신 업데이트, 최신 이슈 수정, 최신 기능을 받으시려면 https://porchetta.industries/에서 지원해주세요.
Discord에서 함께 놀아요!
[SprayingToolkit][1]에서 영감을 받은 매우 간단한 Python 프레임워크로, 일반적인 O365 및 VPN 엔드포인트(Cisco, Citrix, Fortinet, Pulse 등)를 탐지, 열거 및 공격하는 데 필요한 대부분의 프로세스를 자동화하려고 합니다.
VPN 스프레이 공격 단계를 훨씬 더 빠르고 쉽게 만듭니다. 또한 유연성 덕분에 이 도구는 기존 OSINT 워크플로우에 매우 쉽게 추가할 수 있습니다.
Vortex는 주로 다음 작업을 수행하는 데 도움을 줍니다:
pip3를 사용하여 다음과 같이 필수 구성 요소를 설치합니다:``` sudo -H pip3 install -r requirements.txt
### Virtualenv로 설치하기
그렇지 않으면, 가상 환경을 사용하여 사전 요구 사항을 설치할 수 있습니다:
###### Windows에서```
virtualenv venv
venv\Scripts\activate
pip install -r requirements.txt
python3 -m virtualenv venv source venv/bin/activate pip install -r requirements.txt
## 사용법
이 도구는 매우 간단하지만 따라야 할 작업 흐름이 있습니다. 이 도구는 현재 공격에 대한 정보를 저장하기 위해 SQLite 데이터베이스를 사용합니다.
### 작업 공간
작업 공간은 도구가 사용하는 데이터베이스 파일을 나타냅니다. 이름은 현재 공격, 프로젝트 또는 대상을 식별하는 간단한 이름이어야 합니다.
각 작업 공간에는 하나의 SQLite 데이터베이스가 할당됩니다. 다음과 같이 작업 공간 이름을 지정할 때:```
python manage.py -w workspace1
당신이 실제로 말하는 것은 "workspace1.db 파일을 조작하고 싶다"입니다.
제대로 작동하려면 Vortex가 올바른 스키마로 DB를 초기화해야 합니다. 그렇게 하기 위해 해야 할 일은 명령어를 실행하는 것뿐입니다:``` python manage.py -w workspace1 db -c init
사용자가 이 단계를 건너뛰려고 하면, Vortex는 먼저 실행해야 할 올바른 명령어를 화면에 출력할 것입니다.```
[-] Workspace not initialized. Please initialise it using:
python manage.py -w workspace1 db -c init
대신, 동일한 명령을 기존에 초기화된 DB에 대해 실행하면, Vortex는 DB 파일을 덮어쓰기 전에 확인을 요청합니다:``` [-] The DB file exists and it was initialised, overwrite? [y|n] $> y
### Actions and commands
Vortex는 하나의 위치 인수인 'Action'과 다른 키 값과 함께 동작합니다.
그중 가장 중요한 것은 명령 인수(`-c cmd`)입니다. 동작 값과 함께
명령은 Vortex가 수행할 작업을 정의합니다.
지원되는 동작 목록은 도움말에서 확인할 수 있습니다:```
python manage.py -h
Vortex: VPN Overall Reconnaissance, Enumeration and eXploitation
positional arguments:
{db,domain,import,office,profile,search,tor,validate,vpn}
Action to execute
optional arguments:
-h, --help show this help message and exit
-w WORKSPACE, --workspace WORKSPACE
Workspace to use
-c COMMAND, --command COMMAND
Command for the action
-D DOMAIN, --domain DOMAIN
Domain under attack
-C COMPANY, --company COMPANY
Company under attack
-l LOCATION, --location LOCATION
Location of the company under attack (IE, UK, US, ...)
-u URL, --url URL VPN Endpoint Origin (schema://domain:port)
-t ENDPOINT_TYPE, --endpoint-type ENDPOINT_TYPE
Target Endpoint Type
-U USER, --user USER User name
-E EMAIL, --email EMAIL
User email
-N NAME, --name NAME User full name
-R ROLE, --role ROLE User job
-s SQL, --sql SQL SQL statement
-O EXPORT_FILE, --export-file EXPORT_FILE
Export file
-Q QUOTES, --quotes QUOTES
Produce an Excel safe CSV
-nh, --no-headers Remove CSV headers
-k KEYWORDS, --keywords KEYWORDS
Search keywords
-P PASSWORDS_FILE, --passwords-file PASSWORDS_FILE
Password file for spraying
-L, --leaks Use leaks for spraying
-I IMPORT_FILE, --import-file IMPORT_FILE
Import file
도움말에서 볼 수 있듯이, 각 작업별로 지원되는 명령 목록은 어디에도 명시되어 있지 않습니다. 이는 명령을 직접 지정할 필요가 없기 때문입니다. 실제로 명령을 지정하지 않으면 Vortex는 사용자에게 지정된 작업에 사용 가능한 명령 중 하나를 선택하도록 요청합니다.``` python manage.py -w workspace1 db
,d#####F^ ,yy############yy ^9#######, ,######" y###################by ^9######, ######^ y#####F"" ^"9######y "######] d#####^ ,#####" by klezVirus ^9#####, ^######, ,#####] ,####F yy#######y, ^9####b ^###### [##### ####F ,###F""'"9####, 9####] 9##### #####F [#### ,##F^ yy "###b 9####, ^#####] #####] [###] ### dF""#b ^###] ^####] #####] 9####b [#### 9##, 9bd [#] [##b ##### [##### [##### ####, 9##y, ,y##^ d##F ##### [####] #####b ^####y ^"#####" d###^ ,####] d##### [#####, ^####by ,d###^ d####^ #####F 9#####y "#####byyyyyyd####F^ d####F [#####9 9#####b, ""############"^ ,d####F ,###### ^######b, ""'""'"^ ,d#####F d#####F
[*] Select a command: 0 : init 1 : sql 2 : add-endpoint 3 : add-user 4 : drop-user 5 : truncate-table 6 : export $>
특정 루틴에 필요한 인수에도 동일하게 적용됩니다. 런타임에 인수를 입력하기 어려운 경우, Vortex는 사용자에게 해당 매개변수가 필요함을 친절히 알려줍니다. 그렇지 않으면 Vortex는 사용자가 필요한 인수를 선택하거나 입력하도록 안내합니다.
예를 들어, 사용자가 특정 테이블이나 심지어 열을 내보내려면 아래 이미지에서 볼 수 있듯이 내보내기 명령을 실행하기만 하면 됩니다.

이러한 동작 덕분에 Vortex는 사용하기 매우 쉽습니다.
### 일반 워크플로우
Vortex는 아래 스키마에 요약된 특정 작업 워크플로우를 따르도록 설계되었습니다.

### 작업
#### 사용자 수집
특정 대상에 대한 유효한 사용자를 수집하는 것은 세 가지 다른 소스를 사용하여 수행할 수 있습니다.
* LinkedIn
이 소스는 LinkedIn 사용자 정책 위반으로 인해 제거되었습니다.
하지만 [GoMapEnum](https://github.com/nodauf/GoMapEnum)을 사용하여 LinkedIn에서 작업할 수 있으며,
그런 다음 `import` 명령을 사용하여 이메일 주소를 가져올 수 있습니다.
다시 말씀드리지만, 이 기능을 사용하는 것은 LinkedIn 사용자 동의서의 [8.2](https://www.linkedin.com/legal/user-agreement#dos) 항목에서 볼 수 있듯이 LinkedIn 사용자 계약을 위반하는 것입니다.
> 귀하는 다음을 하지 않을 것에 동의합니다: [...]
> 2. 서비스를 스크래핑하거나 프로필 및 기타 데이터를 복사하기 위해 소프트웨어, 장치, 스크립트, 로봇 또는 기타 수단이나 프로세스(크롤러, 브라우저 플러그인 및 애드온 또는 기타 기술 포함)를 개발, 지원 또는 사용합니다.
* CrossLinked
위 기능을 부분적으로 대체하기 위해, 이 도구는 [CrossLinked](https://github.com/m8r0wn/CrossLinked)의 수정된 버전을 포함하고 있습니다.
이 도구는 Google과 Bing을 사용하여 회사의 직원을 감지하려고 시도합니다.
LinkedIn에서 직접 검색하는 것과는 확실히 다르지만 상당히 유용합니다.
올바르게 작동하기 위해, 도구는 사용자에게 사용자 이름에 어떤 형식을 사용할지(예: john.doe, j.doe 또는 d.john)와 대상 도메인에서 사용하는 표준 도메인이 무엇인지 물어볼 것입니다.```
python manage.py -w workspace1 search -c crosslinked -D evilcorp.com -C "Evil Corporation"
,d#####F^ ,yy############yy ^9#######,
,######" y###################by ^9######,
######^ y#####F"" ^"9######y "######]
d#####^ ,#####" by klezVirus ^9#####, ^######,
,#####] ,####F yy#######y, ^9####b ^######
[##### ####F ,###F""'"9####, 9####] 9#####
#####F [#### ,##F^ yy "###b 9####, ^#####]
#####] [###] ### dF""#b ^###] ^####] #####]
9####b [#### 9##, 9bd [#] [##b ##### [#####
[##### ####, 9##y, ,y##^ d##F ##### [####]
#####b ^####y ^"#####" d###^ ,####] d#####
[#####, ^####by ,d###^ d####^ #####F
9#####y "#####byyyyyyd####F^ d####F [#####9
9#####b, ""############"^ ,d####F ,######
^######b, ""'""'"^ ,d#####F d#####F