마치 범퍼를 이용한 볼링과 같습니다. - @ippsec
AutoRecon은 서비스의 자동 열거를 수행하는 다중 스레드 네트워크 정찰 도구입니다. 이는 CTF 및 기타 침투 테스트 환경(예: OSCP)에서 사용하기 위한 시간 절약 도구로 고안되었습니다. 실제 참여에도 유용할 수 있습니다.
이 도구는 먼저 포트 스캔/서비스 감지 스캔을 수행하여 작동합니다. 이러한 초기 결과에서 도구는 다양한 도구를 사용하여 해당 서비스에 대한 추가 열거 스캔을 시작합니다. 예를 들어, HTTP가 발견되면 feroxbuster가 시작됩니다(다른 많은 기능도 포함).
도구의 모든 내용은 고도로 구성 가능합니다. 기본 구성은 도구를 OSCP 시험 규칙에 맞게 유지하기 위해 자동화된 이용을 수행하지 않습니다 . 구성에 자동 공격 도구를 추가하려는 경우 그에 따른 위험은 사용자 본인이 감수해야 합니다. 저자는 이 도구의 오용으로 인해 발생하는 부정적인 행동에 대해 책임을 지지 않습니다.
고지 사항: AutoRecon은 가능한 한 많은 서비스 식별 및 열거를 수행하려고 노력하지만 모든 서비스가 식별되거나 모든 서비스가 완전히 열거된다는 보장은 없습니다. AutoRecon 사용자(특히 학생)는 AutoRecon과 함께 자체 수동 열거를 수행해야 합니다. 시험, CTF 또는 기타 참여 시 이 도구에만 의존하지 마십시오.
AutoRecon은 저자가 OSCP 연구실에서 사용한 세 가지 도구인 Reconnoitre, ReconScan 및 bscan에서 영감을 받았습니다. 세 가지 도구 모두 유용했지만 세 가지 도구 중 원하는 기능을 갖춘 도구는 하나도 없었습니다. AutoRecon은 앞서 언급한 도구의 최고의 기능을 결합하는 동시에 테스터가 여러 대상을 열거하는 데 도움이 되는 많은 새로운 기능을 구현합니다.
AutoRecon을 설치하는 방법에는 pipx, pip 및 수동의 세 가지가 있습니다. 이러한 방법을 사용하여 설치하기 전에 특정 요구 사항을 충족해야 합니다. 최근에 apt 캐시를 새로 고치지 않은 경우 다음 명령을 실행하여 사용 가능한 최신 패키지를 설치하십시오.
sudo apt update
AutoRecon을 사용하려면 다음 명령을 사용하여 Kali Linux에 설치할 수 있는 Python 3.8+ 및 pip를 사용해야 합니다.
sudo apt install python3
sudo apt install python3-pip
AutoRecon에 사용되는 여러 명령은 /usr/share/seclists/ 디렉터리의 SecLists 프로젝트를 참조합니다. SecLists 프로젝트를 이 디렉터리(https://github.com/danielmiessler/SecLists)에 수동으로 다운로드하거나 Kali Linux( 권장 )를 사용하는 경우 다음 명령을 실행할 수 있습니다.
sudo apt install seclists
SecList를 설치하지 않아도 AutoRecon은 계속 실행되지만 여러 명령이 실패할 수 있고 일부 수동 명령도 실행되지 않을 수 있습니다.
또한 OS에 따라 다음 명령을 설치해야 할 수도 있습니다.
curl
dnsrecon
enum4linux
feroxbuster
gobuster
impacket-scripts
nbtscan
nikto
nmap
onesixtyone
oscanner
redis-tools
smbclient
smbmap
snmpwalk
sslscan
svwar
tnscmd10g
whatweb
wkhtmltopdf
Kali Linux에서는 다음 명령을 사용하여 이러한 항목이 모두 설치되었는지 확인할 수 있습니다.
sudo apt install seclists curl dnsrecon enum4linux feroxbuster gobuster impacket-scripts nbtscan nikto nmap onesixtyone oscanner redis-tools smbclient smbmap snmp sslscan sipvicious tnscmd10g whatweb wkhtmltopdf
AutoRecon을 설치하려면 pipx
사용하는 것이 좋습니다. pipx는 자체 가상 환경에 AutoRecon을 설치하고 전역 컨텍스트에서 사용할 수 있도록 하여 패키지 종속성 충돌과 그에 따른 불안정성을 방지합니다. 먼저 다음 명령을 사용하여 pipx를 설치합니다.
sudo apt install python3-venv
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx를 사용하려면 이러한 명령을 실행한 후 ~/.bashrc 또는 ~/.zshrc 파일을 리소스해야 합니다(또는 새 탭을 열어야 함).
다음 명령을 사용하여 AutoRecon을 설치합니다.
pipx install git+https://github.com/Tib3rius/AutoRecon.git
sudo(더 빠른 SYN 검색 및 UDP 검색에 필요)를 사용하여 AutoRecon을 실행하려면 다음 예 중 하나를 사용해야 합니다.
sudo env " PATH= $PATH " autorecon [OPTIONS]
sudo $( which autorecon ) [OPTIONS]
또는 pip
사용하여 다음 명령을 사용하여 AutoRecon을 설치할 수 있습니다.
python3 -m pip install git+https://github.com/Tib3rius/AutoRecon.git
sudo(더 빠른 SYN 검색 및 UDP 검색에 필요)를 사용하여 AutoRecon을 실행하려면 루트 사용자로(또는 sudo를 사용하여) 위 명령을 실행해야 합니다.
pipx
와 마찬가지로, pip
사용하여 설치한 경우 간단히 autorecon
실행하여 AutoRecon을 실행할 수 있습니다.
pip
또는 pipx
사용하지 않으려면 언제든지 autorecon.py
스크립트로 수동으로 설치하고 실행할 수 있습니다. AutoRecon 디렉터리 내에서 종속성을 설치합니다.
python3 -m pip install -r requirements.txt
그런 다음 autorecon.py
스크립트를 실행할 수 있습니다.
python3 autorecon.py [OPTIONS] 127.0.0.1
pipx와 함께 설치된 AutoRecon을 업그레이드하는 것이 가장 쉽고 이 방법이 권장되는 이유입니다. 다음 명령을 실행하기만 하면 됩니다.
pipx upgrade autorecon
pip를 사용하여 AutoRecon을 설치한 경우 먼저 AutoRecon을 제거한 다음 동일한 설치 명령을 사용하여 다시 설치해야 합니다.
python3 -m pip uninstall autorecon
python3 -m pip install git+https://github.com/Tib3rius/AutoRecon.git
AutoRecon을 수동으로 설치한 경우 AutoRecon 디렉터리로 변경하고 다음 명령을 실행하면 됩니다.
git pull
AutoRecon 디렉터리의 콘텐츠를 수정하지 않았다고 가정하면 이 GitHub 리포지토리에서 최신 코드를 가져와야 하며 그런 다음 평소와 같이 autorecon.py 스크립트를 사용하여 AutoRecon을 실행할 수 있습니다.
플러그인 업데이트 프로세스가 진행 중입니다. 그때까지는 업그레이드 후 ~/.local/share/AutoRecon 디렉터리를 제거하고 인수를 사용하여 AutoRecon을 실행하여 최신 파일로 다시 채우세요.
AutoRecon은 Python 3 특정 기능을 사용하며 Python 2를 지원하지 않습니다.
usage: autorecon [-t TARGET_FILE] [-p PORTS] [-m MAX_SCANS] [-mp MAX_PORT_SCANS] [-c CONFIG_FILE] [-g GLOBAL_FILE] [--tags TAGS]
[--exclude-tags TAGS] [--port-scans PLUGINS] [--service-scans PLUGINS] [--reports PLUGINS] [--plugins-dir PLUGINS_DIR]
[--add-plugins-dir PLUGINS_DIR] [-l [TYPE]] [-o OUTPUT] [--single-target] [--only-scans-dir] [--no-port-dirs]
[--heartbeat HEARTBEAT] [--timeout TIMEOUT] [--target-timeout TARGET_TIMEOUT] [--nmap NMAP | --nmap-append NMAP_APPEND]
[--proxychains] [--disable-sanity-checks] [--disable-keyboard-control] [--force-services SERVICE [SERVICE ...]] [--accessible]
[-v] [--version] [--curl.path VALUE] [--dirbuster.tool {feroxbuster,gobuster,dirsearch,ffuf,dirb}]
[--dirbuster.wordlist VALUE [VALUE ...]] [--dirbuster.threads VALUE] [--dirbuster.ext VALUE]
[--onesixtyone.community-strings VALUE] [--global.username-wordlist VALUE] [--global.password-wordlist VALUE]
[--global.domain VALUE] [-h]
[targets ...]
Network reconnaissance tool to port scan and automatically enumerate services found on multiple targets.
positional arguments:
targets IP addresses (e.g. 10.0.0.1), CIDR notation (e.g. 10.0.0.1/24), or resolvable hostnames (e.g. foo.bar) to scan.
optional arguments:
-t TARGET_FILE, --target-file TARGET_FILE
Read targets from file.
-p PORTS, --ports PORTS
Comma separated list of ports / port ranges to scan. Specify TCP/UDP ports by prepending list with T:/U: To scan both
TCP/UDP, put port(s) at start or specify B: e.g. 53,T:21-25,80,U:123,B:123. Default: None
-m MAX_SCANS, --max-scans MAX_SCANS
The maximum number of concurrent scans to run. Default: 50
-mp MAX_PORT_SCANS, --max-port-scans MAX_PORT_SCANS
The maximum number of concurrent port scans to run. Default: 10 (approx 20% of max-scans unless specified)
-c CONFIG_FILE, --config CONFIG_FILE
Location of AutoRecon's config file. Default: ~/.config/AutoRecon/config.toml
-g GLOBAL_FILE, --global-file GLOBAL_FILE
Location of AutoRecon's global file. Default: ~/.config/AutoRecon/global.toml
--tags TAGS Tags to determine which plugins should be included. Separate tags by a plus symbol (+) to group tags together. Separate
groups with a comma (,) to create multiple groups. For a plugin to be included, it must have all the tags specified in
at least one group. Default: default
--exclude-tags TAGS Tags to determine which plugins should be excluded. Separate tags by a plus symbol (+) to group tags together. Separate
groups with a comma (,) to create multiple groups. For a plugin to be excluded, it must have all the tags specified in
at least one group. Default: None
--port-scans PLUGINS Override --tags / --exclude-tags for the listed PortScan plugins (comma separated). Default: None
--service-scans PLUGINS
Override --tags / --exclude-tags for the listed ServiceScan plugins (comma separated). Default: None
--reports PLUGINS Override --tags / --exclude-tags for the listed Report plugins (comma separated). Default: None
--plugins-dir PLUGINS_DIR
The location of the plugins directory. Default: ~/.local/share/AutoRecon/plugins
--add-plugins-dir PLUGINS_DIR
The location of an additional plugins directory to add to the main one. Default: None
-l [TYPE], --list [TYPE]
List all plugins or plugins of a specific type. e.g. --list, --list port, --list service
-o OUTPUT, --output OUTPUT
The output directory for results. Default: results
--single-target Only scan a single target. A directory named after the target will not be created. Instead, the directory structure will
be created within the output directory. Default: False
--only-scans-dir Only create the "scans" directory for results. Other directories (e.g. exploit, loot, report) will not be created.
Default: False
--no-port-dirs Don't create directories for ports (e.g. scans/tcp80, scans/udp53). Instead store all results in the "scans" directory
itself. Default: False
--heartbeat HEARTBEAT
Specifies the heartbeat interval (in seconds) for scan status messages. Default: 60
--timeout TIMEOUT Specifies the maximum amount of time in minutes that AutoRecon should run for. Default: None
--target-timeout TARGET_TIMEOUT
Specifies the maximum amount of time in minutes that a target should be scanned for before abandoning it and moving on.
Default: None
--nmap NMAP Override the {nmap_extra} variable in scans. Default: -vv --reason -Pn -T4
--nmap-append NMAP_APPEND
Append to the default {nmap_extra} variable in scans. Default:
--proxychains Use if you are running AutoRecon via proxychains. Default: False
--disable-sanity-checks
Disable sanity checks that would otherwise prevent the scans from running. Default: False
--disable-keyboard-control
Disables keyboard control ([s]tatus, Up, Down) if you are in SSH or Docker.
--force-services SERVICE [SERVICE ...]
A space separated list of services in the following style: tcp/80/http tcp/443/https/secure
--accessible Attempts to make AutoRecon output more accessible to screenreaders. Default: False
-v, --verbose Enable verbose output. Repeat for more verbosity.
--version Prints the AutoRecon version and exits.
-h, --help Show this help message and exit.
plugin arguments:
These are optional arguments for certain plugins.
--curl.path VALUE The path on the web server to curl. Default: /
--dirbuster.tool {feroxbuster,gobuster,dirsearch,ffuf,dirb}
The tool to use for directory busting. Default: feroxbuster
--dirbuster.wordlist VALUE [VALUE ...]
The wordlist(s) to use when directory busting. Separate multiple wordlists with spaces. Default:
['~/.local/share/AutoRecon/wordlists/dirbuster.txt']
--dirbuster.threads VALUE
The number of threads to use when directory busting. Default: 10
--dirbuster.ext VALUE
The extensions you wish to fuzz (no dot, comma separated). Default: txt,html,php,asp,aspx,jsp
--onesixtyone.community-strings VALUE
The file containing a list of community strings to try. Default: /usr/share/seclists/Discovery/SNMP/common-snmp-
community-strings-onesixtyone.txt
global plugin arguments:
These are optional arguments that can be used by all plugins.
--global.username-wordlist VALUE
A wordlist of usernames, useful for bruteforcing. Default: /usr/share/seclists/Usernames/top-usernames-shortlist.txt
--global.password-wordlist VALUE
A wordlist of passwords, useful for bruteforcing. Default: /usr/share/seclists/Passwords/darkweb2017-top100.txt
--global.domain VALUE
The domain to use (if known). Used for DNS and/or Active Directory. Default: None
AutoRecon은 다음과 같은 4가지 수준의 자세한 정보를 지원합니다.
참고: 위쪽 및 아래쪽 화살표 키를 눌러 AutoRecon 중간 스캔의 자세한 정도를 변경할 수 있습니다.
기본적으로 결과는 ./results 디렉터리에 저장됩니다. 모든 대상에 대해 새 하위 디렉터리가 생성됩니다. 이 하위 디렉터리의 구조는 다음과 같습니다.
.
├── exploit/
├── loot/
├── report/
│ ├── local.txt
│ ├── notes.txt
│ ├── proof.txt
│ └── screenshots/
└── scans/
├── _commands.log
├── _manual_commands.txt
├── tcp80/
├── udp53/
└── xml/
익스플로잇 디렉토리는 대상에 대해 다운로드/작성하는 모든 익스플로잇 코드를 포함하기 위한 것입니다.
전리품 디렉토리는 대상에서 찾은 모든 전리품(예: 해시, 흥미로운 파일)을 포함하기 위한 것입니다.
보고서 디렉터리에는 보고에 유용한 일부 자동 생성 파일과 디렉터리가 포함되어 있습니다.
scans 디렉터리는 AutoRecon이 수행한 스캔의 모든 결과가 저장되는 곳입니다. 여기에는 포트 검색/서비스 검색 검색은 물론 모든 서비스 열거 검색이 포함됩니다. 여기에는 두 개의 다른 파일도 포함되어 있습니다.
기본적으로 열려 있는 각 포트(예: tcp80, udp53)에 대해 디렉터리가 생성되고 해당 포트에서 발견된 서비스에 대한 검색 결과는 해당 디렉터리에 저장됩니다. --no-port-dirs 명령줄 옵션을 사용하여 이 동작을 비활성화할 수 있으며, 대신 스캔 결과가 스캔 디렉터리 자체에 저장됩니다.
스캔 결과 오류가 발생하면 _errors.log라는 파일도 사용자에게 경고하기 위한 몇 가지 세부 정보와 함께 스캔 디렉터리에 나타납니다.
출력이 정의된 패턴과 일치하면 일치하는 출력에 대한 세부 정보와 함께 _patterns.log라는 파일도 스캔 디렉터리에 나타납니다.
scans/xml 디렉토리는 기본 스캔 출력과 별도로 모든 XML 출력(예: Nmap 스캔)을 저장하므로 스캔 디렉토리 자체가 너무 복잡해지지 않습니다.
AutoRecon은 OSCP 시험 중에 매우 귀중한 기능이었습니다. 활성 정보 수집 명령을 직접 실행하는 지루함에서 벗어나게 해주었기 때문입니다. 나는 필요한 모든 정보가 내 앞에 명확하게 제시된 상태에서 목표를 시작할 수 있었습니다. PWK 연구실, OSCP 시험 또는 VulnHub나 HTB와 같은 기타 환경에 종사하는 모든 사람에게 이 유틸리티를 적극 권장합니다. OffSec으로의 여정을 막 시작하는 사람과 노련한 베테랑 모두에게 훌륭한 도구입니다. 이 두 지점 사이 어딘가에서 "내부"에서 무슨 일이 일어나고 있는지, 그리고 그것이 수행하는 작업을 검색하는 방법/이유를 알아보는 데 시간을 투자하도록 하세요.
- b0ats (루팅된 5/5 시험 호스트)
와, 정말 대단한 발견이네요! AutoRecon을 사용하기 전에 ReconScan은 열려 있는 포트를 찾은 후 열거 명령을 자동으로 실행했기 때문에 대상에 대한 goto 열거 스크립트였습니다. 유일하게 누락된 점은 침투 테스터가 참여 중에 필요할 수 있는 주요 디렉터리(익스플로잇, 전리품, 보고, 스캔)를 자동으로 생성하는 것이었습니다. Reconnoitre는 이 작업을 수행했지만 해당 명령을 자동으로 실행하지는 않았습니다. AutoRecon을 사용해 보기 전까지는 ReconScan이 최고의 솔루션이라고 생각했습니다. 정말 굉장해요! Reconnoitre(자동 디렉터리 생성)와 ReconScan(열거 명령 자동 실행)의 최고의 기능을 결합합니다. 내가 해야 할 일은 대상이나 대상 집합에 대해 이를 실행하고 나머지 스캔을 계속하는 동안 이미 수집한 정보를 검토하기 시작하는 것입니다. 그 증거는 푸딩에 있어요 :) OSCP 시험 합격! Tib3rius에게 찬사를 보냅니다!
- werk0ut
친구가 나에게 AutoRecon에 대해 말해주었기 때문에 PWK 연구실에서 사용해 보았습니다. AutoRecon은 nmap이든 nikto든 우리 모두가 항상 사용하는 공통 도구를 시작하고 공격하는 대상을 기반으로 멋진 하위 폴더 시스템을 생성합니다. AutoRecon의 가장 강력한 특징은 속도입니다. OSCP 시험에서는 다른 대상으로 시작하는 동안 도구를 백그라운드에서 실행하도록 두었고 몇 분 만에 모든 AutoRecon 출력이 나를 기다리고 있었습니다. AutoRecon은 수동으로 시도해야 하는 명령으로 가득 찬 파일을 생성하며, 그 중 일부는 조정이 필요할 수 있습니다(예: hydra 무차별 명령). 추가 체크리스트가 있으면 좋습니다.
- tr3mb0(루팅된 4/5 시험 호스트)
AutoRecon을 소개받은 것은 OSCP를 수강하고 침투 테스트 방법론을 확립하는 동안 저에게 완전한 게임 체인저였습니다. AutoRecon은 대부분의 어려운 작업을 수행하기 위해 널리 사용되는 열거 도구를 결합하고 자동화하는 다중 스레드 정찰 도구입니다. 이보다 더 좋을 수는 없습니다! OSCP 시험 호스트에서 AutoRecon을 실행한 후 각 호스트에서 시작하고 첫 번째 시도를 통과하는 데 도움이 되는 정보로 가득 찬 보물 상자를 받았습니다. 이 도구의 가장 좋은 부분은 초기 포트 스캔을 기반으로 추가 열거 스캔을 자동으로 시작한다는 것입니다(예: SMB가 감지되면 enum4linux 실행). 유일한 나쁜 점은 이 도구를 더 일찍 사용하지 않았다는 것입니다! Tib3rius님, 감사합니다.
- rufy(루팅된 4/5 시험 호스트)
AutoRecon을 사용하면 보안 연구원이 호스트를 반복적으로 검색하고 잠재적인 공격 벡터를 식별할 수 있습니다. 공격자가 다른 호스트에서 작업하는 동안 백그라운드에서 검색을 수행하는 형태로 진정한 힘을 얻을 수 있습니다. 스캔을 시작하고 작업 중이던 특정 호스트를 완료한 다음 돌아와서 완료된 모든 관련 스캔을 찾을 수 있었습니다. 그런 다음 수동으로 활성 검색 프로세스를 수행하는 대신 초기 액세스 권한을 얻으려는 시도를 즉시 시작할 수 있었습니다. 저는 향후 침투 테스트와 CTF에서 AutoRecon을 계속 사용할 것이며 여러분도 그렇게 하시길 적극 권장합니다.
- waar(루팅된 4.99/5 시험 호스트)
"하루에 두 번 이상 작업을 수행해야 한다면 자동화해야 합니다." 예전 상사가 나에게 준 조언이다. AutoRecon은 그 교훈을 마음에 새깁니다. 시험을 치르는 중이든 PWK 연구실에 있든 AutoRecon을 실행하여 마술처럼 작동하게 할 수 있습니다. 버퍼 오버플로 문제를 해결하는 동안 마지막 시험에서 이를 실행했습니다. 작업을 완료할 때쯤에는 필요한 모든 열거형 데이터가 처리할 수 있게 되었습니다. 10/10은 CTF에 참여하는 모든 사람과 오랫동안 이 일을 해 온 모든 사람에게 권장됩니다.
- 후이즈플린
나는 이 도구를 너무 좋아해서 썼다.
- Tib3rius(루팅된 5/5 시험 호스트)
OSCP를 사용하거나 CTF를 수행하거나 HTB를 사용하는 모든 사람에게 이 도구를 확인해 볼 것을 적극 권장합니다. PWK 연구실에서 사용하기 전 한 달 동안 HTB에서 AutoRecon을 사용해 왔으며 OSCP 시험을 통과하는 데 도움이 되었습니다. 열거 방법을 사용하는 데 어려움을 겪고 있다면 이 스크립트에서 사용하는 흐름과 기술을 따르는 것이 좋습니다. 이는 아마도 익숙했을 지루한 작업을 많이 없애는 동시에 머리를 잃지 않도록 빠르게 살펴볼 수 있도록 잘 구성된 하위 디렉토리를 제공합니다. 제공되는 수동 명령은 옵션이 부족할 때 필요한 특정 상황에 적합합니다. 매우 귀중한 도구이므로 충분히 추천할 수 없습니다.
- d0hnuts (루팅된 5/5 시험 호스트)
Autorecon은 단순한 다른 도구가 아니라 참여에 대한 정찰 상관관계 프레임워크입니다. 이는 제가 다른 대상을 작업하는 동안 수많은 스캔을 수행하는 데 도움이 되었습니다. 시간관리에 많은 도움이 될 수 있습니다. 이는 PWK 시험에서 4/5 상자를 소유하는 데 도움이 되었습니다! 결과: 합격!
- Wh0ami(루팅된 4/5 시험 호스트)
AutoRecon에 대해 처음 들었을 때 이것이 실제로 필요한지 물었고, 열거된 내용은 괜찮았습니다. 열린 마음으로 시도해 보았지만 생성되는 정보의 양에 대해 곧바로 확신이 없었습니다. 익숙해지고 출력물을 읽기 시작하자 나는 내가 얼마나 놓쳤는지를 깨달았습니다. 나는 OSCP 시험에 그것을 사용했고, 다른 방법으로는 결코 발견하지 못했을 것들을 발견했습니다. 저는 AutoRecon이 없었다면 실패했을 것이라고 굳게 믿습니다. 이는 훌륭한 도구이며 Tib3rius가 만들어낸 기능에 깊은 인상을 받았습니다. 확실히 제가 이미 당신을 포함한 다른 사람들에게 추천하고 있는 것입니다!
- 또다른
AutoRecon을 사용하면 OSCP 시험에서 귀중한 시간을 절약할 수 있어 시스템 스캔 시간을 줄이고 시스템 침입에 더 많은 시간을 할애할 수 있었습니다. 이 소프트웨어는 금만큼의 가치가 있습니다!
- TorHackr
열거를 케이크 조각으로 만든 마법의 도구를 실행하고 실행하는 데 많은 명령이 필요할 수 있는 엄청난 양의 정보를 뱉어내는 멀티스레딩의 아름다움을 지켜보세요. 저는 OSCP 시험에서 AutoRecon을 사용하는 것만으로도 이미 노력의 절반은 완료되었다고 믿습니다. 강력히 추천합니다!
- Arman(4.5/5 시험 호스트 해결)