信息搜集
渗透测试的流程
确定目标信息搜集漏洞扫描漏洞利用形成报告域名信息的搜集
域名是代替IP地址的方便记忆的字段,域名与IP通过dns解析
whois搜集
whois可以查询到注册人等很多的信息,一下是常用whois网站
/WelcomeServlet
kali中也有自带的工具可以查询,使用whois命令
whois
就可以查到很多信息
有些域名隐藏了这些信息所以可能查询不到
域名反查
可以使用域名反查的工具查询到目标的所有域名注册信息
/reverse
可以使用邮箱反查,注册人反查,电话反查
第二个是通过域名反查其他注册域名
ICP备案查询
因为国内的所有服务器厂商经过域名注册的时候都要进行ICP备案,所以可以通过ICP备案的信息查询到目标注册人的姓名
一个人只有一个备案号,域名较多会在后面加-1、-2解决,所以如果可以试试猜到目标有多少域名,然后通过备案号查询域名
通过公司名获取信息
天眼查可以查询到目标公司的很多信息
/
小结
通过以上的方式调查可以获得姓名,邮箱,手机号,邮箱可以用来钓鱼,姓名手机号是社工的基础,可以利用这些信息弄一个自定义的社工字典爆破密码,查询到多个域名可能每个域名的安全等级不一样,可以尝试等级较低的域名,这些域名对应网站可能是部署在同一个服务器上的
子域名信息
子域名就是主域名下的另一个应用或服务的域名,一般是主域名的下一级如,其中的www就是一个子域名,一般默认是百度首页,域名从右至左等级越来越低
以上都是百度的子域名百度新闻和百度地图
寻找子域名的方式可以是通过域名进行枚举访问,返回200就是存在,不过一般的子域名都是有特点的,可以通过字典的方式猜解
工具:layer子域名挖掘机
在线网站
https://phpinfo.me/domain/
域名DNS信息
DNS也可以获取很多信息,如真实IP地址等
/nslookup
也可以使用kali命令
host dig
IP信息搜集
DNS解析域名和IP的流程
在这里插入图片描述
使用ping命令可以得到目标IP
ping
也可以使用kali中自带的nslookup
nslookup -type="MX"#其中双引号里面的就是dns的包含信息的标签,可以使用默认命令不带type
IP归属地址
.cn/
CDN
Content Delivery Network:内容分发网络
简而言之就是如果只有一台主服务器,用户的数量是极其庞大的,那么可以在各个地区弄出一个分服务器,然后用户使用时可以就近就方便原则选择最近的一台分服务器来减少主服务器的负担,只有在这个所谓的分服务器没有内容缓存的时候才会直接访问主服务器
当终端用户(北京)向下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。
LDNS检查缓存中是否有的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。
当授权DNS解析时,返回域名CNAMEwww.对应IP地址。
域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。
LDNS获取DNS返回的解析IP地址。
用户获取解析IP地址。
用户向获取的IP地址发起对该资源的访问请求。
如果一个网站使用了cdn服务,那么渗透难度将加大,因为我们所渗透的IP并不是目标的IP,而是一个cdn服务商的IP,cdn上有防火墙的措施使渗透难度加大;所以我们需要找到cdn的IP后面对应的真实IP;
如何去找:
超级ping
//使用这个可以看各个地方的网速,如果一致并都比较小就是使用了cdn,并可以探测到多个IP都是cdn的IPnslookup //kali命令;可以查看目标的cdn服务商
历史DNS
以前并没有使用cdn的技术,可以使用历史dns解析信息去寻找真实IP
//site_report?url=/cdn.php/vincentcox/bypass-firewalls-by-DNS-history
子域名查询
不是所有的公司所有业务都使用cdn,可以通过子域名的方式去寻找目标真实IP
国外主机解析
国外没有相关cdn的节点就会访问到真实IP
/zh_cn/ping.phphttp://host-///
其他的方式
fofa
censys
邮件
手机APP抓包:目标公司有手机软件并没有使用cdn技术
微信服务号抓包:目标微信服务号没有使用cdn技术
端口服务信息
端口扫描思路和代码实现
查看本机端口号
Windows:netstat -aon|findstr 3306
Linux:netstat -an|gr
其他主机端口探测:
telnet 192.168.142.137 80wget 192.168.142.137 80nc -vz 192.168.142.137 80-9000 //可以批量扫描
代码实现扫描
import socket, threadingdef TCP_connect(ip, port_number, delay, output):TCPsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)TCPsock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)TCPsock.settimeout(delay)try:TCPsock.connect((ip, port_number))output[port_number] = 'Listening'except:output[port_number] = ''def scan_ports(host_ip, delay):threads = [] # To run TCP_connect concurrentlyoutput = {} # For printing purposes# Spawning threads to scan ports# 先扫10000个端口for i in range(10000):t = threading.Thread(target=TCP_connect, args=(host_ip, i, delay, output))threads.append(t)# Starting threadsfor i in range(10000):threads[i].start()# Locking the script until all threads completefor i in range(10000):threads[i].join()# Printing listening ports from small to largefor i in range(10000):if output[i] == 'Listening':print(str(i) + ': ' + output[i])def main():host_ip = input("Please enter host IP: ")# 超时抛出异常delay = int(input("How many seconds the socket is going to wait until timeout: ")) scan_ports(host_ip, delay)input("Press Any Key to Exit")if __name__ == "__main__":main()
常见的端口及服务
文件共享服务端口
远程连接服务端口
web应用服务端口
数据库服务端口
邮件服务端口
网络常见协议端口
特殊服务端口
工具扫描
NMAP
1)扫描主机(Host Discovery)
2)扫描端口(Port Scanning)
3)探测操作系统、软件版本 (Operating System Detection、Version Detection)
kali中自带namp
使用方式:
#简单扫描nmap -sP 192.168.142.137#指定端口或范围扫描:nmap -p0-65535 192.168.142.137#探测操作系统:nmap -O 192.168.142.137#只进行主机发现,不进行端口扫描nmap -sn 192.168.40.195/24
IP后面的 /24是什么意思?
掩码的位数。
子网掩码8位,11111111.00000000.00000000.00000000
代表:255.0.0.0(A类IP地址)
子网掩码16位,11111111.11111111.00000000.00000000
代表:255.255.0.0(B类IP地址)
子网掩码24位,11111111.11111111.11111111.00000000
代表:255.255.255.0(C类IP地址)
旁站:和目标网站在同一台服务器但端口不同的其他网站。
C段 :和目标服务器IP处在同一个C段的其它服务器。192.168.25.xx
在线扫描
/tool/port
CMS指纹识别
什么是指纹识别
通过关键特征,识别出目标的CMS系统、服务器、开发语言、操作系统、CDN、WAF的类别版本等等。
1、CMS信息:比如Discuz、织梦、帝国CMS、PHPCMS、ECshop等;2、前端技术:比如HTML5、jquery、bootstrap、Vue、ace等;3、开发语言:比如PHP、Java、Ruby、Python、C#等;4、Web服务器:比如Apache、 Nginx、IIS、lighttpd等;5、应用服务器:比如Tomcat、Jboss、Weblogic、Websphere等;6、操作系统信息:比如Linux、win2k8、win7、Kali、Centos等;7、CDN信息:是否使用CDN,如cloudflare、帝联、蓝讯、网宿、七牛云、阿里云等;8、WAF信息:是否使用WAF,如D盾、云锁、宝塔、安全狗、360等
指纹识别的思路
通过特定的文件代码找到特定的特征
版权信息:在底部,在标题,在源码找
特定文件MD5值
查看网页源代码
通过特定文件分析
网站目录下都有一个robots.txt文件,用来设置搜索引擎可不可以爬取到该网站的规则
指纹识别的工具
kali中自带的工具whatweb
whatweb -v
浏览器插件:
whatrunswappalyzer
在线网站:
//
工具
御剑指纹扫描器(需要.NET Framework)Test404轻量CMS指纹识别 v2.1
另外kali中可直接安装
cmseek -u //很强大
CDN 指纹识别
CDN指纹识别思路
1、超级ping
2、历史DNS
3、通过子域名查询IP
4、国外主机解析
5、其他
CDN指纹识别工具
pingnslookup超级pingldb(load balance detector)国内:
/
国外:
/tools/cdnfinder/
脚本:
/boy-hack/w8fuckcdn/
/3xp10it/xcdn
WAF指纹识别
什么是WAF
Web Application Firewall Web 应用防火墙
过滤HTTP/HTTPS的请求
WAF作用
SQL Injection (SQLi):阻止SQL注入Cross Site Scripting (XSS):阻止跨站脚本攻击Local File Inclusion (LFI):阻止利用本地文件包含漏洞进行攻击Remote File Inclusione(RFI):阻止利用远程文件包含漏洞进行攻击Remote Code Execution (RCE):阻止利用远程命令执行漏洞进行攻击PHP Code Injectiod:阻止PHP代码注入HTTP Protocol Violations:阻止违反HTTP协议的恶意访问HTTPoxy:阻止利用远程代理感染漏洞进行攻击Sshllshock:阻止利用Shellshock漏洞进行攻击Session Fixation:阻止利用Session会话ID不变的漏洞进行攻击Scanner Detection:阻止黑客扫描网站Metadata/Error Leakages:阻止源代码/错误信息泄露Project Honey Pot Blacklist:蜜罐项目黑名单GeoIP Country Blocking:根据判断IP地址归属地来进行IP阻断常见WAF厂商
各种云:阿里云、腾讯云、华为云、百度云……
安全狗、宝塔、360、知道创宇、长亭、安恒……
宝塔:
安全狗:
腾讯云:
阿里云:
WAF指纹识别思路
额外的cookie;任何响应或请求的附加标头;响应内容(如果被阻止请求);响应代码(如果被阻止请求);IP地址(云WAF);JS客户端模块(客户端WAF)指纹库:
/CSecGroup/wafid/blob/master/finger.xml
如何触发拦截
使用特定攻击特征字符串
xsstring = '<script>alert("XSS");</script>' sqlistring = "UNION SELECT ALL FROM information_schema AND ' or SLEEP(5) or '"lfistring = '../../../../etc/passwd' rcestring = '/bin/cat /etc/passwd; ping 127.0.0.1; curl ' xxestring = '<!ENTITY xxe SYSTEM "file:///etc/shadow">]><pwn>&hack;</pwn>'
WAF指纹识别工具
kali自带
wafw00f
namp
nmap --script=http-waf-detect.nse
sqlmap
sqlmap -u "?id=1" --identify-waf
其他
/0xInfection/Awesome-WAF
搜索引擎收集信息
google高级搜索Google Hacking
运算符
完整匹配:“”
剔除不需要的内容: -
任意字符:批发 OR 特价
高级语法
可以结合使用
google语法库:
https://www.exploit-/google-hacking-database/BullsEye0/google_dork_list
网络空间搜索引擎
网络空间包含网络设备如主机,摄像头,打印机等,空间搜索引擎可以搜索到这些设备
最早的网络空间搜索引擎Shodan
shodan.io
付费功能可以在淘宝买会员得到
kali中可以直接使用
入侵示例
/article/1544157102767
工具:
/jakejarvis/awesome-shodan-queries (语法)/random-robbie/My-Shodan-Scripts (python脚本)
命令:
用法示例:
shodan host 172.67.167.88shodan count apacheshodan count vuln:cve--0708shodan search --fields ip_str,port,org,hostnames microsoft iis 6.0shodan stats port:445 SMBshodan download --limit -1 test net:172.67.167.88/24
其他工具
Censys
censys.io
不收费,收录了证书
ZoomEye-钟馗之眼
网络空间资源测绘,搜索引擎是Xmap
Fofa
fofa.so
/blogs/top-osint-tools-/
/blog/osint-tools
基于网络空间所有引擎的工具
/knownsec/Kunyu/coco413/DiscoverTarget/saucer-man/saucerframe