logo
Truy tìm IP thật của server đằng sau CloudFlare hay các dịch vụ CDN
GiacKhongDaiSu Offline
#1 Đã gửi : 12/11/2013 lúc 05:00:24(UTC)

Danh hiệu: Kê Vương

Gia nhập: 23-01-2011(UTC)
Bài viết: 2,113
Man
Đến từ: HCM

Thanks: 4 times
Được cảm ơn: 300 lần trong 220 bài viết


Truy tìm IP thật của server đằng sau CloudFlare hay các dịch vụ CDN

Nguồn: xnohat - HVAOnline



12 Tháng 11 2013 lúc 14:28
Bài gốc: http://xnohat.blogspot.c...cua-server-ang-sau.html

Guide này nhằm giúp các System Admin nhận ra được rằng mình "misconfiguration" ở đâu khiến hệ thống bị lộ real IP khiến các kẻ tấn công DDoS dễ dàng tấn công hệ thống mà bỏ qua các lớp CDN bảo vệ

CloudFlare IP

Đầu tiên ta cần phải biết danh sách IP của cloudflare (CloudFlare IP ) là những IP nào để biết rằng IP tìm được bằng các phương pháp dưới đây là IP thật của server ( real IP ). Danh sách CloudFlare IP được hãng này public tại đây: https://www.cloudflare.com/ips
Các CDN khác thì tìm trên internet :)

Cách hoạt động của CloudFlare

Cơ chế hoạt động của CloudFlare và các CDN rất đơn giản. Họ sẽ trở thành các Reverse Proxy ( máy chủ trung gian ) giữa người dùng và server

User <----------> CloudFlare Servers ( CDN Servers ) <----------> Real Servers

Để làm chuyện này thì người dùng phải bị buộc kết nối đến các CDN Server thay vì Real Server, CDN server sẽ thay người dùng request và cache các dữ liệu từ Real Server. Và để "ép" người dùng phải bị buộc kết nối đến các CDN Server thay vì Real Server thì các CDN dùng một giải pháp đơn giản đó là khai báo lại các Name Server record của domain website

Ví dụ:

Ở tình trạng bình thường thì Name Server thường là của Hosting Provider hoặc Domain Registra

> set type=NS
> xnohat.com
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
xnohat.com nameserver = ns57.domaincontrol.com.
xnohat.com nameserver = ns58.domaincontrol.com.

Khi sử dụng CloudFlare thì Name Server sẽ là của CloudFlare


> set type=NS
> anonnews.org
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
anonnews.org nameserver = lisa.ns.cloudflare.com.

anonnews.org nameserver = ed.ns.cloudflare.com.

Từ đó các DNS request của user sẽ được phân giải bởi CloudFlare Name Server thay vì Registra Name Server.

Đây chính là chỗ có thể xảy ra điểm hở khiến có thể tìm thấy server thực đằng sau


Concept chính của việc tìm ra Real IP đằng sau CDN

Là tìm vào các chỗ cấu hình là các Sys Admin vô tình hoặc buộc phải set IP thật thay vì để CloudFlare tự định đoạt


Phương pháp #1: Ping

Cách đơn giản nhất là ping nhưng mà ping vào đâu ?

Một domain ngoài host chính là www thì còn có những subdomain host như ftp.domain.com, mail.domain.com , cpanel.domain.com ...

Có thể các subdomain này vì nhiều lý do bị các SysAdmin cấu hình trỏ A record về IP thật của server. Do đó khi ping các domain này sẽ lòi ra được các IP thật, lấy các IP này so với danh sách CloudFlare IP hoặc CDN IP ở trên, nếu thấy không trùng thì nhiều khả năng là IP thật của server

Nếu server chặn ICMP request ( ping luôn báo timeout ) thì dùng Nmap mà scan

Lệnh:
nmap -sV -sS -F xnohat.com


Phương pháp #2: NetCraft IP history

NetCraft là hãng phần mềm network lâu đời, họ có phát triển một hệ thống bot chuyên đi check Domain-IP trên internet. Nhiều khả năng Netcraft Bot đã lấy được IP thật của server trước khi SysAdmin áp dụng CloudFlare

Cách dùng:
http://toolbar.netcraft....e_report?url=xnohat.com

Phương pháp #3: DNS Bruteforce (Subdomain Bruteforce)

Phương pháp này cũng tương tự như phương pháp Ping, tức là tìm ra cái subdomain chứa IP thật. Ý tưởng của phương pháp này là ping thử hết các subdomain có thể có xem cái nào đang tồn tại thật và check IP của nó xem có phải cloudflare IP không ? nếu không thì nhiều khả năng nó là real IP

Cách làm:
Cũng dùng Nmap để scan, và lần này thì dùng DNS Bruteforce script của Nmap
nmap --script dns-brute -sn xnohat.com

Phương pháp #4: mx record
Các máy chủ mail là một điểm yếu thú vị, nếu như máy chủ web và máy chủ mail đặt cùng một server thì khả năng tìm ra IP thật là rất dễ. Vì các MX record buộc phải phân giải ra IP thật của máy chủ mail, do đó các Sys Admin phải set MX record bằng IP thật. Phương pháp này chỉ thất bại khi mail server là máy chủ riêng biệt với webserver hoặc Sys Admin dùng ... Google Mail :))

Cách dùng là sử dụng NSLookup

> set type=MX
> lazada.vn
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
lazada.vn mail exchanger = 30 aspmx2.googlemail.com.
lazada.vn mail exchanger = 30 aspmx4.googlemail.com.
lazada.vn mail exchanger = 20 alt1.aspmx.l.google.com.
lazada.vn mail exchanger = 10 aspmx.l.google.com.
lazada.vn mail exchanger = 30 aspmx5.googlemail.com.
lazada.vn mail exchanger = 30 aspmx3.googlemail.com.
lazada.vn mail exchanger = 20 alt2.aspmx.l.google.com.

Sau đó ping hoặc nmap scan IP các mx record trên nhằm tìm ra IP thật của server :)

Phương pháp #5: Script tự động làm hết đống trên :))

Rất hay là có một hacker đã viết một script tự động làm hết mấy phương pháp ở trên :))



Script này tải tại: http://pentesterscript.w...e-resolver-bash-script/

xnohat
GiacKhongDaiSu Offline
#2 Đã gửi : 12/11/2013 lúc 05:06:49(UTC)

Danh hiệu: Kê Vương

Gia nhập: 23-01-2011(UTC)
Bài viết: 2,113
Man
Đến từ: HCM

Thanks: 4 times
Được cảm ơn: 300 lần trong 220 bài viết
Script:

Mã:

#!/usr/bin/env bash
# we will gonna use different method for finding real I.P. behind cloudflare
# subdoimain=mail,forum,direct,direct-connect,ftp,cpanel,blog,dev,m,support,webmail,ssl,record,dns,help
# Colors
ESC_SEQ="\x1b["
COL_RESET=$ESC_SEQ"39;49;00m"
COL_RED=$ESC_SEQ"31;01m"
COL_GREEN=$ESC_SEQ"32;01m"
COL_YELLOW=$ESC_SEQ"33;01m"
COL_BLUE=$ESC_SEQ"34;01m"
COL_MAGENTA=$ESC_SEQ"35;01m"
COL_CYAN=$ESC_SEQ"36;01m"

echo -e " $COL_RED
  ____   _____     ____  _____ ____   ___  _ __     _______ ____ 
/ ___| |  ___|   |  _ \| ____/ ___| / _ \| |\ \   / / ____|  _ \
| |     | |_ _____| |_) |  _| \___ \| | | | | \ \ / /|  _| | |_) |
| |___ _|  _|_____|  _ <| |___ ___) | |_| | |__\ V / | |___|  _ <
\____(_)_|       |_| \_\_____|____/ \___/|_____\_/  |_____|_| \_\

$COL_RESET                                                                 
"

echo -e " $COL_RED Please ENTER website name without http. For example tipstrickshack.blogspot.com $COL_RESET"

read var1

echo -e "
$COL_YELLOW Please choose methods

(1) DNS bruteforce (Outpt saved into out.txt file)

(2) NMAP

(3)Netcraft Toolbar
$COL_RESET"
read m1

if [ "$m1" = "1" ];then

echo -e " $COL_BLUE
mail,forum,direct,direct-connect,ftp,cpanel,blog,dev,m,support,webmail,ssl,record,dns,help will checked for possible I.P. $COL_RESET
"
out1=$( (resolveip -s $var1) 2>&1 )
dns=198.61.167.32

# i used dns variable , because for unknown DNS my isp redirect to  its address
#so we can know that response is vaild or not.


if [ "$out1" == "$dns" ];then
        echo "$var1 NOT FOUND. PLEASE ENTER CORRECT DOMAIN."
else
        echo "$var1 ip is $out1" >> out.txt
fi


out2=$( (resolveip -s mail.$var1) 2>&1 )
if [ "$out2" == "$dns" ];then
        echo "mail.$var1 NOT FOUND."
else
        echo "mail.$var1 ip is $out2" >> out.txt
fi

out3=$( (resolveip -s forum.$var1) 2>&1 )
if [ "$out3" == "$dns" ];then
        echo "forum.$var1 NOT FOUND."
else
        echo "forum.$var1 ip is $out3" >> out.txt
fi

out4=$( (resolveip -s direct.$var1) 2>&1 )
if [ "$out4" == "$dns" ];then
        echo "direct.$var1 NOT FOUND."
else
        echo "direct.$var1 ip is $out4" >> out.txt
fi

out5=$( (resolveip -s direct-connect.$var1) 2>&1 )
if [ "$out5" == "$dns" ];then
        echo "direct-connect.$var1 NOT FOUND."
else
        echo "direct-connect.$var1 ip is $out5" >> out.txt
fi

out6=$( (resolveip -s ftp.$var1) 2>&1 )
if [ "$out6" == "$dns" ];then
        echo "ftp.$var1 NOT FOUND."
else
        echo "ftp.$var1  ip is $out6" >> out.txt
fi

out7=$( (resolveip -s cpanel.$var1) 2>&1 )
if [ "$out7" == "$dns" ];then
        echo "cpanel.$var1 NOT FOUND."
else
        echo "cpanel.$var1  ip is $out7" >> out.txt
fi

out8=$( (resolveip -s blog.$var1) 2>&1)
if [ "$out8" == "$dns" ];then
        echo "blog.$var1 NOT FOUND."
else
        echo "blog.$var1 ip is $out8" >> out.txt
fi

out9=$( (resolveip -s dev.$var1) 2>&1 )
if [ "$out9" == "$dns" ];then
        echo "dev.$var1 NOT FOUND."
else
        echo "dev.$var1 ip is $out9" >> out.txt
fi

out10=$( (resolveip -s m.$var1) 2>&1)
if [ "$out10" == "$dns" ];then
        echo "m.$var1 NOT FOUND."
else
        echo "m.$var1 ip is $out10" >> out.txt
fi

out11=$( (resolveip -s support.$var1) 2>&1)
if [ "$out11" == "$dns" ];then
        echo "support.$var1 NOT FOUND."
else
        echo "support.$var1 ip is $out11" >> out.txt
fi

out12=$( (resolveip -s ssl.$var1) 2>&1)
if [ "$out12" == "$dns" ];then
        echo "ssl.$var1 NOT FOUND."
else
        echo "ssl.$var1 ip is $out12" >> out.txt
fi

out13=$( (resolveip -s webmail.$var1) 2>&1)
if [ "$out13" == "$dns" ];then
        echo "webmail.$var1 NOT FOUND."
else
        echo "webmail.$var1 ip is $out13" >> out.txt
fi

out14=$( (resolveip -s dns.$var1) 2>&1 )
if [ "$out14" == "$dns" ];then
        echo "dns.$var1 NOT FOUND."
else
        echo "dns.$var1 ip is $out14" >> out.txt
fi

out15=$( (resolveip -s www.$var1) 2>&1 )
if [ "$out16" == "$dns" ];then
        echo "www.$var1 NOT FOUND."
else
        echo "www.$var1 ip is $out15" >> out.txt
fi

out16=$( (resolveip -s help.$var1) 2>&1 )
if [ "$out16" == "$dns" ];then
        echo "help.$var1 NOT FOUND."
else
        echo "help.$var1 ip is $out16" >> out.txt
fi

echo -e "
$COL_RED
Please Open out.txt file for possible I.P. $COL_RESET"
fi

if [ "$m1" = "2" ];then
nmap --script dns-brute -sn $var1
fi

if [ "$m1" = "3" ];then
echo -e "$COL_CYAN View new open window in firefox & then view Hosting History $COL_RESET"
firefox http://toolbar.netcraft.com/site_report?url=$var1
fi
Ai đang xem chủ đề này?
Guest
Bạn không thể tạo chủ đề mới trong diễn đàn này.
Bạn không thể trả lời chủ đề trong diễn đàn này.
Bạn không thể xóa bài của bạn trong diễn đàn này.
Bạn không thể sửa bài của bạn trong diễn đàn này.
Bạn không thể tạo bình chọn trong diễn đàn này.
Bạn không thể bỏ phiếu bình chọn trong diễn đàn này.

Green-Grey Theme Created by Ingo Herbote (WatchersNET.de)
Powered by YAF | YAF © 2003-2010, Yet Another Forum.NET
Thời gian xử lý trang này hết 0.176 giây.