渗透测试之信息搜集(Nmap、Burp)
渗透测试流程
渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统是否安全的一种方法。
渗透测试流程主要分为5点:
1、信息收集
2、威胁建模(做分析)
3、渗透测试
4、后渗透测试(提权,内网渗透)
5、形成报告
渗透测试分类
渗透测试一共分为两种类型:
黑盒测试
在授权的情况下模拟黑客的攻击方法和思维方式,来评估计算机网络系统可能存在的安全风险。
白盒测试
相对于黑盒测试,白盒测试基本上是从内部发起的,根据已知的信息进行渗透测试,发现风险。
渗透测试工具
漏洞利用类:sqlmap Beef、菜刀等
信息收集类:nmap、御剑、Google hacking等
漏洞扫描:AWVS、WebScan、Appscan等
综合平台类:burp
nmap
这里只列出nmap最基本用法,想要了解nmap全部的用法,请在nmap中使用 nmap -h
参数
常用参数
-sT TCP connect()扫描,这种方式会在目标主机的日志中记录大批的链接请求以及错误信息。
-sP ping扫描,加上这个参数会使用ping扫描,只有主机存活,nmap才会继续扫描,一般最好不加,因为有的主机会禁止ping,却实际存在。
-sS 半开扫描,一般不会记入日志,不过需要root权限。
-sU udp扫描,但是一般不可靠,
-sA 用来穿过防火墙的规则集,速度慢。
-sV 端口服务及版本
-A 包含了-sV,-O,全面系统检测,启动脚本检测,扫描等。
-P0 扫描之前不使用ping,适用于防火墙禁止ping,比较有用。
-v 显示扫描进程
-O 探测目标系统的漏洞,容易误报
-oN/-oX/-oG 将报告写入文件,格式分别为正常(自定义.txt),XML,grepable.
-iL 扫描主机列表
-sC –script=default 默认的脚本扫描,主要是搜集各种应用服务的信息
主机发现
-sL 仅仅是显示,扫描的IP数目,不会进行任何扫描
-sn ping扫描,即主机发现
-Pn 不检测主机存活
-PS/PA/PU/PY[portlist] TCP SYN Ping/TCP ACK Ping/UDP Ping发现
-PE/PP/PM 使用ICMP echo, timestamp and netmask 请求包发现主机
-PO[prococol list] 使用IP协议包探测对方主机是否开启
-n/-R 不对IP进行域名反向解析/为所有的IP都进行域名的反响解析
扫描技巧
-sS/sT/sA/sW/sM TCP SYN/TCP connect()/ACK/TCP窗口扫描/TCP Maimon扫描
-sU UDP扫描
-sN/sF/sX TCP Null,FIN,and Xmas扫描
–scanflags 自定义TCP包中的flags
-sI zombie host[:probeport] Idlescan
-sY/sZ SCTP INIT/COOKIE-ECHO 扫描
-sO 使用IP protocol 扫描确定目标机支持的协议类型
-b “FTP relay host” 使用FTP bounce scan
指定端口和扫描顺序
-p 特定的端口 -p80,443 或者 -p1-65535
-p U:PORT 扫描udp的某个端口, -p U:53
-F 快速扫描模式,比默认的扫描端口还少
-r 不随机扫描端口,默认是随机扫描的
–top-ports “number” 扫描开放概率最高的number个端口,出现的概率需要参考nmap-services文件,ubuntu中该文件位于/usr/share/nmap.nmap默认扫前1000个
–port-ratio “ratio” 扫描指定频率以上的端口
服务版本识别
-sV 开放版本探测,可以直接使用-A同时打开操作系统探测和版本探测
–version-intensity “level” 设置版本扫描强度,强度水平说明了应该使用哪些探测报文。数值越高,服务越有可能被正确识别。默认是7
–version-light 打开轻量级模式,为–version-intensity 2的别名
–version-all 尝试所有探测,为–version-intensity 9的别名
–version-trace 显示出详细的版本侦测过程信息
脚本扫描
-sC 根据端口识别的服务,调用默认脚本
–script=”Lua scripts” 调用的脚本名
–script-args=n1=v1,[n2=v2] 调用的脚本传递的参数
–script-args-file=filename 使用文本传递参数
–script-trace 显示所有发送和接收到的数据
–script-updatedb 更新脚本的数据库
–script-help=”Lua script” 显示指定脚本的帮助
OS识别
-O 启用操作系统检测,-A来同时启用操作系统检测和版本检测
–osscan-limit 针对指定的目标进行操作系统检测(至少需确知该主机分别有一个open和closed的端口)
–osscan-guess 推测操作系统检测结果,当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配,Nmap默认进行这种匹配
防火墙/IDS躲避和哄骗
-f; –mtu value 指定使用分片、指定数据包的MTU.
-D decoy1,decoy2,ME 使用诱饵隐蔽扫描
-S IP-ADDRESS 源地址欺骗
-e interface 使用指定的接口
-g/ –source-port PROTNUM 使用指定源端口
–proxies url1,[url2],… 使用HTTP或者SOCKS4的代理
–data-length NUM 填充随机数据让数据包长度达到NUM
–ip-options OPTIONS 使用指定的IP选项来发送数据包
–ttl VALUE 设置IP time-to-live域
–spoof-mac ADDR/PREFIX/VEBDOR MAC地址伪装
–badsum 使用错误的checksum来发送数据包
Nmap 输出
-oN 将标准输出直接写入指定的文件
-oX 输出xml文件
-oS 将所有的输出都改为大写
-oG 输出便于通过bash或者perl处理的格式,非xml
-oA BASENAME 可将扫描结果以标准格式、XML格式和Grep格式一次性输出
-v 提高输出信息的详细度
-d level 设置debug级别,最高是9
–reason 显示端口处于带确认状态的原因
–open 只输出端口状态为open的端口
–packet-trace 显示所有发送或者接收到的数据包
–iflist 显示路由信息和接口,便于调试
–log-errors 把日志等级为errors/warings的日志输出
–append-output 追加到指定的文件
–resume FILENAME 恢复已停止的扫描
–stylesheet PATH/URL 设置XSL样式表,转换XML输出
–webxml 从namp.org得到XML的样式
–no-sytlesheet 忽略XML声明的XSL样式表
其他
-6 开启IPv6
-A OS识别,版本探测,脚本扫描和traceroute
–datedir DIRNAME 说明用户Nmap数据文件位置
–send-eth / –send-ip 使用原以太网帧发送/在原IP层发送
–privileged 假定用户具有全部权限
–unprovoleged 假定用户不具有全部权限,创建原始套接字需要root权限
-V 打印版本信息
-h 输出帮助
burp
burp界面
主要模块:
/1. Target(目标)——显示目标目录结构的的一个功能。
/2. Proxy(代理)——拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
/3. Spider(蜘蛛)——应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
/4. Scanner(扫描器)——高级工具,执行后,它能自动地发现web 应用程序的安全漏洞。
/5. Intruder(入侵)——一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。
/6. Repeater(中继器)——一个靠手动操作来触发单独的HTTP 请求,并分析应用程序响应的工具。
/7. Sequencer(会话)——用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
/8. Decoder(解码器)——进行手动执行或对应用程序数据者智能解码编码的工具。
/9. Comparer(对比)——通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差异”。
/10. Extender(扩展)——可以让你加载Burp Suite的扩展,使用你自己的或第三方代码来扩展Burp Suit的功能。
/11. Options(设置)——对Burp Suite的一些设置。
/12. Alerts(警告)——Burp Suite在运行过程中发生的一写错误。
使用前的准备:
建议使用火狐浏览器,点击选项à在网络设置选择设置à选择手工代理配置(在HTTP代理改为127.0.0.1,端口可以设置为8080,将不使用代理里面的:localhost等数据删除),如果正常使用浏览器则将改为系统代理设置完成
选择成功后我们进入百度,会发现proxy会得到一个GET请求,点击Forward让请求通过。
在Target我们可以看到通过的网址,这里我们可以使用爬虫或者进行扫描。
Spider this host:使用爬虫
Actively scan this host:主动扫描
Passively scan this host:被动扫描
PS:主动扫描和被动扫描的区别在于,被动扫描需要我们一个个点击网站才能进行扫描。同时我们需要将Intercept is OFF。
Burp之暴力破解
注意,接下来的操作进行在本机搭建的环境中
关于爆破:我们必须通过Burp Suite代理功能使我们能够截获数据,并修改请求,为了拦截请求,并对其进行操作。并设置Burpsuite Proxy处于监听状态:
举个例子:
假设我们已经知道一个用户的密码是弱密码,账号为admin,那接下来我们就可以使用burp来进行破解
第一步:
我们在留言板的登陆框中输入测试用户名:admin和密码(随意输入便于查找参数即可),点击【立即登陆】
这时候登陆的请求就被Burpsuite抓取到了,回到Burpsuite主界面:
可以看到输入的测试用户名密码赋值给了user_name参数和user_pw参数,
找到用户名密码的参数就好办了。
第二步:
在此空白处右键,选择【send to lntruder】
点击主菜单的【lntruder】分别设置 目标【HOST】和【Por】t,若使用HTTPS,则勾选【use HTTPS】。我这里没使用
第三步:
在Intruder-Position中设置,将自动设置的position【Clear】掉,然后在请求中user_pw的地方点击【Add】添加position,设置攻击类型为【Sniper】
在Intruder-Payloads中设置攻击载荷,选择number方式破解,并添加范围与长度
下一步:设置线程数量等。
最后:点击主菜单中的【Intruder-Start attack】开始攻击。
在结果列表中,通过Length排序,选出长度与其他不同的一个,我们可以看到123456的Length值与其他不同,说明123456就是我们破解出的密码:
看看能不能登陆。
第四步:登录成功
相关文章
- 1条评论
- 竹祭雾夕2022-06-04 15:00:30
- –script-updatedb 更新脚本的数据库–script-help=”Lua script” 显示指定脚本的帮助OS识别-O 启用操作系统检测,-A来同时启用操作系