VulnHub靶机- school | 红队打靶

VSole2023-07-03 08:57:34
kali的IP:192.168.56.102                                         靶机IP:192.168.56.111

主机发现

使用nmap进行主机发现

这里发现192.168.56.111为新增加的IP,即为靶机IP。

端口扫描

主要使用你马屁、进行存活端口探测,包括端口服务的版本,操作系统等信息

这里看到靶机开放了22,23,80端口。

22端口运行着ssh服务,23端口运行着一个不常见服务,但是23端口可以使nc链接,80端口运行着http服务。

web渗透

使用浏览器查看80端口的http服务,发现是一个登陆界面。

针对登录界面,首先使用弱口令进行尝试,发现账号密码为admin/admin123,同时也可以使用sql注入万能语句进行密码绕过,这里万能语句的位置在username栏中,也可以使用hydra进行爆破,hydra对不存在验证码的http表单爆破很有效果。

这里首先找到我们提交的数据会提交到哪一个文件中。

第二要找到用户数据的提交格式及内容

第三要找到验证失败的返回相应特征。

这些信息足够hydra进行爆破和判断,使用hydra进行爆破。

这里也成功得到密码。进入后台并没有发现可以直接利用的漏洞点。

查看也面源代码,发现了一个全新的参数地址

是一个可以进行文件上传的站点。上传一个webshell,这里使用kali自带的webshell

上传完成后,在页面源代码中发现了上传的地址,

对webshell进行访问触发。

成功触发。

提权

信息收集

信息 收集并没有有用的信息,发现我们有root目录的访问权限,并发现了一个名字为win的文件,

文件里面使用wine运行了一套windows的可执行程序,Wine是一个可在Linux和其他操作系统上运行Windows应用程序的兼容层。它模拟所有必要的Windows环境和API,使得Windows应用程序可以在Linux中运行,而不需要任何Windows环境或虚拟机。简单来说,wine可以将windows可执行程序的语句逐条翻译成linux系统可以理解的语句。

在win文件中提到的路径中我们发现了两个文件

将文件下载下来放到windows环境中运行。

缓冲区溢出的利用

首先查看系统进程,

运行exe程序以后,再次查看进程,发现系统开启了23端口,

程序运行结果如图:

使用kali连接端口发生发送数据,这里手动发送数据太慢了,直接使用脚本,

这里使用2000个字符导致报错,使用msf-pattern_create生成一个2000个长度的字符串用于定位。理论上这个方法可行,但是实际上不知道为什么这里的字符串传不进去。我们换一种思路,首先生成1800个0,再用msf-pattern_create生成一个200长度的字符串,再进行查找。具体如下

经过调整以后成功获得偏移量,偏移量为1902,也就是说,1903,1904,1905,1906为EIP的位置,这里调整exp进行验证。

这里看到eip全部被B覆盖,接下来要查询坏字符。

可以使用github上面的脚本badchars进行生成所有字符,在用脚本传进去,传到我们要放置语句的地方,通过返回结果查看是否存在坏字符。

从00到ff之间有间隔,所以肯定有坏字符。经过测试,所有的坏字符为\x4d\x4f\x5f\x79\x7e\x7f。eip寄存器里面放着下一条语句执行的寄存器的位置,我们通过输入字符发现缓冲去溢出以后字符会先覆盖eip,后覆盖esp。所以我们能写入语句的位置使esp,所以在eip寄存器中要实现将程序跳转到esp中,但是eip中只能存放下一条语句的位置,所以我们要在程序中找到一条这样的语句,语句的功能使跳转到esp中,将这条语句的地址写入eip中,当程序进入eip以后就会执行跳转指令,跳到esp中执行恶意语句。明确思路以后就要进行操作。在汇编语言中语句jmp esp表示跳转到esp中,但是寄存器里面不可能存放一条语句,他存放的是语句的操作码,操作码都是固定的,可以直接搜索得到,也可以使用工具msf-nasm_shell实现,msf-nasm_shell是Metasploit框架中包含的一个交互式的汇编语言环境。

得到机器码以后要在程序中找到存在跳转语句的地方。在调试器左下角调用python脚本显示所有模块,

选择其中false多的选项,这里使用第二个,再在这个模块里面搜索jmp esp指令。

这里有两个地址里面的内容都是jmp esp,选择一个地址放在eip的位置上。继续构造payload,使用msfvenom生成paypoad。

-p指定生成payload的类型,-f c是指定payload以c语言源码的形式输出出来,-b指定的是payload中不能出现的字符,这里都是刚刚发现的坏字符,不管在什么语言里面,\x00都表示截断,是坏字符,最后一个参数的意思表示如果程序崩溃,就以线程的形式结束程序。构造如图所示的最终利用脚本。

这里eip中 地址和我们寻找的地址相反,这里存在一个小端显示的问题,可以自己搜索,在加payload之前要添加几个字符表示划过,不要让payload和eip挨得太近,防止出现问题。注意要将IP地址修改为靶机地址,我们不是要渗透我们的windows机器。这里进行连接测试。

成功反弹shell,但是看起来是windows的shell,使用dir查看发现就是linux的根目录。

其实这里是将win的z盘映射在了linux的根目录中,至此靶机渗透测试结束。

payload字符
本作品采用《CC 协议》,转载必须注明作者和本文链接
1、文档连接钓鱼 1)LINK链接钓鱼 2)LINK快捷方式钓鱼 3)CHM文档钓鱼 CHM文档bypass waf 4)HTA钓鱼 5)宏钓鱼 宏钓鱼 bypass waf 6)OLE(Object Linking and Embedding,对象链接与嵌入) 7)嵌入JS元素 8)利用模板文件注入宏指令 9)CVE 2、伪造界面钓鱼 1)PPT动
01目录扫描分析代码这是一道很好反序列化字符串溢出的题目,首先打开容器看到这是一个上传点先进行目录扫描,
实战oracle注射获取真实数据,思路和利用过程全记录!
记一次网站渗透过程
2022-09-13 08:37:27
前几天记录某一次无意点开的一个小网站的渗透过程,幸运的是搭建平台是phpstudy,cms是beecms,beecms有通用漏洞,然后去网上找了资料,成功getshell并获取服务器权限。
一、序言 记录某一次无意点开的一个小网站的渗透过程,幸运的是搭建平台是phpstudy,cms是beecms,beecms有通用漏洞,然后去网上找了资料,成功getshell并获取服务器权限。 二、渗透过程 1. 无意点开一个网站,发现网站比较小,且看起来比较老,然后发现logo没有改,于是乎去百度搜索这个cms,发现有通用漏洞,这里贴一个链接:Beecms 通用漏洞(https://lin
对于安全社区来说,Web应用防火墙(WAF)似乎一直以来都是一个大家默认都要使用的东西,而且几乎也没有人会反对使用Web应用防火墙。在这篇文章中,我们将给大家提供一个新的视角去看待WAF,并会对Web应用防火墙的使用效率问题与替代性技术进行深入探讨。
浅析JWT安全问题
2022-08-08 15:44:18
观察确定为JWT,将payload字符base64解码得??把sub的wiener修改为administrator,重新传参??成功越权,然后就是删除用户即可?然后前往jwt.io生成我们需要的的jwt,把sub和secret进行修改??重新传包,成功?
为解决实验室,编辑会话cookie中的序列化对象以利用此漏洞并获得管理权限。然后,删除 Carlos 的帐户。您可以使用以下凭据登录自己的帐户:wiener:peter解决方案此实验与权限提升有关,我们使用bp抓包,重点关注cookie1.登录,查看我的账户页面,bp发现cookie内容是序列化的。在Repeater中替换cookie,已经有了admin权限。
在一些开启了 Hyper-V 的电脑上,RouterOS 可能无法在 VMWare Workstation 中模拟运行或启动非常缓慢,如果遇到无法运行的情况,请酌情考虑关闭 Hyper-V,如果能成功运行但是启动缓慢,可以及时拍摄快照。
0x01 %00绕过WAF输入一个单引号页面报错首先闭合,这里用')闭合keywords=1') %23. order by x 被拦截,用--%0a代替空格即可直接上union select会一直卡着,没有任何返回把空格都改为--%0a,成功响应,在 select 跟 1,2,3... 之间用两个 --%0a 会无响应在 1 后面加上?并 url 编码,原理是 waf 把空字节认为是结束导致了后面的语句可以绕过0x02 Base64绕WAF发现参数为 base64 编码测试字符发现页面报错,使用报错注入来出数据133 and updatexml. 这里可以使用16进制或者科学计数法0x1或1e1keywords=11'and-updatexml
VSole
网络安全专家