信息收集是指通过各种方式获取所需要的信息,以便我们在后续的渗透过程更好的进行。最简单的比如说目标站点的IP、中间件、脚本语言、端口、邮箱等等。我觉得信息收集在我们渗透测试的过程当中,是最重要的一环,这一环节没做好,没收集到足够多的可利用的信息,我们很难进行下一步的操作。
一、踩点
1、踩点的概念
踩点指的是预先到某地考察,为后续工作做准备,获取信息的过程就叫踩点,在渗透测试中,第一步要做的就是信息收集,即踩点。这里的踩点主要是尽可能收集关于目标网络的信息以找到各种能有效入侵对方网络的方法,通常我们使用扫描器来实现,通过扫描器我们可以发现各种远程服务的端口,提供哪些服务以及服务器版本等内容。
当然,在实战中,我们信息收集的过程也要慎用各种扫描器,我们的信息收集过程应该是隐蔽的,悄无声息的,不应该让对方的应急团队察觉到你的意图。
2、Google hacking
还要学会使用搜索引擎,如Google hacking,善用Google,它的功能很强大,这里列举一些常用的Google语法供大家参考:
1 | intext: |
1 | 下面开始说说实际应用(以下内容均在 google 上搜索), |
感兴趣的师傅可以参考google-hacking-database,里面集成了很多语法:https://www.exploit-db.com/google-hacking-database
3、 Github以及其他信息收集途径
① Github
在Github中,可能会存在源码泄露、AccessKey泄露、密码、服务器配置泄露等情况,常见的搜索技巧有:
@example.com password/pass/pwd/secret/credentials/token
@example.com username/user/key/login/ftp/
@example.com config/ftp/smtp/pop
@example.com security_credentials/connetionstring
@example.com JDBC/ssh2_auth_password/send_keys
② shodan、Zoomeye等在线网站
ZoomEye 拥有两大探测引擎:Xmap 和 Wmap,是一个检索网络空间节点的搜索引擎。通过后端的分布式爬虫引擎(无论谁家的搜索引擎都是这样)对全球节点的分析,对每个节点的所拥有的特征进行判别,从而获得设备类型、固件版本、分布地点、开放端口服务等信息。
ZoomEye 支持公网设备指纹检索和 Web 指纹检索
网站指纹包括应用名、版本、前端框架、后端框架、服务端语言、服务器操作系统、网站容器、内容管理系统和数据库等。设备指纹包括应用名、版本、开放端口、操作系统、服务名、地理位置等
常见的语法有:
1 | 定位国家--- country:US |
想了解更多的可以看下这篇文章:
https://www.programminghunter.com/article/7143642821/
③ 天眼查,站长工具等
④ 绕过CDN获取真实ip
查找子域名
很多时候,一些重要的站点会做CDN,而一些子域名站点并没有加入CDN,而且跟主站在同一个C段内,这时候,就可以通过查找子域名来查找网站的真实IP。
常用的子域名查找方法和工具:
(1)搜索引擎查询:
如Google、baidu、Bing等传统搜索引擎,site:baidu.com inurl:baidu.com,搜target.com|公司名字。
(2)一些在线查询工具
1 | http://tool.chinaz.com/subdomain/ |
(3)子域名爆破工具
1 | Layer子域名挖掘机 |
网站邮件头信息
比如说,邮箱注册,邮箱找回密码、RSS邮件订阅等功能场景,通过网站给自己发送邮件,从而让目标主动暴露他们的真实的IP,查看邮件头信息,获取到网站的真实IP。
利用SSL证书寻找真实IP
证书颁发机构(CA)必须将他们发布的每个SSL/TLS证书发布到公共日志中,SSL/TLS证书通常包含域名、子域名和电子邮件地址。因此SSL/TLS证书成为了攻击者的切入点。
SSL证书搜索引擎:
1 | https://censys.io/ipv4?q=github.comCensys 证书搜索: |
扫描全网
通过Zmap、masscan等工具对整个互联网发起扫描,针对扫描结果进行关键字查找,获取网站真实IP。
ZMap号称是最快的互联网扫描工具,能够在45分钟扫遍全网。
1 | https://github.com/zmap/zmap |
Masscan号称是最快的互联网端口扫描器,最快可以在六分钟内扫遍互联网。
1 | https://github.com/robertdavidgraham/masscan |
国外访问
一般的站点在国内可能会有CDN,但是在国外的用户覆盖率比较低,所以通过国外的节点进行请求往往能获取真实IP
⑤ 端口扫描:
一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行扫描。在手工进行扫描时,需要熟悉各种命令。对命令执行后的输出进行分析。用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。以上定义只针对网络通信端口,端口扫描在某些场合还可以定义为广泛的设备端口扫描,比如某些管理软件可以动态扫描各种计算机外设端口的开放状态,并进行管理和监控,这类系统常见的如USB管理系统、各种外设管理系统等。
(1)可以通过Nmap(Nmap是一个网络连接端口扫描工具,用来扫描网上的电脑具体开放的网络连接端口。可以确定哪些服务运行在哪些的连接端口上,并且可以推断计算机运行哪个操作系统。所以它是网络安全管理人员必用的软件之一,甚至用以评估网络系统安全);
(2)通过masscan(masscan是网络安全中常用的技术手段,通过对于特定的IP范围和端口范围进行穷举扫描,发现网络中开放的端口,从而为进一步的探查提供基本信息)
⑥ 旁站查询
C段主机是指与目标服务器在同一C段网络的服务器,攻击目标的C段存活主机是信息收集的重要信息,很多单位企业的内部服务器可能都会在一个C段网络中。
还可以用NMAP进行C段扫描,使用命令【nmap -sn IP/24】,对目标IP的C段主机存活扫描,根据扫描的结果可以判断目标IP的C段还有哪些主机存活,然后对存活的主机进行渗透,拿到最高权限后进行内网渗透。
可以通过K8_C段旁注工具、WebRobot、御剑,Cain、Sniffit 、Snoop、Tcpdump、Dsniff等工具进行查询;
也可以用在线查询地址:http://www.webscan.cc/ 、 http://www.5kik.com/
⑦ WAF查询
类似的有wafw00f(需要安装),可以识别是否有waf防护,是什么waf。
https://scan.top15.cn/web/:还可以查旁站及其他信息
二、WINDOWS和LINUX系统的基础命令
打点:基本信息收集(外围)
Banner 操作系统信息,web容器信息,开发商,cms信息
主机内部信息收集
主机存活探测
win
for /1 %i in (1,1,254) do @ping -w 1 -n 1 10.0.1.%i|findstr /c:”TTL=”
linux
for i in {1..254..1};do ping -w 1 -c 1 121.5.144.$i|grep“ttl”|awk’{print $4}’ |awk -F “:” ‘{print $1}’;done
主机信息收集
ipconfig /all //看网卡配置,判断当前是否存在域环境
netsh wlan show profiles wifi名 key=clear //看wifi密码
net localgroup //查看分组信息
net user 用户名 //查看用户基本信息
net user 用户名 密码 /add
net user 用户名 密码 /der
systeminfo | findstr /B /C:”OS 名称” /C:”OS 版本”
systeminfo | findstr “KB”
net share //看共享目录
net use \192.168.1.130\C$ 密码 /user:用户名 IPC管道连接
dir \\192.168.1.130\C$ //查看目录
copy 本地文件 \\192.168.1.130\C$\windows //上传文件
copy \\192.168.1.130\C$\calc.exe c:\ //下载文件
net cofig workstation //查看工作站
netstat -ano //查找端口开放情况
whoami //查看当前用户
whoami /user //获取当前用户的sid
whoami /all //查看所有的信息
whoami /priv //查看当前用户的权限
ver //看操作系统
wmic:
process
wmic process get Name,ProcessId,ThreadCount //获取指定进程信息
wmic process list brief //列出进程信息
wmin /node:127.0.0.1 process call create calc //远程调用
os
wmic os get WindowsDirectory, SystemDirectory,CountryCode
product
wmic product get name,version //慢
wmic /node:localhost /namespace:\root\SecurityCenter2 path AntivirusProduct Get displayname /format:list //远程查找杀软
utterances
GitHub Issues