传输格式:
JSON
XML
WEBSOCKETS
HTML
二进制
websockets:聊天交互软件常见
传输格式:
JSON
XML
WEBSOCKETS
HTML
二进制
websockets:聊天交互软件常见
问题点:命令执行时执行结果不回显
执行回显/不回显的原因:代码层面调用问题以及没有输出测试等。
解决办法(命令执行存在的前提下):
①反弹权限
参考文章:https://cloud.tencent.com/developer/article/1906240
②数据外带
使用DNSLOG或者类似yakit存在反连功能的工具,执行命令,查看是否能够执行命令
③延迟判断
在F12检查,就可以看到网页响应时间,使用命令ping -n 3 x.x.x.x(windows下延迟3秒),执行ping -c 3 x.x.x.x(linux下延迟3秒)对比是否有延迟,延迟则表示命令执行存在。
④写文件并访问
写一个静态文件或者可访问文件确定是否能执行命令,如url参数输入(xxxx/php?后)echo 123 > 1.txt 然后访问该txt的路径查看是否执行命令。
问题点:数据不出网
原因:主机或应用防火墙限制
解决:正反向反弹、隧道
反弹shell
目的:解决防火墙出入站规则限制、端口被占用、无法进行正向连接、数据不回显
正反向:reverse反向,bind正向
操作系统区别:windows通过powershell反弹,linux通过nc反弹
在线生成反弹shell:
WEB\APP\小程序\PC-burp\Yakit
抓包工具:
①burp
②yakit
一、抓包技术前提
安装证书:(用哪些抓包软件就要安装哪些软件的证书)
①浏览器安装证书:解决本地抓HTTPS报文
bp导出证书后安装证书,安装在:受信任的根证书颁发机构、中间颁发机构。
②模拟器安装证书:解决模拟器抓HTTPS报文
雷电模拟器为例子:将burp导出的的证书安装到模拟器
③真机器(指的是手机比如ios、鸿蒙、安卓)安装证书:解决真机器抓HTTPS报文
手机模拟器APP抓包:
1、模拟器安装了bp证书
2、在模拟器配置模拟器的网络。一般情况下,模拟器都是使用WIFI接入网络,因此在模拟器的WIFI配置中,设置“代理”,其中代理的ip地址为物理机的以太网适配器/无线局域网适配器的IP地址。而端口则配置一个不和其他要使用端口重复的端口号。
3、在burpsuite上,在监听设置处使用“specific address”配置第二步的IP地址(选择或设置成第二步的IP地址即可),端口也按照第二步的端口号进行配置。
可能遇到的问题:
①APP代理检测(抓不了包)
②APP证书校验(抓不了包)
③APP模拟器检测(运行不了)
小程序抓包:
1、需要使用转发工具:proxifier配合burpsuite
2、在proxifier上配置IP为127.0.0.1(与burp一样)端口为8888(与burp一样)
3、在proxifier上配置代理规则:应用程序处输入要抓的小程序名称.exe(打开小程序,打开任务管理器,在任务管理器中找到小程序的进程,右键进入小程序所在文件夹,找到小程序名称.exe);然后在“动作”设置成“proxy https 127.0.0.1”实现转发。
4、在proxifier代理规则处,将默认的规则的“动作”设置成“direct”,否则会转发大量的数据包无法正确抓到小程序的包。
PC应用抓包:
与小程序抓包同理。
yakit
抓包:使用MITM中间人劫持功能
配置:
1、免配置启动(需要谷歌浏览器)
2、参考burp,下载yakit的证书,安装,然后在yakit左上角系统设置
yakit与burpsuite的区别,抓APP的包时,在yakit的“劫持代理监听主机”处设置成0.0.0.0(监听所有网卡)
抓包工具联动:
1、流量从burpsuite处理再到yakit
①burp正常设置监听127.0.0.1:8088
②yakit设置监听127.0.0.1:8083
③Burpsuite->User options->Connections->Upstream Proxy Servers->添加一条上游代理(SSR-HTTP)
Destination host:目标网站域名或者IP,支持通配符,填写*
Proxy host:SSR-HTTP代理服务器的IP地址,即127.0.0.1
Proxy port:SSR-HTTP的代理端口,即1081
Authentication type:这里选择认证类型,由于SSR本地代理无需认证,这是选择None
2、流量从yakit处理再到burpsuite
①MITM交互式劫持处,“劫持代理监听主机”设置成127.0.0.1,“监听端口”设置8083,然后在“下游代理”处配置代理认证,如burp监听ip为127.0.0.1监听端口为8088,则设置成“http://127.0.0.1:8088”。意思是流量先从yakit的8083经过,再转发到burp的8088端口。
②burpsuit按照普通设置即可。
配置代理抓包:clash->burp->yakit
目的:目标需要梯子;ip需要隐藏
①clash使用全局代理
②burp配置上游代理:Burpsuite->User options->Connections->Upstream Proxy Servers
配置ip:127.0.0.1,配置端口7890(以clash为例子)
③此时浏览器或者系统代理监听burp端口如8888
④burp配置监听ip127.0.0.1,监听端口8888
yakit配置同理,因此从这里看出burp的upstream proxy 和yakit的下游代理是一个回事。
全局协议抓包:
使用工具:wireshark、科来
目的:
①解决部分代理校验:
APP/PC应用检测到物理机使用了代理后,设置策略拒绝被抓包。wireshark、科来抓的是网卡。
②APP/小程序/PC应用
由于应用类型不同,不是所有数据都是https
③蓝队分析TCP/UDP流量
1、操作系统
Linux(必备)、微软
2、负载均衡
DNS、F5、LVS、Nginx、OpenResty、HAproxy、负载均衡SLB(阿里云)
3、分布式框架
Dubbo、Motan、Spring-Could
4、数据库中间件
DRDS (阿里云)、Mycat、360Atlas、Cobar (不维护了)
5、消息队列
RabbitMQ、ZeroMQ、Redis、ActiveMQ、Kafka
6、注册中心
Zookeeper、Redis
7、缓存
Redis、Oscache、Memcache、Ehcache
8、集成部署
Docker、Jenkins、Git、Maven
9、存储
OSS、NFS、FastDFS、MogileFS
10、数据库
MySql、Redis、MongoDB、PostgreSQL、Memcache、HBase
11、网络
专用网络VPC、弹性公网IP、CDN
原文链接:https://blog.csdn.net/daijin888888/article/details/80160288
一、网站的细分
①主站
www.baidu.com
②分站
blog.baidu.com //也叫子域名
③端口站
www.baidu.com:8088
④目录站
www.baidu.com/zweb/
⑤子站
123.blog.baidu.com
了解目的:若其他网站失陷,主站可能会受到影响。比如主站和分站共用同一个公网IP地址。
关联步骤:信息搜集-子域名搜集
相关工具:御剑
二、数据库的细分
①本地数据库 //网站与数据库使用相同的公网IP
由本地服务器搭建
②分离数据库 //网站与数据库使用不同的公网IP
由其他服务器搭建
③云数据库
如阿里云云服务器专门起一个MYSQL,此时网站关联的数据库外网地址可能是:rm-xxxxxxxx.mysql.rds.aliyun.com(RDS) //可以设置白名单IP,因此站库分离的情况下,即便获取了数据库的账号密码,除非攻陷了白名单的IP,否则也无法连接数据库。
三、平台的细分
①系统:windows、linux、macos //涉及-提权
②容器:docker、K8s、vmware、virtualbox //涉及-需要使用虚拟机的逃逸技术
③中间件:apache、nginx、iis、lighttpd、tomcat、jboss、weblogic、websphere、jetty等 //涉及-能解析的文件类型不同
网站搭建差异:
① 宝塔搭建:需要绕过宝塔限制
②镜像环境搭建:需要提权横向
③docker容器搭建:需要逃逸提权
网站的前后端代码差异:
①前端:nodejs、vue等
②后端:php、java、python等
web使用的应用技术(影响渗透测试效果)
①WEB+WAF:网络应用防火墙
软件型WAF(如长亭的雷池)
硬件型WAF(如长亭的雷池)
云WAF
内置WAF
②WEB+CDN:内容加速
影响渗透测试:隐藏真实源IP,导致目标测试错误,如对一个CDN进行测试也不会对原网站造成影响。
③WEB+OSS :云存储如阿里云OSS
影响:文件上传漏洞,只能上传下载,但是不会解析代码,并且域名和网站没关系,因为域名是aliyun。
常见OSS:本机存储、从机存储、七牛、阿里云OSS、又拍云、腾讯云COS、onedrive、AWS S3
阿里云OSS的配置:使用API访问OSS时,需要使用AccessKey(包括AccessKeyId和AccessKeySecret)进行身份验证。
④WEB+反向代理
影响:渗透测试的目标只是一个代理为非真实的服务器,当前没有有效手段识别所进行渗透测试的IP是否为反向代理。
⑤WEB+负载均衡
影响:多个服务器加载服务,测试过程存在许多目标。如有多台服务器,渗透测试只对其中一台备份服务器进行了测试,而真正的主服务器不受影响。
PS:CDN和负载均衡的区别:CDN节点多,负载均衡少。通过超级ping等主动探测手段测试是否为CDN
漏洞库:https://www.yuque.com/u25571586/dyaqbugs?# 密码:xnzx
接口泄露:
swagger为例子:
登录接口:爆破密码
用户信息:枚举其他用户信息
文件上传:上传后门
票据交易:泄露敏感数据
鉴权
网站使用的身份鉴权的主要分类:
①Cookie(常见、简单)
②Session
③Token(主流)
④JWT(主流)
⑤oauth2(主流,中大型网站,第三方验证)等
参考:https://mp.weixin.qq.com/s/Z6rt_ggCA8dNVJPgELZ44w
-A
: 在指定链的末尾添加一条规则。-D
: 删除指定链中的规则。-I
: 在指定链中插入一条规则。-R
: 替换指定链中的规则。-L
: 列出指定链中的所有规则。-F
: 清空指定链中的所有规则。-Z
: 将指定链中的所有计数器清零。-N
: 创建一个新的用户定义链。-X
: 删除指定的用户定义链。-P
: 设置指定链的默认策略。-s
: 指定源 IP 地址或子网。-d
: 指定目标 IP 地址或子网。-p
: 指定协议(如 tcp、udp、icmp)。-j
: 指定目标动作(如 ACCEPT、DROP、REJECT)。-i
: 指定数据包进入的网络接口。-o
: 指定数据包离开的网络接口。--sport
: 指定源端口。--dport
: 指定目标端口。-m
: 指定扩展模块(如 state、limit、mac 等)。/etc/sysconfig/iptables
: 在某些 Linux 发行版中,这是 iptables
规则的保存文件。/etc/iptables/rules.v4
: 在某些发行版中,用于保存 IPv4 规则的文件。/etc/iptables/rules.v6
: 用于保存 IPv6 规则的文件。/proc/net/ip_tables_names
: 包含当前系统中所有 IP 表的列表。在路由器的接口
[g 0/0/0]ipv6 enable // 先启用ipv6
ipv6 add xx::xx 64 //类比ipv4
ipv6路由:osp v3
[r1] ospfv3 1
[r1-ospfv3-1]router-id 1.1.1.1 //v3需要配置id 类比ipv4
ospf v2 和 v3的区别:
1、v3 只要两边在同一个链路就能都成为邻居,不是同一个网段都可以。
2、通过instance id实现邻居建立
osfp v3 的LSA
8型LSA:每个设备都会对每个链路产生一个LINK-LSA,目的是向该链路上的其他路由器通告本接口的链路本地地址;同时通告本接口的ipv6前缀
对于IPv6,链路本地地址的前缀是FE80::/10,通常看到的链路本地地址形如FE80::XXXX
9型LSA 传递路由信息:只在所属区域传播,依赖拓扑信息
831
运维:
运维时将所有的网络设备使用同一个网段进行管理,比如192.168.254.x,这些ip是交换机的唯一IP地址,也就是桥ip。并且使用特殊的vlan号进行管理。
当某网络中。192.168.x.250-254作为X网段的网关,此时是主备,是两台交换机上的两个接口的物理地址,如果使用VRRP+MSTP则可能还有一个虚拟的网关地址如192.168.x.1
新的防火墙:替代了出口路由器 华为USG统一安全网关 也就是下一代防火墙
目前路由器交换机本质是转发,下一代防火墙的本质是控制。
防火墙的区域:防火墙需要划分安全区域,比如将某几个口划分到受信任域,其他为不受信或者DMZ,每一个接口只能被划分到一个安全域中。
其中,防火墙还有一个local区域,防火墙本身对外发送的报文视为从local区域发出,需要由防火墙接收而不是转发的报文,也在loical区域接收。
防火墙的模式:
透明桥:
路由:
透明桥:旧网络要加入防火墙,但是不便更改。此时使用透明桥模式,相当于一个交换机(非三层)
路由模式:相当于出口路由器(也就是将防火墙替换掉出口路由器)
混合模式:某些接口透明桥。某些接口路由。
注意到upnp会自动映射端口,出于安全考虑应该关闭upnp。upnp不是必要的。
VPN:IPsec、SSL MPLS-vpn、L2TP、PPTP、GRE vpn
专线:DDN、PTN、SDH
高级vlan:
hybrid:交换机的接口类型
使用场景:pc、服务器、交换机、路由器、语音终端、AP
必须使用hybrid的场景:一台交换机的接口属于不同vlan,且该接口需要传输多个非标签报文。比如 语音终端、AP
查看交换机接口类型:
[sw1]dis port vlan actice
当把hybrid当成access(不打标签)
int g 0/0/0
port hybrid pvid vlan 10 //将该接口划分成vlan10中
port hybrid untagged vlan 10 //不打标签
undo port hybrid vlan 1 //因为vlan1 是默认的pvid,也就是默认所属vlan,若不想允许vlan1 则可以去除。
把hybrid当trunk:
int g 0/0/1
port hybrid tagged vlan 10 //打上vlan10的标签
由于192.168.1.2和192.168.1.3属于不同vlan,他们不能互访,被隔离。
int g 0/0/1
port hybrid pvid vlan 30
port hybrid untagged vlan 10 20 30
int g 0/0/2
port hybrid pvid vlan 10
port hybrid untagged vlan 10 30
int g 0/0/1
port hybrid pvid vlan 20
port hybrid untagged vlan 20 30
基于MAC的vlan:
将所有接口的mac-vlan 都enable
[sw1-vlan10]mac-vlan mac-address xxxx-xxxx-xxxx
高级vlan
允许多个vlan用户在同一个网段。
在SW2创建聚合vlan30 该vlan是逻辑vlan,trunk不允许通过。
1、创建并进入vlan30 : int vlan 30
2 、给地址:ip add 192.168.1.1 24 //该地址是vlan10 vlan20的ip的网关地址
3、valn 30 聚合vlan 也叫父vlan
aggregate-vlan
access-vlan 10 20 //10和20为子vlan
vlan mapping :vlan转换
实现二层无缝连接,类似nat映射(但在企业网中使用并不多)
如上图,最关键的配置在SW2进行。
int g 0/0/1
qinq vlan-translation enable //关键命令,启动qinq vlan转换功能
pott link-type trunk
port trunk allow-pass vlan 100 //100相当于公网地址,如上图sw2会将30 31 转换为100 ,回包也会从100 转换成 30 31
port vlan-mapping vlan 30 to 39 map-vlan 100 //这里配置30 到 39 进行转换
注意:vlan-mapping映射只有报文携带tagged标签的时候才可以转换。也就是trunk或者hybrid(tag)才生效,access不行。
Qinq:标签嵌套标签
相同vlan端口隔离:二层隔离(ACL是在三层的隔离手法)二层交换机无法使用访问控制列表acl来进行隔离。
堡垒机:安全审计设备,和交换机差不多。
在sw上配置隔离组,在同一个隔离组中不能互访(接口)
[sw1] interface g 0/0/1
port-isolate enable group 1
interface g 0/0/4
port-isolate enable group 1 //此时,接口1 和 4 由于处于同一个隔离组中,它们之间不能互访。
mux vlan:二层vlan隔离技术
满足:同一个二层广播域,某些能互通,某些要隔离
核心操作:在sw将vlan 10 设置成主vlan,2成隔离型,3为互通型
separate 隔离型
group 互通型
其他接口 仍然按照配置access口配置,最后再加上port mux-vlan enable
端口安全(二层功能,限制的是mac) :目的是防止私接交换机
在交换机某个接口下 port-securiyt enable 就会开启接口安全,此时默认情况下,交换机的MAC地址表只能学习一个地址。
另外可有手动配置mac绑定:port-security mac-address sticky xxxx-xxxx-xxxx-xxxx vlan x
port-security 的保护动作有down接口(高危操作,接口会down,只能undo shutdown
二层ACL:也可以根据MAC进行控制
镜像流量:
在交换机(核心或者汇聚或者接入交换机)配置一个观察口,接收镜像流量。
[sw]observe-port 1 interface g 0/0/3 //如上图,将3口设置成观察接口
int g 0/0/2
port-mirroring to observe-port 1 both //将2 口的报文进出的流量镜像一份发给观察组1 (也就是3口)
如上图:镜像流量有三种 进出、进、出
检查配置:dis port-mirroring
dis observe-port
如上图:若是监控设备不在交换机或者路由器旁边,可以进行远程镜像。
在R1 observe-server destination-ip 5.5.5.5 source-ip 3.3.3.1
int g 0/0/0
mirror to observe-server both //将3.3.3.1的进出流量镜像后发送给5.5.5.5
‘
路由器的端口镜像:
注意:
1、一个接口只能是镜像或者观察,不能同时配置成两个
2、主接口做镜像,子接口也会被镜像
3、多个接口的镜像可以到一个观察口,对于交换机也可以将一个接口的流量镜像到多个观察口。
基于流的镜像:
命中acl的流量镜像到观察组
首先写一个acl xx
然后:int g 0/0/x
traffic-mirror inbound acl xx to observe-port 1 //将命中acl 3000 的数据流从观察口发出
MQC:
WLAN:
mac认证:手动配置mac允许如打印机、网络摄像头无法输入账号密码的设备接入无线网络。
可靠组网:
1、之前是MSTP+VRRP对网关、破环进行冗余备份。
2、堆叠+链路捆绑(ether-trunk)
什么是堆叠:
多台交换机用线缆连接后组合在一起,虚拟化成一台设备,是一种横向虚拟化技术(核心和核心,接入和接入等),在数据中心中则使用纵向虚拟化(核心和接入组合等)
华为堆叠技术:
CSS(框式交换机)
istack(盒式)
思科堆叠技术:VSS
华三堆叠技术:IRF
锐捷堆叠技术:VSU //各个厂商的堆叠技术不兼容
华为堆叠:登录一台设备就可以操作其他设备,最多可以堆叠9台。若结合跨设备链路聚合技术,可以实现链路的高可靠性备份、避免二层环路。
堆叠中,所有交换机都处于转发状态,分成主、备、从,如下图:
多台交换机堆叠之后,管理上变成一台,且只有一台主交换机。主交换机会进行选举,按照优先级选举。堆叠中只有一台备交换机,其余都是从交换机。登录时不管登录哪个都相当于登录主设备。
堆叠端口:
每台交换机的堆叠端口最多有两个
华为堆叠端口:
堆叠建立流程:
避免堆叠分裂:堆叠双主检测。
堆叠成功后登录哪个交换机都能操作其他交换机的接口,如两台50口交换机堆叠后变成100个。