■ 정보 수집 과정의 종류
□ 검색 엔진을 사용하는 경우(EX: 구글링)
□ 인터넷(정보보안사이트)을 통해 정보를 확인하는 방법(EX: exploit-db.com)
□ 구글 검색을 통해 정보를 확인하는 방법(EX: 구글해킹)
□ DNS 서버를 사용하는 경우(EX: dnsenum CMD)
□ 사회공학적인 기법(Social Engineering)을 사용하는 경우(EX: SET)
□ 스캐너를 사용하는 방법
□ 일반 스캐너를 사용하는 방법(EX: nmap/zenmap)
□ 취약점 스캐너를 사용하는 방법(EX: Nessus/OpenVAS/Nexpose)
■ 정보 수집(Data Gathering)에 대한 체계
어떤 방법을 통해 정보를 수집할 것인가?
DNS 정보 수집
네트워크 정보 수집
호스트 정보 수집
OS 정보 수집
서비스 목록화
네트워크 범위 파악
활성화된 머신 식별
개방 포트 탐색
운영체제 식별
서비스 식별
'말테고(Matego)'를 이용한 위협 평가
네트워크 매핑
모의 해킹을 할 때 가장 중요한 단계 중 하나는 정보 수집이다. 공격을 실행하기 위해서는 공격 대상에 대한 기본 지식을 수집해야 한다. 따라서 더 먾은 정보를 수집할수록 공격 가능성이 높아진다.
[실습] DNS 정보 수집
■ NS(Name Server) 사용하여 정보를 수집하는 대표적인 명령어
dnsenum CMD
dnsmap CMD
dnswalk CMD
[실습1] 구글맵(google map) + 후이즈(Whois) 데이터베이스
(원본 운영체제) Windows 7
C:\>nslookup www.soldesk.com
서버: ns.dacom.co.kr Address: 164.124.101.2
권한 없는 응답: 이름: www.soldesk.com Address: 183.111.174.9 |
아래 사이트에 접속하여
http://whois.kisa.or.kr/kor/ 한국인터넷진흥원
-> 검색: "183.111.174.9" <--검색결과 KT,kornet
ISP업체까지만 알 수 있고, 종단까지는 확인할 수 없다.(hwo is data)
[참고] IP 주소 추적에 대한 오해 |
한국인터넷진흥원은 ISP(인터넷서비스 제공자) 등에게 IP 주소를 할당하고 관리하는 인터넷주소자원관리기관 입니다. IP 주소는 할당 체계에 따라 한국인터넷진흥원이 ISP에게 할당하며 ISP는 가입자에게 재 할당 합니다.
WHOIS 서비스를 통해 제공되는 IP주소 할당 정보는 ISP가 직접 등록한 정보로, 한국인터넷진흥원은 WHOIS 서비스에서 제공되는 범위 이상의 정보(IP주소 추적 정보 등)를 보유하고 있지 않습니다. 따라서, IP주소 최종 사용자에 대한 정보는 해당 IP주소를 서비스하는 ISP에서만 확인 가능하며, WHOIS 서비스를 통해서는 확인이 불가능합니다.
IP주소 추적은 수사기관 등이 법원의 허가를 받아 ISP 등에 통신자료 제공을 요청할 경우에만 가능하며, 수사기관이 아닌 일반인이 IP주소를 추적하는 것은 사실상 불가능 합니다. |
아래 사이트에 접속하여
http://www.ipconfig.kr/
-> 검색: "183.111.174.9"
-> 상대 IP 위치를 확인한다.
-> 자신 IP 위치 및 정보를 확인한다.
[실습2] dnsenum CMD
구글 검색 엔진을 이용해 네임과 서브도메인(하위 도메인)을 추가적으로 검색한다.
사전파일(사전공격)에 나온 네임을 브루트포스 방식으로 시도하면서 서브도메인 네임을 알아낸다. 백트랙의 dnsenum에는 95개의 서브도메인 네임이 포함된 dns.txt파일이 제공된다.
C 클래스 도메인 네트워크 범위에서 후이즈 질의를 수행한 후 타겟의 네트워크 범위를 계산한다.
네트워크 범위를 대상으로 리버스 검색을 수행한다.
여러 개의 질의를 수행하기 위해 쓰레드를 사용한다.
■ 소스코드 다운로드
https://github.com/fwaeytens/dnsenum
(KaliLinux)
② dns 검색
# dnsenum google.com
dnsenum.pl VERSION:1.2.3
----- google.com -----
Host's addresses: __________________
google.com. 5 IN A 216.58.221.238
Name Servers: ______________
ns1.google.com. 5 IN A 216.239.32.10 ns2.google.com. 5 IN A 216.239.34.10 ns3.google.com. 5 IN A 216.239.36.10 ns4.google.com. 5 IN A 216.239.38.10
Mail (MX) Servers: ___________________
aspmx.l.google.com. 5 IN A 64.233.189.26 alt1.aspmx.l.google.com. 5 IN A 74.125.25.27 alt2.aspmx.l.google.com. 5 IN A 64.233.169.27 alt3.aspmx.l.google.com. 5 IN A 74.125.135.27 alt4.aspmx.l.google.com. 5 IN A 173.194.219.26
Trying Zone Transfers and getting Bind Versions: _________________________________________________
Trying Zone Transfer for google.com on ns4.google.com ... AXFR record query failed: RCODE from server: REFUSED
Trying Zone Transfer for google.com on ns3.google.com ... AXFR record query failed: RCODE from server: REFUSED
Trying Zone Transfer for google.com on ns1.google.com ... AXFR record query failed: RCODE from server: REFUSED
Trying Zone Transfer for google.com on ns2.google.com ... AXFR record query failed: RCODE from server: REFUSED
brute force file not specified, bay. |
# dnsenum --dnsserver 8.8.8.8 --enum --noreverse -f /usr/share/dnsenum/dns.txt google.com
dnsenum.pl VERSION:1.2.3 Warning: can't load Net::Whois::IP module, whois queries disabled.
----- google.com -----
Host's addresses: __________________
google.com. 299 IN A 59.18.49.172 google.com. 299 IN A 59.18.49.153 google.com. 299 IN A 59.18.49.178 google.com. 299 IN A 59.18.49.148 google.com. 299 IN A 59.18.49.163 google.com. 299 IN A 59.18.49.187 google.com. 299 IN A 59.18.49.152 google.com. 299 IN A 59.18.49.173 google.com. 299 IN A 59.18.49.162 google.com. 299 IN A 59.18.49.183 google.com. 299 IN A 59.18.49.168 google.com. 299 IN A 59.18.49.157 google.com. 299 IN A 59.18.49.182 google.com. 299 IN A 59.18.49.167 google.com. 299 IN A 59.18.49.177 google.com. 299 IN A 59.18.49.158
Name Servers: ______________
ns2.google.com. 21599 IN A 216.239.34.10 ..... (중략) ..... |
-> 많은 정보가 출력된다.
# dnsenum --dnsserver 8.8.8.8 --enum --noreverse -f /usr/share/dnsenum/dns.txt soldesk.com
dnsenum.pl VERSION:1.2.3 Warning: can't load Net::Whois::IP module, whois queries disabled.
----- soldesk.com -----
Host's addresses: __________________
soldesk.com. 3599 IN A 183.111.174.9
Wildcard detection using: dqfemjhcfxgl _______________________________________
dqfemjhcfxgl.soldesk.com. 3599 IN A 183.111.174.9
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Wildcards detected, all subdomains will point to the same IP address Omitting results containing 183.111.174.9. Maybe you are using OpenDNS servers.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Name Servers: ______________
ns1.doregi.com. 1683 IN A 58.76.184.11 ns2.doregi.com. 1058 IN A 58.76.184.12 ns3.doregi.com. 2643 IN A 1.214.210.186 ..... (중략) ..... |
[참고] subfile 지정하는 방법
# dnsenum --dnsserver 8.8.8.8 \
--enum --noreverse \
-f /usr/share/dnsenum/dns.txt \
--subfile ~/Desktop/dns2.txt soldesk.com
[과제] 여러가지 도메인에 대해서 dnsenum 명령어를 수행해 보자.(3분)
google.com
example.com
kornet.net
soldesk.com
seoul.ac.kr(대학교)
# dig @8.8.8.8 soldesk.com ANY 가독성이 좋은 명령어
; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> @8.8.8.8 soldesk.com ANY ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35479 ;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;soldesk.com. IN ANY
;; ANSWER SECTION: soldesk.com. 3599 IN MX 10 soldesk-com.mail.protection.outlook.com. soldesk.com. 3599 IN TXT "v=spf1 include:spf.protection.outlook.com ~all" soldesk.com. 3599 IN A 183.111.174.9 soldesk.com. 3599 IN SOA ns1.doregi.com. root.doregi.com. 8 3600 600 604800 3600 soldesk.com. 3599 IN NS ns2.doregi.com. soldesk.com. 3599 IN NS ns3.doregi.com. soldesk.com. 3599 IN NS ns1.doregi.com. ..... (중략) ..... |
[참고] dig CMD 사용법 예제
# dig @168.126.63.1 kornet.net ANY
# dig @168.126.63.1 kornet.net MX
# dig @168.126.63.1 kornet.net NS
# dig @168.126.63.1 kornet.net A
# dig @168.126.63.1 kornet.net PTR
[과제] 여러가지 도메인에 대해서 dig 명령어를 수행해 보자.(3분)
google.com
example.com
kornet.net
soldesk.com
seoul.ac.kr(대학교) dig @8.8.8.8 seoul.ac.kr ANY
[실습3] dnsmap CMD
사전 파일을 이용해 하위 도메인의 존재를 확인한다.
하위 도메인를 빠른 속도로 수집하기 때문에 매우 적합한 도구이다.
dnsenum, dnswalk 같은 툴도 유사한 방식으로 하위 도메인 정보를 획득한다.
KaliLinux > Information Gathering > DNS Anlysis > dnsmap
■ 소스코드 다운로드
http://code.google.com/p/dnsmap/
(KaliLInux)
① dnsenum 명령어 사용법 확인
# dnsmap
dnsmap 0.30 - DNS Network Mapper by pagvac (gnucitizen.org)
usage: dnsmap <target-domain> [options] options: -w <wordlist-file> -r <regular-results-file> -c <csv-results-file> -d <delay-millisecs> -i <ips-to-ignore> (useful if you're obtaining false positives)
e.g.: dnsmap target-domain.foo dnsmap target-domain.foo -w yourwordlist.txt -r /tmp/domainbf_results.txt dnsmap target-fomain.foo -r /tmp/ -d 3000 dnsmap target-fomain.foo -r ./domainbf_results.txt |
# dnsmap google.com
dnsmap 0.30 - DNS Network Mapper by pagvac (gnucitizen.org)
[+] searching (sub)domains for google.com using built-in wordlist [+] using maximum random delay of 10 millisecond(s) between requests
accounts.google.com IPv6 address #1: 2404:6800:4004:813::200d
accounts.google.com IP address #1: 216.58.220.173
admin.google.com IPv6 address #1: 2404:6800:4008:c05::64
admin.google.com IP address #1: 59.18.44.54 IP address #2: 59.18.44.55 IP address #3: 59.18.44.59 IP address #4: 59.18.44.20 IP address #5: 59.18.44.24 IP address #6: 59.18.44.25 IP address #7: 59.18.44.29 IP address #8: 59.18.44.30 IP address #9: 59.18.44.34 IP address #10: 59.18.44.35 IP address #11: 59.18.44.39 IP address #12: 59.18.44.40 IP address #13: 59.18.44.44 IP address #14: 59.18.44.45 IP address #15: 59.18.44.49 IP address #16: 59.18.44.50
ap.google.com IPv6 address #1: 2404:6800:400a:805::2004
..... (중략) .....
yp.google.com IP address #1: 59.18.44.34 IP address #2: 59.18.44.35 IP address #3: 59.18.44.39 IP address #4: 59.18.44.40 IP address #5: 59.18.44.44 IP address #6: 59.18.44.45 IP address #7: 59.18.44.49 IP address #8: 59.18.44.50 IP address #9: 59.18.44.54 IP address #10: 59.18.44.55 IP address #11: 59.18.44.59 IP address #12: 59.18.44.20 IP address #13: 59.18.44.24 IP address #14: 59.18.44.25 IP address #15: 59.18.44.29 IP address #16: 59.18.44.30
[+] 114 (sub)domains and 770 IP address(es) found [+] completion time: 612 second(s) |
-> dnsmap을 실행하면 사전 파일에 있는 문자열과 도메인을 비교한다.
-> 비교한 결과 내용은 순서대로 DNS 쿼리를 요청하여 응답이 오는 내용에 대해서만 IP와 같이 출력
한다.
-> 출력된 결과는 현재 등록된 도메인과 하위 도메인이다.
-> (주의) 검색할 도메인의 종류에 따라 오랜 시간이 걸린다.
[과제] 여러가지 도메인에 대해서 dnsmap 명령어를 수행해 보자.(3분)
google.com
example.com
kornet.net
soldesk.com
seoul.ac.kr(대학교)
[과제] dnsenum/dnsmap/dig 명령어의 출력 내용에 traceroute 명령어를 사용하여 대상 시스템의
DMZ 네트워크 맵을 그려보자.(10분)
용어: Open DNS server(EX: kns.kornet.net)
-> 상용사이트(작은 사이트) 하나를 선정한다.
-> traceroute(visualroute) 사용하여 대상 시스템의 DMZ 네트워크 맵을 그린다.
-> !!!! 반드시 수동으로 작업해 주세요. !!!!
[참고] 네트워크 토폴로지를 그려주는 툴
(사용) SolarWins
http://www.solarwinds.com/network-topology-mapper (동영상 확인)
[실습4] theharvester CMD
■ theharvester 개요
theHarvester is a tool for gathering e-mail accounts, subdomain names, virtual hosts, open ports/ banners, and employee names from different public sources (search engines, pgp key servers).
Is a really simple tool, but very effective for the early stages of a penetration test or just to know the visibility of your company in the Internet.
■ 소스코드 다운로드
http://code.google.com/p/dnsmap/
[실습] theharvester 명령어 사용법
(KaliLinux)
# theharvester
[참고] -d <data source> 대해서
# theharvester -d soldesk.com -l 500 -b google
# theharvester -d soldesk.com -l 500 -b all
-> 약간 시간이 걸린다.(검색 대상에 따라 5분 ~ 10분정도)
[참고] 이메일 정보 확인
(TUI) Theharvester
(GUI) 말테고
'Learning > └◆Network Hacking' 카테고리의 다른 글
nmap 스캐닝 (0) | 2016.12.29 |
---|---|
스캐닝(Scanning) (0) | 2016.12.29 |
배시쉘 버그(bash shell bug, shellsock) (0) | 2016.12.28 |
정보 수집 단계(Data Gathering) (0) | 2016.12.28 |