渗透测试之信息收集

信息收集是渗透测试中重要的一环,它是渗透测试的起点及终点。之所以说信息收集是渗透测试的起点是因为通过信息收集我们可以确定渗透目标的范围以及其可能存在的安全漏洞及脆弱点,信息收集的广度与深度很大程度上决定了渗透测试的成功与否。在现实情况中渗透测试的目的往往并不是搞垮目标的机器而是收集置于目标机器上的重要的信息,所以说在一定程度上信息收集也是渗透测试的终点。

Web

主动信息收集

主动信息收集指的是与目标存在交互,有可能被目标发现,隐蔽性低。

版本判断

在针对Web应用进行测试时,首先需要做的第一步就是判断当前所适用Web应用的类型及中间件相关信息。具体可以通过下述几个方式:

  • 页面样式
  • 网页源码中的注释
  • HTTP头部信息
  • 路径命名规则(功能架构)

对于Web应用无非就是三种类型:

  • 完全自定制
  • 第三方Web应用二次开发
  • 完全使用第三方应用

针对于第一种应用,我们需要收集更多的信息来帮助我们发现漏洞,具体见下面章节。而对于完全的第三方应用,我们需要做的就是去收集对应版本的漏洞历史记录及相应弱点信息,从而辅助我们寻找可以利用的点。而对于那些在第三方Web应用基础上二次开发出来的应用由于其即可能包含第三方应用历史漏洞又有可能在二次开发过程中产生漏洞所以我们需要对其执行前面两者信息收集的动作。

robots.txt

robots.txt位与网站根目录下,通过这个文件我们可以找到一些目标网站不愿被他人访问到的页面。
robots.txt

功能结构分析

所谓功能结构分析就是通过分析应用程序的路径来推测Web应用程序所提供的的功能,然后在此基础上寻找容易出现问题的功能点,比如用户登录,用户注册,评论填写,文件上传,管理员后台等。功能结构分析的手段有以下几种:

  • 路径爆破
  • 爬虫
  • 上述两者结合

具体的工具有

  • dirbuster
  • Burpsuite
  • ZAP

路径爆破时将.bak、.zip等后缀名考虑在范围内可以发现备份文件。

被动信息收集

被动信息收集与主动信息收集刚好相反,被动信息收集不会与目标存在交互,所以隐蔽性比较高。被动信息收集往往借助于第三方,比如搜索引擎,站长之家等。

Google hack

信息搜索语句
docx/docsite:target filetype:doc OR filetype:docx
pptx/pptsite:target filetype:doc OR filetype:docx
xlsx/xlssite:target filetype:doc OR filetype:docx
docx/docsite:target filetype:doc OR filetype:docx
txtsite:target filetype:txt
寻找后台site:target inurl:admin OR inurl:login
寻找可浏览目录site:target “index of/” “parent directory”
寻找暴露的密码site:target “密码” “password”
搜索SQL注入点site:target inurl:?id=

主机

在针对一台主机进行渗透时,我们首先需要考虑这台机器是属于域中的一台机器还是属于工作组中的一台机器,不同环境中的机器所利用的攻击方式及所需要收集的信息不同。

确定当前计算机所处环境

  • 域环境
    域环境
  • 非域环境
    非域环境

域环境

如果这台主机是域环境下的一台主机,那么就要从域中用户及域结构两个层次去对这个域进行了解。

域中用户

  • 查看当前用户
    当前用户
  • 当前用户所属用户组
    域用户所属用户组
  • 查看域中的用户名:
    dsquery_user
    dsquery user或net user /domain (仅在Windows Server 2003, Windows Server 2008, Windows Server 2003 R2, Windows Server 2008 R2, Windows Server 2012, Windows Server 2003 with SP1, Windows 8中预装了dsquery)
  • 查看域组名称:net group /domain:
    在这里插入图片描述
  • 查看域控管理员账户:
    域控管理员

域内拓扑

  • 查看所有的域:
    net_view _/domain

  • 查看域中的域控制器:
    查看域控
    查看域控
    查看域控查看域控

  • 查看域中所有主机名:net view、dsquery computer或net group “Domain Computers” /domain(此条命令不显示域控)
    net_view

  • 查看主机arp缓存:
    arp缓存

  • 获取域中主机名对应的IP地址:ping 主机名
    ping
    还可以使用下述命令批量获取IP及主机名之间的对应关系!

@echo off
@FOR /F "usebackq eol=- skip=1 delims=\" %%j IN (`net view ^| find "命令成功完成" /v ^|find "The command completed successfully." /v`) DO (
@FOR /F "usebackq delims=" %%i IN (`@ping -n 1 -4 %%j ^| findstr "Pinging"`) DO (
@FOR /F "usebackq tokens=2 delims=[]" %%k IN (`echo %%i`) DO (echo %%k  %%j)
)
)
pause


goto zs:
注释:
FOR /F:处理文件或者命令输出格式为 FOR /F ["options"] %%i IN ('command') DO command
上述代码中用到的options选项及含义:
	usebackq:where a back quoted string is executed as a command and a single quoted string is a literal string command and allows the use of double quotes to quote file names in filenameset.
	eol -:不显示以'-'开头的那一行
	skip n:跳过前n行
	delims:分隔符
	tokens=2:仅显示分隔符分割后的第2个字段
find "abc" /V:不显示含有“abc”的那一行	
:zs
  • 查看存活主机
    存活主机

确定可利用目标

  • 确定补丁:
    补丁

  • 查看远程主机共享资源
    共享资源

  • 判断那些主机域管理员登录过
    寻找域管理员登录过的主机

单主机

查看本地用户

本地用户

查看本地用户组及组内用户

组与组内用户

查看用户对应的组

用户对应的组

存活判断

最常用的就是ping,需要注意的一点是有些主机禁止了ping的功能,所以说ping不通主机不一定不存活。
存活判断

端口扫描

在渗透测试过程中最常用的端口扫描工具是namp,在对主机进行端口扫描前其会先通过ping判断主机是否存活如果存活才会继续对其进行端口扫描。上面提到过有些主机禁ping,所以在应对这类主机时可以使用-Pn来跳过ping的过程直接对主机进行端口扫描。常用的端口扫描命令如下:
端口扫描其中 -sV是指明判断端口对应的服务及版本,-O用于指明探测主机操作系统类型,系统类型影响着我们后期payload的选择。还可以通过-oX来将扫描结果导出为xml格式从而与其他工具联动实现更高的自动化,比如Eyewitness。针对于主机的渗透中,主机的漏洞点就是其开启的端口及对应的服务,对于各种服务可能存在的漏洞或者利用方式如下表所示:

端口号端口说明攻击技巧
21/22/69ftp/tftp:文件传输协议爆破\嗅探\溢出\后门
22ssh:远程连接爆破OpenSSH;28个退格
23telnet:远程连接爆破\嗅探
25smtp:邮件服务邮件伪造
53DNS:域名系统DNS区域传输\DNS劫持\DNS缓存投毒\DNS欺骗\利用DNS隧道技术刺透防火墙
67/68dhcp劫持\欺骗
110pop3爆破
139samba爆破\未授权访问\远程代码执行
143imap爆破
161snmp爆破
389ldap注入攻击\未授权访问
445smb永恒之蓝
512/513/514linux r直接使用rlogin
873rsync未授权访问
1080socket爆破:进行内网渗透
1352lotus爆破:弱口令\信息泄漏:源代码
1433mssql爆破:使用系统用户登录\注入攻击
1521oracle爆破:TNS\注入攻击
2049nfs配置不当
2181zookeeper未授权访问
3306mysql爆破\拒绝服务\注入
3389rdp爆破\Shift后门
4848glassfish爆破:控制台弱口令\认证绕过
5000sybase/DB2爆破\注入
5432postgresql缓冲区溢出\注入攻击\爆破:弱口令
5632pcanywhere拒绝服务\代码执行
5900vnc爆破:弱口令\认证绕过
6379redis未授权访问\爆破:弱口令
7001weblogicJava反序列化\控制台弱口令\控制台部署webshell
80/443/8080web常见web攻击\控制台爆破\对应服务器版本漏洞
8069zabbix远程命令执行
9090websphere控制台爆破:控制台弱口令\Java反序列
9200/9300elasticsearch远程代码执行
11211memcacache未授权访问
27017mongodb爆破\未授权访问

防火墙判断

kali提供了防火墙检测工具用于检测目标是否有防火墙保护,具体用法如下:
防火墙检测

主机漏扫

Nessus是一款不错的漏洞扫描工具,它提供了免费版及收费版,免费版在功能上相对于收费版略逊色一些但是也够用了。个人经常应用这款工具来对主机进行漏洞扫描。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值