信息搜集与利用
信息搜集
渗透测试的流程
- 确定目标
- 信息搜集
- 漏洞扫描
- 漏洞利用
- 形成报告
域名信息的搜集
域名是代替IP地址的方便记忆的字段,域名与IP通过dns解析
whois搜集
whois可以查询到注册人等很多的信息,一下是常用whois网站
https://whois.chinaz.com
http://whoissoft.com
https://whois.cnnic.cn/WelcomeServlet
kali中也有自带的工具可以查询,使用whois命令
whois baidu.com
就可以查到很多信息
有些域名隐藏了这些信息所以可能查询不到
域名反查
可以使用域名反查的工具查询到目标的所有域名注册信息
http://whois.chinaz.com/reverse
https://mwhois.chinaz.com
可以使用邮箱反查,注册人反查,电话反查
第二个是通过域名反查其他注册域名
ICP备案查询
因为国内的所有服务器厂商经过域名注册的时候都要进行ICP备案,所以可以通过ICP备案的信息查询到目标注册人的姓名
一个人只有一个备案号,域名较多会在后面加-1、-2解决,所以如果可以试试猜到目标有多少域名,然后通过备案号查询域名
https://icp.chinaz.com
https://beian88.com
通过公司名获取信息
天眼查可以查询到目标公司的很多信息
https://www.tianyancha.com/
小结
通过以上的方式调查可以获得姓名,邮箱,手机号,邮箱可以用来钓鱼,姓名手机号是社工的基础,可以利用这些信息弄一个自定义的社工字典爆破密码,查询到多个域名可能每个域名的安全等级不一样,可以尝试等级较低的域名,这些域名对应网站可能是部署在同一个服务器上的
子域名信息
子域名就是主域名下的另一个应用或服务的域名,一般是主域名的下一级如www.baidu.com,其中的www就是一个子域名,一般默认是百度首页,域名从右至左等级越来越低
news.baidu.com
map.baidu.com
以上都是百度的子域名百度新闻和百度地图
寻找子域名的方式可以是通过域名进行枚举访问,返回200就是存在,不过一般的子域名都是有特点的,可以通过字典的方式猜解
工具:layer子域名挖掘机
在线网站
https://phpinfo.me/domain/
域名DNS信息
| 标签 | 信息 |
|---|---|
| A | A 记录是最常用类型,将域名指向一个IPv4 地址,如 8.8.8.8 |
| CNAME | 将域名指向另一个域名地址,与其保持相同解析,如 https://www.dnspod.cn |
| MX | 用于邮件服务器,相关参数一般由邮件注册商提供 |
| TXT | 可填写附加文本信息,常用于域名验证 |
| NS | 域名服务器记录,可将指定域名交由其他 DNS 服务商解析管理 |
| AAAA | 将域名指向一个IPv6 地址,如 ffo6:0:0:0:0:0:0:c3 |
DNS也可以获取很多信息,如真实IP地址等
dbcha.com
sitereport.netcraft.com
jsons.cn/nslookup
也可以使用kali命令
host baidu.com
dig baidu.com
IP信息搜集
DNS解析域名和IP的流程
在这里插入图片描述
使用ping命令可以得到目标IP
ping baidu.com
也可以使用kali中自带的nslookup
nslookup -type="MX"baidu.com
#其中双引号里面的就是dns的包含信息的标签,可以使用默认命令不带type
IP归属地址
http://ipwhois.cnnic.net.cn/
CDN
Content Delivery Network:内容分发网络
简而言之就是如果只有一台主服务器,用户的数量是极其庞大的,那么可以在各个地区弄出一个分服务器,然后用户使用时可以就近就方便原则选择最近的一台分服务器来减少主服务器的负担,只有在这个所谓的分服务器没有内容缓存的时候才会直接访问主服务器

-
当终端用户(北京)向www.a.com下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。
-
LDNS检查缓存中是否有www.a.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。
-
当授权DNS解析www.a.com时,返回域名CNAMEwww.a.tbcdn.com对应IP地址。
-
域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。
-
LDNS获取DNS返回的解析IP地址。
-
用户获取解析IP地址。
-
用户向获取的IP地址发起对该资源的访问请求。
如果一个网站使用了cdn服务,那么渗透难度将加大,因为我们所渗透的IP并不是目标的IP,而是一个cdn服务商的IP,cdn上有防火墙的措施使渗透难度加大;所以我们需要找到cdn的IP后面对应的真实IP;
如何去找:
-
超级ping
ping.chinaz.com //使用这个可以看各个地方的网速,如果一致并都比较小就是使用了cdn,并可以探测到多个IP都是cdn的IP nslookup //kali命令;可以查看目标的cdn服务商 -
历史DNS
以前并没有使用cdn的技术,可以使用历史dns解析信息去寻找真实IP
http://dnshistory.org/ http://toolbar.netcraft.com/site_report?url= https://tools.ipip.net/cdn.php https://github.com/vincentcox/bypass-firewalls-by-DNS-history -
子域名查询
不是所有的公司所有业务都使用cdn,可以通过子域名的方式去寻找目标真实IP
-
国外主机解析
国外没有相关cdn的节点就会访问到真实IP
https://asm.ca.com/zh_cn/ping.php http://host-tracker.com/ http://www.webpagetest.org/ https://dnscheck.pingdom.com/ -
其他的方式
fofa
censys
邮件
手机APP抓包:目标公司有手机软件并没有使用cdn技术
微信服务号抓包:目标微信服务号没有使用cdn技术
端口服务信息
端口扫描思路和代码实现
查看本机端口号
Windows:netstat -aon|findstr 3306
Linux:netstat -an|gr
其他主机端口探测:
telnet 192.168.142.137 80
wget 192.168.142.137 80
nc -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()
常见的端口及服务
文件共享服务端口
| 端口号 | 端口说明 | 攻击方向 |
|---|---|---|
| 21/22/69 | FTP/SFTP文件传输协议 | 允许匿名上传、下载、爆破和嗅探操作 |
| 2049 | NFS服务 | 配置不当 |
| 139 | Samba服务 | 爆破、未授权访问、远程代码和执行 |
| 389 | LDAP目录访问协议 | 注入、允许匿名访问、弱口令 |
远程连接服务端口
| 端口号 | 端口说明 | 攻击方向 |
|---|---|---|
| 22 | SSH远程连接 | 爆破、SSH隧道及内网代理转发、文件爆破 |
| 23 | telnet远程连接 | 爆破、嗅探、弱口令 |
| 3389 | RDP远程桌面连接 | shift后门(windows server2003一下的系统)爆破 |
| 5900 | VNC | 弱口令爆破 |
| 5632 | PcAnywhere远程控制服务 | 抓密码代码执行 |
web应用服务端口
| 端口号 | 端口说明 | 攻击方向 |
|---|---|---|
| 80/443/8080 | 常见的web服务端口 | Web攻击、爆破、对应服务器版本漏洞 |
| 7001/7002 | Weblogic控制台 | Java反序列化、弱口令 |
| 8080/8089 | Jboss/resin/jetty/Jenkins | 反序列化、控制台弱口令 |
| 4848 | Glassfish控制台 | 弱口令 |
| 1352 | Lotus domino邮件服务 | 弱口令、信息泄露、爆破 |
| 10000 | Webmin-web控制面板 | 弱口令 |
| 9090 | Websphere控制台 | Java反序列化、弱口令 |
数据库服务端口
| 端口号 | 端口说明 | 攻击方向 |
|---|---|---|
| 3306 | MySQL | 注入、提权、爆破 |
| 1433 | MSSQL数据库 | 注入、提权、SA弱口令 |
| 1521 | Oracle数据库 | TNS爆破、注入、反弹shell |
| 5432 | PostgreSQL数据库 | 爆破、注入、弱口令 |
| 27017/27018 | MongoDB | 爆破、未授权访问 |
| 6379 | Redis数据库 | 可尝试未授权访问、弱口令爆破 |
| 5000 | Sysbase/DB2数据库 | 爆破、注入 |
邮件服务端口
| 端口号 | 端口说明 | 攻击方向 |
|---|---|---|
| 25 | SMTP邮件服务 | 邮件伪造 |
| 110 | POP3协议 | 爆破、嗅探 |
| 143 | IMAP协议 | 爆破 |
网络常见协议端口
| 端口号 | 端口说明 | 攻击方向 |
|---|---|---|
| 53 | DNS域名系统 | 允许区域传送、DNS劫持、缓存投毒、欺骗 |
| 67/68 | DHCP服务 | 劫持、欺骗 |
| 161 | SNMP协议 | 爆破、搜集目标内网信息 |
特殊服务端口
| 端口号 | 端口说明 | 攻击方向 |
|---|---|---|
| 2181 | Zookeeper服务 | 未授权访问 |
| 8069 | Zabbix服务 | 远程执行、SQL注入 |
| 9200/9300 | ElasticSearch服务 | 远程执行 |
| 11211 | Memcached服务 | 未授权访问 |
| 512/513/514 | Linux Rexec服务 | 爆破、rlogin登录 |
| 873 | Rsync服务 | 匿名访问、文件上传 |
| 3690 | SVN服务 | SVN泄露、未授权访问 |
| 50000 | SAP Management Console | 远程执行 |
工具扫描
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
在线扫描
http://coolaf.com/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 www.discuz.net
浏览器插件:
whatrunswappalyzer
在线网站:
http://whatweb.bugscaner.com/
http://finger.tidesec.com/
工具
御剑指纹扫描器(需要.NET Framework)
Test404轻量CMS指纹识别 v2.1
另外kali中可直接安装
cmseek -u www.coolshell.cn //很强大
CDN 指纹识别
CDN指纹识别思路
1、超级ping
2、历史DNS
3、通过子域名查询IP
4、国外主机解析
5、其他
CDN指纹识别工具
- ping
- nslookup
- 超级ping
- ldb(load balance detector)
国内:
http://cdn.chinaz.com/
国外:
https://www.cdnplanet.com/tools/cdnfinder/
脚本:
https://github.com/boy-hack/w8fuckcdn/
https://github.com/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)
指纹库:
https://github.com/CSecGroup/wafid/blob/master/finger.xml
如何触发拦截
使用特定攻击特征字符串
xsstring = ''
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 google.com'
xxestring = ']>&hack; '
WAF指纹识别工具
kali自带
wafw00f https://www.12306.cn
namp
nmap www.12306.cn --script=http-waf-detect.nse
sqlmap
sqlmap -u "xxx.com?id=1" --identify-waf
其他
https://github.com/0xInfection/Awesome-WAF
搜索引擎收集信息
google高级搜索Google Hacking
运算符
完整匹配:“”
剔除不需要的内容: -
任意字符:批发 OR 特价
高级语法
| 功能 | 语法 |
|---|---|
| 只搜索某个网站的内容 | site:zhihu.com |
| 网页的内容包括 | allintext: Powered by Discuz intext: Powered by Discuz |
| 标题出现 | allintitle: 后台登录 intitle: 后台登录 |
| URL地址包括 | allinurl: admin.php inurl: index.php?id=1 |
| 文件类型指定 | filetype:pdf |
可以结合使用
google语法库:
https://www.exploit-db.com/google-hacking-database
https://github.com/BullsEye0/google_dork_list
网络空间搜索引擎
网络空间包含网络设备如主机,摄像头,打印机等,空间搜索引擎可以搜索到这些设备
最早的网络空间搜索引擎Shodan
shodan.io
付费功能可以在淘宝买会员得到
kali中可以直接使用
入侵示例
ld246.com/article/1544157102767
工具:
https://github.com/jakejarvis/awesome-shodan-queries (语法)
https://github.com/random-robbie/My-Shodan-Scripts (python脚本)
命令:
| 命令 | 英文 | 解释 |
|---|---|---|
| alert | Manage the network alerts for your account | 管理账户的网络提示 |
| convert | Convert the given input data file into a… | 转换输入文件 |
| count | Returns the number of results for a search | 返回查询结果数量 |
| download | Download search results and save them in a… | 下载查询结果到文件 |
| honeyscore | Check whether the IP is a honeypot or not | 检查 IP 是否为蜜罐 |
| host | View all available information for an IP… | 显示一个 IP 所有可用的详细信息 |
| info | Shows general information about your account | 显示账户的一般信息 |
| init | Initialize the Shodan command-line | 初始化命令行 |
| myip | Print your external IP address | 输出用户当前公网IP |
| parse | Extract information out of compressed JSON… | 解析提取压缩的JSON信息,即使用download下载的数据 |
| scan | Scan an IP/ netblock using Shodan | 使用 Shodan 扫描一个IP或者网段 |
| search | Search the Shodan database | 查询Shodan 数据库 |
| stats | Provide summary information about a search… | 提供搜索结果的概要信息 |
| stream | Stream data in real-time | 实时显示 |
用法示例:
shodan host 172.67.167.88
shodan count apache
shodan count vuln:cve-2019-0708
shodan search --fields ip_str,port,org,hostnames microsoft iis 6.0
shodan stats port:445 SMB
shodan download --limit -1 test net:172.67.167.88/24
其他工具
-
Censys
censys.io不收费,收录了证书
-
ZoomEye-钟馗之眼
网络空间资源测绘,搜索引擎是Xmap
-
Fofa
fofa.so
https://www.knowledgenile.com/blogs/top-osint-tools-2021/
https://securitytrails.com/blog/osint-tools
基于网络空间所有引擎的工具
https://github.com/knownsec/Kunyu
https://github.com/coco413/DiscoverTarget
https://github.com/saucer-man/saucerframe
目录扫描
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
