msf udf提权

PTES流程 PTES:渗透测试标准过程执行规范或指南 * 前期交互 * 与用户交流沟通,以及了解测试需求、引导用户接受测试方案阶段。合同,保密协议,约定或约束,授权。收费:次,周期:安全服务类 * 情报或信息收集 * 收集组织下的有效资产:指纹识别、googlehacking

PTES流程

PTES:渗透测试标准过程执行规范或指南

    * 前期交互

              * 与用户交流沟通,以及了解测试需求、引导用户接受测试方案阶段。合同,保密协议,约定或约束,授权。收费:次,周期:安全服务类

    * 情报或信息收集

              * 收集组织下的有效资产:指纹识别、googlehacking、域名/子域挖掘、资产识别:设备、系统、数据、应用、网络、人员、制度....

    * 威胁建模

              * Att&ck的APT攻击链形成攻击模型,有效攻击的途径

                * 如:由于发现目标主机开放445端口,且通过nmap发现服务为。。。。,又通过指纹识别技术结合。。。工具发现目标主机的操作系统为server 2008 r2,根据ms漏洞库比较得到存在ms17-010漏洞。因此可利用ms17010对目标展开主机系统访问控制。

    * 漏洞分析

              * CVE......445开放,。。

    * 渗透测试

              * 结合建模及分析实战,通过渗透测试技术,软件/工具,战术获得目标的访问控制权限

    * 后渗透测试

              * 在获得边界权限后,所做出的一系列操作:提权,横向,纵向,越权,会话维持,

    * 报告

              * 编写专业的方案/文档

根据PTES,渗透测试流程,

信息收集:

扫描IP地址

-p模拟真实环境采用被动模式,防止被检测出大规模扫描但耗时较久

扫描端口

扫出22端口对应版本

nmap采用不同命令,这里用-sV --script=auth提示了版本以及对应可能存在的利用方式

指纹识别

访问80端口,发现有wordpress但无法正确解析,修改hosts文件192.168.218.179  raven.local

成功访问

浏览器插件指纹识别

也可以用kali的whatweb命令进行指纹识别

目录探测

在尽可能不用dirsearch这一类大规模扫描插件的前提下,可以进行目录猜测,看看有没有加固,先下载一个wordpress,浏览他的自带目录看看会不会访问到,经过尝试,这里是可以的

为了直观,这里就用工具了

扫出登录页面

威胁建模

根据PTES步骤,收集信息的下一步是威胁建模

端口22的威胁建模

主机:192.168.218.179 -->22端口的威胁建模

发现的内容:

目的是为后续的渗透测试设计攻击链

通过nmap发现端口22开放,且版本对应openssh6.7,通过漏洞库比较发现该版本已知编号

SSV-90447的漏洞,该漏洞指向客户端信息泄漏和溢出漏洞,通过exploit-db发现用户名存在枚举问题,因此可以推测根据用户名来进行密码爆破,从而获得目标的访问控制权

战术:暴力破解

方法:

        用户名如何枚举:利用msf的scanner/ssh/ssh_enumusers模块,设置RHOSTS为靶机地址,设置密码字典路径为rockyou.txt

        密码字典如何获得:利用kali自带的rockyou的压缩包,cp到本地进行解压利用

软件:

        kali虚拟机

        msf

        ssh暴力破解软件:hydra(海德拉),Medusa(美杜莎)

mysql的威胁建模

漏洞分析

        根据威胁建模,选择ssh的威胁建模进行尝试能不能爆破,

尝试通过,ssh可以进行暴力破解

用locate看kali自带的rockyou地址,这个比较小,完全体有100G,小但也够了

通过枚举用户名出来的名字,只有michael和steven是可以用的,这里举个例子

通过cat /etc/passwd,可以看到在我本机kali里,就有nobody这个用户,但是是设置成nologin的也就是无法登录,其他扫出来的用户都是这样排除掉

渗透测试

在漏洞分析完成之后进行的下一步,目标是获取shell权限

漏洞验证成功,根据威胁建模的下一步,选择用海德拉(hydra)进行已知用户名的ssh密码爆破

1.新建一个user.txt,把刚才爆出来的两个用户名输进去

2.

hydra -L user.txt -P /home/kali/rockyou.txt 192.168.218.179 ssh -Vv -f

用kali尝试ssh登录

成功登录

登录就尝试能不能查看敏感信息,查看linux服务器默认的位置/var/www/

成功访问到了配置文件

尝试登录

成功登录,并且还得了两个账户的数据库账号信息

默认数据库加密都是md5,但我收藏的网站?

又去网上找了一个,我只能说你不解密,有的是人来解密

这是steven的密码

当然现在获取了数据库的管理员权限,我们可以直接更改密码,但为了隐蔽性,能直接破解密码就直接破解密码,从结果上来说,这里确实不好直接更改密码,因为这样我们还是会不知道steven的ssh密码,当然我们也可以照常提权,但是无法获得steven的ssh权限,就无法用常规的sudo -l维持系统权限提权了(只能用威胁建模的第二个mysql提权方式)

成功在前端登录了steven账号,尝试看看steven的ssh是不是也是这个密码

成功登录

接下来想干嘛?当然是想提权了

后渗透测试

提权属于后渗透测试内容,根据PTES,渗透测试下一步是后渗透测试

想尝试通过维持用户权限来提权执行sudo -l,发现michael没有权限执行

发现steven有sudo -l的执行权限,并且发现可以维持root权限的是python

好,那么这里就可以用常规提权方式'维持'

python -c 'import pty;pty.spawn("/bin/bash")'

这句话的意思就是用python(root权限)来调用出root权限下的bash终端,也就是维持了python的root权限进了root终端

成功获得root权限,之后就是用find查查flag,就不写了

MYSQL的UDF提权

1.locate mysql udf

2.cp到本地目录下

3.scp传到靶机(我为什么要传这个?,因为1581.c需要这个,我只是按照工具的需要与我自己的版本等信息进行选择)

目录路径可以改

4.靶机按照1581.c的步骤一步一步来,记得改路径(1581.c不需要编译,也不需要传到靶机上,只是提供一个如何使用udf提权的实例,就打ctf跟看wp一样)

5.mysql -uroot -pR@v3nSecurity

靶机登录数据库

6.然后就按照1581.c的步骤一步一步来,但是步骤这里有个问题,

create function do_system returns integer soname 'udf.so';这一句代码不能执行,提示没有这个函数,可以用create function sys_exec returns integer soname 'lib_mysqludf_sys_64.so';来替换

我这里只改了find命令的权限,根据1581.c,你也可以更改其他命令权限,这都是一样的,然后调用find

成功提权!

学习之余的笔记,udf提权难但其实也不难,因为现在还只是在用各种工具,而工具连自己怎么用,工具我需要什么,其实工具自己都有写(1581.c),主要学的还是一个想法,一个思路,感觉就像是写数学题,怎么想到的,威胁建模是怎么写的,PTES的过程比较重要.

链接:https://pan.baidu.你com/s/170P8wG_ZuaOC好Ale4FZN3BQ?pwd=zlmn
提取码:zlmn

知秋君
上一篇 2024-08-31 14:48
下一篇 2024-08-31 14:12

相关推荐