信息收集
1.判断靶机ip
原理:开靶机之前nmap扫一次网段,再开靶机之后扫一次,查看多出来的ip就是靶机ip
ip=192.168.98.174
2.判断端口服务,系统版本
a.确定端口
b.-p指定端口进一步收集
c.信息筛选
-
1.端口:22,80,139,445
-
2.系统是ubuntu,版本在2.6.9-2.6.33之间,内核是kernel
-
3.apache是2.2.8版本,php版本是5.2.4
-
4.ssh服务
3.判断端口可能存在漏洞
a--script=vuln nmap自带脚本扫描
b.niktio漏洞扫描工具扫
c.信息筛选
-
1.database.sql数据库文件泄露
-
2.#wp-config.php,member.php,index.php,checklogin.php,images目录的泄露
-
总结:泄露信息很少,从web页面入手
4.目录扫描
dirsearch和dirb判断存在目录
index.php
database.sql
#wp-config.php
member.php
checklogin.php
images
5.页面分析
首页查看
给了一个登录框,我们先用wappalyzer插件看一下是什么组件
接着扫一下判断cms(没扫出来)
泄露的sql表
有一个用户john出来了,我们拿着这个回去登录一下看看
(这个失败了,我们先记着)
看看#wp-config.php
和刚才的首页是一样的
images目录
总结:全部指向那个登录框,都没啥思路,看看能不能sql注入吧,下面实战尝试
(在密码处发现了报错的回显信息,应该就是有sql)
上实战
sql注入
经过尝试以后发现注入点在密码输入框,1' or 1=1 --+ 万能密码出现以下错误
改一下注释符看看:1' or 1=1 #
这里提示用户有问题,我们使用刚才泄露的john用户
登录成功
ssh登录
上面登录以后出现了账号和密码,联想我们的ssh服务,用它们直接连上了(MyNameIsJohn是密码)
shell逃逸
进去以后发现输入绝大多数命令都会被踢......
为什么呢,去查了一下发现有个东西叫做rshell,它全称叫restricted shell ,是一种限制的措施,只让你输入某些命令,防止你的进一步渗透
寥寥无几啊......看起来echo是比较好利用的一个命令,去网上查一下有关shell逃逸的内容
echo os.system('/bin/bash')
执行
注:现在大家可以看我是root用户权限是因为我后面才补的笔记,我们下面开始说提权
提权
原理
靶机常考的是suid提权,这里先说一下什么是suid,里面的重点其实是"s"
类似linux的rwx(对应读,写和执行),suid里面的s指的是s权限,而uid不重要,就是标识符的意思。
s权限允许普通用户以root权限运行该命令或者文件,也就是说我们在普通用户下,可以通过某种方式来找到具有s权限的命令,然后进行提权
利用
1.先利用find命令来找到具有s权限的命令
find的使用如下
find / -perm -u=s -type f 2>/dev/null
这里的-perm参数是说明后面检索的是权限,
-u=s指的是root用户拥有的文件
type类型这里设置为f普通文件
2>/dev/null指的是用输出流把报错信息丢掉,只留下有用的信息
2.对应上面的任意命令,去其目录下看看权限
(可以看到是有的,rws)
3.利用
把passwd里面uid改成0(不同普通用户有各自不同的 UID,root是0)
这里我们已经改好了,重新连上就是root权限了