其中以我目前浅显的做题记录来看,cname和txt会用得稍微多一些,可以进行留意,比如下面这题,就把flag藏在了txt解析里
3.IP地理位置查询
这个没什么好说的,扔两个网站,再盒一下自己
国内:站长工具https://ip.tool.chinaz.com/
国外:https://www.ipaddressguide.com/ip2location
(二)基本的网站扫描技术:主机发现,目录爆破,端口扫描,OS及服务版本探测
如果说前面都是在网站这座房子外面看看样子踩踩点,现在要准备进屋了:D
PS:为了方便理解实践和我自己检索,这一部分关于msf和nmap的部分我会以软件为单元单独拎出来写
2-1-ping命令进行主机探测
伟大,无需多言,最古老传统的命令,用发送ICMP报文的方法检测活跃主机_(想了想就不在这里写ICMP报文了,感觉好像现在也没遇到需要了解这个的题)_
2-2-后台扫描
如果说前面外围信息搜集是在周围踩点,主机检测是敲敲门看看主人在不在家,那么后台扫描(这玩意和目录爆破严格来说不太一样,但在实际操作中也不是很区分)就是去找网站这座房子有哪些可以进去的门(以便更好地下手),这方面我个人常用的工具有御剑、dirsearch、和msf
听名字就可以知道,这种操作的本质其实就是爆破,通过对常用关键字的大量猜测,并根据返回的状态码扫描出可能存在的后台和文件,所以字典是必须的,一定程度上还决定了扫描的结果,当然dirsearch和msf自带字典,这里也提供一些常用的字典(其实GitHub上还挺多的)
https://github.com/rootphantomer/Blasting_dictionary
1.御剑扫描
不用我多说了吧,简单易懂的图形化页面,配好字典就可以开扫了
2.dirsearch
用得最多的一个工具,kali自带
dirsearch -u http://example.com --默认方式扫描,线程数为 20,不递归
dirsearch -u http://example.com -w <字典文件路径> --指定字典文件
dirsearch -u http://example.com -e <扩展名> --指定拓展名
dirsearch -u http://example.com -r --递归扫描
dirsearch -u http://example.com -t 20 --指定线程数
dirsearch -u http://example.com -o /path/to/output.txt --指定输出文件路径
dirsearch -u http://example.com --proxy http://127.0.0.1:8080 --使用代理
dirsearch -u http://example.com -m POST --指定请求方法,此处为post
dirsearch -u http://example.com -H "Authorization: Bearer token" --指定请求头
dirsearch -u http://example.com -H "Authorization: Bearer token" --指定排除的状态码
dirsearch --version --显示版本信息
还是拿tykd.com这个网站进行实操
比如我们通过扫描help/service这个页面
在实际渗透和做题中我们可以通过这种方法找到网站表面没有给出,但要实际进行攻击的页面
需要注意的是,由于扫描的原理其实是多次尝试爆破,频繁的请求其实会被服务器的WAF发现并采取应对措施,下图是服务器端的防火墙,在检测到频繁的请求后会对此IP采取封印措施
下图则是满屏相同的found 503,并且在访问后发现虽然扫出来了,但跳转的还是主页面,说明服务器端可能做了重定向,并且http的状态码是可以人为设定的,我们所采用的后台扫描软件可能会被欺骗,不过如何绕过WAF的这些措施又是后话了,毕竟这只是萌新向笔记
2-3-万能瑞士军刀 metasploit
mfs全程metasploit-framework,一款功能极其强大的渗透框架,分为六个模块
Exploit 模块:用于攻击已知的安全漏洞。
Payload 模块:这些是注入目标系统并执行的代码片段,分为单模式(仅需发送一次即可执行)和阶段模式(需要先建立连接再发送剩余部分)。
Auxiliary 模块:这包括了各种非漏洞利用的任务,如扫描、拒绝服务攻击、SQL注入工具等。
Post 模块:用于在成功入侵后进行后续操作,例如提升权限、收集信息等。
Encoder 模块:用于编码payload以绕过防护机制。
Nop 模块:生成NOP滑板(No Operation),通常与exploit一起使用
我们今天基本只会讲auxiliary这个模块 才不是因为其它我都不太会呢
首先输入msfconsole进入控制台
稍微用show exploits和show auxiliary可以看到模块真的非常之多,但作为萌新,我们只要搞清楚search、use、set和run就暂时够用了
①后台扫描
use auxiliary/scanner/http/dir_scanner
set THREADS 20
set RHOSTS http://tykd.com
还是对着目标网站进行一次扫描,可以看到扫出了预期结果
② 主机发现
Metasploit 中提供的主机发现模块模块位于Metasploit 源码路径的modules/auxiliary/scanner/discovery/ 目录中,在用的时候我们只需要如法炮制,将上面说过的use路径替换一下
主要有以下几个:arp_sweep、ipv6_multicast_ping、ipv6_neighbor、ipv6_neighbor_router_advetisement、 udp_probe、udp_sweep
其中两个常用模块的主要功能为:
arp_sweep:使用 ARP 请求枚举本地局域网络中的所有活跃主机。
udp_sweep:通过发送 UDP 数据包探查指定主机是否舌跃,并发现主机上的 UDP 服务。
sudo msfconsole
use auxiliary/scanner/discovery/arp_sweep
//UDP:use auxiliary/scanner/discovery/udp_sweep
set RHOSTS 192.168.144.0/24
set THREADS 2
run
arp扫到的本地网络主机
udp只扫出了两个DNS服务器(说实话我不是很懂这个是什么QAQ),没有发现udp服务
③ 端口扫描(虽然这个我一般用nmap)
use auxiliary/scanner/portscan/syn
set RHOST 47.56.157.205
set THREADS 20
run
④ 服务状态扫描
use auxiliary/scanner/telnet/telnet_version
set RHOSTS 47.56.157.205
set THREADS 5
run
use auxiliary/scanner/ssh/ssh_version
set RHOSTS 47.56.157.205
set THREADS 5
run
2-4-扫描神器,上帝之眼 nmap
① 主机发现
-sn(ping扫描方式):nmap -sn 192.168.1.0/24 --快速发现网段内存活主机
② 端口扫描(重点)
Nmap通过探测将端口划分为6个状态:
open:端口是开放的。
closed:端口关闭,没有服务监听,但主机是活动的。
filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。
unfiltered:端口没有被屏蔽,但是否开放需要进一步确定(通常用于 ACK 扫描)。
open|filtered:端口是开放的或被屏蔽(通常用于 UDP 扫描)。
closed|filtered :端口是关闭的或被屏蔽(较少见)。
nmap的各种不同参数十分全面,用好了能解决很多问题,鉴于这是萌新向笔记和篇幅原因,这里先扔下一些我最常用的
-sS(TCP SYN 扫描 )nmap -sS 192.168.1.0/24 也是nmap的默认扫描方式,在没有输入参数的时候默认使用这种方式
-sV(服务版本检测 )nmap -sV 47.56.157.205 识别目标主机上运行的服务及其版本信息,下面是理想情况
但实际操作有时候会出现这种情况(防火墙的原因?)可以另寻他法
-p(扫描指定端口)nmap -p <端口范围> <目标>
常用格式
****
格式
描述
-p 80
扫描单个端口(如 80)。
-p 80 443
扫描多个端口(如 80 和 443)。
-p 1-100
扫描端口范围(如 1 到 100)。
-p-
扫描所有 65535 个端口。
-p U:53,T:80,443
扫描指定协议的端口(如 UDP 53 和 TCP 80、443)。
-O (设备信息和操作系统探测)nmap -O 47.56.157.205
感觉这个好像靠猜给出概率,扫了一下我自己的服务器,因为部署的服务比较少,所以除了web服务器外的信息都不是很准
-A(激进模式)nmap -A 47.56.157.205
如果希望对某台主机进行完整全面的扫描,那么可以使用nmap内置的-A选项。使用了改选项,nmap对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认NSE脚本扫描,-A可能会绕过某些防火墙或服务限制,获取更详细的信息。
下面是对-A扫描结果的大致解析
-F (快速模式)nmap -F -sV 47.56.157.205
快速扫描模式,只扫描常用的 100 个端口(可以与其他-s参数一起使用)。
如果你跟着文章进行了实践,你会发现有时候完成一次完整的扫描会比较久,除了调整线程数,我们还可以通过-F只扫描一百个最常用的端口,当然,这可能会有一些遗漏,但会大大加快扫描速度
(三)网站的备份和代码泄露
这部分不具体写,因为感觉属于方法大于思路的知识,不看不知道,做一遍基本就会了,重要在实际运用,给同学们推荐ctfhub和ctfshow上面都有关于这个知识点的系统题目和环境,wp的话看下面这篇CSDN大佬写的,感觉知识点讲解方面比我自己写的具体多了,所以就懒得动手了
robots.txt
ndex.phps源码泄露
www.zip泄露
.git泄露
.svn泄露
.swp vim泄露
https://blog.csdn.net/qq_49399033/article/details/136239357
其中cookie这题可以着重留意下,cookie / sessions / token / jwt 都是CTF非常容易出题的点
另外,虽然做题要一题一题熟悉原理,但其实在实际操作中备份文件的扫描也可以在更换字典后用msf的目录爆破的模块完成(毕竟原理一样)
/index.sql
/www.sql
/bak.sql
/backup.sql
/tz.php
/index.php.swp
/www.zip
/index.phps
/.bzr
/CVS
/WEB-INF/web.xml
/.svn
/.hg
/.DS_Store
/.git
/index.php.bak