三、服务器信息收集
信息收集又叫打点,打仗也要侦探敌情,攻防更是如此。但要获取哪些信息呢?
一. 获取公网IP
如何知道一个网站用了CDN?
如何绕过CDN?
因为CDN很贵,可能很多网站只对主站设置了CDN,所以我们可以从子域名入手来获取真实IP,对子域名进行超级ping。查询历史DNS解析记录,因为公司起步规模小,但是IP还留着用了。https://dnsdb.io/zh-cn/,某些厂商国内做了CDN加速,但国外可能没做,我们就可以从国外入手。还是超级ping,勾选国外就行。
二. 旁站信息收集
旁站就是指同一服务器下的不同网站,通过旁站拿到服务器权限,接着就可以对主站进行攻击。
旁站收集:fofa.info 里输入 如ip="101.200.252.160"查询,会得到很多其他资产。
三. C段主机查询
c段是指某一网段下所有的ip地址,通过c段查询可以探测主机目标的资产
c端查询主要使用namp扫描工具
nmap扫描
常用参数:
-sP Ping Scan 只进行主机发现,不进行端口扫描。 -sS/sT/sA/sW/sM 指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫 -sU 指定使用UDP扫描方式确定目标主机的UDP端口状况。 -O 指定Nmap进行OS侦测。探测运行的什么系统 -sV 指定让Nmap进行版本侦测
namp 192.168.0.1/24
其他:
A记录 IP地址记录,记录一个域名对应的IP地址
AAAA记录 IPv6地址记录,记录一个域名对应的IPv6地址
CNAME记录 别名记录,记录一个主机的别名
MX记录 电子邮件交换记录,记录一个邮件域名对应的IP地址
NS记录 域名服务器记录 ,记录该域名由哪台域名服务器解析
PTR记录 反向记录,也即从IP地址到域名的一条记录
TXT记录 记录域名的相关文本信息
四. 子域名信息收集
常用工具
dnsmap工具(kali)
dnsenum(kali)
Layer子域名挖掘机(windows)
下载地址:
https://github.com/euphrat1ca/LayerDomainFinder
线上:
http://tool.chinaz.com/subdomain/
系统指纹识别
通过TCP/IP数据包发到目标主机,由于每个操作系统类型对于处理TCP/IP数据包都不相同,所以可以通过之间的差别判定操作系统类型
识别方法:nmap -sS -Pn -O ip
nmap识别操作系统是通过端口识别的,也就是说在识别操作系统的时候不能使用-sn(不识别端口)。
中间件指纹识别
方法:
- 通过http返回消息中提取server字段(可以抓包获取)
- 通过端口服务探测中间件
- 通过构造错误界面返回信息查看中间件(感觉只有nginx和Tomcat能爆出中间件的版本信息)
命令:
nmap -sS -sV -p 80 10.60.17.19/24
可以扫描出所有开放80端口的主机下所开启的中间件。
可以根据中间件所开发的端口来定向IP扫描。
- Tomcat开放端口:8080
- Jboss开放端口:8080
- weblogic开放端口:7001
- apache开放端口:80
- nginx开放端口:80
Web程序指纹识别
识别目标
- 开发语言
- 开发框架
- 第三方组件
- CMS程序
- 常见cms系统
- 数据库
nmap扫描waf指纹支持大厂,小厂的waf指纹识别不是很好
nmap -p 80 --script http-waf-detect.nse www.baidu.com
开发语言:
后缀名识别:.asp、.php、.jsp
如果无法通过后缀名识别,可以通过抓包查看与后台交互点,如:登录,查询
http返回消息头x-Powered-By
cookie:PHPSESSIONID->php、JSPSESSIONID->jsp 、ASPSESSIONIDAASTCACQ->asp
开发框架:
- php的thinkphp框架识别方法特定ico图标
- Action后缀90%几率struts2或者webwork
- do后缀50%几率spring mvc
- url路径/action/xxx70%几率struts2
- form后缀60%几率spring mvc
- Vm后缀90%几率VelocityViewServlet
- jsf后缀99%几率Java Server Faces
第三方组件:
一般包括流量统计、文件编辑器、模板引擎
识别方法:一般目录扫描
- FCKeditor
- CKEditor
CMS程序特定文件夹:
- dede/
- admin/
- admin_Login.aspx
常见cms系统
- 常用CMS介绍
- CMS(Content Management System)内容管理系统,CMS系统是网站建设走向成功的重要组成部分,国内外的CMS种类比较多,下面介绍常用的CMS。
- 1.企业建站系统:MetInfo(米拓)、蝉知、SiteServer CMS(.net平台)等;
- 2.B2C商城系统:商派shopex、ecshop、hishop、xpshop等;
- 3.门户建站系统:DedeCMS(织梦,PHP+MYSQL)、帝国CMS(PHP+mysql)、PHPCMS、动易、cmstop,dianCMS(易点CMS,.net平台)等;
- 4.博客系统:wordpress、Z-Blog等;
- 5.论坛社区:discuz、phpwind、wecenter等;
- 6.问答系统:Tipask、whatsns等;
- 7.知识百科系统:HDwiki;
- 8.B2B门户系统:destoon、B2Bbuilder、友邻B2B等;
- 9.人才招聘网站系统:骑士CMS、PHP云人才管理系统;
- 10.房产网站系统:FangCms等;
- 11.在线教育建站系统:kesion(科汛,ASP)、EduSoho网校;
- 12.电影网站系统:苹果cms、ctcms、movcms等;
- 13.小说文学建站系统:JIEQI CMS;
数据库
- 常规判断:asp->sql server,php->mysql,jsp-oracle
- 网站错误信息
- 端口服务:1443->sql server,3306->mysql,oracal->1521
在线自动探测目标网站的数据库,开发语言,操作系统,web容器,CMS,开发框架
get_system_info.sh
#!/bin/bash # --- 1. 获取主机序列号并定义输出文件名 --- # 使用sudo确保dmidecode可以执行,并去除可能的前后空格 SERIAL=$(sudo dmidecode -s system-serial-number | xargs) OUTPUT_FILE="${SERIAL}.txt" # 检查是否成功获取到序列号 if [ -z "$SERIAL" ] || [ "$SERIAL" == "To Be Filled By O.E.M." ]; then echo "错误:无法获取有效的主机序列号。请检查 dmidecode 命令或BIOS设置。" >&2 # 如果获取失败,使用一个默认文件名 OUTPUT_FILE="unknown_serial_$(date +%Y%m%d%H%M%S).txt" echo "将使用默认文件名: $OUTPUT_FILE" fi echo "正在收集系统信息,报告将保存到: $OUTPUT_FILE" # --- 2. 收集信息并写入文件 --- # 使用代码块 {...} > 将多个命令的输出一次性重定向到文件,更高效 { echo "=== 系统信息报告 ===" echo "生成时间: $(date)" echo "" echo "--- 主机序列号 ---" echo "$SERIAL" echo "" echo "--- 系统启动时间与运行时长 ---" uptime echo "" echo "--- 最近的重启记录 ---" last } > "$OUTPUT_FILE" echo "信息收集完成!"
浙公网安备 33010602011771号