
Jok3r - 네트워크 및 웹 침투 테스트 프레임워크
.. raw:: html
.. image:: ./pictures/logo.png
.. raw:: html
.. image:: https://img.shields.io/badge/python-3.6-blue.svg :target: https://www.python.org/downloads/release/python-366/ :alt: Python 3.6
.. image:: https://readthedocs.org/projects/jok3r/badge/?version=latest :target: https://jok3r.readthedocs.io/en/latest/ :alt: Documentation ReadTheDocs
.. image:: https://img.shields.io/docker/automated/koutto/jok3r.svg :target: https://hub.docker.com/r/koutto/jok3r/ :alt: Docker Automated build
.. image:: https://img.shields.io/docker/build/koutto/jok3r.svg :alt: Docker Build Status
.. raw:: html
Jok3r는 네트워크 인프라 침투 테스트 및 블랙박스 웹 보안 테스트를 수행하는 감사자를 돕기 위한 Python3 CLI 애플리케이션입니다.
주요 목표는 감사 대상 네트워크/웹에서 자동화할 수 있는 모든 작업에 시간을 절약하여 더 흥미롭고 도전적인 일에 더 많은 시간을 할애할 수 있도록 하는 것입니다.
이를 위해 오픈 소스 감사 도구를 결합하여 모든 일반적인 네트워크 서비스에 대해 다양한 보안 검사를 실행합니다.
도구 관리:
공격 자동화:
미션 관리 / 로컬 데이터베이스:
Jok3r는 쉽고 빠르게 사용자 지정할 수 있도록 제작되었습니다: 도구, 보안 검사, 지원되는 네트워크 서비스... 등은 이해하기 쉬운 구문의 구성 파일을 편집하여 쉽게 추가/수정/제거할 수 있습니다.
Jok3r를 사용하는 권장 방법은 Docker 컨테이너 내에서 사용하는 것이므로 다양한 감사 도구를 설치할 때 종속성 문제를 걱정하지 않아도 됩니다.
.. image:: https://raw.githubusercontent.com/koutto/jok3r/master/pictures/docker-logo.png
Docker 이미지는 Docker Hub에서 사용할 수 있으며 업데이트 시 자동으로 다시 빌드됩니다: https://hub.docker.com/r/koutto/jok3r/. 초기에는 공식 Kali/Debian Linux Docker 이미지(kalilinux/kali-linux-docker)를 기반으로 합니다.
.. image:: https://images.microbadger.com/badges/image/koutto/jok3r.svg :target: https://microbadger.com/images/koutto/jok3r :alt: Docker Image size
Jok3r Docker 이미지 가져오기:
.. code-block:: console
sudo docker pull koutto/jok3r
업데이트된 Docker 컨테이너 실행:
.. code-block:: console
sudo docker run -i -t --name jok3r-container -w /root/jok3r --net=host koutto/jok3r
중요: --net=host 옵션은 호스트 네트워크 인터페이스를 공유하는 데 필요합니다. 역방향 연결(예: RCE 테스트 시 컨테이너로 ping, 역방향 셸 획득)에 필요합니다.
Jok3r 툴박스를 사용할 준비가 되었습니다!
.. code-block:: console
sudo docker start -i jok3r-container
.. code-block:: console
sudo docker exec -it jok3r-container bash
모든 도구 표시
.. code-block:: console
python3 jok3r.py toolbox --show-all
모든 도구 설치
.. code-block:: console
python3 jok3r.py toolbox --install-all --fast
모든 도구 업데이트
.. code-block:: console
python3 jok3r.py toolbox --update-all --fast
지원되는 서비스 목록
.. code-block:: console
python3 jok3r.py info --services
HTTP에 대한 보안 검사 표시
.. code-block:: console
python3 jok3r.py info --checks http
로컬 데이터베이스에 새 미션 생성
.. code-block:: console
python3 jok3r.py db
jok3rdb[default]> mission -a MiAuditoria
[+] Mission "MiAuditoria" successfully added
[*] Selected mission is now MiAuditoria
jok3rdb[MiAuditoria]>
URL에 대한 보안 검사 실행 및 결과를 미션에 추가
.. code-block:: console
python3 jok3r.py attack -t https://www.sapos.com/webapp/ --add MiAuditoria
MSSQL 서비스에 대한 보안 검사 실행(사용자 상호작용 없음) 및 결과를 미션에 추가
.. code-block:: console
python3 jok3r.py attack -t 190.212.190.133:1433 -s mssql --add MiAuditoria --fast
Nmap 결과에서 호스트/서비스를 미션 범위로 가져오기
.. code-block:: console
python3 jok3r.py db
jok3rdb[default]> mission MiAuditoria
[*] Selected mission is now MiAuditoria
jok3rdb[MiAuditoria]> nmap results.xml
주어진 미션의 서비스에 대한 보안 검사 실행 및 결과를 데이터베이스에 저장
.. code-block:: console
python3 jok3r.py attack -m MiAuditoria --fast
미션에서 21/tcp 및 2121/tcp 포트의 FTP 서비스에 대해서만 보안 검사 실행
.. code-block:: console
python3 jok3r.py attack -m MiAuditoria -f "port=21,2121;service=ftp" --fast
미션에서 2121/tcp 포트의 FTP 서비스 및 190.212.190.133의 모든 HTTP 서비스에 대해서만 보안 검사 실행
.. code-block:: console
python3 jok3r.py attack -m MiAuditoria -f "port=2121;service=ftp" -f "ip=190.212.190.133;service=http"
여러 서버에 대한 감사를 시작합니다. 다음은 JoK3r의 일반적인 예입니다:
대상 서버에서 Nmap 스캔 실행
로컬 데이터베이스에 새 미션 생성(예: "MiAuditoria"):
.. code-block:: console
python3 jok3r.py db
jok3rdb[default]> mission -a MiAuditoria
[+] Mission "MiAuditoria" successfully added
[*] Selected mission is now MiAuditoria
jok3rdb[MiAuditoria]>
3. Nmap 스캔 결과 가져오기:
.. code-block:: console
jok3rdb[MiAuditoria]> nmap resultados.xml
4. 모든 서비스와 호스트의 빠른 개요를 확인하고, 일부 주석을 추가하고, 목표에 대한 사전 지식이 있는 경우 일부 자격 증명을 추가(회색 상자 침투 테스트)하는 등의 작업을 수행할 수 있습니다.
.. code-block:: console
jok3rdb[MiAuditoria]> hosts
[...]
jok3rdb[MiAuditoria]> services
[...]
5. 이제 일부 목표에 대해 보안 검사를 수행합니다. 예를 들어, Java-RMI 서비스에 대한 검사를 실행하려면 다음 명령을 실행할 수 있습니다:
.. code-block:: console
python3 jok3r.py attack -m MiAuditoria -f "service=java-rmi" --fast
6. 도구가 실행 중일 때 보안 검사 결과를 실시간으로 보거나 나중에 데이터베이스에서 다음 명령을 사용하여 볼 수 있습니다:
.. code-block:: console
jok3rdb[MayhemProject]> results
문서는 다음에서 확인할 수 있습니다: 곧 제공 예정...
구현해야 할 검사가 많이 남아 있으며 서비스를 추가해야 합니다! 작업 진행 중...
AJP (기본 8009/tcp)_FTP (기본 21/tcp)_HTTP (기본 80/tcp)_Java-RMI (기본 1099/tcp)_JDWP (기본 9000/tcp)_MSSQL (기본 1433/tcp)_MySQL (기본 3306/tcp)_Oracle (기본 1521/tcp)_PostgreSQL (기본 5432/tcp)_RDP (기본 3389/tcp)_SMB (기본 445/tcp)_SMTP (기본 25/tcp)_SNMP (기본 161/udp)_SSH (기본 22/tcp)_Telnet (기본 21/tcp)_VNC (기본 5900/tcp)_.. code-block:: console
+------------------------+------------+-------------------------------------------------------------------------------------------------+----------------+
| Name | Category | Description | Tool used |
+------------------------+------------+-------------------------------------------------------------------------------------------------+----------------+
| nmap-recon | recon | Recon using Nmap AJP scripts | nmap |
| tomcat-version | recon | Fingerprint Tomcat version through AJP | ajpy |
| vuln-lookup | vulnscan | Vulnerability lookup in Vulners.com (NSE scripts) and exploit-db.com (lots of false positive !) | vuln-databases |
| default-creds-tomcat | bruteforce | Check default credentials for Tomcat Application Manager | ajpy |
| deploy-webshell-tomcat | exploit | Deploy a webshell on Tomcat through AJP | ajpy |
+------------------------+------------+-------------------------------------------------------------------------------------------------+----------------+
.. code-block:: console