
Wayback Machine, Common Crawl, Alien Vault OTX, URLScan, VirusTotal, GhostArchive 및 Intelligence X에서 훨씬 더 많은 것을 찾아보세요!
waymore의 아이디어는 기존 도구보다 Wayback Machine(및 기타 소스)에서 더 많은 링크를 찾는 것입니다.
👉 waymore와 다른 도구의 가장 큰 차이점은 wayback machine(및 URLScan)에 있는 URL에 대해 보관된 응답을 다운로드할 수 있어 더 많은 링크, 개발자 주석, 추가 매개변수 등을 검색할 수 있다는 점입니다. 👉 또한, 다른 도구들은 현재 소스에서 시행하는 속도 제한을 처리하지 못하며, 종종 불완전한 결과로 중단되고 사용자에게 알리지 않습니다.
버그 바운티를 하는 사람이라면 @TomNomNoms의 놀라운 waybackurls를 사용해 본 적이 있을 것입니다. 이 도구는 web.archive.org에서 URL을 가져오고, index.commoncrawl.org의 인덱스 컬렉션 중 하나에서 추가 링크(있는 경우)를 가져옵니다. 또한 @hacker_의 놀라운 gau를 사용해 보셨을 텐데, 이 도구는 wayback archive, Common Crawl 뿐만 아니라 Alien Vault, URLScan, Virus Total, Intelligence X에서도 URL을 찾습니다. 이제 waymore는 모든 소스에서 URL을 가져옵니다(원하는 대로 더 필터링 가능):
👉 많은 사람들이 놓치는 점이므로 다시 한 번 강조합니다 :)... waymore와 다른 도구의 가장 큰 차이점은 wayback machine에 있는 URL에 대해 보관된 응답을 다운로드할 수 있어 더 많은 링크, 개발자 주석, 추가 매개변수 등을 검색할 수 있다는 점입니다.
👉 이 도구를 최대한 활용하고, 특히 문제를 제기하기 전에 이 페이지의 모든 정보를 읽어 주세요 🤘
👉 이 도구는 매우 느릴 수 있지만, 속도보다는 포괄성을 위해 설계되었습니다
⚠️ 일반적인 실수는 서브도메인 목록을 전달하여 도메인의 모든 것을 가져오려는 것입니다. 하지 마세요! 도메인만 전달하면 해당 도메인의 모든 서브도메인을 얻을 수 있습니다. 훨씬 빠르며, 놓치는 것도 없습니다.
참고: 이미 config.yml 파일이 있는 경우 덮어쓰지 않습니다. 같은 디렉터리에 config.yml.NEW 파일이 생성됩니다. 새 config가 필요하면 config.yml을 제거하고 config.yml.NEW를 다시 config.yml로 이름을 변경하세요.
waymore는 **Python 3.7+**을 지원합니다(async/await 지원을 위해 Python 3.7 이상 필요).
기본(전역) python 환경에 waymore를 설치하세요.```bash
pip install waymore
또는```bash
pip install git+https://github.com/xnl-h4ck3r/waymore.git -v
다음으로 업그레이드할 수 있습니다.```bash pip install --upgrade waymore
### pipx
격리된 파이썬 환경에서 [pipx](https://pypa.github.io/pipx/)를 사용한 빠른 설정```bash
pipx install git+https://github.com/xnl-h4ck3r/waymore.git
| ------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -i | --input | 링크를 찾을 대상 도메인(또는 도메인 파일)입니다. 도메인만 지정하거나 특정 경로가 포함된 도메인을 지정할 수 있습니다. 도메인만 지정하여 해당 도메인의 모든 항목을 가져오려면 www. 접두사를 붙이지 마세요. 또한 마침표로 시작하여 TLD만 지정할 수 있습니다(예: .mil). 이렇게 하면 해당 TLD를 가진 모든 도메인의 모든 하위 도메인을 가져옵니다(참고: Alien Vault OTX 소스는 전체 도메인이 필요하므로 TLD 검색에서 제외됩니다). 참고: 입력 값에서 스킴, 포트 번호, 쿼리 문자열 또는 URL 프래그먼트는 제거됩니다. 그러나 경로를 제공하면 해당 경로가 특별히 검색되므로 결과가 제한됩니다. |
| -mode | | 실행 모드: U(URL만 검색), R(응답만 다운로드) 또는 B(둘 다). -i가 도메인만 있는 경우 -mode는 기본값 B입니다. -i가 경로가 있는 도메인인 경우 -mode는 기본값 R입니다. |
| -oU | --output-urls | 필요 시 경로를 포함하여 링크 출력을 저장할 파일입니다. 인수가 전달되지 않으면 파일의 키에 지정된 경로(일반적으로 기본값 )에 디렉토리가 생성됩니다. 그 안에 로 전달된 대상 도메인(또는 경로가 있는 도메인)(또는 로 전달된 파일의 각 줄)의 디렉토리가 생성됩니다. 예: |
| -oR | --output-responses | 필요 시 경로를 포함하여 응답 출력 파일을 저장할 디렉토리입니다. 인수가 전달되지 않으면 파일의 키에 지정된 경로(일반적으로 기본값 )에 디렉토리가 생성됩니다. 그 안에 로 전달된 대상 도메인(또는 경로가 있는 도메인)(또는 로 전달된 파일의 각 줄)의 디렉토리가 생성됩니다. 예: |
| -n | --no-subs | 대상 도메인의 하위 도메인을 포함하지 않습니다(입력이 특정 경로가 있는 도메인이 아닌 경우에만 사용). |
| -f | --filter-responses-only | 소스의 초기 링크는 필터링되지 않으며, 다운로드된 응답만 필터링됩니다. 예를 들어 콘텐츠를 확인하고 싶지 않더라도 링크에서 사용 가능한 모든 경로를 계속 볼 수 있으면 유용할 수 있습니다. |
| -fc | | 검색된 URL 및 응답에 대한 HTTP 상태 코드를 필터링합니다. 쉼표로 구분된 코드 목록(기본값: 의 값). 이 인수를 전달하면 의 값이 무시됩니다. |
| -ft | | 검색된 URL 및 응답에 대한 MIME 유형을 필터링합니다. 쉼표로 구분된 MIME 유형 목록(기본값: 의 값). 이 인수를 전달하면 의 값이 무시됩니다. |
| -mc | | 검색된 URL 및 응답에 대한 HTTP 상태 코드만 일치시킵니다. 쉼표로 구분된 코드 목록. 이 인수를 전달하면 설정의 및 가 무시됩니다. |
| -mt | | 검색된 URL 및 응답에 대한 MIME 유형만 일치시킵니다. 쉼표로 구분된 MIME 유형 목록. 이 인수를 전달하면 설정의 및 가 무시됩니다. |
| -l | --limit | 저장할 응답 수( 또는 가 전달된 경우). 양수 값은 결과를 가져오고, 음수 값은 결과를 가져옵니다. 값 0은 응답을 가져옵니다(기본값: 5000) |
| -from | --from-date | 데이터를 가져올 시작 날짜입니다. 지정하지 않으면 가능한 가장 이른 결과부터 가져옵니다. 부분 값을 전달할 수 있습니다(예: , 등). |
| -to | --to-date | 데이터를 가져올 종료 날짜입니다. 지정하지 않으면 가능한 가장 최근 결과까지 가져옵니다. 부분 값을 전달할 수 있습니다(예: , 등). |
| -ci | --capture-interval | archive.org 검색을 필터링하여 시간당(), 일별() 또는 월별() 최대 1개의 캡처만 가져옵니다. 이 필터는 응답에만 사용됩니다. 기본값은 이지만 으로 설정하여 아무것도 필터링하지 않고 모든 응답을 가져올 수도 있습니다. |
| -ra | --regex-after | 모든 소스의 URL 및 다운로드된 응답에서 찾은 링크에 대한 필터링 목적의 정규식입니다. |
| -url-filename | | 다운로드된 응답의 파일 이름을 응답을 생성한 URL로 설정합니다. 그렇지 않으면 응답의 해시 값으로 설정됩니다. 해시 값을 사용하면 동일한 응답을 생성한 여러 URL이 해당 응답에 대해 하나의 파일만 저장됩니다. |
| -xwm | | Wayback Machine(archive.org)의 링크 확인을 제외합니다. |
| -xcc | | commoncrawl.org의 링크 확인을 제외합니다. |
| -xav | | alienvault.com의 링크 확인을 제외합니다. |
| -xus | | urlscan.io의 링크 확인을 제외합니다. |
| -xvt | | virustotal.com의 링크 확인을 제외합니다. |
| -xix | | Intelligence X.com의 링크 확인을 제외합니다. |
| -xga | | ghostarchive.org의 링크 확인을 제외합니다. |
| -lcc | | 검색할 Common Crawl 인덱스 컬렉션 수를 제한합니다(예: 은 최신 개 컬렉션만 검색함, 기본값: 1). 2024년 11월 기준 현재 106개의 컬렉션이 있습니다. 으로 설정하면 컬렉션을 검색합니다. Common Crawl을 전혀 검색하지 않으려면 옵션을 사용하세요. |
| -t | --timeout | 보관된 응답에만 해당됩니다! 서버가 데이터를 보낼 때까지 기다릴 시간(초)입니다. 시간이 초과되면 포기합니다(기본값: 30). |
| -p | --processes | URL 파일에 대한 요청을 가져올 때 기본적인 멀티스레딩이 수행됩니다. 이 인수는 사용되는 프로세스(스레드) 수를 결정합니다(기본값: 2). |
| -r | --retries | 연결 오류 또는 속도 제한이 발생한 요청에 대한 재시도 횟수입니다(기본값: 1). |
| -sip | --source-ip OR --bind-ip | 아웃바운드 HTTP/HTTPS 요청을 이 소스 IP에 바인딩합니다(멀티 호스트 호스트에서 유용함). 이 인수를 전달하면 파일의 값이 무시됩니다. |
| -m | --memory-threshold | 메모리 임계값 백분율입니다. 시스템 메모리가 임계값을 초과하면 프로그램이 중지되고 메모리 부족 전에 정상적으로 종료됩니다(기본값: 95). |
| -ko | --keywords-only | 관심 있는 키워드가 포함된 링크와 응답만 반환합니다. 이렇게 하면 결과를 얻는 시간을 줄일 수 있습니다. 플래그만 제공하고 값은 없으면 파일(일반적으로 )의 키에 있는 쉼표로 구분된 목록에서 키워드를 가져옵니다. 그렇지 않으면 특정 정규식 값을 전달할 수 있습니다(예: 은 단어가 포함된 링크만 가져오고, 은 JS 파일만 가져옴). 정규식 검사는 대소문자를 구분하지 않습니다. **참고: 이 패턴은 Wayback CDX API에서 근사 사전 필터로 사용되며(. |
| -lr | --limit-requests | 소스에서 링크를 가져올 때 수행할 요청 수를 제한합니다(Common Crawl에는 적용되지 않음). 일부 대상은 가져오기에 적합하지 않은 엄청난 양의 요청을 반환할 수 있으므로 이 옵션을 사용하여 상황을 관리할 수 있습니다. 기본값은 0(제한 없음)입니다. |
| -ow | --output-overwrite | URL 출력 파일(기본값 또는 로 지정된 파일)이 이미 존재하는 경우, 추가하지 않고 덮어씁니다. |
| -nlf | --new-links-file | 이 인수가 전달되면 파일(또는 가 사용된 경우 해당 파일 이름에 접미사가 붙은 파일)도 작성되며, 최신 실행의 링크가 포함됩니다. 이는 대상의 지속적인 모니터링에 사용할 수 있습니다(에만 해당, 에는 해당되지 않음). |
| | --stream | URL이 발견되는 즉시 STDOUT으로 출력합니다(중복 표시됨). 에서만 작동합니다. 다른 모든 출력은 억제되므로 오류를 보려면 를 사용하세요. 를 사용하여 결과를 명시적으로 파일에 저장합니다(중복 제거됨). |
| -c | --config | YML 설정 파일의 경로입니다. 전달되지 않으면 기본 디렉토리(일반적으로 )에서 파일을 찾습니다. |
| -wrlr | --wayback-rate-limit-retry | 사용자가 오류로 중단하는 대신 Wayback Machine(archive.org)의 속도 제한 일시 중지를 기다릴 시간(분)입니다(기본값: 3). |
| -urlr | --urlscan-rate-limit-retry | 사용자가 오류로 중단하는 대신 URLScan.io의 속도 제한 일시 중지를 기다릴 시간(분)입니다(기본값: 1). |
| -co | --check-only | 소스에서 URL을 가져오고 Wayback Machine에서 응답을 다운로드하는 데 필요한 요청 수와 대략적인 소요 시간을 보여주기 위해 몇 가지 최소 요청을 수행합니다(불행히도 URLScan에서 응답을 다운로드하는 데 걸리는 시간을 확인하는 것은 불가능합니다). |
| -nd | --notify-discord | waymore 완료 시 Discord로 알림을 보낼지 여부입니다. 파일에 가 제공되어야 합니다. |
| -nt | --notify-telegram | waymore 완료 시 Telegram으로 알림을 보낼지 여부입니다. 파일에 및 가 제공되어야 합니다. |
| -oijs | --output-inline-js | (또는 )가 사용된 경우 응답 디렉토리에 관련 파일의 결합된 인라인 자바스크립트를 저장할지 여부입니다. 파일은 라는 이름으로 저장되며, 여기서 는 파일 번호입니다. 파일당 1000개의 고유 스크립트가 저장됩니다. 또한 파일이 생성되며, 파일에서 참조된 모든 외부 스크립트의 값이 포함됩니다. |
| -v | --verbose | 자세한 출력 |
| | --version | 현재 버전 번호를 표시합니다. |
| -h | --help | 도움말 메시지를 표시하고 종료합니다. |## docker로 실행하기
설치 docker```bash git clone https://github.com/xnl-h4ck3r/waymore.git cd waymore
이미지 빌드:```bash
docker build -t waymore .
다음 명령어로 waymore를 실행하세요:```bash docker run -it --rm -v $PWD/results:/app/results waymore:latest -i example.com -oU example.com.links -oR results/example.com/
## Input and Mode
입력 `-i`는 도메인만(예: `redbull.com`) 또는 특정 도메인과 경로(예: `redbull.com/robots.txt`)가 될 수 있습니다. 처리할 도메인/URL 목록이 있는 파일을 전달하거나(또는 명령줄에서 다른 프로그램의 파이프를 통해 값을 전달할 수도 있습니다). **참고: 입력 값에서 스킴, 포트 번호, 쿼리 문자열, URL 프래그먼트는 제거됩니다. 그러나 경로를 제공하면 해당 경로가 특별히 검색되므로 결과가 제한됩니다.**
waymore에는 실행할 수 있는 여러 모드가 있습니다. `-mode` 인수는 3가지 다른 값을 가질 수 있습니다:
- `U` - URL이 archive.org(`-xwm`이 전달되지 않은 경우), commoncrawl.org(`-xcc`가 전달되지 않은 경우), otx.alienvault.com(`-xvv`가 전달되지 않은 경우) 및 urlscan.io(`-xus`가 전달되지 않은 경우)에서 검색됩니다.
- `R` - 응답이 archive.org에서 다운로드됩니다.
- `B` - URL과 응답이 모두 검색됩니다.
입력이 특정 URL(예: `redbull.com/robots.txt`)인 경우 `-mode`는 기본적으로 `R`로 설정됩니다. 응답만 다운로드됩니다. 경로가 있는 도메인의 경우 모드를 `U`나 `B`로 변경할 수 없습니다. 특정 URL에 대한 URL을 검색할 필요가 없기 때문입니다.
입력이 단순한 도메인(예: `redbull.com`)인 경우 `-mode`는 기본적으로 `B`로 설정됩니다. 필요에 따라 `U`나 `R`로 변경할 수 있습니다. 도메인만 전달되면 해당 도메인(및 `-n`이 전달되지 않은 경우 하위 도메인)에 대한 모든 URL/응답이 검색됩니다. 하위 도메인 없음 옵션 `-n`이 전달되면 `www` 하위 도메인은 여전히 기본적으로 포함됩니다.
## config.yml
`config.yml` 파일(일반적으로 `~/.config/waymore/`에 위치)에는 필요에 맞게 업데이트할 수 있는 값들이 있습니다. 필터는 모두 쉼표로 구분된 목록으로 제공됩니다:
- `FILTER_CODE` - web.archive.org에서 가져오려는 응답을 제외하는 데 사용되는 제외 목록이며, `-i`가 디렉터리인 경우 파일 이름에도 사용됩니다(예: `301,302`). `-fc` 인수로 재정의할 수 있습니다. `-mc`(필터 대신 상태 코드 일치)를 전달하면 `FILTER_CODE` 또는 `-fc`의 모든 값이 재정의됩니다.
- `FILTER_MIME` - web.archive.org의 API를 통해 링크 및 응답을 필터링하는 데 사용되는 MIME Content-Type 제외 목록입니다(예: `'text/css,image/jpeg`). `-ft` 인수로 재정의할 수 있습니다. `-mt`(필터 대신 MIME 유형 일치)를 전달하면 `FILTER_MIME` 또는 `-ft`의 모든 값이 재정의됩니다.
- `FILTER_URL` - web.archive.org의 API를 통해 링크 및 응답을 필터링하는 데 사용되는 응답 코드 제외 목록입니다(예: `.css,.jpg`).
- `FILTER_KEYWORDS` - `-ko`/`--keywords-only` 인수가 전달되면(명령줄에 명시적 값을 제공하지 않고) 지정된 키워드를 포함하는 링크 및 응답만 반환됩니다(예: `admin,portal`).
- `URLSCAN_API_KEY` - [urlscan.io](https://urlscan.io/user/signup)에 가입하여 **무료** API 키를 받을 수 있습니다(유료 구독도 가능합니다). API에서 더 많은 데이터를 더 빠르게 얻으려면 키를 받아 config 파일에 넣는 것이 좋습니다. 참고: 정식 유료 구독이 없으면 속도 제한이 적용됩니다.
- `CONTINUE_RESPONSES_IF_PIPED` - 아카이브 응답 검색이 완료되지 않은 경우, 다음 실행 시 이전 실행을 계속할지 묻는 메시지가 표시됩니다. 그러나 `stdout`이 다른 프로세스로 파이프되면 대화형 프롬프트를 원하지 않는 것으로 간주됩니다. `True`(기본값) 값은 이전 실행이 계속되도록 보장합니다. 매번 새로 실행하려면 `False`로 설정하세요.
- `WEBHOOK_DISCORD` - `--notify-discord` 인수가 전달되면 `waymore`가 이 Discord 웹훅으로 알림을 보냅니다.
- `TELEGRAM_BOT_TOKEN` - `--notify-telegram` 인수가 전달되면 `waymore`가 이 토큰을 사용하여 Telegram으로 알림을 보냅니다.
- `TELEGRAM_CHAT_ID` - `--notify-telegram` 인수가 전달되면 `waymore`가 이 채팅 ID로 알림을 보냅니다.
- `DEFAULT_OUTPUT_DIR` - `-oU` 및 `-oR` 인수가 사용되지 않을 때 출력 파일이 기록되는 기본 위치입니다. 이 키의 값이 비어 있으면 `config.yml` 파일의 위치가 기본값이 됩니다.
- `INTELX_API_KEY` - [여기 intelx.io](https://intelx.io/product)에 가입할 수 있습니다. `/phonebook/search`를 API를 통해 수행하려면 학술 또는 유료 API 키가 필요합니다(2024-09-01 기준, 스팸 계정에 의한 지속적인 남용으로 인해 Phonebook 서비스가 학술 또는 유료 사용자로 제한되었습니다). 유효한 학술 이메일 주소로 가입하면 학술용 무료 API 키를 받을 수 있습니다.
- `SOURCE_IP` - 선택 사항입니다. 다중 호스트에서 아웃바운드 HTTP/HTTPS 요청을 특정 소스 IP에 바인딩합니다. `--source-ip/--bind-ip` CLI 플래그를 통해서도 설정할 수 있습니다(CLI가 우선).
**참고: Alien Vault OTX, Virus Total, Intelligence X는 MIME 유형별 필터 기능이 없으므로 이들에 대해서는 MIME 유형을 필터링할 수 없습니다. URLScan은 때때로 URL에 대해 MIME 유형이 정의되지 않은 경우가 있습니다. 이러한 경우 필터 또는 일치 여부에 관계없이 URL이 포함됩니다. 이 점을 염두에 두고, 이것이 중요하다면 특정 제공자를 제외하는 것을 고려하세요.**
## Output
`config.yml` 파일의 `DEFAULT_OUTPUT_DIR`에 지정된 기본 출력 디렉터리(비어 있으면 `config.yml` 파일 자체의 위치, 일반적으로 `~/.config/waymore/`가 기본값)에 `results` 디렉터리가 생성됩니다. 그 안에는 `-i`로 전달된 대상 도메인(또는 경로가 있는 도메인)의 디렉터리가 생성됩니다(`-i`로 전달된 파일의 각 줄에 대해). 또는 `-oU` 인수를 사용하여 URL 링크 파일이 출력될 위치(및 파일 이름)를 지정할 수 있습니다. 또한 `-oR` 인수를 사용하여 아카이브된 응답이 출력될 디렉터리(또는 경로)를 지정할 수 있습니다.
실행 시 대상 디렉터리에 다음 파일이 생성됩니다:
- `waymore.txt` - `-mode`가 `U` 또는 `B`인 경우 이 파일에는 선택한 소스의 링크가 포함됩니다. 링크는 archive.org Wayback Machine(`-xwm`이 전달되지 않은 경우), commoncrawl.org(`-xcc`가 전달되지 않은 경우), otx.alienvault.com(`-xav`가 전달되지 않은 경우) 및 urlscan.io(`-xus`가 전달되지 않은 경우)에서 검색됩니다. `-ow` 옵션도 전달된 경우 대상 결과 디렉터리에 있는 기존 `waymore.txt` 파일을 덮어쓰고, 그렇지 않으면 새 링크가 추가되고 중복 항목이 제거됩니다.
- `index.txt` - `-mode`가 `R` 또는 `B`이고 `-url-filename`이 전달되지 않은 경우 아카이브된 응답이 다운로드되고 해시 값이 저장된 파일 이름에 사용됩니다. 이 파일에는 `<hash>,<archive URL>,<timestamp>`의 쉼표로 구분된 목록이 포함되어 있어 어떤 URL이 어떤 응답을 생성했는지 확인해야 하는 경우에 유용합니다.
- `ALL OTHER FILES` - `-mode`가 `R` 또는 `B`인 경우 이러한 아카이브된 응답 파일이 생성됩니다. `-url-filename`이 전달된 경우 파일 이름은 응답을 생성한 아카이브 URL이 됩니다(예: `https--example.com-robots.txt`). 그렇지 않으면 파일 이름은 해시 값이 됩니다(예: `7960113391501.{EXT}`). 여기서 `{EXT}`는 경로에서 파생된 확장자이며, 그렇지 않으면 응답 `content-type`에서 파생됩니다. 때로는 일반 확장자가 제공됩니다(예: `javascript`라는 단어를 포함하는 모든 콘텐츠 유형에 대해 `.js`). 그렇지 않으면 유형의 마지막 부분으로 설정될 수 있습니다(예: `application/java-archive`인 경우 파일은 `7960113391501.java-archive`가 됩니다). 해시 값을 사용하면 고유 응답당 하나의 파일만 있으므로 더 적은 파일이 기록됩니다. 이러한 아카이브된 응답은 저장되기 전에 `web.archive.org`에 대한 모든 참조를 제거하기 위해 편집됩니다.
## Info and Suggestions
발견되는 링크 수와 그에 따라 다운로드할 아카이브된 응답 파일 수는 많은 도메인에서 잠재적으로 **매우 클 수 있습니다**. 이 도구는 속도에 관한 것이 아니라 더 많은 것을 찾는 것이므로 인내심을 가지세요.
프로세스 수를 늘리는 `-p` 옵션이 있습니다(모든 소스에서 링크를 검색하고 archive.org에서 아카이브된 응답을 다운로드할 때 사용). 그러나 원하는 만큼 빠르지 않을 수 있지만 개인적으로 더 높은 값으로 응답을 받는 데 문제가 있었으므로 `-p`를 기본값인 3으로 두는 것이 좋습니다. 이러한 서비스에 문제를 일으키고 싶지 않으므로 합리적으로 행동하세요!
저는 `waymore.txt`에 가능한 모든 링크를 포함시키기 위해 `-f` 옵션을 자주 사용합니다. 이미지, 글꼴 등에 관심이 없더라도 가능한 모든 경로와 매개변수를 보는 것은 여전히 유용할 수 있습니다. 그러나 아카이브된 응답을 다운로드할 때는 항상 필터가 적용됩니다. 수천 개의 이미지를 다운로드하는 데 시간을 낭비하고 싶지 않을 테니까요!
`-v` 옵션을 사용하면 백그라운드에서 진행되는 상황을 볼 수 있으며 예상한 출력을 얻지 못할 때 도움이 될 수 있습니다.
`-v`를 사용하면 발견된 URL의 모든 MIME Content Type(Alien Vault 제외한 모든 소스)이 표시됩니다. 여전히 보고 싶지 않은 항목이 반환되는 경우 추가 제외 항목을 추가하는 데 도움이 될 수 있습니다. 포함되고 있지만 앞으로 원하지 않는 MIME 유형이 발견되면 `config.yml`의 `FILTER_MIME`에 추가하세요.
때로 archive.org의 MIME 유형이 실제 MIME 대신 `unk` 및 `unknown`으로 저장되어 필터가 결과에서 이를 제거하지 못할 수 있습니다. `FILTER_URL` 구성 설정을 사용하여 나중에 이를 제거할 수 있습니다. 예를 들어 GIF의 MIME 유형이 `image/gif` 대신 `unk`인 경우(`FILTER_MIME`에 있음) 필터링되지 않지만, URL이 `https://target.com/assets/logo.gif`이고 `.gif`가 `FILTER_URL`에 있으면 요청되지 않습니다.
`config.yml` 파일이 없거나 필터 항목이 파일에 없으면 기본 필터가 사용됩니다. 파일을 가지고 검토하여 필요한 것을 얻을 수 있도록 하는 것이 좋습니다.
잠재적으로 수백만 개의 응답이 있을 수 있으므로 필터를 설정해야 하지만 필요에 따라 제한(`-l`), 시작 날짜(`-from`), 종료 날짜(`-to`) 및/또는 캡처 간격(`-ci`)도 설정하세요. 제한의 기본값은 5000이지만, 2015년부터 2018년 1월까지의 최신 20,000개 응답을 얻으려면 `-l -20000 -from 2015 -to 201801`을 전달합니다. 캡처 간격은 특정 기간 내에 특정 URL에 대해 다운로드할 응답 수를 결정합니다. 예를 들어 `m`으로 설정하면 URL당 월별로 하나의 응답만 가져옵니다. 기본값 `d`는 응답 수를 크게 줄일 가능성이 높으며, 대상이 하루에 여러 번 변경되지 않는 한 고유 응답을 많이 놓치지 않을 것입니다.
또 다른 유용한 인수는 전달된 쉼표로 구분된 목록과 일치하는 HTTP 상태 코드가 있는 결과만 가져오는 `-mc`입니다(예: `-mc 200` 또는 `-mc 200,403`).
또한 관심 있는 키워드가 포함된 링크와 응답만 반환함으로써 그 수를 크게 줄일 수 있습니다(따라서 실행 시간도 단축). `config.yml`의 `FILTER_KEYWORDS` 키에 이러한 키워드를 나열한 다음 `-ko`/`--keywords-only` 인수를 전달하여 사용하거나, `-ko`/`--keywords-only`를 특정 정규식과 함께 전달할 수 있습니다(예: JS 파일만 가져오려면 `-ko "\.js(\?.*|$)"`). **참고: CDX 정규식은 모든 경로가 전체 문자열과 일치해야 하므로, `$`가 OR 그룹의 일부로 사용되는 경우 정규식 부분 `(\?.*|$)`에 `.*`가 필요합니다.**
위에서 언급했듯이 [urlscan.io](https://urlscan.io/user/signup)에 가입하여 **무료** API 키를 받으세요(유료 구독도 가능합니다). API에서 더 많은 데이터를 더 빠르게 얻으려면 키를 받아 `config.yml` 파일에 넣는 것이 좋습니다. 참고: 정식 유료 구독이 없으면 속도 제한이 적용됩니다.
archive.org Wayback Machine CDX API는 때로 모든 링크를 얻기 위해 엄청난 수의 요청이 필요할 수 있습니다. 예를 들어 `-i twitter.com`에 대해 **waymore**를 실행하면 archive.org에 **28,903,799**개의 요청을 해야 한다고 표시됩니다(어떤 사람들에게는 거의 1000일이 걸릴 수 있습니다!!!). `-lr` 인수를 사용하여 소스당 요청 수를 제한할 수 있습니다(보통 문제는 archive.org이지만). 인수의 기본값은 0(영)이며 제한을 적용하지 않습니다.
Wayback Machine CDX API에는 필터가 적용될 때 반환되는 페이지 수가 정확하지 않아 문제가 발생할 수 있는 문제도 있습니다(https://github.com/internetarchive/wayback/issues/243 참조). 해당 문제가 해결될 때까지 `-lr` 인수를 적절한 값으로 설정하면 단기적으로 해당 문제를 해결하는 데 도움이 될 수 있습니다.
Common Crawl API는 오랫동안 많은 문제가 있었습니다. 이 소스를 포함하면 waymore 실행 시간이 훨씬 더 오래 걸릴 수 있으며 추가 결과를 얻지 못할 수도 있습니다. http://index.commoncrawl.org/collinfo.json을 방문하여 성공하는지 확인함으로써 문제가 있는지 확인할 수 있습니다. `--providers` 인수를 사용하여 `commoncrawl`을 포함하지 않거나 `-xcc` 인수를 사용하여 Common Crawl을 완전히 제외하는 것을 고려하세요.
**제공자 API 서버는 대규모 볼륨을 처리하도록 설계되지 않았으므로, 요청할 때 합리적이고 배려심 있게 행동하세요!**
아카이브된 응답을 다운로드할 때 시간이 오래 걸릴 수 있으며, 어떤 이유로 머신에 의해 종료되거나 사용자가 수동으로 종료할 수도 있습니다.
대상 `results` 디렉터리에는 프로세스 시작 시 `responses.tmp`라는 파일이 생성되며, 검색될 모든 응답 URL이 포함됩니다. 또한 `continueResp.tmp`라는 파일이 생성되어 가장 최근에 검색된 응답의 인덱스를 저장합니다. `waymore`가 응답을 가져오기 위해 실행되고(`-mode R` 또는 `-mode B`), 이러한 파일이 존재하면 이전에 불완전한 실행이 있었던 것이며, 대신 그 실행을 계속할지 묻는 메시지가 표시됩니다. 그러면 중단된 지점부터 계속 진행됩니다.
## Some Basic Examples
### Example 1
`redbull.com`에 대해 모든 소스에서 URL만 가져옵니다(`-mode U`는 URL 전용이므로 응답은 다운로드되지 않음):
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example1.png"></center>
URL은 `config.yml`과 동일한 경로(일반적으로 `~/.config/waymore`)의 `results/redbull.com/waymore.txt`에 저장됩니다.
### Example 2
Wayback에서 `redbull.com`의 모든 URL을 가져옵니다(`-f`와 함께 `mode U`에서는 필터가 적용되지 않으며, `-xcc`, `-xav`, `-xus`, `-xvt`가 각각 전달되었으므로 Common Crawl, Alien Vault, URLScan, Virus Total에서 URL을 검색하지 않습니다. 제외 인수 대신 `--providers wayback`을 전달해도 동일한 결과를 얻을 수 있습니다.)
2022년부터 발견된 처음 200개의 응답을 저장합니다(`-l 200 -from 2022`):
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example2.png"></center>
`-mode`가 명시적으로 설정되지 않았으므로 기본값은 `B`(둘 다 - URL 검색 및 응답 다운로드)입니다.
각 고유 응답에 대해 파일이 생성되어 `results/redbull.com/`에도 저장됩니다:
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example3.png"></center>
또한 `results/redbull.com/index.txt` 파일이 생성되며, 어떤 URL이 어떤 파일에 대한 응답을 제공했는지에 대한 참조가 포함됩니다. 예:```
4847147712618,https://web.archive.org/web/20220426044405/https://www.redbull.com/additional-services/geo ,2022-06-24 20:07:50.603486
여기서 4847147712618는 4847147712618.xnl 내 응답의 해시 값이고, 두 번째 값은 실제 보관된 페이지를 볼 수 있는 Wayback Machine URL, 세 번째는 응답이 다운로드된 시간입니다.
waymore를 다른 도구로 파이프할 수 있습니다. 모든 오류는 stderr로 전송되고, 발견된 모든 링크는 stdout으로 전송됩니다. 출력 파일은 링크가 다음 프로그램으로 파이프되는 것 외에도 여전히 생성됩니다. 그러나 보관된 응답은 다음 프로그램으로 파이프되지 않지만, 파일에는 여전히 기록됩니다. 예를 들어:```
waymore -i redbull.com -mode U | unfurl keys | sort -u
입력을 `stdin`을 통해 전달할 수도 있습니다 (`-i` 대신).```
cat redbull_subs.txt | waymore
때로는 특정 도메인에 대해 waymore를 실행했을 때 요청 수와 소요 시간만 확인하고 싶을 수 있습니다. -co/--check-only 인자를 사용하여 빠르게 확인할 수 있습니다. 예를 들어:```
waymore -i redbull.com --check-only
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example4.png"></center>
## 더 많은 URL 찾기!
이제 많은 아카이브된 응답이 있고 추가 링크를 찾고 싶으신가요? 간단합니다! [xnLinkFinder](https://github.com/xnl-h4ck3r/xnLinkFinder)를 사용해 보세요.
예를 들어:```
xnLinkFinder -i ~/Tools/waymore/results/redbull.com -sp https://www.redbull.com -sf redbull.com -o redbull.txt
Or run other tools such as trufflehog or gf over the directory of responses to find even more from the archived responses!
아래는 2024년 3월에 Jason Haddix의 디스코드 채널에서 진행한 심층 강연으로, waymore에 대해 알아야 할 모든 것을 다룹니다.
참고: 이 동영상은 2024년 3월 기준이므로 이후 추가된 기능은 포함되지 않으며 일부 기능이 변경되었을 수 있습니다. 현재 지침을 다시 확인하시기 바랍니다.
문제가 발생하거나 개선 아이디어가 있으면 언제든지 Github에 이슈를 제출해 주세요. 문제가 있는 경우 정확히 실행한 명령어와 문제에 대한 자세한 설명을 제공해 주시면 도움이 됩니다. 가능하면 -v 플래그를 사용하여 문제를 재현하고 표시되는 오류 메시지를 알려주세요.
-oos 인수를 추가합니다.-mode R 또는 -mode B로 여러 번 실행할 경우 waymore_index.txt가 중복 제거되지 않습니다.행운을 빕니다. 사냥 잘 하세요! 이 도구(또는 다른 도구)가 정말 마음에 들거나 멋진 버그 바운티를 찾는 데 도움이 되었다면 커피 한 잔 사주세요! ☕ (카페인이 필요해요!)
🤘 /XNL-h4ck3r
-oRconfig.ymlDEFAULT_OUTPUT_DIR~/.config/waymore//results-i-i-oU ~/Recon/Redbull/waymoreUrls.txtconfig.ymlDEFAULT_OUTPUT_DIR~/.config/waymore//results-i-i-oR ~/Recon/Redbull/waymoreResponsesconfig.ymlFILTER_CODEconfig.ymlconfig.ymlFILTER_MIMEconfig.ymlFILTER_CODE-fcFILTER_MIME-ft-mode R-mode B20162018052021202112hdmdnone-ra '\.js(\?\\|$)')-lcc 10100-xccconfig.ymlSOURCE_IPconfig.yml~/.config/waymore/FILTER_KEYWORDS-ko "admin"admin-ko "\.js(\?.*\\|$)"waymore.txt-oUwaymore.new-oU.newmode Umode R-mode U-v-oU~/.config/waymoreconfig.yml429429config.ymlWEBHOOK_DISCORDconfig.ymlTELEGRAM_BOT_TOKENTELEGRAM_CHAT_ID-mode R-mode BcombinedInline{}.js{}combinedInlineSrc.txtsrc