
1K+ 개의 IP 또는 Shodan 검색 결과를 열고 로그인을 시도합니다.
Shodan 검색 결과, 지정된 IP, IP 범위, 도메인 또는 텍스트 파일의 IP 목록을 동시에 열고, 해당되는 경우 페이지의 상태와 제목을 출력합니다. 페이지에 로그인을 시도하려면 -u 및 -p 옵션을 추가하십시오. 먼저 폼 로그인을 찾고, 실패하면 HTTP 기본 인증을 시도합니다.
인증 성공 여부를 테스트하기 위해 -f SEARCHSTRING을 사용하여 HTML 응답에서 특정 문자열을 찾을 수 있습니다. Shodan 검색어 또는 대상 IP/도메인 + _results.txt 파일에 응답하는 모든 장치를 기록합니다. 응답 페이지의 HTML을 검색할 때 한 가지 주의할 점은 일부 폼 로그인 페이지는 인증 요청 후 로그인 후 페이지의 HTML 소스 대신 JSON 객체 응답을 반환한다는 것입니다. 이러한 시나리오에서는 -f "success"를 사용하는 것만으로도 성공 여부를 확인할 수 있는 경우가 많습니다.
요청의 기본 타임아웃은 15초입니다. 1000개의 요청을 동시에 배치로 보내며, -c 옵션으로 조정할 수 있습니다. Shodan은 무료 API 키를 사용하는 경우 결과의 첫 페이지(100개 호스트)만 허용한다는 점에 유의해야 합니다. 프로페셔널 API 키가 있는 경우 -n NUMBER_OF_PAGES 인수로 테스트할 검색 결과 페이지 수를 지정할 수 있습니다. 기본적으로 1페이지까지만 확인합니다.
Python 2.7
최신 Linux
Shodan API 키(-s SEARCHTERM 인수를 지정하는 경우에만)
가장 간단한 사용법:
python device-pharmer.py -s 'dir-300' -a Wutc4c3T78gRIKeuLZesI8Mx2ddOiP4
API 키 Wutc4c3T78gRIKeuLZesI8Mx2ddOiP4를 사용하여 Shodan에서 "dir-300"을 검색합니다. 응답 페이지가 있으면 IP와 제목을 출력합니다.
python device-pharmer.py -s 'dd-wrt' -a Wutc4c3T78gRIKeuLZesI8Mx2ddOiP4 -u admin -p password -n 5 -f ">Advanced Routing<" --proxy 123.12.12.123:8080 --timeout 30
주어진 API 키를 사용하여 Shodan에서 "dd-wrt"를 검색하고 사용자 이름 "admin"과 비밀번호 "password"로 결과에 로그인을 시도합니다. Shodan 결과의 처음 5페이지(500개 호스트)만 수집하고 랜딩 페이지의 HTML에 ">Advanced Routing<" 문자열이 포함되어 있는지 확인합니다. 출력에서 IP 및 페이지 제목과 함께 "* MATCH *"를 인쇄하고 문자열이 발견되면 기록합니다. 마지막으로 모든 요청에 123.12.12.123:8080의 HTTP 프록시를 사용하고 타임아웃을 30초로 설정합니다.
python device-pharmer.py -t 192.168.0-2.1-100 -c 100
192.168.0-2.1-100을 대상으로 지정하면 스크립트가 192.168.0.1-101, 192.168.1.1-101, 192.168.2.1-101을 동시에 열고 응답 페이지의 상태와 제목을 수집합니다. -c 100은 동시성을 한 번에 100페이지로 제한하므로 스크립트는 각각 100개의 IP로 구성된 3개 그룹을 통과합니다. 스크립트의 기본 타임아웃이 15초이므로 완료하는 데 약 45초가 걸립니다.
python device-pharmer.py -t www.reddit.com/login -ssl -u sirsmit418 -p whoopwhoop -f 'tattoos'
사용자 이름 sirsmit418과 비밀번호 whoopwhoop을 사용하여 www.reddit.com/login에 HTTPS로 로그인을 시도합니다. 응답 HTML에서 구독한 서브레딧과 관련된 "tattoos" 텍스트를 찾아 인증 성공 여부를 확인합니다.
python device-pharmer.py --ipfile list_of_ips.txt
줄바꿈으로 구분된 IP가 포함된 텍스트 파일에서 각 IP를 테스트합니다.
-a APIKEY: Shodan을 검색할 때 이 API 키를 사용합니다(-s와 함께 사용할 때만 필요함).
-c CONCURRENT: 지정된 수의 요청을 동시에 보냅니다. 기본값=1000
-f FINDTERMS: 각 응답의 HTML에서 인수 문자열을 검색합니다. 일치하면 출력하고 기록합니다.
--ipfile IPTEXTFILE: 지정된 텍스트 파일에서 줄바꿈으로 구분된 IP 목록의 각 IP를 테스트합니다.
-n NUMPAGES: IP를 수집하며 지정된 수의 Shodan 검색 결과 페이지를 탐색합니다. 페이지당 100개의 결과.
-p PASSWORD: 이 비밀번호로 로그인을 시도합니다.
--proxy PROXY: 요청 시 이 프록시를 사용합니다. HTTP 기본 인증으로 프록시에 로그인하려면 user:[email protected]:8080과 같이 입력합니다.
-s SEARCHTERMS: Shodan에서 검색어를 검색하고 각 IP 주소, 페이지가 응답했는지 여부, 응답한 경우 반환된 페이지의 제목을 출력합니다(리디렉션을 따름).
-ssl: 모든 대상에 HTTPS 요청을 보냅니다.
-t IPADDRESS/DOMAIN/IPRANGE: Shodan을 사용하여 대상 목록을 채우는 대신 이 도메인, IP 또는 IP 범위를 시도하고 응답 정보를 반환합니다.
--timeout TIMEOUT: 각 URI의 타임아웃을 초 단위로 설정합니다. 기본값은 15입니다.
-u USERNAME: 이 사용자 이름으로 로그인을 시도합니다.
Copyright (c) 2014, Dan McInerney 모든 권리 보유.
수정 여부와 관계없이 소스 및 바이너리 형태로 재배포 및 사용이 허용됩니다. 단, 다음 조건을 충족해야 합니다:
본 소프트웨어는 저작권 보유자 및 기여자에 의해 "있는 그대로" 제공되며, 상품성 및 특정 목적에의 적합성에 대한 묵시적 보증을 포함하되 이에 국한되지 않는 모든 명시적 또는 묵시적 보증은 부인됩니다. 어떠한 경우에도 저작권 보유자는 본 소프트웨어의 사용으로 인해 발생하는 직접, 간접, 부수적, 특별, 예시적 또는 결과적 손해(대체 상품 또는 서비스의 조달, 사용, 데이터 또는 이익의 손실, 업무 중단을 포함하되 이에 국한되지 않음)에 대해 책임을 지지 않습니다. 계약, 엄격한 책임 또는 불법 행위(과실 또는 기타 포함)에 따른 책임 이론과 관계없이, 본 소프트웨어 사용으로 인해 발생하는 모든 손해에 대해 그러한 손해의 가능성을 사전에 통보받았더라도 마찬가지입니다.