it-swarm-korea.com

오픈 소스 침투 테스트 자동화

일반적인 오픈 소스 침투 테스트는 어떤 순서로 작동합니까? 어떤 도구가 첫 번째, 두 번째, 세 번째로 실행되며 어떻게 제어합니까?

단순히 Metasploit RC 파일을 사용합니까? 특별한 방법으로 네트워크 취약점 스캐너? 명령 줄, 사용자 정의 또는 헤드리스 웹 응용 프로그램 보안 스캐너?

기꺼이 공유 할 수있는 침투 테스트 속도를 높이는 다른 방법 (또는 아이디어)이 있습니까?

이 프로세스에 도움이되는 오픈 소스 프로젝트가 있습니까 (Metasploit RC 파일 또는 MSF 콘솔)의`save '명령 외에)?

48
atdre

Metasploit Framework는 오늘날까지도 여전히 자동화 자동화를위한 도구이지만 CORE INSIGHT 및 Immunity Security SWARM에서 본 것을 좋아합니다. Loki (또는 이전 Yersinia 도구), intrace, Chiron , mana-toolkit, mitmf, bettercap 및 Responder.py와 같은 몇 가지 도구가 있어야합니다. Metasploit 프레임 워크 외부에 있지만 요즘 msfconsole 안에서 너무 많은 일을 할 수 있습니다 ( 'load kiwi'가 떠 오릅니다). 놀라운 리소스를 보려면 Metasploit를 사용하여 전체 PTES 수행을 다루는 이 문서 를 확인하십시오.

Metasploit은 보조/서버 (및 캡처) 모듈과 같이 (현재 존재하는 거의 모든 도구와 기술에 대해) 여기 저기 조금씩 따라 잡고 있습니다. 그러나 보조/스푸핑/arp/arp_poisoning, arpspoof, macof, arp-sk, nemesis 및 ettercap 간의 성능 비교와 같은 많은 질문이 남아 있습니다. 보조/스니퍼/psnuffle이 dsniff와 다르게 작동합니까? Squirtle , 보조/서버/http_ntlmrelay 및 보조/서버/캡처/http_ntlm의 차이점은 무엇입니까? http_javascript_keylogger는 BeEF 와 어떻게 비교됩니까? 보조/스푸핑/llmnr, 보조/스푸핑/nbs, 보조/서버/wpad 및 보조/서버/캡처/smb는 Responder.py와 어떻게 비교됩니까? 분명히 다른 사람들은 단순히 우수하지만 MSF의 일부로 코딩하고 싶습니다 (또는 누군가가 이것을보고 싶습니다). 예를 들어 dns2proxy (from sslstrip2 의 작성자) 기능이 보조/서버/팩스에 존재하지 않아야합니까?

pbscan , zmap 및 masscan은 최근 몇 년 동안 많은 기반을 얻었지만 네트워크 침투 테스트에서 초기 작업의 대부분은 nmap 또는 unicornscan으로 수행됩니다. 특히 dnmap 은 매끄러운 접근 방식입니다. dnmap에는 Minions 라는 웹 인터페이스도 있습니다.

다음은 nmap과 관련하여 즐기는 몇 가지 플래그입니다.

스캔 속도가 느리지 만 (너무 느리지는 않음) IDS를 피하며 패킷이 목적지를 만들지 않은 이유를 제공합니다. nmap에서 대상 프로토콜 또는 포트를 알 수없는 경우 데이터 길이 또는 문자열 세트를 사용하여 한 번에 하나의 포트만 수행하는 것이 가장 좋습니다. robtex 및 csrecon 을 사용하여 대상 IP 접두사를 확인하십시오. 웹 서버가 아니지만 역사적으로 원격 코드 악용에 취약한 활용 가능한 하나 또는 두 개의 포트를 식별하십시오 (N.B.,이 데이터를 cvedetails.com 또는 exploitsearch.net과 연관시켜야 할 수도 있음). 예제에서 TCP 포트 623 (이 느린 스캔의 이점을 제공하는 이미 느리게 응답하는 서비스 인 IPMI RMCP))을 선택한 것을 알 수 있지만 쉽게 변경할 수 있습니다. SSH 또는 RDP와 같은 명백한 것을 권장하지 마십시오-적어도 도전하기 전에 Shodan HoneyScore 를 확인하십시오).

-T1 --max-retries 0 --randomize-hosts-이유 -n -Pn -sT -p 623

HTTP 또는 TLS 대상은 일반적으로 기본 포트를 실행하므로 기본 포트가 아닌 포트에서 다른 HTTP/TLS 대상을 스캔하기 전에 먼저 SYN 스캔을 원합니다. 두 번째 명령은 매우 느리지 만 레이더 아래에있을 것입니다 (특히 이 패치이 블로그 게시물 에서 사용하는 경우). 탐지되지 않은 레이어. 웹 관련 포트가 열려 있지만 http-title 스크립트가 실패하면 잠재적 인 honeypot warning ! 열린 포트와 서비스 이름 및 목적과 일치하는 유효한 해당 HTML 제목 요소 태그 사이의 상관 관계를 찾으십시오. 특정 IP가 항상 포트에 응답하면 nmap의 --exclude <ip> 지시문 또는 --excludefile <filename> IP 목록이있는 경우 (nmap의 -iL 플래그와 유사).

-T1 --max-retries 0 --randomize-hosts --script http-title --reason -n -Pn -r -p 80,443

-T1 --max-retries 0 --randomize-hosts --script + http-title --open -n -Pn -p 81,457,902,995,1100,1128,1241,1581,1883,1944,2301,2375,2381,3010 , 3037,3128,3780,3790,3872,4000-4002,4100,4567,4848,5000,5250,5800-5802,5814,5986,6060,6405,7000-7002,7080,7181,7272,7443,7510 , 7770,7778,8000-8001,8008,8014,8028,8040,8081,8085,8088-8091,8095,8140,8161,8180,8200,8222,8300,8400,8443,8500,8776,8834,8880 , 8883,8888,8980,8999-9000,9002,9060,9080,9084,9090,9191,9292,9389,9443,9495,9990,9999,30821,50000

모든 것이 정상적이라면 더 빠른 스캔으로 전환하고 IDS/IPS를 확인하십시오. 모든 스캔이 중지되면 무언가 잘못되었다는 것을 알 수 있지만 nmap의 traceroute 플래그를 사용하거나 firewalk 스크립트와 결합하여 intrace, lft , ttl-mon.py 또는 osstmm-afd로 이러한 시스템을 시도하고 매핑하십시오. 일반적으로 IPS/IDP 기능, 네트워크 기반 IPS/IDP 어플라이언스, UTM, NGFW 및 유사한 네트워크 스택 게이트웨이를 포함하는 방화벽은 8-11 초마다 분석 할 트래픽 만 샘플링합니다. 포트 스캔 (예 : nmap T1 스캔에서 15 초 기본값 또는 T2 스캔에서 특정 12 초 지연 설정) 사이의 지연이 더 길고 병렬화가 부족하면 일반적으로 모든 종류의 침입 탐지로 인해 느린 스캔이 몰래 빠져 나가게됩니다. . 단일 포트로 향하는 트래픽과 같은 트래픽을 반복하면 침입 탐지 벨이 울려 트래픽을 공격으로 식별하거나 자동으로 거부 할 수 있습니다. 샘플링 기간 동안 침입 탐지는 순차적 인 포트를 찾을 수도 있습니다. 시도하고 식별하거나 가지고 노는 여러 가지 요소가 있습니다. 따라서 아래 보이는 다음 nmap 플래그를 수정하여 일련의 IDS 식별 전략을 테스트해야합니다. 첫 번째 테스트 사례 (12 초 지연, 재시도 및 순차 포트가없는 T2 스캔)가 수행되지만 두 번째 테스트 사례가 실패하는 경우 이유를 파악해야합니다. Nmap의 패킷 추적 및 추적 경로 기능이 적극 권장되지만 hping3 또는 nping과 같은 다른 도구가 이러한 노력을 지원하는 데 유용 할 수 있습니다.

트래픽이 차단 된 경우 (예 : 응답이 완전히 중지 된 경우) 소스 공개 IP (또는 LAN IP)를 전환해야 할 수도 있으므로 Starbucks에서 또는 기본 트래픽에서 대부분의 트래픽을 실행하는 것이 좋습니다. , 일반적인 위치 (dnmap도 도움이 될 것입니다). 허니넷 (예 : Fortinet FortiGate, TrapX DeceptionGrid 등)을 치거나 차후 스캔에서 제외 할 수 있도록 최소한 식별하십시오. 이러한 함정을 피하는 가장 좋은 방법은 scans.io 및 SHODAN 데이터 (및 대상 환경에 대한 지식, 사용중인 기술 종류-내부 네트워크 스캔을 수행 할 때 더 유용함)를 활용하고 수많은 포트 (nmap 또는 각기 20 개 정도의 고유 한 포트가있는 속도로 증가하는 dnmap), 잠재적 허니팟 (예 : 21-23, 25, 53, 110, 135-139, 445, 1337, 1433, 1723) 인 지나치게 반짝이는 서비스는 피하십시오. 3306, 3389, 5060-5061, 5800, 5900, 8080, 10000, 31337 및 44443 (NB, 아직이 포트 번호를 스캔하지 마십시오!).

-T2-스캔 지연 12s-최대 재시도 0-랜덤 화 호스트 --open -n -Pn -p26,66,79,113,389,407,465

-T2-스캔 지연 9s-최대 재시도 1-랜덤 화 호스트 --open -n -Pn -p512-514,523-524

-T2-최대 재시도 3-랜덤 화 호스트 --open -n -Pn -p548,554,587,593,873,993,1026,1050,1080,1099,1158,1344,1352,1521,1604,1720,2202,2302,2383

--max-rate 20 --max-parallelism 2 --max-retries 3 --randomize-hosts --open -n -Pn -p2628,2869,2947,3000,3031,3260,3478,3500,3632,3689 , 4369,5019,5040,5222,5353,5357,5432,5560,5631-5632

--max-rate 40 --max-parallelism 4 --max-retryries 3 --randomize-hosts --open -n -Pn -p5666,5672,5679,5850,5920,5984-5985,6000-6005,6379 , 6481,6666,7019,7210,7634

--max-rate 80 --max-parallelism 8 --max-retryries 3 --randomize-hosts --open -n -Pn -p8000,8009-8010,8834,9160,9999,11211,12000,17185,13722 , 19150,27017,30718,35871,49152,50030,50060,50070,50075,50090,52822,52869,60010,60030,64623

다음은 nscan 스캐닝의 다음 레벨 (기본 스캔 속도, qscan 레이턴시 확인으로 인해 무작위 화 없음)으로, 세부 사항과 이동 가능성을 제공합니다. 잠재적으로 열려 있지 않은 포트 (특히 과거에 결과가 모호한 포트)를 선택하지만 열려있는 포트 번호는 대부분 사용하십시오. qscan 스크립트를 손상시키는 dnmap 또는 기타 비 효율성을 사용하지 마십시오. TCP (일반적으로 HTTP 또는 SSL/TLS) 포트는 리버스 캐싱 프록시,로드 밸런서 뒤에 있거나 네트워크 수준에서 리디렉션 된 것 등일 수 있습니다. qscan 스크립트는 이러한 상황을 식별하는 데 도움이됩니다. halberd (또는 http-affiliate-id 및 http-favicon과 같은 추가 NSE 스크립트)와 같은 다른 도구를 추가 할 수 있습니다.이 단계에서는 IP 접두사, 호스트 이름, 여기에서는 blacksheepwall과 같은 강력한 도구 하나를 사용하는 것이 좋습니다 수동 DNS 센서는 생각보다 훨씬 쉽게 위치 및/또는 의도를 제공하여 IPS 또는 WAF (이 시점에서이 세 가지 방어 대책과 다른 방어 대책을 구별 할 수 있어야합니다.) 이미 모든 것을 소진 할 때까지 모든 포트를 직접 테스트하십시오. 대상 네트워크 및 도메인에 대해 알고 있어야합니다. 대상 SSL/TLS 포트가있는 경우 d Uplicates 스크립트는 단일 호스트가 여러 IP 또는 네트워크 (일반적으로 멀티 홈)에서 말할 때 이해하는 데 도움이됩니다.

--script qscan --max-retries 7-이유 -Pn --version-intensity 0 -sV -p80, (다른 발견 된 TCP 포트) --script qscan, 중복, ssl-cert --max-retry 7- v-이유 -Pn -sV --version-all -p80,443, (이전에 찾은 다른 것)

나쁜 TCP 체크섬을 사용하여 단일 포트 검사로 이러한 사고 방식을 따르십시오. 과거에 대한 지식을 활용하고 구축하십시오. 진행하기 전에 네트워크에 대한 좋은 아이디어가 있는지 확인하십시오 보내는 모든 패킷의 경로와 내부,이 시점부터 응답을 예측할 수 있습니다.이 단계에서 약간의 추가 지식을 구축하려면 pbscan, portbunny, masscan, zmap, 또는 unicornscan (-w file.pcap 플래그는 MSF의 pcap_log와 같은 패킷 캡처 분석을 위해 여기에서 용도가 변경 될 수 있지만 처음에 들리는 것만 큼 멋진 방법을 제안하지는 않습니다). 패킷 캡처를 수행하기 위해 디스크 I/O, CPU 및 메모리 사용량이 검사에 영향을 미치지 않도록 별도의 인라인 시스템) 일반적으로 netsniff-ng와 같은 도구를 사용하여 pcap을 저장합니다 (또는 pcapng)가 필요하면 p0f 및/또는 PRADS로 결과를 처리하십시오. nmap 외에이 단계에서 활용할 수있는 몇 가지 도구가 있습니다. 포트 별 버전을 타겟팅하는 것은 아직 필요하지 않지만 여기서 수행 할 수 있습니다. "충분한"서비스 식별을 통해 OS 수준의 지문을 사용하는 것이 좋습니다. fp 데이터베이스를 최신 플랫폼으로 새로 고침하여 최신 도구로 이식해야하는 오래된 기술 (예 : cron-os 이라는 nmap 포크)이 있습니다 (이는 p0f 및 PRADS를 이전에 제안한 이유입니다). -끊임없는 기술 변화를 따라 잡는 경향이 있습니다). Rapid7에는 서비스 핑거 프린팅을위한 빅 데이터 프로젝트 인 recog 가 있습니다. Nmap의 서비스 버전 관리는 amap과 같은 도구와 비교할 때 평균치이며 fpdns, ntp-fingerprint.pl, info2cpe 등과 같은 많은 포인트 솔루션 도구가 있습니다. Nessus와 같은 Vuln 스캐너에는 hmap (HTTP 핑거 프린터)이 통합되어 있지만 해당 공간에는 많은 도구가 있습니다 (httprint, httprecon). OS 핑거 프린팅과 서비스 버저 닝이 매우 문제가된다는 것은 귀찮습니다. 내가 설명한 방법과 도구로 최선을 다할 것을 제안합니다.

--script qscan --max-retries 7 --badsum -v -O --osscan-guess --max-os-tries 1 --eason --send-ip-버전-강도 0 -sV -p80, ( 하나 이상의 닫힌 포트)

만약 당신이 그렇게했을 때, 명백한 IPS 또는 다른 블럭들)을 겪을 경우, sniffjoke와 다른 고급 회피 기술 (AETs)을 언급 한 아래의 섹션을 참조하십시오. s) 트래픽을 차단하면 가장 좋은 방법은 서버 액세스가 이미있는 다른 유사한 환경에서 스니핑 클라이언트/서버 쌍을 실행하는 것입니다 (NB, 이전 펜 테스트 또는 랩 또는 모의 환경에서 가능). badsum trick은 대부분의 IPS 시스템을 선점해야합니다. 우리가 겪은 다른 기술들도 이러한 차단 시스템을 발견했을 수 있습니다. 좋은 AET를 찾으면 이전 포트를 모두 실행하고 싶을 것입니다 SYN 트래픽이 조절되고 있다고 생각되면 (확인하는 한 가지 방법은 전체 TCP connects로 알려진 열린 포트에 대해 nmap을 사용하는 것입니다) 표준 SYN 전용의 동일한 포트), SYN 쿠키 회피 및 짝수 범위에 대한 아래 섹션을 참조하십시오. tcptrace를 사용하여 이러한 문제를 감지합니다.

몇 가지 UDP 포트를 스캔하지만 몇 가지 다른 도구를 사용하여 확인하십시오. empty_udp와 같은 모듈에서 hosts -R 을 활용하기 위해 Nmap 데이터를 MSF로 가져 오는 방법) 알아보기 (그러나 스크립트를 현재 허니팟, 침입 탐지, 로깅 또는 기타 불일치로 인해 낮은 범위의 포트를 확인하지 않고 있습니다. UDP 포트가 열려 있으면이 지식은 무엇을 보완해야합니까? (1,1024,2049,5060,5061) 이 네트워크의 실시간 TCP 포트에 대해 이미 알고 있습니다. 대상 유형 (OS 또는 버전 감지) 또는 대상 환경에 대한 과거 지식으로 인해 더 많은 지식을 얻을 수 있다고 생각하는 경우 SCTP, ICMP, IGMP 등과 같은 IP 프로토콜을 검색하여주의를 기울이고 결과를 고려한 후 해당 지식을 검증하거나 구축 할 수있는 몇 가지 프로브를 발송하십시오.

--max-rate 100 --max-retryries---randomize-hosts --eason -Pn -sUV --version-all -p500,523,623,1604,1645,1812,5353,5632,6481,6502,10080, 17185

unicornscan 10.0.0.0/24:500,523,1604,1701,1812,2000,3478,5353,5632,10080-10081 -Iv -mU

db2 citrix net-support netop에서 i의 경우; udp-proto-scanner.pl -p $ i 10.0.0.0/24; 끝난

-T2-스캔 지연 1s --max- 재시도 0 --randomize-hosts-이유 -n -Pn -sO -p132

--max-rate 400 --max-retries 0 --randomize-hosts --reason -n -Pn -sY -p1167,1812,1813,2225,2427,2904,2905,2944,2945,3097,3565,3863 , 3864,3868,4739,4740,5090,5091,5672,5675,6704,6705,6706,7626,8471,9082,9084,9900,9901,9902,14001,20049,29118,29168,29169,36412,36422

-T2-스캔 지연 1s --max- 재시도 0 --randomize-hosts-이유 -n -Pn -sO -p1

-T2-스캔 지연 1s --max- 재시도 0 --randomize-hosts --send-ip -n -PM -sn

-T2-스캔 지연 1s --max- 재시도 0 --randomize-hosts-이유 -n -Pn -sO -p2

-T2-스캔 지연 1s --max- 재시도 0 --randomize-hosts --send-ip -n -PP -sn

-T2-스캔 지연 1s-최대 재시도 0-랜덤 화 호스트-이유 -n -Pn -sO -F-제외 포트 1,2,6,17,132

-T2-스캔 지연 1s-최대 재시도 0-랜덤 화 호스트-이유 -n -Pn -sO-제외 포트 1,2,6,17,132-데이터 길이 3

절대적으로 헛소리를 내려면 과거 스캔에서 응답 한 모든 활성 호스트에서 아래를 실행하십시오.

-T2-최대 스캔 지연 90ms-최대 재시도 9 -v -O --osscan-guess -n --send-ip -PE (또는 성공한 경우 -PP 및 성공한 경우 -PM)- sTUV -pT :( 적어도 하나의 닫힌 포트와 가능한 경우 하나의 열린 포트), U : (as as T :) --version-all

가장 최근에 실행 한 후에는 각 호스트, 각 포트에 대해 거의 모든 것을 알아야합니다. 허니팟이나 IDS/IPS/IDP/등이 있으면 분명합니다. "아마도 Cisco", "flavor of Unix", "확실히 IP 전화 또는 어떤 종류의 소프트 폰"또는 "알 수없는 호스트이지만 확실하지는 않지만 특정 프로파일과 일치하는 경우에도 카테고리로 분류 할 수 있습니다. 포트가 다른 경우에도 마찬가지입니다. " 이러한 호스트 및 식별 된 및/또는 식별되지 않은 포트에 대한 취약성 분석 및 악용을 시작할 준비가되었습니다.

Metasploit으로 가져 오거나 metasploitHelper 로 쿼리하기에 적합한 Nmap XML 파일을 얻도록 다음 nmap 포트 목록에 이전에 찾은 포트를 추가해야합니다. TCP/SCTP 포트를 "T :"섹션에 추가하고 UDP 포트를 "U :"섹션에 추가합니다.

-최소 속도 100-최대 속도 400-최소 평행도 16-최대 재시도 9-패배 우선 속도 제한 -sUS -n -Pn -pT : 0,1,19,42,49, 85,105,111,143,264,402,444,446,502,515,631,689,705,783,888,910,912,921,998,1000,1099,1211,1220,1533,1582,1617,1755,1811,1900,2000,2001,2067,2100,2103,2207,2362,2380,2567,2967,2967 3200,3217,3299,3460,3465,3628,3690,3817,4322,4444,4659,4672,4679,5038,5051,5093,5168,5227,5466,5498,5554,5555,6050,6070,6080, 6101,6106,6112,6503,6504,6542,6660,6661,6905,6988,7021,7071,7144,7414,7426,7579,7580,7777,7787,8020,8023,8030,8082,8087,8503, 8787,8812,8899,9100,9200,9256,9390,9391,9788,9855,10001,10008,10050,10051,10202,10203,10616,10628,11000,11234,12174,12203,12221,12345,12397, 12401,13364,13500,16102,18881,19810,20010,20031,20034,20101,20111,20171,20222,22222,23472,26000,26122,27000,27960,28784,30000,31001,32764,34205,34443, 38080,38292,40007,41025,41080,41523,41524,44334,44818,46823,46824,50001,50013,55553,57772,62514,65535, U : 19,42,49,69,111,161,631,1900,2049,2362, 777 7 -oX nmap_target1.xml

좋은 대상을 찾으면 모듈에 대한 메모, 해당 설정 및 실행 방법으로 구성된 사용자 지정 Metasploit 리소스 (또는 "rc") 파일을 사용할 수 있습니다. 여기서 포트 번호 특정 rc 파일 를 찾을 수 있으며, 쉘로의 빠른 경로를 제공합니다. 문제 해결이 필요할 수 있지만, 초기에 인프라를 공격하면 IPS (네트워크 또는 호스트)의 존재 또는 부재가 표시 될 수 있습니다. 또한 IP 주소가 차단 될 수 있으므로주의해서 진행하십시오. 또한 포트 특정 NSE 스크립트 중 일부를 실행하고 싶을 수도 있습니다.이 중 일부는 중요한 스크립트 인수 및 기타 조정 가능 기능이 있습니다. 포트가 열려 있는지 또는 OS/서비스를 대상으로하는 경우 런타임 상태에 대한 추가 정보를 얻을 수있는 작업을 수행 할 수도 있지만 테스트 자동화의이 단계에서는 의사 결정 이점을 위해 사용 가능한 정보를 확실히 늘려야합니다.

또 다른 가능성은 웹 레이어로 피봇 팅하는 것인데, 일반적으로 약간의 nmap 및 nikto 작업 (NB) 후에 carbonator 실행을 포함해야합니다 (NB, 사용자 에이전트를 일반 웹 브라우저 및 아마도 두 개의 mutate 줄을 주석 처리하십시오. 또한 현재 더 많은 호스트 이름과 IP 접두사를 발견하고 싶을 것입니다 (domaincrawler.com, fierce, knock, dnsmap 및 subbrute는 subdomains 에 도움이되고 dnsrecon은 나머지를 모두 처리해야합니다). 대상이 너무 많으면 webshot 을 사용하여 정렬하고 대상 선택을 심사 할 수있는 이미지를 드롭 할 수 있습니다. IPS 또는 WAF가 있음)을 확실히 알고 있다면 전술을 전환 할 수 있습니다.

-Pn -p 80 --version-all -sV-스크립트 "http-waf *", http-devframework, http-enum, http-vhosts -oG nikto.pl -h--튜닝 x04689c -D 1-출력 nikto.xml

-Pn -p 443 --version-all -sV-스크립트 "http-waf *", http-devframework, http-enum, http-vhosts -oG-| nikto.pl -h--ssl -Tuning x04689c -D 1-출력 niktotls.xml

이제 안티 IDS 메커니즘 (예 : sniffjoke, --- (fragrouteEvader )을 사용하거나 마지막 순간을 실행해야 할 때입니다. SYN-cookie =, IDS, IPS 및 WAF 감지 검사. 마지막으로갑니다! 이 시점에서 단일 포트 또는 작은 포트 세트를 스캔하는 것은 의미가 없습니다.

--script banner-plus --min-rate 450 --min-parallelism 20-최대 재시도 5 --defeat-first-ratelimit -n -Pn -p-

unicornscan 10.0.0.0/24:a -D -L 20 -r 450 -Iv -mU

unicornscan 10.0.0.0/24:9,42,49,67,88,135,139,162,213,259,260,407,445,464,514,517-523,546,631,657,826,829,1069,1194,1558,1645-1646,1900,1967,2055,2362,2427,2727,2746,3001,3283 , 4045,4500,4665,5060,5350,5351,5355,5405,5432,6481,6502,8905,8906,9999,17185,18233,26198,27444,32822-32823,34555,41250,47545,49152,49599 , 54321 -r 450 -Iv -mU

위의 속도 (nmap의 최소 속도 및 unicornscan의 -r)는 초당 패킷 수 (pps)로 측정되며 로컬 네트워크 또는 기타 이상적인 조건에서 최대 10000까지 수정할 수 있습니다. nmap의 스캔 속도를 동적으로 (대화식으로) 변경하기위한 패치가 있습니다. here (tcptrace.org와 결합하여 재전송을 찾고 최소 속도, 최대 속도, 대화식 등가물, 최소 병렬 처리, 최소 호스트 그룹 또는 최대 대역폭에 도달 할 때까지 최대 재시도 횟수). Pedantic Min-Hostgroup, Min-Parallelism 및 Min-rate 매개 변수를 사용하는 경우에도 대량 SYN 또는 UDP 검색을 위해 nmap을 최적으로 접근하는 것은 어렵습니다. 많은 사람들이 unicornscan, zmap 또는 masscan을 사용하는 이유입니다. 대상 네트워크 및 서비스가 서버 응답에서 매우 안정적이고 일관된 왕복 시간을 가지고 있거나 네트워크 특성을 파악할 시간과 인내심이 있다면 nmap/dnmap이 툴링 일관성에 대한 최선의 방법이 될 수 있습니다. .

과거에 보지 못한 새 IP, 호스트 이름 또는 포트 (예 : -sY가 포함 된 SCTP 포트 5060-5061을 포함하여 이전에 피했던 허니팟 포트)와 같은 새 IP, 호스트 이름 또는 포트를 확인해야 할 수 있습니다. qscan을 실행 한 단계로 돌아가서 새 정보를 사용하여 시나리오를 재 시도하십시오. Metasploit의 detect_kippo 모듈과 같은 추가 기술을 사용하여 허니팟을 계속 확인하십시오. 해당되는 경우 metasploitHelper를 다시 실행하십시오. Dradis, MagicTree, discover.sh XML에서 CSV 로의 변환, Lunarline VSC, Prolific Solutions proVM Auditor, Cisco Kvasir 또는 FishNet LAIR를 사용하여 모든 정보를 추적하십시오. 이들은 침투 테스트 데이터를 인식하기 때문에 메모장 등의 더 나은 대안입니다. 이전과 유사하게 복제 스크립트가 멀티 홈 호스트를 식별하는 데 도움이 될 수 있습니다. 일반적인 시나리오에는 SSL/TLS가 있거나없는 Windows 시스템 또는 SSH, SSL/TLS 또는 둘 다를 실행하는 Windows 이외의 시스템이 있습니다 (Windows 호스트가 SSH를 실행 중일 수는 있지만 매우 이상한 경우입니다) ).

--script qscan, 중복, nbstat, ssl-cert --max- 재시도 7 -v -O --osscan-guess --max-os-tries 1-이유 -Pn -sSUV --version-all -pT : 135,139,443,445, U : 137

--script qscan, 중복, nbstat --max- 재시도 7 -v -O --osscan-guess --max-os-tries 1-이유 -Pn -sSUV --version-all -pT : 135,139,445, U : 137

--script qscan, 중복, ssh-hostkey --max- 재시도 7 -v -O --osscan-guess --max-os-tries 1-이유 -Pn -sV --version-all -p22

--script qscan, 중복, ssh-hostkey, ssl-cert --max-retries 7 -v -O --osscan-guess --max-os-tries 1-이유 -Pn -sV --version-all- p22,443

인증 형식이 필요한 서비스 (또는 모든 종류의 앱)가있는 열린 포트를 찾으면 프로토콜 별 스크립트를 읽고 구성해야하지만 일반적으로 nmap/dnmap 명령 줄 인수는 다음과 같아야합니다.

-최소 속도 100-최대 재시도 5 -n -Pn-스크립트 무차별, 크레 즈 요약 --script-args unsafe, brute.mode = pass, userdb = usernames.lst, passdb = passwords.lst, brute .firstOnly, brute.guesses = 2 --version-all -sV (-sUV 또는 -sUSV, 적절한 경우)

위의 시도는 각 서버에서 다른 passwords.lst 파일을 사용하여 dnmap을 사용하여 시도를 늘리거나 다른 IP 주소에서 무차별 적으로 또는 다양한 다른 시나리오 종속 옵션을 사용하여 수행 할 수 있습니다.

마지막으로, nmap/dnmap이 실제로 빛을 발하는 방법에 대해 이야기 해 봅시다 .SYN 스캐닝이 작동한다는 것을 알게 된 후 모두 모아서 UDP 프로브를 알아 냈습니다 (nmap-payloads, nmap- service-probes, Unicornscan etc/payloads.conf 및 udp-proto-scanner.conf 파일-수동으로 만들어야 할 수도 있습니다!) IDS/IPS는 자동화에 방해가되지 않습니다. 커피를 마시지 않고 "또 다른 낮잠"을 취할 수 없으며 중요한 다른 사람들은 약간의주의와 정상적인 8 시간 수면 루틴을 요구한다고 가정 해 봅시다. 자,이 방법으로 nmap/dnmap을 실행하면 콘솔로 돌아올 때 좋은 결과를 얻을 수 있습니다!

-최소 속도 100-최대 재시도 5 --defeat-first-ratelimit --randomize-hosts-오픈 -Pn -v -O --osscan-guess --max-os-tries 1 -sUSV- version-all-스크립트 배너, 중복, nbstat, ssh-hostkey, ssl-cert, vuln, vulscan, brute, creds 요약 --script-args vulns.showall, unsafe, vulscanversiondetection = 0, brute.mode = pass, userdb = usernames.lst, passdb = passwords.lst, brute.firstOnly -pT : 0,1,19,26,42,49,66,79-81,85,105,111,113,135,139,143,264,389,402,407,443-446,457,465,500,502,995,3,5,99,59,53,53,53,59,3,59,53,59,53,59,3,59,3,59,53,59,53,59,53,59,53,59,3,59,53,59,3,59,53,59,59,3,59,59,3,59,59,3,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,85,59,85,59,85,59,85,59,85,59,85,65,59,85,65,59,53,59,500,3,500 1099-1100,1128,1158,1167,1211,1220,1241,1337,1344,1352,1433,1521,1533,1581,1582,1604,1617,1720,1723,1755,1811-1813,1900,1944, 2000-2001,2067,2100,2103,2202,2207,2225,2301-2302,2362,2375,2380,2381,2383,2427,2525,2628,2869,2904,2905,2940,2944,2945,2947, 2967,3000,3010,3031,3037,3050,3057,3097,3128,3200,3217,3260,3299,3306,3389,3460,3465,3478,3500,3565,3628,3632,3689-3690,3780, 3790,3817,3863,3864,3868,3872,4000-4002,4100,4322,4369,44 44,4567,4659,4672,4679,4739,4740,4848,5000,5019,5038,5040,5051,5060-5061,5090-5091,5093,5168,5222,5227,5250,5353,5357,5432, 5466,5498,5554-5555,5560,5631,5632,5666,5672,5675,5679,5800-5802,5814,5850,5900,5920,5984,5985,5986,6000-6005,6050,6060,6070, 6080,6101,6106,6112,6346,6347,6379,6405,6481,6503,6504,6542,6660-6661,6666-6667,6704-6706,6905,6988,7000-7002,7019,7021,7071, 7080,7144,7181,7210,7272,7414,7426,7443,7510,7579,7580,7626,7634,7770,7777-7778,7787,8000-8001,8008-8010,8014,8020,8023,8028, 8030,8040,8080-8082,8085,8087-8091,8095,8140,8161,8180,8200,8222,8300,8400,8443,8471,8500,8503,8776,8787,8812,8834,8880,8888, 8899,8980,8999,9000,9002,9060,9080,9082,9084,9090,9100,9160,9191,9200,9256,9292,9390,9391,9443,9495,9788,9855,9900,9901-9902, 9990,9999,10000-10001,10008,10050-10051,10202,10203,10616,10628,11000,11211,11234,12000,12174,12203,12221,12345,12397,12401,13364,13500,13722,14001, 16102,17185,18881,19150,19810,20010,20031,20034,20049,20101,20111,20171,20222,22222,23472,26000,26122,27 000,27017,27960,28784,29118,29168,29169,30000,30718,30821,31001,31337,32764,34205,34443,35871,36412,36422,38080,38292,40007,41025,41080,41523-41524, 44334,44443,44818,46823,46824,49152,50000-50001,50013,50030,50060,50070,50075,50090,52822,52869,55553,57772,60010,60030,62514,64623,65535, U : 7, 9,11,13,17,19,36-37,42,49,53,67,69,88,111,123,135,137,139,161-162,177,213,259,260,407,445,464,500,514,517-521,523,546,555,623,631,657,826,829,921,1069,1194,1434,1646,158,1646,1646,158,1646,158,1646 1967,2000,2049,2055,2221,2302,2362,2427,2727,2746,3001,3283,3401,3478,3544,4045,4104,4500,4665,5060,5350,5351,5353,5355,5405, 5432,5555,5632,6481,6502,7001,7004,7777,7983,8905,8906,9999,10080-10081,17185,18233,26198,27444,27960,31337,32767-32774,32822-32823,34555, 41250,47545,49152,49599,54321

Nmap으로 조금만 노력하면 나중에 OpenVAS 또는 Metasploit 를 사용하면 많은 시간을 절약 할 수 있습니다. msfconsole 내에서 nmap 및 OpenVAS를 실행하여 모든 데이터가 MSF 데이터베이스로 만들어 지도록합니다. 도구 데이터를 Metasploit-consumable XML로 내보내거나 다음과 같은 도구를 사용할 수도 있습니다. nmap2nessus 취약점 스캐너에 대해 배우는 중요한 교훈은 실제 취약점이 많이 없다는 것입니다. 위에 설명 된 방식으로 밤새 nmap/dnmap을 실행하면 모든 단일 취약점 경로의 가능성을 알게됩니다. 처음에는 작동하지 않습니다-nmap/dnmap은 실패했다고 알려줍니다 (그러나 그 이유가 유효하다고 생각하더라도 실제 "이유"는 아님)-취약점이 가능한지 알아내는 것은 귀하의 몫입니다 포트 번호 특정 Metasploit 및 Nmap NSE 파일에 대한 이전 토론으로 돌아가서 지금은 더 관련성이 있습니다.이 스크립트의 내부와 각 문제를 해결하는 방법을 알고 있어야합니다. 작은 오프셋, 작은 매개 변수 또는 몇 가지 조합 조정 다른 모든 침투 테스터가 놓친 쉘을 잡을 것입니다.

35
atdre

위의 “A network vulnerability scanner in a special way?” 질문과 관련하여 공유하고 싶은 일화가 몇 개 있습니다.

뛰어 들기 전에 대부분의 스캔 도구에서 속도는 정확도의 반설이라는 점에 유의하고 싶습니다. 스피드 킬.

speed kills

포트 스캔 :

조정 nmap 볼 아웃 속도 (a la –min-hostgroup, --min-parallelism, and friends)는 패킷 카운터를 볼 때 훌륭합니다. iptraf 흐릿하게 진행되지만 정확도가 떨어질 수 있습니다.

빠른 진행에 대한 나의 전형적인 헤지는 여러 라운드의 nmap 스캔을 실행하는 것입니다. 바람직하게는 다른 요일과 다른 시간에. 이를 통해 대역폭을 포화시키는 예약 백업과 같은 정확도 저하 위험을 최소화 할 수 있습니다.

실제로 큰 스캔을하려면 nicornscan 을 시도하십시오. 시간이 오래 걸렸지 만, 지난번에는 상당히 큰 인터넷 기반 포트 스캔을 수행했다는 메모를 받았습니다.

요약 : 스캔을 구성하여 각 대륙의 전체 =TCP 3 ~ 5 사이에서 ~ 55 Mbits/s 지속) 며칠 만에 시스템을 완성했습니다.

포트 당 2 개의 SYN 프로브를 전송하여 ~ 254 억 개의 패킷을 전송하고 약 3 테라 바이트의 데이터를 생성한다는 것을 고려하면 상당히 좋습니다.

취약점 스캐닝 :

이것은 오늘날에는 그다지 사실이 아닐 수도 있지만 몇 년 전 인기있는 상업적인 vuln입니다. 스캐너는 빠른 속도로 스캔을 최적화합니다. 고객이 품질을 스캔 결과와 얼마나 빨리 연결하는지에 따라 마케팅 및 영업이이를 촉진했습니다.

그래서 벤더 (공개 : 나는 한 사람을 위해 일했었다)로서 게임은 속도를 높이기 위해 점검 횟수를 줄이는 것이었다. Full TCP 또는 UDP 스캔? 방법이 없습니다. 시간이 걸리는 개별 취약성 검사?.

정확성을 원하면 몇 분을 보내고 정확도 (및 적용 범위)에 맞게 선호하는 취약성 스캐너를 사용자 정의하십시오. 당신이 속도를 원한다면 당신은 그 속성을 희생한다는 것을 알고 있습니다.

위의 결합 :

동일한 계약에서 포트 스캔 결과가 도구마다 얼마나 다른지에 대해 지루합니다. IP 당 취약성 검색 (예 : Qualys)에 대해 비용을 지불하고 도구가 열려있는 것으로 확인 된 열린 포트를 반복적으로 누락하는 경우에는 싫어합니다. 포트 스캔 (위 참조)에서 결과를 가져 와서 사용자 지정 스캔이 열려있는 것으로 밝혀진 포트만 공격하도록 사용중인 모든 취약점 검색 도구를 사용자 정의하고 싶습니다. 이것은 시간을 절약 할 수 있습니다.

클라우드 부스팅 :

인터넷 기반 스캔의 경우 이제 거의 독점적으로 클라우드 VM을 사용합니다. 내가 가장 좋아하는 것은 linode.com.Linode 's 지금까지 AUP는 포트 스캔을 금지하지 않습니다 (아마존의 경우). 비 지역 데이터 센터에 스캔 작업을 분산시키기 위해 30 개의 VM을 가동 시키면 포트 스캔에 즐거움을 줄 수 있습니다. 대기 시간과 대역폭이 유리한 상황에서 튜닝에 더욱 적극적으로 참여할 수 있습니다. 여기서 요점은 클라우드 VM이 스캔 용량을 높이는 데 탁월하다는 것입니다.

19
Tate Hansen

Social-Engineer.org에서 SET 을 시도하십시오. 전체 사이트는 훌륭한 리소스입니다.

10
Tim Troy

이 질문을 읽는 동안 내가 가진 생각은 ...

침투 테스트는 상황에 따라 매우 다릅니다. 예, 자동화 된 도구가 있지만 도움이 되더라도 모든 것을 할 수는 없습니다. 필자의 경험으로는 펜 테스트/감사 프로세스의 특정 단계에 적용되지 않으면 자동화가 방해를받습니다.

실제로 방금 OpenVAS 에 관심이있었습니다. 기술적으로 침투 테스트 도구는 아니지만 정찰에 매우 유용합니다. 그리고 당신이 그것을 보면, 오늘 아침에 새로운 버전 (3.2.3)이 출시되었음을 명심하십시오.

이것은 오픈 소스가 아니지만 조사 할 다른 도구는 CoreInsight 입니다. 나는 그것을 가지고 놀 기회를 얻는 중이며 Core Impact의 기동성이 없다는 것을 이해하지만 매우 흥미롭고 도움이되는 도구가되어야합니다.

펜 테스트에서 자동화에 대한 의문이 있지만 다른 사람들의 의견에 관심이 있습니다 .... (+1 you, sir)

4
Ormis

웹 사이트를 무력화하고 자바 스크립트가있는 실제 브라우저처럼 행동 해야하는 경우 http://zombie.labnotes.org/ 에 몇 줄을 쓸 수 있습니다. 나는 사용자 정보, 사용자 정보에서 단어 목록 생성 및 무차별 대입을 위해 이것을 사용했습니다.

var zombie = require("zombie"); var assert = require("assert");

// Load the page from localhost zombie.visit("http://localhost:3000/", function (err, browser, status) {

  // Fill email, password and submit form   browser.
    fill("email", "[email protected]").
    fill("password", "eat-the-living").
    pressButton("Sign Me Up!", function(err, browser, status) {

      // Form submitted, new page loaded.
      assert.equal(browser.text("title"), "Welcome To Brains Depot");

    })

});

Javascript 기능이 없으면 Ruby-기계화)를 사용합니다.

3
baj